Verificar se existe um servidor de DHCP

Verificar a existencia de um servidor de DHCP pode servir para resolução de problemas. Como sabemos não devem haver mais de um servidor de DHCP na rede, principalmente quando não é controlado pelo administrador.

Podemos verificar quais os servidores de DHCP com o comando

tcpdump -s 600 -vvvenA udp port 67 and udp port 68 or port 17

Assim recebemos a informação de clientes a comunicarem com os servidores de DHCP e recebemos a informação dos servidores a anunciarem que são servidores de DHCP.

Os pacotes de rede de um servidor são algo como:

19:19:59.579661 00:00:00:00:00:00 > Broadcast, ethertype IPv4 (0x0800), length 342: (tos 0x0, ttl 128, id 8681, offset 0, flags [none], proto UDP (17), length 328)
192.168.1.1.bootps > 255.255.255.255.bootpc: [udp sum ok] BOOTP/DHCP, Reply, length 300, xid 0xb5dfda2, Flags none
Your-IP 192.168.1.2
Client-Ethernet-Address 11:11:11:11:11:11
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: ACK
RN Option 58, length 4: 345600
RB Option 59, length 4: 604800
Lease-Time Option 51, length 4: 691200
Server-ID Option 54, length 4: 192.168.1.1
Subnet-Mask Option 1, length 4: 255.255.255.0
Default-Gateway Option 3, length 4: 192.168.1.1
Domain-Name-Server Option 6, length 8: 192.168.1.1

Assim se encontrar uma informação parecida com esta já sabe que o seridor tem o mac-address de 00:00:00:00:00:00 que manda para todos os computadores a informação da mascara de rede que é de 255.255.255.0, manda a informação sobre a gateway que é 192.168.1.1 e o servidor de DNS que neste caso seria 192.168.1.1