獲取DHCP伺服器的設定資訊

2020-07-16 10:05:11
如果用戶端有了 IP 地址,將不再傳送 DHCP Discover 包。這時,如果要獲取網路內 DHCP 伺服器資訊,可以使用 netwox 提供的編號為 179 的模組來實現。該模組通過向 DHCP 伺服器廣播傳送一個 DHCP INFORM 包,以獲取相關的設定引數。

DHCP 伺服器接收到該封包後,將根據租約查詢相應的設定資訊,並返回一個 DHCP ACK 訊息。該訊息包括相應的客戶設定引數,但不包括分配的網路地址。

【範例】獲取DHCP伺服器詳細的網路設定資訊,執行命令如下:

[email protected]:~# netwox 179

執行命令後將向 DHCP 伺服器廣播傳送 INFORM 報文,同時會得到 DHCP 伺服器返回的 ACK 報文。為了方便講解,下面將資訊進行拆分後分別講解。

1) 傳送的 INFORM 報文資訊的輸出資訊如下:
I send a INFORM:
DHCP____________________________________________________________.
| op=request  hops=0    xid=52FEF936  secs=0    flags=0000   |
| client=192.168.59.133  your=0.0.0.0                        |
| server=0.0.0.0  agent=0.0.0.0                              |
| clienteth=00:0C:29:FD:DE:B8                                |      #用戶端MAC地址
| sname:                                                     |
| file:                                                      |
| msgtype: inform                                            |
| clientidtype: 1                                            |
| clientid: 000c29fddeb8                                     |
| reqlist[0]: 1 (subnetmask)                                 |      #請求的網路設定資訊
| reqlist[1]: 3 (gateways)                                   |
| reqlist[2]: 4 (timeservers)                                |
| reqlist[3]: 5 (nameservers)                                |
| reqlist[4]: 6 (dnsservers)                                 |
| reqlist[5]: 7 (logservers)                                 |
| reqlist[6]: 9 (lprservers)                                 |
| reqlist[7]: 12 (hostname)                                  |
| reqlist[8]: 15 (domainname)                                |
| reqlist[9]: 28 (broadcastad)                               |
| reqlist[10]: 31 (performroutdisc)                          |
| reqlist[11]: 33 (staticroutes)                             |
| reqlist[12]: 40 (nisdomain)                                |
| reqlist[13]: 41 (nisservers)                               |
| reqlist[14]: 51 (ipadleasetime)                            |
| reqlist[15]: 58 (renewaltime)                              |
| reqlist[16]: 59 (rebindingtime)                            |
| reqlist[17]: 64 (nispdomain)                               |
| reqlist[18]: 65 (nispserver)                               |
| reqlist[19]: 69 (smtpservers)                              |
| reqlist[20]: 70 (pop3servers)                              |
| reqlist[21]: 71 (nntpservers)                              |
| reqlist[22]: 72 (wwwservers)                               |
| reqlist[23]: 74 (ircservers)                               |
|_______________________________________________             |
以上輸出資訊中,第 1 行表示 DHCP 用戶端向 DHCP 伺服器傳送了 INFORM 報文,用來請求網路設定資訊。

下面的資訊為報文包含的資訊。其中,xid 表示事務 ID 為 52FEF936;client 表示當前用戶端的 IP 地址為 192.168.59.133;clienteth 表示當前用戶端的 MAC 地址為 00:0C:29:FD:DE:B8。

2) 用戶端收到 DHCP 伺服器返回的 ACK 報文,並輸出如下資訊:
Server sent us this ACK:
DHCP____________________________________________________________.
| op=reply   hops=0    xid=52FEF936  secs=0      flags=0000    |
| client=192.168.59.133  your=0.0.0.0                          |
| server=192.168.59.254  agent=0.0.0.0                         |
| clienteth=00:0C:29:FD:DE:B8                                  |
| sname:                                                       |
| file:                                                        |
| msgtype: ack                                                 |
| serverid: 192.168.59.254                                     |      #伺服器IP地址
| subnetmask: 255.255.255.0                                    |      #子網掩碼
| gateways[0]: 192.168.59.2                                    |      #閘道器
| dnsservers[0]: 192.168.59.2                                  |      #DNS服務地址
| domainname: 'localdomain'                                    |      #域名
| broadcastad: 192.168.59.255                                  |      #廣播地址
| end                                                          |
|____________________________________________________          |
以上輸出資訊中,第 1 行表示 DHCP 返回了 ACK 報文。其中,xid 的值也為 52FEF936,子網掩碼為 255.255.255.0,閘道器為 192.168.59.2。

3) 為了驗證該命令傳送的封包,下面通過抓包進行檢視,如圖所示。