Existe-t-il une simple commande de type ping pour tester si un service DHCP s'exécute sur un réseau? ... sous Linux
Même si vous n'utilisez pas de serveur de surveillance Nagios, vous pouvez récupérer le binaire check_dhcp ou le compiler à partir de la source et utiliser la vérification pour tester un serveur DHCP. Par exemple.
./check_dhcp -v -s <dhcp_server_address> -r <expected_ip_address> -m <mac_address_touse>
Basé sur cette réponse , en supposant que vous avez installé nmap (Sudo apt install nmap
):
Sudo nmap --script broadcast-dhcp-discover
Ajouter le -e $interface
option si vous avez plusieurs interfaces réseau. (Par exemple: nmap --script broadcast-dhcp-discover -e eth0
)
Exemple de sortie:
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 cette sortie sur un réseau différent, avec 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
ou vous pouvez essayer dhcpcd
en mode test:
dhcpcd -T eth0
dhcpdump
est bon pour flairer et afficher les paquets DHCP sur le réseau.
Par exemple.
# 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)
---------------------------------------------------------------------------
Vous pouvez l'utiliser en conjonction avec un autre outil pour effectuer des requêtes DHCP, ou simplement l'utiliser pour regarder des PC/appareils interroger DHCP.
Pourquoi ne pas simplement faire une demande DHCP?
dhclient
Pour une sortie détaillée, utilisez:
dhclient -v
J'ai écrit un programme client de test DHCP il y a quelque temps, fonctionne sur Windows et POSIX:
Il existe un programme appelé dhcping (avec un seul p)
Sur les systèmes Debian-Ubuntu:
dhcpd -f
donne une bonne rétroaction et teste la configuration.
Sur les systèmes RH, essayez:
/etc/rc.d/init.d/dhcpd configtest
si vous utilisez des nagios, vous pouvez le surveiller avec check_dhcp