Program wiersza poleceń do testowania usługi DHCP

44

Czy istnieje proste polecenie ping-podobne, aby sprawdzić, czy usługa DHCP działa w sieci? ... w systemie Linux

rozdymka tygrysia
źródło

Odpowiedzi:

10

Nawet jeśli nie używasz serwera monitorowania Nagios, możesz grepować plik binarny check_dhcp lub skompilować go ze źródła i użyć testu do przetestowania serwera DHCP. Na przykład

./check_dhcp -v -s <dhcp_server_address> -r <expected_ip_address> -m <mac_address_touse>
sandoz
źródło
37

Na podstawie tej odpowiedzi , zakładając, że zainstalowałeś nmap ( sudo apt install nmap):

sudo nmap --script broadcast-dhcp-discover

Dodaj -e $interfaceopcję, jeśli masz więcej niż jeden interfejs sieciowy. (Na przykład nmap --script broadcast-dhcp-discover -e eth0:)

Przykładowe dane wyjściowe:

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

Lub to wyjście w innej sieci, z 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
źródło
to nie znalazło mojego serwera DHCP. - musi być coś nie tak z moim komputerem ... Ethernet działa, po prostu nie to.
Jasen
Pamiętaj, że ten skrypt używa stałego adresu MAC ( DE:AD:CO:DE:CA:FE) i dlatego nie będzie działać, jeśli serwer DHCP jest skonfigurowany z białą listą.
Bob
@Bob: Dzięki.
Warto
5

dhcpdump jest dobry do wąchania i wyświetlania pakietów DHCP w sieci.

Na przykład

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

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

Możesz używać go w połączeniu z innym narzędziem do wykonywania żądań DHCP lub po prostu używać go do oglądania zapytań komputerów / urządzeń o DHCP.

Craig McQueen
źródło
2
Dostępne również dla systemu macOS brew install dhcpdump.
fifi finance
Wydaje się, że działa to tylko wtedy, gdy w sieci występuje rzeczywisty ruch DHCP.
mivk
@mivk Mówisz poważnie?
Ken Sharp
2
@KenSharp Dlaczego? Tak. dhcpdump pokaże coś tylko wtedy, gdy klient w sieci zażąda adresu dhcp. Jeśli nie chcesz czekać i nie chcesz sam wysłać żądania dhcp, ale widzisz tylko, która maszyna odpowiedziałaby na to, JEŻELI pojawiło się żądanie, to nie jest to rozwiązanie.
mivk
@mivk Dlaczego? Ponieważ plakat dokładnie to powiedział.
Duncan X Simpson
5

lub możesz spróbować dhcpcdw trybie testowym:

dhcpcd -T eth0
Paul M.
źródło
Użyj dhcpcd -T eth0 -t 2limitu czasu po 2 sekundach
Maarten Wolzak,
4

Jakiś czas temu napisałem testowy program klienta DHCP, działa na systemach Windows i POSIX:

https://github.com/CyberShadow/dhcptest

Vladimir Panteleev
źródło
Napisane w D ... Wydaje się możliwe (z ldc2) uzyskanie statycznych plików binarnych zldc2 -link-defaultlib-shared=false -static -L=-lphobos2-ldc -L=-lz dhcptest.d
Gert van den Berg
4

Dlaczego nie złożyć żądania DHCP?

dhclient

Aby uzyskać pełne wyjście:

dhclient -v

Sirex
źródło
14
Prawdopodobnie dlatego, że sprawi, że Twój system użyje adresu IP przypisanego przez serwer DHCP, co nie jest tym, czego się chce, np. Próbując dowiedzieć się, czy w jego sieci są nieuczciwe serwery DHCP.
ThiefMaster,
6
-n opcja pomaga tutaj?
akostadinov
1
-nWydaje się, że opcja jest zepsuta na kliencie ISC DHCP Client 4.2.4 na Ubuntu 14 LTS?
Josip Rodin
Nie sądzę, że -nrobi to, co myślisz.
Jasen
wyjaśniahell.com /explain?cmd=dhclient+-n: „Nie konfiguruj żadnych interfejsów. Jest to najprawdopodobniej przydatne w połączeniu z flagą -w”.
mwfearnley
3

Istnieje program o nazwie dhcping (tylko z jednym p)

topdog
źródło
1

W systemach Debian-Ubuntu:

dhcpd -f

daje dobre opinie i testuje konfigurację.

W systemach RH spróbuj:

/etc/rc.d/init.d/dhcpd configtest
John P. Fisher
źródło
0

jeśli używasz nagios, możesz to monitorować za pomocą check_dhcp

natxo asenjo
źródło