Programma da riga di comando per testare il servizio DHCP


44

Esiste un semplice comando di tipo ping per verificare se un servizio DHCP è in esecuzione su una rete? ... su Linux

Risposte:


10

Anche se non si utilizza un server di monitoraggio Nagios, è possibile eseguire il grep del file binario check_dhcp o compilarlo dal sorgente e utilizzare il controllo per testare un server DHCP. Per esempio

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

38

Sulla base di questa risposta , supponendo che tu abbia installato nmap ( sudo apt install nmap):

sudo nmap --script broadcast-dhcp-discover

Aggiungi l' -e $interfaceopzione se hai più di un'interfaccia di rete. (Ad esempio nmap --script broadcast-dhcp-discover -e eth0:)

Uscita campione:

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 questo output su una rete diversa, 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

questo non ha trovato il mio server DHCP.- deve esserci qualcosa che non va nel mio pc ... Ethernet funziona, ma non quello.
Jasen,

Si noti che questo script utilizza un indirizzo MAC fisso ( DE:AD:CO:DE:CA:FE) e pertanto non funzionerà se il server DHCP è configurato con una whitelist.
Bob,

@Bob: grazie. Questo è buono a sapersi
mivk l'

5

dhcpdump è utile per annusare e visualizzare i pacchetti DHCP sulla rete.

Per esempio

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

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

Puoi usarlo insieme ad un altro strumento per fare richieste DHCP, o semplicemente per guardare PC / dispositivi interrogare DHCP.


2
Disponibile anche per macOS thru brew install dhcpdump.
finanza fifi

Questo sembra funzionare solo se esiste un traffico dhcp effettivo sulla rete.
mivk

@mivk Stai facendo sul serio?
Ken Sharp,

2
@KenSharp Perché? Sì. dhcpdump mostrerà qualcosa solo quando un client sulla rete richiede un indirizzo dhcp. Se non vuoi aspettare e non vuoi inviare tu stesso una richiesta dhcp, ma vedi solo quale macchina risponderebbe a SE SE ci fosse una richiesta, allora questa non è la soluzione.
marzo

@mivk Why? Perché il poster diceva esattamente questo.
Duncan X Simpson,

5

oppure puoi provare dhcpcdin modalità test:

dhcpcd -T eth0

Utilizzare dhcpcd -T eth0 -t 2per il timeout dopo 2 secondi
Maarten Wolzak,


4

Perché non solo effettuare una richiesta DHCP?

dhclient

Per un output dettagliato usare:

dhclient -v


14
Probabilmente perché ciò farà sì che il tuo sistema utilizzi l'IP assegnato dal server DHCP che non è quello che si desidera quando, ad esempio, si cerca di scoprire se nella propria rete sono presenti server DHCP non autorizzati.
ThiefMaster,

6
-n opzione aiuta qui?
Akostadinov

1
L'opzione -nsembra essere rotta sul client DHCP ISC v4.2.4 su Ubuntu 14 LTS?
Josip Rodin,

Non credo che -nfa quello che pensi lo fa.
Jasen,

spiegahell.com/explain?cmd=dhclient+-n : "Non configurare alcuna interfaccia. È molto probabile che ciò sia utile in combinazione con il flag -w."
mwfearnley,

3

Esiste un programma chiamato dhcping (con solo una p)


1

Sui sistemi Debian-Ubuntu:

dhcpd -f

fornisce un buon feedback e verifica la configurazione.

Sui sistemi RH provare:

/etc/rc.d/init.d/dhcpd configtest

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.