Program baris perintah untuk menguji layanan DHCP

44

Apakah ada perintah seperti ping yang sederhana untuk menguji apakah layanan DHCP berjalan di jaringan? ... di Linux

ikan buntal
sumber

Jawaban:

10

Bahkan jika Anda tidak menggunakan server pemantauan Nagios, Anda dapat mengambil biner check_dhcp atau mengkompilasinya dari sumber dan menggunakan centang untuk menguji DHCP-Server. Misalnya

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

Berdasarkan jawaban ini , dengan anggapan Anda telah menginstal nmap ( sudo apt install nmap):

sudo nmap --script broadcast-dhcp-discover

Tambahkan -e $interfaceopsi jika Anda memiliki lebih dari satu antarmuka jaringan. (Sebagai contoh nmap --script broadcast-dhcp-discover -e eth0:)

Output sampel:

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

Atau output ini di jaringan yang berbeda, dengan 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
sumber
ini tidak menemukan server DHCP saya.- pasti ada sesuatu yang salah dengan pc saya ... ethernet berfungsi, hanya saja tidak.
Jasen
Perhatikan bahwa skrip ini menggunakan alamat MAC tetap ( DE:AD:CO:DE:CA:FE) dan karenanya tidak akan berfungsi jika server DHCP Anda dikonfigurasikan dengan daftar putih.
Bob
@ Bob: Terima kasih. Itu bagus untuk diketahui
mivk
5

dhcpdump bagus untuk mengendus dan menampilkan paket DHCP di jaringan.

Misalnya

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

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

Anda dapat menggunakannya bersamaan dengan alat lain untuk melakukan permintaan DHCP, atau cukup menggunakannya untuk menonton PC / perangkat meminta DHCP.

Craig McQueen
sumber
2
Juga tersedia untuk macOS melalui brew install dhcpdump.
Keuangan fifi
Tampaknya ini hanya berfungsi jika ada lalu lintas dhcp aktual di jaringan.
mivk
@mivk Apakah kamu serius?
Ken Sharp
2
@ KenSharp Mengapa? Iya. dhcpdump hanya akan menampilkan sesuatu ketika klien di jaringan meminta alamat dhcp. Jika Anda tidak ingin menunggu dan tidak ingin mengirim permintaan dhcp sendiri tetapi hanya melihat mesin mana yang akan menjawab apa JIKA ada permintaan, maka ini bukan solusinya.
mivk
@mivk Kenapa? Karena poster itu mengatakan hal itu.
Duncan X Simpson
5

atau Anda dapat mencoba dhcpcddalam mode uji:

dhcpcd -T eth0
Paul M.
sumber
Gunakan dhcpcd -T eth0 -t 2untuk
kehabisan
4

Saya menulis program klien uji DHCP beberapa waktu lalu, berfungsi pada Windows dan POSIX:

https://github.com/CyberShadow/dhcptest

Vladimir Panteleev
sumber
Ditulis dalam D ... Tampaknya mungkin (dengan ldc2) mendapatkan binari statis denganldc2 -link-defaultlib-shared=false -static -L=-lphobos2-ldc -L=-lz dhcptest.d
Gert van den Berg
4

Mengapa tidak membuat permintaan DHCP saja?

dhclient

Untuk penggunaan keluaran verbal:

dhclient -v

Sirex
sumber
14
Mungkin karena itu akan membuat sistem Anda menggunakan IP yang ditetapkan oleh server DHCP yang bukan yang diinginkan ketika misalnya mencoba mencari tahu apakah ada server DHCP jahat di jaringannya.
ThiefMaster
6
Opsi -n membantu di sini?
akostadinov
1
Opsi -ntampaknya rusak pada ISC DHCP Client v4.2.4 di Ubuntu 14 LTS?
Josip Rodin
Saya tidak berpikir -nmelakukan apa yang Anda pikirkan.
Jasen
menjelaskanshell.com/explain?cmd=dhclient+-n : "Jangan konfigurasikan antarmuka apa pun. Ini kemungkinan besar berguna dalam kombinasi dengan flag -w."
mwfearnley
3

Ada program yang disebut dhcping (hanya dengan satu p)

topdog
sumber
1

Pada sistem Debian-Ubuntu:

dhcpd -f

memberikan umpan balik yang baik dan menguji konfigurasi.

Pada sistem RH coba:

/etc/rc.d/init.d/dhcpd configtest
John P. Fisher
sumber
0

jika Anda menggunakan nagios, Anda bisa memantaunya dengan check_dhcp

natxo asenjo
sumber