DHCPサービスをテストするためのコマンドラインプログラム


44

DHCPサービスがネットワークで実行されているかどうかをテストする簡単なpingのようなコマンドはありますか?... Linuxの場合

回答:


10

Nagios監視サーバーを使用しない場合でも、check_dhcpバイナリをgrep するか、ソースからコンパイルして、チェックを使用して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サーバーを見つけられませんでした。
ジェイセン

このスクリプトは固定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要求を実行するか、PC /デバイスがDHCPを照会するのを監視するだけで使用できます。


2
macOS thruでも利用可能ですbrew install dhcpdump
fifiファイナンス

これは、ネットワーク上に実際のdhcpトラフィックがある場合にのみ機能するようです。
mivk

@mivk本気ですか?
ケンシャープ

2
@KenSharpなぜ?はい。dhcpdumpは、ネットワーク上のクライアントがdhcpアドレスを要求したときにのみ表示します。待機したくないし、自分でdhcpリクエストを送信したくないが、リクエストがあった場合にどのマシンがどのマシンに応答するかだけを見たい場合、これは解決策ではありません。
mivk

@mivkなんで?ポスターがまさにそれを言ったからです。
ダンカンXシンプソン

5

またはdhcpcd、テストモードで試すことができます。

dhcpcd -T eth0

dhcpcd -T eth0 -t 22秒後にタイムアウトするために使用
Maarten Wolzak


4

なぜDHCPリクエストをしないのですか?

dhclient

詳細な出力を使用する場合:

dhclient -v


14
おそらく、それにより、システムがDHCPサーバーによって割り当てられたIPを使用するようになります。これは、たとえば、ネットワークに不正なDHCPサーバーがあるかどうかを確認しようとするときに必要なものではありません。
シーフマスター

6
-nオプションはここで役立ちますか?
アコスタディノフ

1
-nUbuntu 14 LTSのISC DHCPクライアントv4.2.4でオプションが壊れているようですか?
ジョシップロダン

私は-nあなたがそれが思うと思うことをしないと思います。
ジェイセン

sayshell.com/explain?cmd=dhclient+-n:「インターフェイスを設定しないでください。これは、-wフラグと組み合わせて使用​​するのが最も有用です。」
mwfearnley


1

Debian-Ubuntuシステムの場合:

dhcpd -f

良いフィードバックを提供し、構成をテストします。

RHシステムで試してください:

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.