usando CentOS con IP estática, ¿hay alguna forma de determinar si un servidor DHCP se ejecuta en la red usando bash?
linux
networking
centos
dhcp
Steve
fuente
fuente
Si está disponible en el repositorio hay dhcpdump
de la página del manual:
fuente
Si tiene a su
tcpdump
disposición, invocar el programa como root con los siguientes parámetros podría ayudarlo a encontrar el servidor:Desafortunadamente, debido al diseño de mi red, no puedo capturar un apretón de manos DHCP completo de inmediato. Sin embargo, veo una solicitud de DHCP desde mi iPad:
Después de dejar que 'tcpdump' se ejecute durante la noche, eventualmente vi este ACK:
Si al ejecutar ese
tcpdump
comando, y ve una Oferta BOOTP / DHCP o Ack (Nack), eso será de un servidor DHCP, y la dirección MAC del servidor estará justo después de la marca de tiempo en la primera línea.Entonces, el servidor DHCP (válido) aquí tiene la dirección MAC a8: 39: 44: 96: fa: b8`.
Usando una de las muchas herramientas de búsqueda de direcciones MAC en la web , veo que este MAC pertenece a
A8:39:44 Actiontec Electronics, Inc
cuál es mi enrutador.Para atrapar paquetes de servidores DHCP falsos a medida que ocurren, tendría que dejar este
tcpdump
proceso ejecutándose en la ventana de terminal:tcpdump -i en0 -nev udp src port 67 and not ether host a8:39:44:96:fa:b8
Esto solo me mostrará las respuestas del servidor DHCP de otros hosts que no sean mi servidor DHCP válido, siempre que el proceso se ejecute en su propia ventana.
El siguiente comando se ejecutará en segundo plano hasta que se capturen 100 paquetes, agregando cualquier mensaje de servidor DHCP falso al archivo
/tmp/rogue
. Nuevamente, la dirección MAC de su servidor DHCP válido debe usarse en el lugar apropiado, así como el descriptor de interfaz en su sistema.tcpdump -U -i en0 -c 100 -nev udp src port 67 and not ether host a8:39:44:96:fa:b8 >> /tmp/rogue 2>&1 &
``
fuente
tcpdump
comando en ejecución, mostrará los paquetes del servidor DHCP enviados por una dirección MAC que es diferente a la de su servidor DHCP. Por supuesto, deberá proporcionar la dirección en el lugar indicado ... La colocaré en mi respuesta en este momento, para obtener un mejor formato.Dado el tiempo suficiente, podría ser posible realizar la detección pasivamente: recuerde que un cliente inicializador envía una transmisión DHCPDISCOVER. Si hay un servidor dhcpserver disponible, obtendrá una oferta y luego emitirá (¡nuevamente como transmisión!) Un DHCPREQUEST. Así
El éxito de los primeros dos puntos depende del número de otros hosts recién conectados / arrancados a la red y también de los tiempos de arrendamiento.
fuente
Puede intentar crear un dispositivo de alias y usar un cliente dhcp en modo de prueba, donde imprime cualquier respuesta, sin volver a configurar la interfaz:
Solo tengo acceso a un cuadro de debian, por lo que si tiene otra implementación de dhcp, la opción de ejecución en seco puede ser diferente, como para dhcpcd:
Solía ejecutar un script cron con algo como esto, que alertaría al administrador (¡yo!) Sobre servidores dhcp falsos.
fuente
ifconfig eth0:1 up
la salidaSIOCSIFFLAGS: Cannot assign requested address