Программа командной строки для проверки службы 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>

38

Основываясь на этом ответе , предполагая, что вы установили 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-сервере настроен белый список.
Боб

@ Боб: Спасибо. Это хорошо знать
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.
фифи финансы

Кажется, это работает только в том случае, если в сети есть реальный DHCP-трафик.
mivk

@mivk Ты серьезно?
Кен Шарп

2
@KenSharp Почему? Да. dhcpdump покажет что-то, только когда клиент в сети запрашивает адрес dhcp. Если вы не хотите ждать и не хотите отправлять запрос dhcp самостоятельно, а только видите, какая машина ответит, если был запрос, тогда это не решение.
MIVK

@mivk Почему? Потому что плакат сказал именно это.
Дункан Х Симпсон

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, что делает то, что вы думаете, что делает.
Ясен

resehell.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.