Programa de linha de comando para testar o serviço DHCP

44

Existe um comando simples de ping para testar se um serviço DHCP está sendo executado em uma rede? ... no Linux

baiacu
fonte

Respostas:

10

Mesmo se você não usar um servidor de monitoramento Nagios, poderá grep o binário check_dhcp ou compilá-lo da fonte e usar a verificação para testar um servidor DHCP. Por exemplo

./check_dhcp -v -s <dhcp_server_address> -r <expected_ip_address> -m <mac_address_touse>
sandoz
fonte
38

Com base nesta resposta , supondo que você tenha instalado o nmap ( sudo apt install nmap):

sudo nmap --script broadcast-dhcp-discover

Adicione a -e $interfaceopção se você tiver mais de uma interface de rede. (Por exemplo nmap --script broadcast-dhcp-discover -e eth0:)

Saída de amostra:

Starting Nmap 7.01 ( https://nmap.org ) at 2017-09-27 17:40 CEST
Pre-scan script results:
| broadcast-dhcp-discover: 
|   Response 1 of 1: 
|     IP Offered: 192.168.81.94
|     DHCP Message Type: DHCPOFFER
|     Server Identifier: 192.168.81.2
|     IP Address Lease Time: 5m00s
|     Subnet Mask: 255.255.255.0
|     Router: 192.168.81.2
|     Domain Name Server: 192.168.81.2
|     Domain Name: example.lan
|     NTP Servers: 192.168.81.10, 192.168.81.2
|     NetBIOS Name Server: 192.168.81.10
|_    NetBIOS Node Type: 8
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.66 seconds

Ou essa saída em uma rede diferente, com o nmap v. 6:

Starting Nmap 6.00 ( http://nmap.org ) at 2017-09-27 17:42 CEST
Pre-scan script results:
| broadcast-dhcp-discover: 
|   IP Offered: 192.168.4.101
|   DHCP Message Type: DHCPOFFER
|   Server Identifier: 192.168.4.1
|   IP Address Lease Time: 7 days, 0:00:00
|   Subnet Mask: 255.255.255.0
|   Time Offset: 7200
|   Router: 192.168.4.1
|   Domain Name Server: 208.91.112.53, 208.91.112.52
|   Renewal Time Value: 3 days, 12:00:00
|_  Rebinding Time Value: 6 days, 3:00:00
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 1.15 seconds
mivk
fonte
isso não encontrou o meu servidor DHCP. - deve haver algo errado com o meu pc ... ethernet funciona, só que não.
Jasen
Observe que esse script usa um endereço MAC fixo ( DE:AD:CO:DE:CA:FE) e, portanto, não funcionará se o servidor DHCP estiver configurado com uma lista de permissões.
Bob
@ Bob: Obrigado. Isso é bom saber
mivk
5

dhcpdump é bom para farejar e exibir pacotes DHCP na rede.

Por exemplo

# dhcpdump -i eth0
---------------------------------------------------------------------------

  TIME: 2015-11-27 11:41:37.379
    IP: 0.0.0.0 (0:11:b9:5:0:b8) > 255.255.255.255 (ff:ff:ff:ff:ff:ff)
    OP: 1 (BOOTPREQUEST)
 HTYPE: 1 (Ethernet)
  HLEN: 6
  HOPS: 0
   XID: abce9327
  SECS: 0
 FLAGS: 0
CIADDR: 0.0.0.0
YIADDR: 0.0.0.0
SIADDR: 0.0.0.0
GIADDR: 0.0.0.0
CHADDR: 00:11:b9:05:00:b8:00:00:00:00:00:00:00:00:00:00
 SNAME: .
 FNAME: .
OPTION:  53 (  1) DHCP message type         1 (DHCPDISCOVER)
OPTION:  57 (  2) Maximum DHCP message size 576
OPTION:  55 (  4) Parameter Request List      1 (Subnet mask)
                          3 (Routers)
                         28 (Broadcast address)
                          6 (DNS server)

---------------------------------------------------------------------------

Você pode usá-lo em conjunto com outra ferramenta para fazer solicitações de DHCP ou apenas usá-lo para assistir PCs / dispositivos consultarem o DHCP.

Craig McQueen
fonte
2
Também disponível para o macOS thru brew install dhcpdump.
fifi finance 05/10
Isso parece funcionar apenas se houver tráfego dhcp real na rede.
Mivk #
@mivk Você está falando sério?
Ken afiada
2
@KenSharp Por quê? Sim. O dhcpdump mostrará apenas algo quando um cliente na rede solicitar um endereço dhcp. Se você não quiser esperar e não quiser enviar uma solicitação dhcp, mas apenas ver qual máquina responderia o que SE houvesse uma solicitação, essa não é a solução.
26418 mivk
@mivk Por quê? Porque o cartaz dizia exatamente isso.
Duncan X Simpson
5

ou você pode tentar dhcpcdno modo de teste:

dhcpcd -T eth0
Paul M
fonte
Use dhcpcd -T eth0 -t 2para
expirar
4

Eu escrevi um programa cliente de teste DHCP há um tempo atrás, funciona no Windows e no POSIX:

https://github.com/CyberShadow/dhcptest

Vladimir Panteleev
fonte
Escrito em D ... Parece possível (com ldc2) para obter binários estáticos comldc2 -link-defaultlib-shared=false -static -L=-lphobos2-ldc -L=-lz dhcptest.d
Gert van den Berg
4

Por que não fazer apenas uma solicitação de DHCP?

dhclient

Para saída detalhada, use:

dhclient -v

Sirex
fonte
14
Provavelmente porque isso fará com que o seu sistema use o IP atribuído pelo servidor DHCP, o que não é o que se deseja quando, por exemplo, tenta descobrir se há servidores DHCP não autorizados na rede dele.
ThiefMaster
6
-n opção ajuda aqui?
akostadinov
1
A opção -nparece estar quebrada no ISC DHCP Client v4.2.4 no Ubuntu 14 LTS?
Josip Rodin
Eu não acho -nque faz o que você pensa que faz.
Jasen
explanshell.com/explain?cmd=dhclient+-n : "Não configure nenhuma interface. É mais provável que seja útil em combinação com o sinalizador -w."
mwfearnley 28/01
3

Existe um programa chamado dhcping (com apenas um p)

Melhor cachorro
fonte
1

Nos sistemas Debian-Ubuntu:

dhcpd -f

dá um bom feedback e testa a configuração.

Nos sistemas RH, tente:

/etc/rc.d/init.d/dhcpd configtest
John P. Fisher
fonte
0

se você usar o nagios, poderá monitorá-lo com check_dhcp

natxo asenjo
fonte