Програма командного рядка для тестування служби DHCP


44

Чи є проста команда, схожа на ping, щоб перевірити, чи працює служба DHCP в мережі? ... на Linux

Відповіді:


10

Навіть якщо ви не використовуєте сервер моніторингу Nagios, ви можете скопіювати бінарний файл check_dhcp або скомпілювати його з джерела і використовувати чек для тестування DHCP-сервера. Напр

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

37

Виходячи з цієї відповіді , якщо припустити, що ви встановили nmap ( sudo apt install nmap):

sudo nmap --script broadcast-dhcp-discover

Додайте -e $interfaceопцію, якщо у вас є більше одного мережевого інтерфейсу. (Наприклад: nmap --script broadcast-dhcp-discover -e eth0)

Вибірка зразка:

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

Або цей вихід у іншій мережі з 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

це не знайшло мого сервера DHCP.- повинно бути щось не так з моїм ПК ... ethernet працює, тільки не це.
Ясен

Зверніть увагу, що цей скрипт використовує фіксовану MAC-адресу ( DE:AD:CO:DE:CA:FE) і тому не працюватиме, якщо ваш сервер DHCP налаштований з білого списку.
Боб

@Bob: Дякую Це добре знати
mivk

5

dhcpdump добре для нюхання та показу DHCP-пакетів у мережі.

Напр

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

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

Ви можете використовувати його разом з іншим інструментом для виконання DHCP-запитів або просто використовувати його для перегляду ПК / пристроїв, що запитують DHCP.


2
Також доступний для macOS через brew install dhcpdump.
fifi finance

Здається, це працює лише в тому випадку, коли в мережі є фактичний dhcp-трафік.
mivk

@mivk Ви серйозно ставитеся?
Кен Шарп

2
@KenSharp Чому? Так. dhcpdump щось покаже лише тоді, коли клієнт у мережі запитує адресу dhcp. Якщо ви не хочете чекати і не хочете відправляти dhcp-запит самостійно, а бачите лише, на якій машині відповість, на що АБО був запит, то це не є рішенням.
mivk

@mivk Чому? Тому що плакат сказав саме це.
Дункан X Сімпсон

5

або ви можете спробувати dhcpcdу тестовому режимі:

dhcpcd -T eth0

Використовуйте dhcpcd -T eth0 -t 2для таймауту через 2 секунди
Maarten Wolzak


4

Чому б просто не зробити запит DHCP?

dhclient

Для багатослівного виводу використовуйте:

dhclient -v


14
Можливо, тому, що це змусить вашу систему використовувати IP, призначений сервером DHCP, який не є тим, чого хочеться, наприклад, намагаючись з’ясувати, чи є в його мережі шахрайські DHCP-сервери.
ThiefMaster

6
-n тут допомагає варіант?
акостадінов

1
-nМожливо, варіант порушено на ISC DHCP Client v4.2.4 на Ubuntu 14 LTS?
Йосип Родін

Я не думаю -n, що робить те, що ти думаєш, що це робить.
Ясен

explainshell.com/explain?cmd=dhclient+-n : «Не налаштовуйте інтерфейси Це, швидше за все, буде корисно в поєднанні з прапором -w ..»
mwfearnley


1

На системах Debian-Ubuntu:

dhcpd -f

дає хороші відгуки та тестує конфігурацію.

На системах RH спробуйте:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.