Programme en ligne de commande pour tester le service DHCP

44

Existe-t-il une simple commande de type ping permettant de vérifier si un service DHCP est exécuté sur un réseau? ... sur Linux

poisson-globe
la source

Réponses:

10

Même si vous n'utilisez pas de serveur de surveillance Nagios, vous pouvez grep 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>
Sandoz
la source
38

Sur la base de cette réponse , en supposant que vous avez installé nmap ( sudo apt install nmap):

sudo nmap --script broadcast-dhcp-discover

Ajoutez l' -e $interfaceoption 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 autre réseau, 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
mivk
la source
cela n'a pas trouvé mon serveur DHCP - il doit y avoir un problème avec mon pc ... Ethernet fonctionne, mais pas ça
Jasen
Notez que ce script utilise une adresse MAC fixe ( DE:AD:CO:DE:CA:FE) et ne fonctionnera donc pas si votre serveur DHCP est configuré avec une liste blanche.
Bob
@ Bob: Merci. C'est bon à savoir
Mivk
5

dhcpdump est bon pour renifler 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 conjointement avec un autre outil pour effectuer des requêtes DHCP ou simplement pour regarder des PC / périphériques interroger DHCP.

Craig McQueen
la source
2
Egalement disponible pour macOS à travers brew install dhcpdump.
Fifi finance
Cela ne semble fonctionner que s’il existe un trafic DHCP réel sur le réseau.
mardi
@mivk Êtes-vous sérieux?
Ken Sharp
2
@ KenSharp Pourquoi? Oui. dhcpdump ne montrera quelque chose que lorsqu'un client du réseau demande une adresse DHCP. Si vous ne voulez pas attendre et que vous ne voulez pas envoyer vous-même une demande dhcp, mais que vous ne voyez que la machine qui répondrait à une demande, alors ce n'est pas la solution.
mardi
@mivk Pourquoi? Parce que l'affiche disait exactement cela.
Duncan X Simpson
5

ou vous pouvez essayer dhcpcden mode test:

dhcpcd -T eth0
Paul M
la source
Utiliser dhcpcd -T eth0 -t 2pour arrêter après 2 secondes
Maarten Wolzak
4

J'ai écrit un programme client de test DHCP il y a quelque temps, fonctionne sous Windows et POSIX:

https://github.com/CyberShadow/dhcptest

Vladimir Panteleev
la source
Ecrit en D ... Il semble possible (avec ldc2) d'obtenir des binaires statiques avecldc2 -link-defaultlib-shared=false -static -L=-lphobos2-ldc -L=-lz dhcptest.d
Gert van den Berg
4

Pourquoi ne pas simplement faire une requête DHCP?

dhclient

Pour une sortie verbeuse, utilisez:

dhclient -v

Sirex
la source
14
Probablement parce que cela obligera votre système à utiliser l'adresse IP attribuée par le serveur DHCP, ce qui n'est pas ce que l'on souhaite par exemple pour savoir s'il existe des serveurs DHCP non autorisés dans son réseau.
ThiefMaster
6
L'option -n aide ici?
akostadinov
1
L'option -nsemble être cassée sur le client DHCP ISC v4.2.4 sur Ubuntu 14 LTS?
Josip Rodin
Je ne pense pas que -nfait ce que vous pensez qu'il fait.
Jasen
expliquehell.com/explain?cmd=dhclient+-n : "Ne configurez aucune interface. Cela sera probablement utile en combinaison avec l'indicateur -w."
Mwfearnley
3

Il y a un programme appelé dhcping (avec un seul p)

topdog
la source
1

Sur les systèmes Debian-Ubuntu:

dhcpd -f

donne de bons commentaires et teste la configuration.

Sur les systèmes RH, essayez:

/etc/rc.d/init.d/dhcpd configtest
John P. Fisher
la source