Programa de línea de comando para probar el servicio DHCP

44

¿Existe un comando simple similar al ping para probar si un servicio DHCP se está ejecutando en una red? ... en Linux

pez globo
fuente

Respuestas:

10

Incluso si no usa un servidor de monitoreo Nagios, puede seleccionar el binario check_dhcp o compilarlo desde la fuente y usar la verificación para probar un servidor DHCP. P.ej

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

Según esta respuesta , suponiendo que haya instalado nmap ( sudo apt install nmap):

sudo nmap --script broadcast-dhcp-discover

Agregue la -e $interfaceopción si tiene más de una interfaz de red. (Por ejemplo: nmap --script broadcast-dhcp-discover -e eth0)

Salida de muestra:

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

O esta salida en una red diferente, con 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
fuente
esto no encontró mi servidor DHCP. Debe haber algo mal con mi PC ... Ethernet funciona, pero no eso.
Jasen
Tenga en cuenta que este script utiliza una dirección MAC fija ( DE:AD:CO:DE:CA:FE) y, por lo tanto, no funcionará si su servidor DHCP está configurado con una lista blanca.
Bob
@Bob: Gracias. Es bueno saberlo
mivk
5

dhcpdump es bueno para rastrear y mostrar paquetes DHCP en la red.

P.ej

# 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)

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

Puede usarlo junto con otra herramienta para hacer solicitudes DHCP, o simplemente usarlo para ver las PC / dispositivos consultar DHCP.

Craig McQueen
fuente
2
También disponible para macOS a través brew install dhcpdump.
fifi finance
Esto parece funcionar solo si hay tráfico real de dhcp en la red.
mivk
@mivk ¿Estás hablando en serio?
Ken Sharp
2
@KenSharp ¿Por qué? Si. dhcpdump solo mostrará algo cuando un cliente en la red solicite una dirección dhcp. Si no desea esperar y no desea enviar una solicitud de dhcp usted mismo, pero solo ve qué máquina respondería si hubiera una solicitud, entonces esta no es la solución.
mivk
@mivk ¿Por qué? Porque el cartel decía exactamente eso.
Duncan X Simpson
5

o puedes probar dhcpcden modo de prueba:

dhcpcd -T eth0
Paul M
fuente
Úselo dhcpcd -T eth0 -t 2para el tiempo de espera después de 2 segundos
Maarten Wolzak
4

Escribí un programa de cliente de prueba DHCP hace un tiempo, funciona en Windows y POSIX:

https://github.com/CyberShadow/dhcptest

Vladimir Panteleev
fuente
Escrito en D ... Parece posible (con ldc2) obtener binarios estáticos conldc2 -link-defaultlib-shared=false -static -L=-lphobos2-ldc -L=-lz dhcptest.d
Gert van den Berg
4

¿Por qué no simplemente hacer una solicitud DHCP?

dhclient

Para uso detallado de salida:

dhclient -v

Sirex
fuente
14
Probablemente porque eso hará que su sistema use la IP asignada por el servidor DHCP, que no es lo que uno quiere cuando, por ejemplo, intenta averiguar si hay servidores DHCP falsos en su red.
ThiefMaster
66
-n opción ayuda aquí?
akostadinov
1
Opción -nparece estar rota en ISC DHCP Client v4.2.4 en Ubuntu 14 LTS?
Josip Rodin
No creo que -nhaga lo que tú piensas que hace.
Jasen
explicahell.com/explain?cmd=dhclient+-n : "No configure ninguna interfaz. Es muy probable que esto sea útil en combinación con el indicador -w".
mwfearnley
3

Hay un programa llamado dhcping (con solo una p)

mandamás
fuente
1

En sistemas Debian-Ubuntu:

dhcpd -f

da buenos comentarios y prueba la configuración.

En los sistemas RH intente:

/etc/rc.d/init.d/dhcpd configtest
John P. Fisher
fuente