目 錄
1.2.1 DHCP服務器與DHCP客戶端在相同物理網段,DHCP客戶端無法獲取地址.. 5
1.2.2 DHCP客戶端無法通過DHCP中繼獲取地址.. 6
1.2.3 DHCP客戶端無法通過DHCP Snooping獲取地址.. 9
1.3.1 DHCP客戶端沒有獲取到部分服務器配置的選項.. 9
1.3.2 禁止分配的靜態綁定地址,仍然參與地址分配.. 10
1.3.3 釋放的IP地址沒有放入可分配的IP地址表中.. 10
1.3.4 DHCP服務器的ping探測時間與配置不相符.. 10
1.3.5 DHCP服務器的租約已經過期,但DHCP中繼的安全表項仍然存在.. 11
1.3.6 DHCP服務器靜態綁定IP地址和客戶端MAC失效.. 11
1.3.7 DHCP Snooping無法生成表項.. 12
1.4.1 DHCP服務器與DHCP客戶端在相同物理網段故障處理過程.. 12
1.4.2 DHCP客戶端通過DHCP中繼獲取IP地址故障處理過程.. 14
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)采用客戶/服務器通信模式。由客戶端先向服務器發送請求配置信息的報文(包括分配的IP地址、子網掩碼、缺省網關等參數),服務器根據策略返回攜帶相應配置信息的報文,以實現IP地址等信息的動態配置。請求報文和回應報文都采用UDP進行封裝。
DHCP客戶端從DHCP服務器動態獲取IP地址,主要通過四個階段進行,如圖1-1所示。
圖1-1 IP地址動態獲取過程
(1) 發現階段,即DHCP客戶端尋找DHCP服務器的階段。客戶端以廣播方式發送DHCP-DISCOVER報文。
(2) 提供階段,即DHCP服務器提供IP地址的階段。DHCP服務器接收到客戶端的DHCP-DISCOVER報文後,根據IP地址分配的優先次序選出一個IP地址,與其他參數一起通過DHCP-OFFER報文發送給客戶端。
(3) 選擇階段,即DHCP客戶端選擇IP地址的階段。如果有多台DHCP服務器向該客戶端發來DHCP-OFFER報文,客戶端隻接受第一個收到的DHCP-OFFER報文,然後以廣播方式發送DHCP-REQUEST報文,該報文中包含DHCP服務器在DHCP-OFFER報文中分配的IP地址。
(4) 確認階段,即DHCP服務器確認IP地址的階段。DHCP服務器收到DHCP客戶端發來的DHCP-REQUEST報文後,隻有DHCP客戶端選擇的服務器會進行如下操作:如果確認將地址分配給該客戶端,則返回DHCP-ACK報文;否則返回DHCP-NAK報文,表明地址不能分配給該客戶端。
DHCP有如下三種典型組網應用:
(1) DHCP客戶端和DHCP服務器處於相同的物理網段,DHCP客戶端可以與DHCP服務器直接通信。一般包含一台DHCP服務器和多台客戶端,如圖1-2所示。
圖1-2 DHCP典型應用一
(2) DHCP客戶端和DHCP服務器處於不同的物理網段,客戶端通過DHCP中繼與服務器通信,獲取IP地址及其他配置信息,如圖1-3所示。
圖1-3 DHCP典型應用二
(3) DHCP客戶端和DHCP服務器處於相同的物理網段,DHCP客戶端與DHCP服務器通過DHCP Snooping通信。如圖1-4所示。
圖1-4 DHCP典型應用三
DHCP服務器通過配置地址池提供可分配的IP地址資源。
DHCP服務器按照如下優先次序為客戶端選擇IP地址:
l DHCP服務器中與客戶端MAC地址或客戶端ID靜態綁定的IP地址。
l DHCP服務器記錄的曾經分配給客戶端的IP地址。
l 客戶端發送的DHCP-DISCOVER報文中Option 50字段指定的IP地址。
l 選擇合適的地址池,從中順序查找可供分配的IP地址,最先找到的IP地址。
l 如果未找到可用的IP地址,則依次查詢租約過期、曾經發生過衝突的IP地址,如果找到則進行分配,否則將不予處理。
DHCP服務器選擇地址池原則:
l 客戶端與服務器在同一物理網段時,DHCP服務器根據接收DHCP請求報文接口的IP地址,選擇包含該IP地址的地址範圍最小的地址池。
l 客戶端與服務器不在同一物理網段,客戶端通過DHCP中繼獲取IP地址時,DHCP服務器根據DHCP請求報文中giaddr字段指定的IP地址,選擇包含該IP地址的地址範圍最小的地址池。
l 如果該地址池中沒有可供分配的IP地址,則服務器無法為客戶端分配地址。因此配置地址池網段時應該與報文接收接口的IP地址或者giaddr字段指定的IP地址一致,否則當DHCP服務器單播發送回應報文時可能由於沒有路由導致發送失敗。
DHCP中繼完成DHCP報文的轉發,如圖1-5所示。DHCP中繼發送給DHCP服務器和DHCP客戶端的報文的源IP地址都是接收到DHCP客戶端請求報文接口的IP地址。
圖1-5 DHCP中繼轉發過程
Option 82記錄了DHCP客戶端的位置信息。如果DHCP中繼配置Option 82功能,則當DHCP中繼接收到DHCP請求報文後,將根據報文中是否包含Option 82以及用戶配置的處理策略及填充格式對報文進行相應的處理,並將處理後的報文轉發給DHCP服務器。如果DHCP中繼收到的響應報文中帶有Option 82,則會將Option 82刪除後再轉發給DHCP客戶端。
管理員可以利用該選項定位DHCP客戶端,實現對客戶端的安全和計費等控製。
DHCP客戶端在配置ip address dhcp-alloc後不會立即發送DHCP-DISCOVER報文,而是在1~10秒內隨機發送。如果沒有收到DHCP服務器的回應報文,DHCP客戶端繼續發送請求報文,直到收到DHCP服務器的回應。
DHCP客戶端在收到DHCP-ACK後會通過發送免費ARP來檢測DHCP服務器分配的IP地址是否已經被其他客戶端使用。如果該IP地址已經被使用,則DHCP客戶端發送DHCP-DECLINE報文,然後重新申請。如果DHCP客戶端的其他接口配置了與DHCP服務器分配的IP地址在相同網段的IP地址,則DHCP客戶端獲取IP地址失敗且不再重新申請。
DHCP Snooping是DHCP的一種安全特性,在網絡中如果有私自架設的DHCP服務器,則可能導致用戶得到錯誤的IP地址。為了使用戶能通過合法的DHCP服務器獲取IP地址,DHCP Snooping安全機製允許將端口設置為信任端口和不信任端口:
l 信任端口是與合法的DHCP服務器直接或間接連接的端口。信任端口對接收到的DHCP報文正常轉發,從而保證了DHCP客戶端獲取正確的IP地址。
l 不信任端口是不與合法的DHCP服務器連接的端口。如果從不信任端口接收到DHCP服務器的響應報文則會丟棄,從而防止了DHCP客戶端獲得錯誤的IP地址。
DHCP Snooping還有一個重要的功能,就是嗅探用戶的地址申請過程,獲取用戶IP地址+MAC地址+PORT+VLAN的綁定。
本文主要關注由於配置引起的DHCP相關問題,以及某些容易理解錯誤的問題。
如圖1-2所示,DHCP客戶端無法通過DHCP獲取IP地址。
在用戶視圖下打開DHCP服務器的debug開關:debugging dhcp server all,根據具體debug信息進行定位。
debug信息 | 可能的故障原因 |
沒有收到報文的debug信息 | (1) (2) |
Failed to get available ip from interface ip-address mask ip-address. | (3) (6) |
DHCPServer: Lease is exhausted! | (3) (6) |
Sending Message-Type failed! | (4) |
DHCPServer: The number of leases has reached the maximum! | (5) |
可能的故障原因包括:
(1) 物理鏈路不暢通
(2) DHCP未使能
(3) DHCP服務器沒有配置地址池
通過display dhcp server tree all查看地址池配置:是否配置了與接收報文的接口IP在相同網段的地址池,或者包含了接收報文接口IP地址的地址池。
(4) DHCP服務器地址池網段配置錯誤
如果DHCP客戶端請求DHCP服務器單播回應,則配置的地址池網段必須與接收接口IP在相同網段,否則回應報文會發送失敗。
(5) 租約達到規格
DHCP服務器分配的租約是有規格限製的(各款產品不同,請參考產品規格),如果達到規格,則DHCP服務器不再分配IP地址。可以通過display dhcp server ip-in-use all查看DHCP服務器已經分配的租約是否達到上限。
(6) DHCP服務器沒有可分配的地址
查看DHCP服務器是否有可分配的IP地址,依次查看如下表項:
l 通過display dhcp server free-ip查看是否存在可分配的地址(與接收報文接口IP在相同網段的IP地址);
l 通過display dhcp server expired all查看是否存在與接收報文接口在相同網段的IP地址;
l 通過display dhcp server conflict all查看是否存在與接收報文接口在相同網段的衝突IP地址,且衝突時間在1小時之前。
如果沒有符合以上條件的IP地址,DHCP服務器無法再分配租約。
(1) 重新連接網線;
(2) 在係統視圖下配置命令dhcp enable;
(3) 配置包含或與接收接口IP地址在相同網段的地址池;
(4) 配置與接口IP地址網段相同的地址池網段;
(5) 通過display dhcp server expired all查看是否存在過期租約,如果有,通過reset dhcp server ip-in-use命令刪除過期租約;
(6) 擴大配置的地址池網段。
如圖1-3所示,DHCP客戶端無法通過DHCP獲取IP地址。
在DHCP服務器的用戶視圖下打開debug開關:debugging dhcp server all,在DHCP中繼的用戶視圖下打開debug開關:debugging dhcp relay all,根據具體debug信息進行定位。
debug信息 | 可能的故障原因 |
DHCP服務器的debug信息中沒有收到報文的debug信息 | (1) (2) (3) (5) |
DHCP中繼的debug信息中沒有收到報文的debug信息 | (1) (2) |
DHCP中繼有如下debug信息: The interface does not exist | (3) |
DHCP中繼有如下debug信息: Sending packet failed when processing Message-Type packet! 其中Message-Type為DHCP請求報文類型 | (4) |
DHCP服務器有如下debug信息: Failed to get available ip from interface ip-address mask ip-address. | (6) (9) |
DHCP服務器有如下debug信息: DHCPServer: Lease is exhausted! | (6) (9) |
DHCPServer: The number of leases has reached the maximum! | (8) |
DHCP服務器有如下debug信息: Sending Message-Type failed! | (10) |
DHCP中繼有如下debug信息: Sending packet failed when processing Message-Type packet! 其中Message-Type為DHCP響應報文類型 | (7) |
可能的故障原因包括:
(1) 物理鏈路不暢通
(2) DHCP未使能
(3) DHCP中繼接口沒有選擇服務器組
在配置了DHCP中繼的接口上通過命令display this命令查看,沒有dhcp relay server-select的配置信息。
(4) DHCP中繼接口配置的server-group中指定的DHCP服務器不存在
(5) DHCP中繼接口配置的server-group中指定的DHCP服務器不是與DHCP中繼相連的DHCP服務器
(6) DHCP服務器沒有配置地址池
通過display dhcp server tree all查看地址池配置:是否配置了與DHCP中繼接口IP地址在相同網段的地址池,或者包含了DHCP中繼接口IP地址的地址池。
(7) DHCP服務器地址池網段配置錯誤
如果DHCP客戶端請求DHCP服務器單播回應,則配置的地址池網段必須與DHCP中繼接口IP網段相同,否則回應報文會發送失敗。
(8) DHCP服務器租約達到規格
DHCP服務器分配的租約是有規格限製的(各款產品不同,請參考產品規格),如果達到規格,則DHCP服務器不再分配IP地址。可以通過display dhcp server ip-in-use all查看DHCP服務器已經分配的租約是否達到上限。
(9) DHCP服務器沒有可分配的地址
查看DHCP服務器是否有可分配的IP地址,依次查看如下表項:
l 通過display dhcp server free-ip查看是否存在可分配的地址(與接收報文接口IP在相同網段的IP地址);
l 通過display dhcp server expired all查看是否存在與接收報文接口在相同網段的IP地址;
l 通過display dhcp server conflict all查看是否存在與接收報文接口在相同網段的衝突IP地址,且衝突時間在1小時之前。
如果沒有符合以上條件的IP地址,DHCP服務器無法再分配租約。
(10) 通過display ip routing-table查看在DHCP服務器上是否存在到DHCP中繼接口IP地址的路由,如果沒有,DHCP服務器的回應報文無法發送給DHCP中繼。
(1) 重新連接網線;
(2) 在係統視圖下配置命令dhcp enable;
(3) 在DHCP中繼接口上通過命令dhcp relay server-select選擇接口的服務器組;
(4) 通過係統視圖下命令dhcp relay server-group server-group ip ip-address,配置ip-address為存在的DHCP服務器地址;
(5) 通過係統視圖下命令dhcp relay server-group server-group ip ip-address,配置ip-address為與DHCP中繼相連的服務器;
(6) 配置包含或與接收接口IP地址在相同網段的地址池;
(7) 配置與接口IP地址網段相同的地址池網段;
(8) 通過display dhcp server expired all查看是否存在過期租約,如果有,通過reset dhcp server ip-in-use命令刪除過期租約;
(9) 擴大配置的地址池網段;
(10) 配置路由協議或者DHCP服務器到DHCP中繼接口的靜態路由。
如圖1-4所示,DHCP客戶端無法通過DHCP獲取IP地址。
檢查如下配置是否正確:
(1) 參考“1.2.1 DHCP服務器與DHCP客戶端在相同物理網段,DHCP客戶端無法獲取地址”中問題定位的(1)~(6),檢查DHCP服務器配置。
(2) 檢查DHCP Snooping與DHCP服務器連接的端口是否配置了dhcp-snooping trust。如果沒有配置,DHCP Snooping會丟棄DHCP服務器的回應報文。
l 對於(1)中的情況,請參考“1.2.1 DHCP服務器與DHCP客戶端在相同物理網段,DHCP客戶端無法獲取地址”中的問題解決;
l 對於(2),請在DHCP Snooping與DHCP服務器連接的端口上配置dhcp-snooping trust命令。
DHCP服務器地址池中配置了某些選項(比如,配置option 123 ascii abcdef),但DHCP客戶端沒有獲取到。
DHCP服務器配置了Option 123,但如果DHCP客戶端發送的請求報文中的請求參數列表(Option 50)沒有包含Option 123,那麼DHCP服務器就不會將配置的Option填充到回應報文中。
進行如下配置:
#
dhcp server ip-pool 1
static-bind ip-address 1.1.1.1 mask 255.0.0.0
static-bind mac-address 0001-0001-0001
expired unlimited
#
dhcp server forbidden-ip 1.1.1.1
#
但IP地址1.1.1.1仍然可以分配出去。
靜態綁定的IP地址優先級高於禁止分配的IP地址,因此,靜態綁定的地址可以分配出去。刪除靜態綁定後,該地址被禁止動態分配。
DHCP服務器收到DHCPRELEASE報文後,不將釋放的IP地址放回到free-IP中。
DHCP服務器將釋放的地址放在了過期租約中。
根據RFC 2131建議的“盡量給同一個主機分配同一個IP地址”原則,DHCP服務器會盡量保存用戶的租約記錄,隻要用戶曾經申請使用過地址,DHCP服務器就會記錄。當用戶申請地址時,DHCP服務器會優先查找租約記錄進行分配,保證用戶在下次再申請的時候可以申請到相同的IP地址。
設置DHCP服務器的ping功能的timeout選項為小於100ms的值時,ICMP發包的間隔時間還是為100ms,達不到timeout選項所設定的值,設置不生效。
由於目前DHCP服務器使用的定時器的時間精度為100ms,因此配置的超時時間會根據定時器精度進行調整,向上調整為100ms的整數倍。
例如,配置的時間為50ms,則調整為100ms;配置的時間為230ms,則調整為300ms
當DHCP服務器的租約過期時,DHCP中繼上的安全表項仍然存在。
DHCP中繼的安全表項不會立刻刪除,老化刪除的時間跟配置的老化時間和表項的個數有關。假設現有N條有效安全表項,那麼第一條有效安全表項被老化的時間(秒)為:
(1) 缺省(auto狀態)情況下
l 如果60/N大於等於0.5,則被老化的時間為:60/N*N*2 + 60/N=120+60/N,即老化探測報文發送的時間間隔是60/N;
l 如果60/N小於0.5,則被老化的時間為:0.5 *N*2 +0.5 =N+0.5,即老化探測報文發送的時間間隔是0.5秒
(2) 非缺省情況下
假設配置的定時器時間超時間隔為T,現有N條有效安全表項,則第一條有效安全表項被老化的時間為T*N*2+T,即老化探測報文發送的時間間隔為T。
DHCP服務器配置了客戶端MAC和IP地址的靜態綁定,但客戶端獲取的IP地址不是靜態綁定的IP地址。
DHCP服務器的靜態綁定配置兩種方式:
l IP+MAC方式:適用於在發送請求報文時不攜帶ClientID選項(Option 61)的客戶端;
l IP+ClientID方式:適用於在發送請求報文時攜帶ClientID選項(Option 61)的客戶端。
通過命令display dhcp server ip-in-use ip ip-address查看租約,其中ip-address為客戶端獲取的IP地址。如果租約中的Client-identifier/Hardware address不是MAC,則說明該客戶端需要通過IP+ClientID方式配置靜態綁定;否則為設備故障,請聯係用服人員。
DHCP客戶端通DHCP Snooping設備成功獲取到IP地址,但是在DHCP Snooping設備上沒有相應的表項。
在某些設備上配置DHCP Snooping之後,是通過下發ACL將DHCP報文送給CPU處理的。如果係統的ACL資源不足而導致下發ACL失敗。雖然為DHCP Snooping的信任端口,但是DHCP報文實際上無法上送CPU,因而無法創建DHCP Snooping表項。
圖1-6 DHCP服務器故障診斷流程圖
(1) 檢查物理連接是否暢通
如圖1-2,DHCP服務器通過接口Ethernet1/0與DHCP客戶端相連。在客戶端為與服務器連接的網卡配置IP地址,該IP地址與服務器端接口Ethernet1/0的IP地址在同一網段,查看是否可以ping通Ethernet1/0的IP地址。如果可以ping通,則說明連接暢通,可以排除物理線路故障。
也可以在服務器端打開DHCP的調試開關,查看是否可以收到客戶端的DHCP-DISCOVER報文。
在係統視圖中使用display current-configuration命令查看是否使能DHCP。如果沒有使能,則配置dhcp enable使能DHCP服務。
(3) 檢查DHCP服務器地址池配置
執行命令display dhcp server tree all查看是否有配置全局地址池及地址池的網段。
查看配置的網段和接口Ethernet1/0的IP地址是否在同一個大網段。例如網段的配置是network 1.1.1.1 24,而Ethernet1/0的IP地址為2.2.2.2 ,顯然不在同一個網段,那麼圖1-2直連的組網環境中客戶端是無法正常獲取IP地址的。
如果上麵的檢查都沒有問題,請繼續下麵的步驟3。
執行命令display dhcp server free-ip檢查地址池內是否存在可用的IP地址。
如果沒有可用的IP地址,執行命令display dhcp server expired all查看是否有過期的IP地址,且IP地址與接口地址在同一網段。
如果不存在過期IP地址,執行命令display dhcp server conflict all,查看是否有衝突的IP地址,如果有的話,查看其衝突時間是否已經超過1小時,隻有衝突IP在發生衝突1小時以後才可以重新分配使用。
執行完上麵的步驟,如果發現地址池中的可用IP地址、過期IP地址和衝突的IP地址都不存在,就說明地址池中IP地址已經用盡。否則,請繼續步驟4.
(5) 檢查地址池的租約是否達到規格
執行命令display dhcp server ip-in-use all,查看租約是否已經達到規格,如果已經達到規格,DHCP服務器無法再分配租約。
圖1-7 DHCP中繼組網故障診斷流程圖
(1) 檢查物理連接是否通暢
如圖1-3所示,分別檢查DHCP服務器與DHCP中繼之間的物理鏈接和DHCP中繼與DHCP客戶端之間的物理鏈接是否通暢。
(2) 檢查DHCP中繼和DHCP服務器是否使能
在係統視圖中使用display current-configuration命令查看是否使能DHCP。
如果沒有使能,通過命令dhcp enable使能DHCP服務。
查看是否指定服務器地址,即檢查Ethernet1/1接口上是否配置dhcp select relay和dhcp relay server-select,通過命令display dhcp relay server-group查看server-group中是否包含了DHCP服務器的IP地址10.1.1.1。
(4) 檢查DHCP服務器的配置
執行display dhcp server tree all 查看是否有配置全局地址池及地址池分配的網段。
查看地址池分配的網段和接口Ethernet1/0的IP地址網段相同,或者包含了接口的IP地址網段(建議配置與接口網段相同的地址池可分配網段,確保當DHCP客戶端請求單播回應時DHCP中繼可以成功發送報文)。在這個例子中檢查是否配置為network 10.10.1.0 mask 255.255.255.0
執行命令display dhcp server free-ip檢查地址池內是否存在可用的IP地址。
如果不存在可用的IP地址,執行命令display dhcp server expired pool查看是否存在過期IP地址。
如果不存在過期IP地址,執行命令display dhcp server conflict all,查看是否有衝突的IP地址,如果有的話,查看其衝突時間是否已經超過1小時,隻有衝突IP在發生衝突1小時以後才可以重新分配使用。
執行完上麵的步驟,如果發現地址池中的可用IP地址、過期IP地址和衝突的IP地址都不存在,就說明地址池中IP地址已經用盡。否則請繼續步驟4.
(6) 檢查地址池的租約是否達到規格
執行命令display dhcp server ip-in-use all,查看租約是否已經達到規格,如果已經達到規格,DHCP服務器無法再分配租約。
(7) 檢查中繼和服務器間是否存在路由
從DHCP服務器上ping 10.10.1.1查看是否可以ping通。
如果不能ping通,DHCP服務器上執行命令display ip routing-table,查看是否有到對端的路由表項,如果沒有,在服務器上執行命令ip route-static 10.10.1.1 24 10.1.1.2。
如果還是不能ping通,請檢查物理線路是否正常。
圖1-8 DHCP Snooping組網故障診斷流程圖
(1) 檢查物理連接是否暢通
如圖1-4,DHCP服務器通過Ethernet1/0與DHCP客戶端相連。在客戶端為與服務器連接的網卡上配置IP地址,該IP地址與服務器端接口Ethernet1/0的IP地址在同一網段,查看是否可以ping通Ethernet1/0的IP地址。如果可以ping通,則說明連接暢通,可以排除物理線路故障。
也可以在服務器端打開DHCP的調試開關,查看是否可以收到客戶端的DHCP-DISCOVER報文。
(2) 檢查DHCP服務器是否使能
在係統視圖中使用display current-configuration命令查看是否使能DHCP。
如果沒有使能,通過命令dhcp enable使能DHCP服務。
(3) 檢查DHCP Snooping的配置
在係統視圖中使用display current-configuration命令查看是否使能了DHCP Snooping,接口Ethernet1/1是否配置了dhcp-snooping trust。
(4) 檢查DHCP服務器的配置
執行命令dhcp enable使能DHCP服務。
執行命令display dhcp server tree all,查看是否有配置全局地址池及地址池的網段。
查看配置的網段和接口Eth1/0的IP地址是否在同一個大網段。例如網段的配置是network 1.1.1.1 24,而Eth1/0的IP地址為2.2.2.2 ,顯然不在同一個網段,那麼圖1-4的組網環境中客戶端是無法正常獲取IP地址的。
如果上麵的檢查都沒有問題,請繼續下麵的步驟4。
(5) 檢查地址池內是否有可用IP
執行命令display dhcp server free-ip檢查地址池內是否存在可用的IP地址。
如果沒有可用的IP地址,執行命令display dhcp server expired all查看是否有過期的IP地址,且IP地址與接口在同一網段。
如果不存在過期IP地址,執行命令display dhcp server conflict all,查看是否有衝突的IP地址,如果有的話,查看其衝突時間是否已經超過1小時,隻有衝突IP在發生衝突1小時以後才可以重新分配使用。
執行完上麵的步驟,如果發現地址池中的可用IP地址、過期IP地址和衝突的IP都不存在,就說明地址池中IP地址已經用盡。否則請繼續步驟5.
(6) 檢查地址池的租約是否達到規格
執行命令display dhcp server ip-in-use all,查看租約是否已經達到規格,如果已經達到規格,DHCP服務器無法再分配租約。
圖1-9 案例組網圖
以PC做為DHCP客戶端,通過DHCP申請地址,經過1分鍾左右才能獲取地址。
l 檢查DHCP服務器配置
DHCP服務器上的配置如下,不存在問題。
#
dhcp server ip-pool 1
network 1.1.0.0 mask 255.255.0.0
#
……
#
interface Ethernet1/0
port link-mode route
ip address 1.1.1.1 255.255.255.0
#
……
#
dhcp enable
#
l 檢查DHCP服務器上接口Ethernet1/0的狀態
與DHCP客戶端相連的接口Ethernet1/0處於up狀態。
[server] display ip interface brief Ethernet 1/0
*down: administratively down
(s): spoofing
Interface Physical Protocol IP Address
Ethernet1/0 up up 1.1.1.1
l 檢查物理連接是否通暢
在PC上手工配置IP地址1.1.1.2,可以ping通DHCP服務器的IP地址1.1.1.2。
l 通過調試信息進行定位
在用戶視圖下打開DHCP服務器的調試信息開關debugging dhcp server all。
DHCP服務器上打印如下調試信息:
<server> debugging dhcp server all
*May 27 13:02:19:494 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:
DHCPServer: Receive DHCPDISCOVER from 00e0-e100-0201.
*May 27 13:02:19:494 2007 server DHCPS/7/DHCPS_DEBUG_PACKET:
Rx, interface Ethernet1/0
Message type: request
Hardware type: 1, Hardware address length: 6
Hops: 0, Transaction ID: 16777216
Seconds: 0, Broadcast flag: 0
Client IP address: 0.0.0.0 Your IP address: 0.0.0.0
Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0
Client hardware address: 00e0-e100-0201
Server host naame: Not Configured, Boot file name: Not Configured
DHCP message type: DHCP Discover
*May 27 13:02:19:494 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:
DHCPServer: Assign Free Lease from global pool.
……
*May 27 13:02:20:110 2007 server DHCPS/7/DHCPS_DEBUG_PACKET:
Tx, interface Ethernet1/0
Message type: reply
Hardware type: 1, Hardware address length: 6
Hops: 0, Transaction ID: 16777216
Seconds: 0, Broadcast flag: 0
Client IP address: 0.0.0.0 Your IP address: 1.1.0.2
Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0
Client hardware address: 00e0-e100-0201
Server host naame: Not Configured, Boot file name: Not Configured
DHCP message type: DHCP Offer
*May 27 13:02:20:110 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:
DhcpServer: Failed to send DHCPOFFER to MAC=> 00e0-e100-0201 .
*May 27 13:02:20:110 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:
DHCPServer: Sending DHCPOFFER failed!
……
*May 27 13:09:54:228 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:
DHCPServer: Receive DHCPDISCOVER from 00e0-e100-0201.
*May 27 13:09:54:228 2007 server DHCPS/7/DHCPS_DEBUG_PACKET:
Rx, interface Ethernet1/0
Message type: request
Hardware type: 1, Hardware address length: 6
Hops: 0, Transaction ID: 266602672
Seconds: 0, Broadcast flag: 1
Client IP address: 0.0.0.0 Your IP address: 0.0.0.0
Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0
Client hardware address: 00e0-e100-0201
Server host naame: Not Configured, Boot file name: Not Configured
DHCP message type: DHCP Discover
*May 27 13:09:54:228 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:
DHCPServer: Assign Free Lease from global pool.
……
*May 27 13:09:54:816 2007 server DHCPS/7/DHCPS_DEBUG_PACKET:
Tx, interface Ethernet1/0
Message type: reply
Hardware type: 1, Hardware address length: 6
Hops: 0, Transaction ID: 266602672
Seconds: 0, Broadcast flag: 1
Client IP address: 0.0.0.0 Your IP address: 1.1.0.2
Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0
Client hardware address: 00e0-e100-0201
Server host naame: Not Configured, Boot file name: Not Configured
DHCP message type: DHCP Offer
*May 27 13:09:54:816 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:
DhcpServer: Send DHCPOFFER to 00e0-e100-0201 Offer IP=> 1.1.0.2.
*May 27 13:09:54:848 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:
DHCPServer: Receive DHCPREQUEST from 00e0-e100-0201.
*May 27 13:09:54:848 2007 server DHCPS/7/DHCPS_DEBUG_PACKET:
Rx, interface Ethernet1/0
Message type: request
Hardware type: 1, Hardware address length: 6
Hops: 0, Transaction ID: 266602672
Seconds: 0, Broadcast flag: 1
Client IP address: 0.0.0.0 Your IP address: 0.0.0.0
Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0
Client hardware address: 0000-5e00-4701
Server host naame: Not Configured, Boot file name: Not Configured
DHCP message type: DHCP Request
*May 27 13:09:54:848 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:
DHCPServer: Acknowledge the DHCPREQUEST message!
*May 27 13:09:54:848 2007 server DHCPS/7/DHCPS_DEBUG_PACKET:
Tx, interface Ethernet1/0
Message type: reply
Hardware type: 1, Hardware address length: 6
Hops: 0, Transaction ID: 266602672
Seconds: 0, Broadcast flag: 0
Client IP address: 0.0.0.0 Your IP address: 1.1.0.2
Server IP address: 0.0.0.0 Relay agent IP address: 0.0.0.0
Client hardware address: 00e0-e100-0201
Server host naame: Not Configured, Boot file name: Not Configured
DHCP message type: DHCP Ack
*May 27 13:09:54:848 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:
DhcpServer: Send DHCPACK to 00e0-e100-0201 Offer IP=> 1.1.0.2.
*May 27 13:09:54:848 2007 server DHCPS/7/DHCPS_DEBUG_COMMON:
DHCPServer: Requesting security module(s) to add a security entry (1.1.0.4 00e0-e100-0201) succeeded.
從debug信息分析,PC發送了5個DHCP-DISCOVER報文後才申請到了地址。前4個,DHCP服務器都分配了租約,但在發送DHCP-OFFER報文的時候發送失敗了,直到PC發送了第5個DHCP-DISCOVER報文後,DHCP服務器才成功分配了租約。比較第5個DHCP-DISCOVER報文與前4個的不同,發現報文的Broadcast flag不一樣,前4個為0,即要求DHCP服務器單播發送回應報文,第5個為1,DHCP服務器廣播發送回應報文。
DHCP服務器在單播回應報文的時候發送失敗,原因是DHCP服務器Ethernet1/0接口配置的IP地址為1.1.1.1/24,沒有到1.1.0.0/16網段的路由,導致單播到1.1.0.2失敗。
將地址池的可分配網段修改為與接口一致,則可以解決上述問題:
#
dhcp server ip-pool 1
network 1.1.1.0 mask 255.255.255.0
#
Copyright ©2008 杭州華三通信技術有限公司 版權所有,保留一切權利。
非經本公司書麵許可,任何單位和個人不得擅自摘抄、複製本文檔內容的部分或全部,並不得以任何形式傳播。
本文檔中的信息可能變動,恕不另行通知。