03-DHCP配置
本章節下載: 03-DHCP配置 (1.09 MB)
2.3.7 配置DHCP客戶端使用的WINS服務器地址和NetBIOS節點類型
2.3.9 配置DHCP客戶端使用的TFTP服務器地址及啟動文件名或遠程啟動文件的HTTP形式URL
2.3.10 配置DHCP客戶端使用的下一個提供服務的服務器IP地址
2.3.11 配置DHCP客戶端使用的Option 184參數
2.9.3 配置DHCP服務器以RFC 1048規定的格式發送BOOTP應答報文
2.10 配置DHCP服務器發送DHCP報文的DSCP優先級
3.3.7 配置DHCP中繼發送DHCP報文的DSCP優先級
3.3.10 配置DHCP中繼在DHCP報文中填充的中繼地址
3.3.12 配置DHCP中繼支持smart-relay功能
3.3.14 指定DHCP中繼向DHCP服務器轉發報文的源地址
5.1.3 DHCP Snooping支持Option 82功能
5.3.2 在普通組網中配置DHCP Snooping基本功能
5.4 配置DHCP Snooping支持Option 82功能
5.8 配置接口動態學習DHCP Snooping表項的最大數目
5.13.2 按VLAN開啟DHCP Snooping配置舉例
5.13.3 DHCP Snooping支持Option 82配置舉例
DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)用來為網絡設備動態地分配IP地址等網絡配置參數。
DHCP采用客戶端/服務器通信模式,由客戶端向服務器提出請求分配網絡配置參數的申請,服務器返回為客戶端分配的IP地址等配置信息,以實現IP地址等信息的動態配置。
在DHCP的典型應用中,一般包含一台DHCP服務器和多台客戶端(如PC和便攜機),如圖1-1所示。
DHCP客戶端和DHCP服務器處於不同物理網段時,客戶端可以通過DHCP中繼與服務器通信,獲取IP地址及其他配置信息。DHCP中繼的詳細介紹,請參見“3.1 DHCP中繼簡介”。
圖1-1 DHCP典型應用
針對客戶端的不同需求,DHCP提供三種IP地址分配策略:
· 手工分配地址:由管理員為少數特定客戶端(如WWW服務器等)靜態綁定固定的IP地址。通過DHCP將配置的固定IP地址分配給客戶端。
· 自動分配地址:DHCP為客戶端分配租期為無限長的IP地址。
· 動態分配地址:DHCP為客戶端分配具有一定有效期限的IP地址,到達使用期限後,客戶端需要重新申請地址。絕大多數客戶端得到的都是這種動態分配的地址。
圖1-2 IP地址動態獲取過程
如圖1-2所示,DHCP客戶端從DHCP服務器獲取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-ACK確認報文後,會以廣播的方式發送免費ARP報文,探測是否有主機使用服務器分配的IP地址,如果在規定的時間內未收到回應,並且客戶端上不存在與該地址同網段的其他地址時,客戶端才使用此地址。否則,客戶端會發送DHCP-DECLINE報文給DHCP服務器,並重新申請IP地址。
如果網絡中存在多個DHCP服務器,除DHCP客戶端選中的服務器外,其它DHCP服務器中本次未分配出的IP地址仍可分配給其他客戶端。
DHCP服務器分配給客戶端的IP地址具有一定的租借期限(除自動分配的IP地址),該租借期限稱為租約。當租借期滿後服務器會收回該IP地址。如果DHCP客戶端希望繼續使用該地址,則DHCP客戶端需要申請延長IP地址租約。
在DHCP客戶端的IP地址租約期限達到一半左右時間時,DHCP客戶端會向為它分配IP地址的DHCP服務器單播發送DHCP-REQUEST報文,以進行IP租約的更新。如果客戶端可以繼續使用此IP地址,則DHCP服務器回應DHCP-ACK報文,通知DHCP客戶端已經獲得新IP租約;如果此IP地址不可以再分配給該客戶端,則DHCP服務器回應DHCP-NAK報文,通知DHCP客戶端不能獲得新的租約。
如果在租約的一半左右時間進行的續約操作失敗,DHCP客戶端會在租約期限達到7/8時,廣播發送DHCP-REQUEST報文進行續約。DHCP服務器的處理方式同上,不再贅述。
DHCP有8種類型的報文,每種報文的格式都相同,隻是某些字段的取值不同。DHCP的報文格式如圖1-3所示,括號中的數字表示該字段所占的字節。
圖1-3 DHCP報文格式
各字段的解釋如下:
· op:報文的操作類型,分為請求報文和響應報文,1為請求報文;2為響應報文。具體的報文類型在options字段中標識。
· htype、hlen:DHCP客戶端的硬件地址類型及長度。
· hops:DHCP報文經過的DHCP中繼的數目。DHCP請求報文每經過一個DHCP中繼,該字段就會增加1。
· xid:客戶端發起一次請求時選擇的隨機數,用來標識一次地址請求過程。
· secs:DHCP客戶端開始DHCP請求後所經過的時間。目前沒有使用,固定為0。
· flags:第一個比特為廣播響應標識位,用來標識DHCP服務器響應報文是采用單播還是廣播方式發送,0表示采用單播方式,1表示采用廣播方式。其餘比特保留不用。
· ciaddr:DHCP客戶端的IP地址。如果客戶端有合法和可用的IP地址,則將其添加到此字段,否則字段設置為0。此字段不用於客戶端申請某個特定的IP地址。
· yiaddr:DHCP服務器分配給客戶端的IP地址。
· siaddr:DHCP客戶端獲取啟動配置信息的服務器IP地址。
· giaddr:DHCP客戶端發出請求報文後經過的第一個DHCP中繼的IP地址。
· chaddr:DHCP客戶端的硬件地址。
· sname:DHCP客戶端獲取啟動配置信息的服務器名稱。
· file:DHCP服務器為DHCP客戶端指定的啟動配置文件名稱及路徑信息。
· options:可選變長選項字段,包含報文的類型、有效租期、DNS服務器的IP地址、WINS服務器的IP地址等配置信息。
為了與BOOTP(Bootstrap Protocol,自舉協議)兼容,DHCP保留了BOOTP的消息格式。DHCP和BOOTP消息的不同主要體現在選項(Options)字段。DHCP在BOOTP基礎上增加的功能,通過Options字段來實現。
DHCP利用Options字段傳遞控製信息和網絡配置參數,實現地址動態分配的同時,為客戶端提供更加豐富的網絡配置信息。
DHCP選項的格式如圖1-4所示。
圖1-4 DHCP選項格式
常見的DHCP選項有:
· Option 3:路由器選項,用來指定為客戶端分配的網關地址。
· Option 6:DNS服務器選項,用來指定為客戶端分配的DNS服務器地址。
· Option 33:靜態路由選項。該選項中包含一組有分類靜態路由(即目的網絡地址的掩碼固定為自然掩碼,不能劃分子網),客戶端收到該選項後,將在路由表中添加這些靜態路由。如果Option 33和Option 121同時存在,則忽略Option 33。
· Option 51:IP地址租約選項。
· Option 53:DHCP消息類型選項,標識DHCP消息的類型。
· Option 55:請求參數列表選項。客戶端利用該選項指明需要從服務器獲取哪些網絡配置參數。該選項內容為客戶端請求的參數對應的選項值。
· Option 60:廠商標識選項。客戶端利用該選項標識自己所屬的廠商;DHCP服務器可以根據該選項區分客戶端所屬的廠商,並為其分配特定範圍的IP地址。
· Option 66:TFTP服務器名選項,用來指定為客戶端分配的TFTP服務器的域名。
· Option 67:啟動文件名選項,用來指定為客戶端分配的啟動文件名。
· Option 121:無分類路由選項。該選項中包含一組無分類靜態路由(即目的網絡地址的掩碼為任意值,可以通過掩碼來劃分子網),客戶端收到該選項後,將在路由表中添加這些靜態路由。如果Option 33和Option 121同時存在,則忽略Option 33。
· Option 150:TFTP服務器地址選項,用來指定為客戶端分配的TFTP服務器的地址。
更多DHCP選項的介紹,請參見RFC 2132和RFC 3442。
有些選項的內容,RFC 2132中沒有統一規定,例如Option 43、Option 82和Option 184。下麵將介紹設備上定義的幾種選項格式。
Option 43稱為廠商特定信息選項。DHCP服務器和DHCP客戶端通過Option 43交換廠商特定的信息。
設備作為DHCP客戶端時,可以通過Option 43獲取:
· ACS(Auto-Configuration Server,自動配置服務器)的參數,包括URL地址、用戶名和密碼。
· 服務提供商標識,CPE(Customer Premises Equipment,用戶側設備)從DHCP服務器獲取該信息後,將該信息通告給ACS,以便ACS選擇服務提供商特有的配置和參數等。CPE和ACS的詳細介紹,請參見“網絡管理和監控配置指導”中的“CWMP”。
· PXE(Preboot eXecution Environment,預啟動執行環境)引導服務器地址,以便客戶端從PXE引導服務器獲取啟動文件或其他控製信息。
(1) Option 43格式
為了提供可擴展性,通過Option 43為客戶端分配更多的信息,Option 43采用子選項的形式,通過不同的子選項為用戶分配不同的網絡配置參數。如圖1-5所示。子選項中各字段的含義為:
· Sub-option type:子選項類型。目前,子選項類型值可以為0x01表示ACS參數子選項,0x02表示服務提供商標識子選項,0x80表示PXE引導服務器地址子選項。
· Sub-option length:子選項的長度,不包括子選項類型和子選項長度字段。
· Sub-option value:子選項的取值。不同類型的子選項,取值格式有所不同,詳細介紹請參見下文。
(2) Option 43子選項取值字段的格式
· ACS參數子選項的取值字段格式如圖1-6所示。ACS的URL地址、用戶名和密碼長度可變,每個參數之間用空格(十六進製數為20)隔開。
圖1-6 ACS參數子選項取值字段的格式
· 服務提供商標識子選項的取值字段內容為服務提供商的標識。
· PXE引導服務器地址子選項的取值字段格式如圖1-7所示。其中,PXE服務器類型目前取值隻能為0;Server number為子選項中包含的PXE服務器地址的數目;Server IP addresses為PXE服務器的IP地址。
圖1-7 PXE引導服務器地址子選項取值字段的格式
Option 82稱為中繼代理信息選項,該選項記錄了DHCP客戶端的位置信息。DHCP中繼或DHCP Snooping設備接收到DHCP客戶端發送給DHCP服務器的請求報文後,在該報文中添加Option 82,並轉發給DHCP服務器。
管理員可以從Option 82中獲得DHCP客戶端的位置信息,以便定位DHCP客戶端,實現對客戶端的安全和計費等控製。支持Option 82的服務器還可以根據該選項的信息製定IP地址和其他參數的分配策略,提供更加靈活的地址分配方案。
Option 82最多可以包含255個子選項。若定義了Option 82,則至少要定義一個子選項。目前設備支持多個子選項:sub-option 1(Circuit ID,電路ID子選項)、sub-option 2(Remote ID,遠程ID子選項)和sub-option5(Link Selection,鏈路選擇子選項)等。
由於Option 82的內容沒有統一規定,不同廠商通常根據需要進行填充。
設備上,Circuit ID的填充模式有以下幾種:
· 采用string模式填充:sub-option 1的內容是用戶配置的字符串。
· 采用normal模式填充:sub-option 1的內容是接收到DHCP客戶端請求報文的接口所屬的VLAN ID以及接口編號。
· 采用verbose模式填充:sub-option 1的內容包括用戶配置的接入節點標識,接收到DHCP客戶端請求報文的接口類型、接口編號和接口所屬的VLAN ID。
Remote ID的填充模式有以下幾種:
· 采用string模式填充:sub-option 2的內容是用戶配置的字符串。
· 采用normal模式填充:sub-option 2的內容是接收到DHCP客戶端請求報文的接口MAC地址(DHCP中繼)或設備的橋MAC地址(DHCP Snooping)。
· 采用sysname模式填充:sub-option 2的內容是設備的係統名稱。設備的係統名稱可以通過係統視圖下的sysname命令配置。
Link Selection的填充內容是giaddr字段或開啟DHCP中繼功能接口的地址。在中繼上配置dhcp relay information enable命令開啟支持Option 82功能,並配置dhcp relay source-address { ip-address | interface interface-type interface-number }指定DHCP中繼向DHCP服務器轉發報文的源地址時,DHCP中繼轉發的DHCP報文中的Option 82選項中會攜帶此子選項。
Option 184是RFC中規定的保留選項,用戶可以自定義該選項中攜帶的信息。設備上,Option 184攜帶了語音呼叫所需的信息。通過Option 184,可以實現在為具有語音功能的DHCP客戶端提供語音呼叫相關信息。
目前Option 184支持四個子選項,承載的內容如下:
· sub-option 1:網絡呼叫處理器的IP地址,用來標識作為網絡呼叫控製源及應用程序下載的服務器。隻有定義了sub-option 1(網絡呼叫處理器的IP地址子選項),其他子選項才能生效。
· sub-option 2:備用服務器的IP地址,當sub-option 1中攜帶的網絡呼叫處理器不可達或不合法時,DHCP客戶端使用該選項指定的備用服務器作為網絡呼叫處理器。
· sub-option 3:語音VLAN信息,指定語音VLAN的ID及DHCP客戶端是否會將所指定的VLAN作為語音VLAN。
· sub-option 4:自動故障轉移呼叫路由,指定故障轉移呼叫路由的IP地址及其關聯的撥號串,即SIP(Session Initiation Protocol,會話初始協議)用戶之間互相通信時對端的IP地址和呼叫號碼。當網絡呼叫處理器和備用服務器均不可達時,SIP用戶可以使用對端IP地址及呼叫號碼直接與對端SIP用戶建立連接並通信。
與DHCP相關的協議規範有:
· RFC 2131:Dynamic Host Configuration Protocol
· RFC 2132:DHCP Options and BOOTP Vendor Extensions
· RFC 1542:Clarifications and Extensions for the Bootstrap Protocol
· RFC 3046:DHCP Relay Agent Information Option
· RFC 3442:The Classless Static Route Option for Dynamic Host Configuration Protocol (DHCP) version 4
在以下場合通常利用DHCP服務器來完成IP地址分配:
· 網絡規模較大,手工配置需要很大的工作量,並難以對整個網絡進行集中管理。
· 網絡中主機數目大於該網絡支持的IP地址數量,無法給每個主機分配一個固定的IP地址。例如,Internet接入服務提供商限製同時接入網絡的用戶數目,用戶必須動態獲得自己的IP地址。
· 網絡中隻有少數主機需要固定的IP地址,大多數主機沒有固定的IP地址需求。
設備作為MCE(Multi-VPN-instance Customer Edge,多VPN實例用戶網絡邊界設備)時,在設備上配置DHCP服務器功能,不僅可以為公網上的DHCP客戶端分配IP地址,還可以實現為私網內的DHCP客戶端分配IP地址,但是公網和私網之間、不同私網之間的IP地址空間不能重疊。MCE的詳細介紹,請參見“MPLS配置指導”中的“MCE”。
每個DHCP地址池都擁有一組可供分配的地址和網絡配置參數。DHCP服務器從地址池中為客戶端選擇並分配IP地址及其他參數。
地址池的地址管理方式有以下幾種:靜態綁定IP地址,即通過將客戶端的MAC地址或客戶端ID與IP地址綁定的方式,實現為特定的客戶端分配特定的IP地址;動態選擇IP地址,即在地址池中指定可供分配的IP地址範圍,當收到客戶端的IP地址申請時,從該地址範圍中動態選擇IP地址,分配給該客戶端。
在地址池中指定可供分配的IP地址範圍,有以下幾種方法:
(1) 為地址池指定一個主網段,並將該網段劃分為多個地址範圍。
多個地址範圍是指一個地址池動態分配的IP地址範圍(公共地址範圍)和多個為DHCP用戶類分配的IP地址範圍。
DHCP服務器通過定義DHCP用戶類,實現為滿足特定條件的客戶端分配特定地址範圍的IP地址。DHCP服務器根據客戶端發送的請求報文,判斷DHCP客戶端所屬的用戶類。每個用戶類可以配置多個匹配條件,隻要客戶端發送的DHCP請求報文滿足任意一個匹配條件,就認為該客戶端屬於該用戶類。在地址池下,可以為不同的用戶類指定不同的地址範圍。如果DHCP客戶端屬於某個用戶類,則從該用戶類的地址範圍內選擇地址分配給該客戶端。
采用這種地址管理方式時,地址選擇過程為:
· 按照地址池下用戶類地址範圍的配置順序,將DHCP客戶端和用戶類進行匹配。
· 如果DHCP客戶端屬於某個用戶類,則從該用戶類的地址範圍中選擇地址分配給客戶端。
· 如果該用戶類中沒有可供分配的地址,則繼續匹配下一個用戶類。如果所有匹配上的用戶類地址範圍都沒有可供分配的地址,則從公共地址範圍中選擇地址分配給客戶端。
· 如果DHCP客戶端不屬於任何一個DHCP用戶類,則會從地址池動態分配的IP地址範圍(通過address range命令配置)中選擇地址分配給DHCP客戶端。
· 如果動態分配的IP地址範圍內也沒有空閑地址,或者未配置動態分配的IP地址範圍,則地址分配失敗,即DHCP服務器無法為DHCP客戶端分配地址。
每個地址範圍內的地址都必須屬於指定的主網段,否則無法分配該範圍內的地址。
(2) 為地址池指定一個主網段,並指定多個從網段。
采用此種地址分配方式時,地址選擇的過程是:首先從地址池主網段中查找可供分配的IP地址。如果主網段中沒有可供分配的IP地址,則按照該地址池下從網段的配置順序,依次查找可供分配的IP地址。
DHCP服務器為客戶端分配IP地址時,地址池的選擇原則如下:
(1) 如果存在將客戶端MAC地址或客戶端ID與IP地址靜態綁定的地址池,則選擇該地址池,並將靜態綁定的IP地址和其他網絡參數分配給客戶端。
(2) 如果接收到DHCP請求報文的接口引用了某個地址池,則選擇該地址池,從該地址池中選取IP地址和其他網絡參數分配給客戶端。
(3) 如果不存在靜態綁定的地址池,且接收到DHCP請求報文的接口未引用地址池,則按照以下方法選擇地址池:
· 如果客戶端與服務器在同一網段,則將DHCP請求報文接收接口的IP地址與所有地址池配置的主網段進行匹配,並選擇最長匹配的主網段所對應的地址池。如果未匹配到主網段,則將DHCP請求報文接收接口的IP地址與所有地址池配置的從網段進行匹配,並選擇最長匹配的網段所對應的地址池。
· 如果客戶端與服務器不在同一網段,即客戶端通過DHCP中繼獲取IP地址,則將DHCP請求報文中giaddr字段指定的IP地址與所有地址池配置的主網段進行匹配,並選擇最長匹配的網段所對應的地址池。如果未匹配到主網段,則將DHCP請求報文中giaddr字段指定的IP地址與所有地址池配置的從網段進行匹配,並選擇最長匹配的網段所對應的地址池。
例如,DHCP服務器上配置了兩個地址池,動態分配的網段分別是1.1.1.0/24和1.1.1.0/25,如果接收DHCP請求報文的接口IP地址為1.1.1.1/25,且未引用地址池,服務器將從1.1.1.0/25地址池中選擇IP地址分配給客戶端,1.1.1.0/25地址池中如果沒有可供分配的IP地址,則服務器無法為客戶端分配地址;如果接收DHCP請求報文的接口IP地址為1.1.1.130/25,服務器將從1.1.1.0/24地址池中選擇IP地址分配給客戶端。
· 配置地址池動態分配的網段和IP地址範圍時,請盡量保證其與DHCP服務器接口或DHCP中繼接口地址的網段一致,以免分配錯誤的IP地址。
· 建議合理規劃DHCP服務器上各地址池中主網段的配置,盡量避免客戶端匹配不到主網段、直接匹配從網段的情況發生。
DHCP服務器為客戶端分配IP地址的優先次序如下:
(1) 與客戶端MAC地址或客戶端ID靜態綁定的IP地址。
(2) DHCP服務器記錄的曾經分配給客戶端的IP地址。
(3) 客戶端發送的DHCP-DISCOVER報文中Option 50字段指定的IP地址。Option 50為客戶端請求的IP地址選項(Requested IP Address),客戶端通過在DHCP-DISCOVER報文中添加該選項來指明客戶端希望獲取的IP地址。該選項的內容由客戶端決定。
(4) 按照“2.1.2 DHCP地址池”中所述的動態分配地址選擇原則,順序查找可供分配的IP地址,選擇最先找到的IP地址。
(5) 如果未找到可用的IP地址,則從當前匹配地址池中依次查詢租約過期、曾經發生過衝突的IP地址,如果找到則進行分配,否則將不予處理。
· 如果客戶端所在的網段發生變化,服務器不會為客戶端分配曾經分配給它的IP地址,而是從匹配新網段的地址池中重新選擇IP地址。
· 使用曾經發生過衝突的IP地址時,隻有衝突狀態超過一小時的IP地址才能夠被服務器分配給新的DHCP客戶端。
表2-1 DHCP服務器配置任務簡介
操作 |
說明 |
詳細配置 |
配置DHCP服務器的地址池 |
必選 |
|
開啟DHCP服務 |
必選 |
|
配置接口工作在DHCP服務器模式 |
必選 |
|
配置接口引用地址池 |
可選 |
|
開啟IP地址衝突檢測功能 |
可選 |
|
配置Option 82的處理方式 |
可選 |
|
配置DHCP服務器協議兼容性 |
可選 |
|
配置DHCP服務器發送DHCP報文的DSCP優先級 |
可選 |
|
配置DHCP服務器租約固化功能 |
可選 |
|
配置DHCP地址池報警功能 |
可選 |
|
配置DHCP服務器上的地址池所在的VPN信息 |
可選 |
|
開啟DHCP服務器的用戶下線探測功能 |
可選 |
|
開啟DHCP服務器的日誌信息功能 |
可選 |
表2-2 DHCP服務器地址池配置任務簡介
操作 |
說明 |
詳細配置 |
創建DHCP地址池 |
必選 |
|
配置為客戶端分配的IP地址 |
至少選其一 |
|
配置DHCP客戶端使用的網關地址 |
||
配置DHCP客戶端使用的域名後綴 |
||
配置DHCP客戶端使用的DNS服務器地址 |
||
配置DHCP客戶端使用的WINS服務器地址和NetBIOS節點類型 |
||
配置DHCP客戶端使用的BIMS服務器信息 |
||
配置DHCP客戶端使用的TFTP服務器地址及啟動文件名 |
||
配置DHCP客戶端使用的下一個提供服務的服務器IP地址 |
||
配置DHCP客戶端使用的Option 184參數 |
||
自定義DHCP選項 |
||
開啟DHCP白名單功能 |
表2-3 創建DHCP地址池
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
對一個DHCP地址池可以同時配置靜態地址管理方式和動態地址管理方式。動態地址管理方式分為一個主網段多個地址範圍和一個主網段多個從網段兩種,用戶可以根據實際需要,選擇不同的動態地址管理方式。同一個地址池中不能同時配置兩種動態地址管理方式。
在某些組網應用中,需要將一個網段下的不同客戶端,按照一定的規則劃分到不同的地址範圍中。此時,可以按照客戶端劃分規則創建對應的DHCP用戶類,並在地址池內為不同的用戶類配置不同的地址範圍,從而實現為特定的客戶端分配特定範圍的地址。在這種情況下,還可以配置一個公共地址範圍,為不匹配任何用戶類的客戶端分配給該範圍的地址。如果不配置公共地址範圍,則不匹配任何用戶類的客戶端將無法獲取到IP地址。
如果不需要對客戶端進行分類,而僅需要限製網段內可分配的動態地址範圍,則可以隻配置公共地址範圍,而不配置用戶類的地址範圍。
表2-4 配置一個主網段多個地址段的動態地址管理方式
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
創建DHCP用戶類,並進入DHCP用戶類視圖 |
dhcp class class-name |
缺省情況下,不存在DHCP用戶類 在地址池下,需要為DHCP用戶類指定地址範圍時,為必選 |
配置DHCP用戶類的匹配規則 |
if-match rule rule-number { hardware-address hardware-address mask hardware-address-mask | option option-code [ ascii ascii-string [ offset offset | partial ] | hex hex-string [ mask mask | offset offset length length | partial ] ] | relay-agent gateway-address } |
缺省情況下,未配置DHCP用戶類的匹配規則 在地址池下,需要為DHCP用戶類指定地址範圍時,為必選 |
退回係統視圖 |
quit |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置DHCP地址池動態分配的主網段 |
network network-address [ mask-length | mask mask ] |
缺省情況下,未配置主網段 |
(可選)配置地址池動態分配的IP地址範圍,即公共地址範圍 |
address range start-ip-address end-ip-address |
缺省情況下,未配置動態分配的IP地址範圍 |
(可選)配置DHCP地址池為指定DHCP用戶類動態分配的IP地址範圍 |
class class-name range start-ip-address end-ip-address |
缺省情況下,未配置為指定DHCP用戶類動態分配的IP地址範圍 class命令中指定的DHCP用戶類,必須通過dhcp class命令創建。否則,無法為該用戶類分配指定範圍的地址 |
(可選)配置動態分配的IP地址的租約有效期限 |
expired { day day [ hour hour [ minute minute [ second second ] ] ] | unlimited } |
缺省情況下,IP地址租約有效期限為1天 |
(可選)配置DHCP地址池中不參與自動分配的IP地址 |
forbidden-ip ip-address&<1-8> |
缺省情況下,DHCP地址池中的所有IP地址都參與自動分配 |
退回係統視圖 |
quit |
- |
(可選)配置全局不參與自動分配的IP地址 |
dhcp server forbidden-ip start-ip-address [ end-ip-address ] [ vpn-instance vpn-instance-name ] |
缺省情況下,除DHCP服務器接口的IP地址外,DHCP地址池中的所有IP地址都參與自動分配 多次執行dhcp server forbidden-ip命令,可以配置多個不參與自動分配的IP地址段 |
· 在同一個DHCP地址池中,如果多次執行network或address range命令,新的配置會覆蓋已有配置;如果多次執行class命令,則可以為多個用戶類指定不同的地址範圍;多次執行forbidden-ip命令,可以配置多個不參與自動分配的IP地址。
· 在DHCP地址池視圖下通過forbidden-ip命令配置不參與自動分配的IP地址後,隻有當前的地址池不能分配這些IP地址,其他地址池仍然可以分配這些IP地址;通過dhcp server forbidden-ip命令指定不參與自動分配的IP地址後,所有地址池都不能分配這些IP地址。
· 當用戶配置class range命令修改已存在的為DHCP用戶類動態分配的IP地址範圍,且新的IP地址範圍包括之前IP地址範圍中已分配的地址租約時,如果DHCP服務器收到該地址租約的續約需求,DHCP服務器會給該DHCP客戶端分配新的IP地址租約,已分配的地址租約會繼續老化等待超期釋放。如果需要分配的地址租約立即釋放,則需配置reset dhcp server ip-in-use命令進行清除地址租約操作。
創建DHCP策略,並在接口引用該策略後,該接口接收到DHCP請求報文時,則根據配置順序逐個匹配DHCP策略中通過class ip-pool命令指定的DHCP用戶類。匹配情況如下:
· 若匹配DHCP用戶類成功,當該DHCP用戶類關聯的DHCP地址池中存在可供分配的地址信息時,則從該DHCP地址池中分配IP地址和其他參數;當該DHCP用戶類關聯的DHCP地址池中不存在可供分配的地址信息時,IP地址和其他參數分配失敗。
· 若匹配DHCP策略中的所有DHCP用戶類失敗,當配置了默認DHCP地址池時,則從該地址池中分配IP地址和其他參數;當未配置默認DHCP地址池或默認DHCP地址池中不存在可供分配的地址信息時,IP地址和其他參數分配失敗。
· 若接收DHCP請求報文的接口引用的DHCP策略不存在或匹配的DHCP用戶類關聯的DHCP地址池不存在時,IP地址和其他參數分配失敗。
表2-5 配置DHCP策略動態分配地址和其他參數
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP用戶類,並進入DHCP用戶類視圖 |
dhcp class class-name |
缺省情況下,不存在DHCP用戶類 |
配置DHCP用戶類的匹配規則 |
if-match rule rule-number { hardware-address hardware-address mask hardware-address-mask | option option-code [ ascii ascii-string [ offset offset | partial ] | hex hex-string [ mask mask | offset offset length length | partial ] ] | relay-agent gateway-address } |
缺省情況下,未配置DHCP用戶類的匹配規則 |
退回係統視圖 |
quit |
- |
創建DHCP策略,並進入DHCP策略視圖 |
dhcp policy policy-name |
缺省情況下,不存在DHCP策略 DHCP策略需要在接口上引用才生效 |
指定DHCP用戶類關聯的DHCP地址池 |
class class-name ip-pool pool-name |
缺省情況下,未指定DHCP用戶類關聯的DHCP地址池 |
指定默認DHCP地址池 |
default ip-pool pool-name |
缺省情況下,未指定默認DHCP地址池 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
指定接口引用的DHCP策略 |
dhcp apply-policy policy-name |
缺省情況下,接口未引用DHCP策略 |
在配置了一個主網段和多個從網段的地址池中,從網段的作用是對主網段地址空間的補充。當主網段中沒有空閑地址分配給客戶端時,服務器會從該地址池中的從網段獲取地址分配給客戶端。
表2-6 配置一個主網段多個從網段的地址管理方式
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置DHCP地址池動態分配的主網段 |
network network-address [ mask-length | mask mask ] |
缺省情況下,未配置主網段 每個DHCP地址池中隻能配置一個主網段,如果多次執行network命令配置主網段,則新的配置會覆蓋已有配置 |
(可選)配置DHCP地址池動態分配的從網段 |
network network-address [ mask-length | mask mask ] secondary |
缺省情況下,未配置從網段 |
(可選)退回地址池視圖 |
quit |
- |
(可選)配置動態分配的IP地址的租約有效期限 |
expired { day day [ hour hour [ minute minute [ second second ] ] ] | unlimited } |
缺省情況下,IP地址租約有效期限為1天 |
(可選)配置DHCP地址池中不參與自動分配的IP地址 |
forbidden-ip ip-address&<1-8> |
缺省情況下,DHCP地址池中的所有IP地址都參與自動分配 多次執行forbidden-ip命令,可以配置多個不參與自動分配的IP地址段 |
退回係統視圖 |
quit |
- |
(可選)配置全局不參與自動分配的IP地址 |
dhcp server forbidden-ip start-ip-address [ end-ip-address ] [ vpn-instance vpn-instance-name ] |
缺省情況下,除DHCP服務器接口的IP地址外,DHCP地址池中的所有IP地址都參與自動分配 多次執行dhcp server forbidden-ip命令,可以配置多個不參與自動分配的IP地址段 |
· 每個DHCP地址池中,最多可以配置32個從網段。
· 在DHCP地址池視圖下通過forbidden-ip命令配置不參與自動分配的IP地址後,隻有當前的地址池不能分配這些IP地址,其他地址池仍然可以分配這些IP地址;通過dhcp server forbidden-ip命令指定不參與自動分配的IP地址後,所有地址池都不能分配這些IP地址。
某些客戶端(如Web服務器等)需要固定的IP地址,通過以下幾種方式可以實現為特定的客戶端分配特定的IP地址:
· 將客戶端的硬件地址與IP地址綁定:當具有此MAC地址的客戶端申請IP地址時,DHCP服務器將根據客戶端的MAC地址查找到對應的IP地址,並分配給客戶端。
· 將客戶端ID與IP地址綁定:某些客戶端在向DHCP服務器發送DHCP-DISCOVER報文申請IP地址時,會構建客戶端ID並添加到報文中一起發送。如果在DHCP服務器上將客戶端ID與IP地址綁定,則當該客戶端申請IP地址時,DHCP服務器將根據客戶端ID查找到對應的IP地址並分配給客戶端。
靜態綁定的IP地址不能是DHCP服務器的接口IP地址,否則會導致IP地址衝突,被綁定的客戶端將無法正常獲取到IP地址。
如果作為DHCP客戶端的設備,接口的MAC地址相同,則為了區分不同接口,采用靜態綁定方式進行地址分配時,需要在服務器上配置靜態綁定的客戶端ID,而不能配置靜態綁定的客戶端MAC地址,否則可能導致客戶端無法成功獲取IP地址。
表2-7 配置靜態地址綁定
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置靜態地址綁定 |
static-bind ip-address ip-address [ mask-length | mask mask ] { client-identifier client-identifier | hardware-address hardware-address [ ethernet | token-ring ] } |
缺省情況下,未配置靜態地址綁定 多次執行static-bind ip-address命令,可以配置多個靜態地址綁定 同一地址隻能綁定給一個客戶端。不允許通過重複執行static-bind ip-address命令的方式修改IP地址與客戶端的綁定關係。隻有刪除了某個地址的綁定關係,才能將該地址與其他客戶端綁定 |
(可選)配置靜態綁定IP地址的租約有效期限 |
expired { day day [ hour hour [ minute minute [ second second ] ] ] | unlimited } |
缺省情況下,IP地址租約有效期限為1天 |
DHCP客戶端訪問本網段以外的服務器或主機時,數據必須通過網關進行轉發。DHCP服務器可以為客戶端指定網關的地址。
在DHCP服務器上,可以為每個地址池分別指定客戶端對應的網關地址。目前,每個DHCP地址池視圖下、每個從網段視圖下最多可以配置64個網關地址。
表2-8 配置DHCP客戶端使用的網關地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置為DHCP客戶端分配的網關地址 |
gateway-list ip-address&<1-64> |
缺省情況下,未配置為DHCP客戶端分配的網關地址 |
(可選)進入從網段視圖 |
network network-address [ mask-length | mask mask ] secondary |
- |
(可選)配置為DHCP客戶端分配的網關地址 |
gateway-list ip-address&<1-64> |
缺省情況下,未配置為DHCP客戶端分配的網關地址 |
DHCP地址池視圖下執行gateway-list命令,配置的是為地址池中所有DHCP客戶端分配的網關地址。如果用戶需要為地址池下某個從網段的DHCP客戶端分配其它的網關地址,可以在地址池的從網段視圖下執行gateway-list命令。如果在地址池視圖和從網段視圖下都配置了網關地址,則優先將從網段視圖下配置的網關地址分配給從網段的DHCP客戶端。
在DHCP服務器上,可以為每個地址池指定客戶端使用的域名後綴。
在客戶端進行域名解析時,用戶隻需要輸入域名的部分字段,客戶端會自動將輸入的域名加上從DHCP服務器獲得的域名後綴進行解析。有關域名後綴的詳細介紹,請參見“三層技術-IP業務配置指導”中的“域名解析”。
表2-9 配置DHCP客戶端使用的域名後綴
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置為DHCP客戶端分配的域名後綴 |
domain-name domain-name |
缺省情況下,未配置為DHCP客戶端分配的域名後綴 |
為了使DHCP客戶端能夠通過域名訪問Internet上的主機,DHCP服務器應在為客戶端指定DNS(Domain Name System,域名係統)服務器地址。目前,每個DHCP地址池視圖下最多可以配置8個DNS服務器地址。
表2-10 配置DHCP客戶端使用的DNS服務器地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置為DHCP客戶端分配的DNS服務器地址 |
dns-list ip-address&<1-8> |
缺省情況下,未配置為DHCP客戶端分配的DNS服務器地址 |
對於使用Microsoft Windows操作係統的客戶端,由WINS(Windows Internet Naming Service,Windows Internet名稱服務)服務器為通過NetBIOS協議通信的主機提供主機名到IP地址的解析。所以,大部分Windows網絡客戶端需要進行WINS的設置。
為了使DHCP客戶端實現主機名到IP地址的解析,DHCP服務器應該為客戶端指定WINS服務器地址。目前,每個DHCP地址池視圖下最多可以配置8個WINS服務器地址。
DHCP客戶端在網絡上使用NetBIOS協議通信時,需要在主機名和IP地址之間建立映射關係。根據獲取映射關係方式的不同,NetBIOS節點分為四種:
· b類節點(b-node):“b”代表廣播(broadcast),即此類節點采用廣播方式獲取映射關係。源節點通過發送帶有目的節點主機名的廣播報文來獲取目的節點的IP地址,目的節點收到廣播報文後,就將自己的IP地址返回給源節點。
· p類節點(p-node):“p”代表端到端(peer-to-peer),即此類節點采用發送單播報文與WINS服務器通信的方式獲取映射關係。源節點給WINS服務器發送單播報文,WINS服務器收到單播報文後,返回源節點請求的目的節點名所對應的IP地址。
· m類節點(m-node):“m”代表混合(mixed),是具有部分廣播特性的p類節點。即此類節點首先發送廣播報文來獲取映射關係,如果沒有獲取到,則再發送單播報文與WINS服務器通信來獲取映射關係。
· h類節點(h-node):“h”代表混合(hybrid),是具備“端到端”通信機製的b類節點。即此類節點首先發送單播報文與WINS服務器通信來獲取映射關係,如果沒有獲取到,再發送廣播報文來獲取映射關係。
表2-11 配置DHCP客戶端使用的WINS服務器地址和NetBIOS節點類型
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置為DHCP客戶端分配的WINS服務器地址 |
nbns-list ip-address&<1-8> |
缺省情況下,未配置為DHCP客戶端分配的WINS服務器地址 對於b類節點,為可選;其他情況下,為必選 |
配置為DHCP客戶端分配的NetBIOS節點類型 |
netbios-type { b-node | h-node | m-node | p-node } |
缺省情況下,未配置為DHCP客戶端分配的NetBIOS節點類型 |
為了使DHCP客戶端通過BIMS(Branch Intelligent Management System,分支網點智能管理係統)服務器進行軟件的備份和升級等操作,DHCP服務器需要將BIMS服務器的IP地址、端口號以及加密的共享密鑰等信息發給DHCP客戶端。之後,DHCP客戶端就可以定期向BIMS服務器發送連接請求,從BIMS服務器上獲取配置文件,進行軟件的備份和升級等操作。
表2-12 配置DHCP客戶端使用的BIMS服務器信息
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置為DHCP客戶端分配的BIMS服務器的IP地址、端口及共享密鑰信息 |
bims-server ip ip-address [ port port-number ] sharekey { cipher | simple } string |
缺省情況下,未配置為DHCP客戶端分配的BIMS服務器信息 |
服務器自動配置功能在空配置啟動的設備上不需要進行任何配置,但需要在DHCP服務器上配置一些必需的參數,包括TFTP服務器地址、TFTP服務器名和啟動文件名或遠程啟動文件的HTTP形式URL等。
表2-13 配置DHCP客戶端使用的TFTP服務器地址及啟動文件名
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置DHCP客戶端使用的TFTP服務器地址 |
tftp-server ip-address ip-address |
二者至少選其一 缺省情況下,未配置DHCP客戶端使用的TFTP服務器地址和TFTP服務器名 |
配置DHCP客戶端使用的TFTP服務器名 |
tftp-server domain-name domain-name |
|
配置DHCP客戶端使用的啟動文件名 |
bootfile-name bootfile-name |
缺省情況下,未配置DHCP客戶端使用的啟動文件名 |
表2-14 配置DHCP客戶端使用的遠程啟動文件的HTTP形式URL
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置DHCP客戶端使用的遠程啟動文件的HTTP形式URL |
bootfile-name url |
缺省情況下,未配置DHCP客戶端使用的遠程啟動文件的HTTP形式URL |
設備在啟動後,可能需要訪問某些服務器獲取設備運行需要的信息,例如從TFTP服務器上獲取配置文件。通過本配置可以指定DHCP服務器為DHCP客戶端分配的下一個提供服務的服務器IP地址,以便客戶端啟動後訪問該服務器,獲取必要的信息。
表2-15 配置DHCP客戶端使用的下一個提供服務的服務器IP地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置DHCP地址池為DHCP客戶端分配的下一個提供服務的服務器IP地址 |
next-server ip-address |
缺省情況下,未配置DHCP地址池為DHCP客戶端分配的下一個提供服務的服務器IP地址 |
為了使具有語音功能的DHCP客戶端能夠在通過DHCP獲取IP地址的同時,獲取到語音呼叫所需的相關信息,需要在DHCP服務器上配置Option 184。Option 184內容的詳細介紹,請參見“1.4.3 3. Option 184”。
表2-16 配置DHCP客戶端使用的Option 184參數
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置網絡呼叫處理器的地址 |
voice-config ncp-ip ip-address |
缺省情況下,未配置網絡呼叫處理器的地址 隻有配置了網絡呼叫處理器的地址,其他配置才能生效 |
(可選)配置備用服務器的地址 |
voice-config as-ip ip-address |
缺省情況下,未配置備用服務器的地址 |
(可選)配置語音VLAN |
voice-config voice-vlan vlan-id { disable | enable } |
缺省情況下,未配置語音VLAN |
(可選)配置自動故障轉移呼叫路由 |
voice-config fail-over ip-address dialer-string |
缺省情況下,未配置自動故障轉移呼叫路由 |
自定義DHCP選項時,取值的獲取比較複雜,配置錯誤可能會對DHCP的工作工程造成影響,請謹慎使用該功能。
本配置為DHCP服務器提供了靈活的選項配置方式,使得DHCP服務器可以為DHCP客戶端提供更加豐富的選項內容。在以下情況下,可以使用本命令自定義DHCP選項:
· 隨著DHCP的不斷發展,新的DHCP選項會陸續出現。通過自定義DHCP選項,可以方便地添加新的DHCP選項。
· 有些選項的內容,RFC中沒有統一規定。廠商可以根據需要定義選項的內容,如Option 43。通過自定義DHCP選項,可以為DHCP客戶端提供廠商指定的信息。
· 設備上隻提供了有限的選項配置命令(如gateway-list、dns-list命令),對於沒有專門命令來配置的DHCP選項,可以通過option命令配置選項內容。例如,可以通過option 4 ip-address 1.1.1.1命令指定為DHCP客戶端分配的時間服務器地址為1.1.1.1。
· 擴展已有的DHCP選項。當前已提供的方式無法滿足用戶需求時(比如通過dns-list命令最多隻能配置8個DNS服務器地址,如果用戶需要配置的DNS服務器地址數目大於8,則該命令無法滿足需求),可以通過自定義DHCP選項的方式進行擴展。
表2-17 自定義DHCP地址池選項
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
自定義DHCP地址池選項 |
option code { ascii ascii-string | hex hex-string | ip-address ip-address&<1-8> } |
缺省情況下,未自定義DHCP地址池選項 DHCP服務器在應答DHCP客戶端報文時,如果DHCP選項組的選項編號和DHCP地址池選項編號相同且匹配用戶類時,以DHCP選項組的選項為準 |
表2-18 自定義DHCP選項組選項
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP用戶類,並進入DHCP用戶類視圖 |
dhcp class class-name |
缺省情況下,不存在DHCP用戶類 |
配置DHCP用戶類的匹配規則 |
if-match rule rule-number { hardware-address hardware-address mask hardware-address-mask | option option-code [ ascii ascii-string [ offset offset | partial ] | hex hex-string [ mask mask | offset offset length length | partial ] ] | relay-agent gateway-address } |
缺省情況下,未配置DHCP用戶類的匹配規則 |
退回係統視圖 |
quit |
- |
創建DHCP選項組,並進入DHCP選項組視圖 |
dhcp option-group option-group-number |
缺省情況下,不存在DHCP選項組 |
自定義DHCP選項組選項 |
option option-code { ascii ascii-string | hex hex-string | ip-address ip-address&<1-8> } |
缺省情況下,未定義DHCP選項組的選項 DHCP服務器在應答客戶端報文時,如果多個DHCP選項組的選項編號相同時,以最先匹配的DHCP用戶類對應的DHCP選項組的選項為準 |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置DHCP用戶類與DHCP選項組的關聯 |
class class-name option-group option-group-number |
缺省情況下,未配置指定DHCP用戶類與DHCP 選項組的關聯 |
表2-19 常用Option配置說明
選項編號 |
選項名稱 |
對應的配置命令 |
推薦的option命令參數 |
3 |
Router Option |
gateway-list |
ip-address |
6 |
Domain Name Server Option |
dns-list |
ip-address |
15 |
Domain Name |
domain-name |
ascii |
44 |
NetBIOS over TCP/IP Name Server Option |
nbns-list |
ip-address |
46 |
NetBIOS over TCP/IP Node Type Option |
netbios-type |
hex |
66 |
TFTP server name |
tftp-server |
ascii |
67 |
Bootfile name |
bootfile-name |
ascii |
43 |
Vendor Specific Information |
- |
hex |
配置DHCP用戶類白名單功能,DHCP服務器隻有收到屬於用戶類白名單的DHCP客戶端發送的請求報文,才會進行處理。
如果DHCP客戶端請求的是靜態綁定租約,則DHCP服務器不進行白名單檢查直接進行處理。
表2-20 配置DHCP用戶白名單功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP用戶類,並進入DHCP用戶類視圖 |
dhcp class class-name |
缺省情況下,不存在DHCP用戶類 |
配置DHCP用戶類的匹配規則 |
if-match rule rule-number { hardware-address hardware-address mask hardware-address-mask | option option-code [ ascii ascii-string [ offset offset | partial ] | hex hex-string [ mask mask | offset offset length length | partial ] ] | relay-agent gateway-address } |
缺省情況下,未配置DHCP用戶類的匹配規則 |
返回係統視圖 |
quit |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
開啟DHCP用戶類白名單功能 |
verify class |
缺省情況下, DHCP用戶類白名單功能處於關閉狀態 |
配置DHCP白名單包括的用戶類名 |
valid class class-name&<1-8> |
缺省情況下,未配置DHCP白名單包括的用戶類名 如果客戶端屬於其中的一個用戶類,表示用戶類白名單檢查通過 |
隻有開啟DHCP服務後,其它相關的DHCP服務器配置才能生效。
表2-21 開啟DHCP服務
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟DHCP服務 |
dhcp enable |
缺省情況下,DHCP服務處於關閉狀態 |
配置接口工作在DHCP服務器模式後,當接口收到DHCP客戶端發來的DHCP報文時,將從DHCP服務器的地址池中分配地址等參數。
表2-22 配置接口工作在DHCP服務器模式
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口工作在DHCP服務器模式 |
dhcp select server |
缺省情況下,接口工作在DHCP服務器模式 |
創建地址池,並在接口引用該地址池後,接口接收到DHCP請求,將優先為客戶端分配靜態綁定的IP地址;如果不存在靜態綁定的IP地址,則從引用的地址池中選擇IP地址分配給客戶端。
表2-23 配置接口引用地址池
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口引用地址池 |
dhcp server apply ip-pool pool-name |
缺省情況下,接口未引用地址池。如果接口引用的地址池不存在,將導致無法動態分配地址 |
為防止IP地址重複分配導致地址衝突,DHCP服務器為客戶端分配地址前,需要先對該地址進行探測。
DHCP服務器的地址探測是通過ping功能實現的,通過檢測是否能在指定時間內得到ping響應來判斷是否存在地址衝突。DHCP服務器發送目的地址為待分配地址的ICMP回顯請求報文。如果在指定時間內收到ICMP回顯響應報文,則認為存在地址衝突。DHCP服務器從地址池中選擇新的IP地址,並重複上述操作。如果在指定時間內未收到ICMP回顯響應報文,則繼續發送ICMP回顯請求報文,直到發送的ICMP回顯顯示報文數目達到最大值。如果仍然未收到ICMP回顯響應報文,則將地址分配給客戶端,從而確保客戶端獲得的IP地址唯一。
DHCP服務器通過ping操作來檢測是否發生地址衝突,而DHCP客戶端則通過發送免費ARP報文檢測是否發生地址衝突。
表2-24 配置IP地址衝突檢測功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
(可選)配置DHCP服務器發送ICMP回顯請求報文的最大數目 |
dhcp server ping packets number |
缺省情況下,DHCP服務器發送ICMP回顯請求報文的最大數目為1 0表示DHCP服務器將IP地址分配給DHCP客戶端之前,不會通過ping操作探測該地址是否衝突 |
(可選)配置DHCP服務器等待ICMP回顯響應報文的超時時間 |
dhcp server ping timeout milliseconds |
缺省情況下,DHCP服務器等待ICMP回顯響應報文的超時時間為500毫秒 0表示DHCP服務器將IP地址分配給DHCP客戶端之前,不會通過ping操作探測該地址是否衝突 |
如果配置DHCP服務器處理Option 82,則當DHCP服務器收到帶有Option 82的報文後,會在響應報文中攜帶Option 82,並為客戶端分配IP地址等信息。
如果配置DHCP服務器忽略Option 82,則當DHCP服務器收到帶有Option 82的報文後,不會在響應報文中攜帶Option 82,隻為客戶端分配IP地址等信息。
為使Option 82功能正常使用,需要在DHCP服務器和DHCP中繼上都進行相應配置。DHCP中繼支持Option 82功能的相關配置請參見“3.3.6 配置DHCP中繼支持Option 82功能”。
表2-25 配置Option 82的處理方式
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置DHCP服務器處理Option 82 |
dhcp server relay information enable |
缺省情況下,DHCP服務器處理Option 82 |
當DHCP客戶端的行為不符合RFC協議規定時,為了與之兼容,需要配置DHCP服務器兼容性功能。
一般情況下,隻有DHCP請求報文的廣播標誌位為1的時候,DHCP服務器才會以廣播的方式發送應答報文。如果DHCP客戶端發送的請求報文中廣播標誌位為0,且該客戶端不支持接收單播的應答報文,則可以配置DHCP服務器忽略請求報文的廣播標誌位,始終以廣播方式發送應答報文。
當已經存在IP地址的客戶端發出請求報文(即報文中ciaddr字段不為0)時,無論是否開啟DHCP服務器的廣播回應報文功能,DHCP服務器都會以單播形式將回應報文發送給DHCP客戶端(即目的地址為ciaddr)。
當請求報文通過DHCP中繼轉發到DHCP服務器(即報文中giaddr字段不為0)時,無論是否開啟DHCP服務器的廣播回應報文功能,DHCP服務器都會以單播形式將回應報文發送給DHCP中繼(即目的地址為giaddr)。
表2-26 配置DHCP服務器始終以廣播方式回複請求報文
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟DHCP服務器的廣播回應報文功能 |
dhcp server always-broadcast |
缺省情況下,DHCP服務器的廣播回應報文功能處於關閉狀態。DHCP服務器根據請求報文中的廣播標誌位來決定以廣播還是單播的形式發送應答報文 |
BOOTP客戶端申請到的地址租約是無限期的。在某些組網環境中,可能不希望出現無限期的地址租約。此時,可以通過配置DHCP服務器忽略BOOTP請求報文,避免分配無限期的地址租約。
表2-27 配置DHCP服務器忽略BOOTP請求報文
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置DHCP服務器忽略BOOTP請求報文 |
dhcp server bootp ignore |
缺省情況下,DHCP服務器不會忽略BOOTP請求報文 |
有些BOOTP客戶端發送的請求報文中,vend字段的格式不符合RFC 1048的要求。對於這種報文,DHCP服務器的缺省處理方法是不解析vend字段內容,將報文中vend字段的內容拷貝到回複報文中的vend字段回應給BOOTP客戶端。
開啟DHCP服務器的回應RFC 1048格式報文功能後,對於這種格式不符合RFC 1048要求的報文,DHCP服務器會將需要回應的選項以符合RFC 1048要求的格式,封裝到回複報文的vend字段,並回應給BOOTP客戶端。
表2-28 配置DHCP服務器以RFC 1048規定的格式發送BOOTP應答報文
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟DHCP服務器回應RFC 1048格式報文功能 |
dhcp server bootp reply-rfc-1048 |
缺省情況下,DHCP服務器回應RFC 1048格式報文功能處於關閉狀態 本配置隻在客戶端通過BOOTP報文申請靜態綁定地址時有效 |
DSCP優先級用來體現報文自身的優先等級,決定報文傳輸的優先程度。通過本配置可以指定DHCP服務器發送的DHCP報文的DSCP優先級。
表2-29 配置DHCP服務器發送DHCP報文的DSCP優先級
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置DHCP服務器發送DHCP報文的DSCP優先級 |
dhcp dscp dscp-value |
缺省情況下,DHCP服務器發送DHCP報文的DSCP優先級為56 |
DHCP服務器重啟後,設備上記錄的租約信息將丟失,會影響DHCP服務器的正常業務。
DHCP服務器租約固化功能將DHCP服務器的核心運行數據(在用地址租約、衝突表項)保存到指定的文件中,DHCP服務器設備重啟後,自動根據該文件恢複DHCP服務器的租約信息,從而保證DHCP服務器的租約信息不會丟失。
表2-30 配置DHCP服務器租約固化功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
指定存儲DHCP服務器表項的文件名稱 |
dhcp server database filename { filename | url url [ username username [ password { cipher | simple } string ] ] } |
缺省情況下,未指定存儲DHCP服務器表項的文件名稱 執行本命令後,會立即觸發一次表項備份。之後,如果未配置dhcp server database update interval命令,若表項發生變化,默認在300秒之後刷新存儲文件;若表項未發生變化,則不再刷新存儲文件 |
(可選)將當前的DHCP服務器表項保存到用戶指定的文件中 |
dhcp server database update now |
本命令隻用來觸發一次DHCP服務器表項的備份 |
(可選)配置刷新DHCP服務器表項存儲文件的延遲時間 |
dhcp server database update interval interval |
缺省情況下,若DHCP服務器表項不變化,則不刷新存儲文件;若DHCP服務器表項發生變化,默認在300秒之後刷新存儲文件 |
(可選)終止當前的DHCP服務器表項恢複操作 |
dhcp server database update stop |
本命令隻用來在設備重啟時觸發一次終止DHCP服務器表項信息的恢複 |
為了避免地址池地址耗盡,導致用戶無法上線,用戶可以設置地址池使用率的告警閥值,當地址池中地址使用率超過閥值時,係統發送到告警信息到設備的信息中心,通過設置信息中心的告警信息的發送參數,最終決定日誌報文的輸出規則(即是否允許輸出以及輸出方向),提醒管理員進行地址池合理規劃。有關信息中心參數的配置,請參見“網絡管理和監控配置指導”中的“信息中心”。
表2-31 配置DHCP地址池報警功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
配置DHCP地址池報警功能 |
ip-in-use threshold threshold-value |
缺省情況下,地址池使用率告警閾值為100% |
當地址池綁定了VPN實例後,DHCP服務器可以將網絡劃分成公網和VPN私網。未配置VPN屬性的地址池被劃分到公網,配置了VPN屬性的地址池被劃分到相應的VPN私網,這樣,對於處於公網或VPN私網中的客戶端,服務器都能夠選擇合適的地址池來為客戶端分配租約並且記錄該客戶端的狀態信息。
DHCP客戶端的VPN信息可以從認證模塊獲取,也可以從DHCP服務器接收報文的接口配置的VPN信息獲取。如果以上兩種方式都可獲取VPN信息,以從認證模塊獲取的VPN信息為準。
表2-32 為DHCP服務器上的地址池綁定VPN實例
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
為DHCP服務器上的地址池綁定VPN實例 |
vpn-instance vpn-instance-name |
缺省情況下,DHCP服務器上的地址池未綁定VPN實例 |
DHCP服務器的用戶下線探測功能以ARP表項老化功能為基礎,當ARP表項老化時認為該表項對應的用戶已下線。
如果在接口上開啟了DHCP服務器的用戶下線探測功能,則當ARP表項老化時,係統會刪除該表項對應用戶的地址綁定信息。
表2-33 開啟DHCP服務器的用戶下線探測功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
開啟DHCP服務器的用戶下線探測功能 |
dhcp client-detect |
缺省情況下,DHCP服務器的用戶下線探測功能處於關閉狀態 |
手工刪除ARP表項,不會觸發DHCP服務器刪除對應用戶的地址綁定信息。
DHCP服務器日誌是為了滿足管理員審計需求。設備生成DHCP日誌信息會交給信息中心模塊處理,信息中心模塊的配置將決定日誌信息的發送規則和發送方向。關於信息中心的詳細描述請參見“網絡管理和監控配置指導”中的“信息中心”。
比如大量DHCP客戶端發生上下線操作時,DHCP服務器會輸出大量日誌信息,這可能會降低設備性能,影響DHCP服務器分配IP地址的速度。為了避免該情況的發生,用戶可以關閉DHCP服務器日誌信息功能,使得DHCP服務器不再輸出日誌信息。
表2-34 開啟DHCP服務器日誌信息功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟DHCP服務器日誌信息功能 |
dhcp log enable |
缺省情況下,DHCP服務器日誌信息功能處於關閉狀態 |
DHCP服務器重啟或使用reset dhcp server ip-in-use命令清除租約後,DHCP服務器上不存在租約信息。此時客戶端如果發出續約請求將會被拒絕,客戶端需要重新申請IP地址。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後DHCP服務器的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令清除DHCP服務器的相關信息。
表2-35 DHCP服務器顯示和維護
操作 |
命令 |
顯示DHCP的地址衝突信息 |
display dhcp server conflict [ ip ip-address ] [ vpn-instance vpn-instance-name ] |
顯示DHCP服務器的表項備份信息 |
display dhcp server database |
顯示租約過期的地址綁定信息 |
display dhcp server expired [ [ ip ip-address ] [ vpn-instance vpn-instance-name ] | pool pool-name ] |
顯示DHCP地址池的空閑地址信息 |
display dhcp server free-ip [ pool pool-name | vpn-instance vpn-instance-name ] |
顯示DHCP地址綁定信息 |
display dhcp server ip-in-use [ [ ip ip-address ] [ vpn-instance vpn-instance-name ] | pool pool-name ] |
顯示DHCP服務器的統計信息 |
display dhcp server statistics [ pool pool-name | vpn-instance vpn-instance-name ] |
顯示DHCP地址池的信息 |
display dhcp server pool [ pool-name | vpn-instance vpn-instance-name ] |
清除DHCP的地址衝突信息 |
reset dhcp server conflict [ ip ip-address ] [ vpn-instance vpn-instance-name ] |
清除租約過期的地址綁定信息 |
reset dhcp server expired [ [ ip ip-address ] [ vpn-instance vpn-instance-name ] | pool pool-name ] |
清除DHCP的正式綁定和臨時綁定信息 |
reset dhcp server ip-in-use [ [ ip ip-address ] [ vpn-instance vpn-instance-name ] | pool pool-name ] |
清除DHCP服務器的統計信息 |
reset dhcp server statistics [ vpn-instance vpn-instance-name ] |
常見的DHCP組網方式可以分為兩類:
· DHCP服務器和客戶端位於同一個網段,直接進行DHCP報文的交互;
· DHCP服務器和客戶端位於不同的網段,必須通過DHCP中繼實現IP地址的分配。
無論在哪種情況下,DHCP服務器的配置都是相同的。
Switch B和Switch C分別作為DHCP客戶端和BOOTP客戶端,從DHCP服務器Switch A獲取靜態綁定的IP地址、域名服務器、網關地址等信息。
其中:
· Switch B上VLAN接口2的客戶端ID為:
0030-3030-662e-6532-3030-2e30-3030-322d-4574-6865-726e-6574;
· Switch C上VLAN接口2的MAC地址為:000f-e200-01c0。
圖2-1 靜態綁定地址組網圖
(1) 配置接口的IP地址
<SwitchA> system-view
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 10.1.1.1 25
[SwitchA-Vlan-interface2] quit
(2) 配置DHCP服務
# 開啟DHCP服務。
[SwitchA] dhcp enable
# 配置VLAN接口2工作在DHCP服務器模式。
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] dhcp select server
[SwitchA-Vlan-interface2] quit
# 創建DHCP地址池0。
[SwitchA] dhcp server ip-pool 0
# 配置采用靜態綁定方式為Switch B分配IP地址。
[SwitchA-dhcp-pool-0] static-bind ip-address 10.1.1.5 25 client-identifier 0030-3030-662e-6532-3030-2e30-3030-322d-4574-6865-726e-6574
# 配置采用靜態綁定方式為Switch C分配IP地址。
[SwitchA-dhcp-pool-0] static-bind ip-address 10.1.1.6 25 hardware-address 000f-e200-01c0
# 配置域名服務器、網關地址。
[SwitchA-dhcp-pool-0] dns-list 10.1.1.2
[SwitchA-dhcp-pool-0] gateway-list 10.1.1.126
[SwitchA-dhcp-pool-0] quit
[SwitchA]
配置完成後,Switch B和Switch C可以從DHCP服務器Switch A分別申請到IP地址10.1.1.5和10.1.1.6,並獲取相關網絡配置參數。通過display dhcp server ip-in-use命令可以查看DHCP服務器為客戶端分配的IP地址。
[SwitchA] display dhcp server ip-in-use
IP address Client identifier/ Lease expiration Type
Hardware address
10.1.1.5 0030-3030-662e-6532- Jan 21 14:27:27 2014 Static(C)
3030-2e30-3030-322d-
4574-6865-726e-6574
10.1.1.6 000f-e200-01c0 Unlimited Static(C)
· 作為DHCP服務器的Switch A為網段10.1.1.0/24中的客戶端動態分配IP地址,該地址池網段分為兩個子網網段:10.1.1.0/25和10.1.1.128/25;
· Switch A的兩個VLAN接口,VLAN接口10和VLAN接口20的地址分別為10.1.1.1/25和10.1.1.129/25;
· 10.1.1.0/25網段內的地址租用期限為10天12小時,域名後綴為aabbcc.com,DNS服務器地址為10.1.1.2/25,WINS服務器地址為10.1.1.4/25,網關的地址為10.1.1.126/25;
· 10.1.1.128/25網段內的地址租用期限為5天,域名後綴為aabbcc.com,DNS服務器地址為10.1.1.2/25,無WINS服務器地址,網關的地址為10.1.1.254/25。
圖2-2 DHCP組網圖
(1) 配置端口屬於VLAN及對應VLAN接口的IP地址(略)
(2) 配置DHCP服務
# 開啟DHCP服務。
<SwitchA> system-view
[SwitchA] dhcp enable
# 配置VLAN接口10和VLAN接口20工作在DHCP服務器模式。
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] dhcp select server
[SwitchA-Vlan-interface10] quit
[SwitchA] interface vlan-interface 20
[SwitchA-Vlan-interface20] dhcp select server
[SwitchA-Vlan-interface20] quit
# 配置不參與自動分配的IP地址(DNS服務器、WINS服務器和網關地址)。
[SwitchA] dhcp server forbidden-ip 10.1.1.2
[SwitchA] dhcp server forbidden-ip 10.1.1.4
[SwitchA] dhcp server forbidden-ip 10.1.1.126
[SwitchA] dhcp server forbidden-ip 10.1.1.254
# 配置DHCP地址池1,用來為10.1.1.0/25網段內的客戶端分配IP地址和網絡配置參數。
[SwitchA] dhcp server ip-pool 1
[SwitchA-dhcp-pool-1] network 10.1.1.0 mask 255.255.255.128
[SwitchA-dhcp-pool-1] expired day 10 hour 12
[SwitchA-dhcp-pool-1] domain-name aabbcc.com
[SwitchA-dhcp-pool-1] dns-list 10.1.1.2
[SwitchA-dhcp-pool-1] gateway-list 10.1.1.126
[SwitchA-dhcp-pool-1] nbns-list 10.1.1.4
[SwitchA-dhcp-pool-1] quit
# 配置DHCP地址池2,用來為10.1.1.128/25網段內的客戶端分配IP地址和網絡配置參數。
[SwitchA] dhcp server ip-pool 2
[SwitchA-dhcp-pool-2] network 10.1.1.128 mask 255.255.255.128
[SwitchA-dhcp-pool-2] expired day 5
[SwitchA-dhcp-pool-2] domain-name aabbcc.com
[SwitchA-dhcp-pool-2] dns-list 10.1.1.2
[SwitchA-dhcp-pool-2] gateway-list 10.1.1.254
[SwitchA-dhcp-pool-2] quit
配置完成後,10.1.1.0/25和10.1.1.128/25網段的客戶端可以從DHCP服務器Switch A申請到相應網段的IP地址和網絡配置參數。通過display dhcp server ip-in-use命令可以查看DHCP服務器為客戶端分配的IP地址。
[SwitchA] display dhcp server ip-in-use
IP address Client identifier/ Lease expiration Type
Hardware address
10.1.1.3 0031-3865-392e-6262- Jan 14 22:25:03 2015 Auto(C)
3363-2e30-3230-352d-
4745-302f-30
10.1.1.5 0031-fe65-4203-7e02- Jan 14 22:25:03 2015 Auto(C)
3063-5b30-3230-4702-
620e-712f-5e
10.1.1.130 3030-3030-2e30-3030- Jan 9 10:45:11 2015 Auto(C)
662e-3030-3033-2d45-
7568-6572-1e
10.1.1.131 3030-0020-fe02-3020- Jan 9 10:45:11 2015 Auto(C)
7052-0201-2013-1e02
0201-9068-23
10.1.1.132 2020-1220-1102-3021- Jan 9 10:45:11 2015 Auto(C)
7e52-0211-2025-3402
0201-9068-9a
10.1.1.133 2021-d012-0202-4221- Jan 9 10:45:11 2015 Auto(C)
8852-0203-2022-55e0
3921-0104-31
· Switch A作為DHCP中繼轉發DHCP報文。在Switch A上配置DHCP中繼支持Option 82功能,使得Switch A能夠為DHCP客戶端發送的請求報文添加Option 82。
· Switch B作為DHCP服務器為客戶端分配IP地址和其他網絡配置參數。如果Switch B接收到的請求報文中帶有Option 82,則為該客戶端分配地址範圍10.10.1.2到10.10.1.10內的IP地址。如果Router B接收到的請求報文匹配硬件地址aabb-aabb-aab0,硬件地址掩碼為ffff-ffff-fff0,則為該客戶端分配地址圍10.10.1.11到10.10.1.26內的IP地址。
· Switch B為10.10.1.0/24網段內的客戶端分配的DNS服務器地址為10.10.1.20/24,網關的地址為10.10.1.254/24。
圖2-3 按DHCP用戶類分配地址典型組網圖
(1) 配置DHCP server和DHCP relay agent各個接口的IP地址(略)
(2) 配置DHCP服務
# 開啟DHCP服務,且配置DHCP服務器處理Option 82信息。
<SwitchB> system-view
[SwitchB] dhcp enable
[SwitchB] dhcp server relay information enable
# 配置VLAN接口10工作在DHCP服務器模式。
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] dhcp select server
[SwitchB-Vlan-interface10] quit
# 創建DHCP用戶類tt,設置匹配規則編號為1,匹配請求報文中帶有Option 82的客戶端。
[SwitchB] dhcp class tt
[SwitchB-dhcp-class-tt] if-match rule 1 option 82
[SwitchB-dhcp-class-tt] quit
# 創建DHCP用戶類ss,設置匹配規則編號1,匹配硬件地址aabb-aabb-aab0,硬件地址掩碼ffff-ffff-fff0的請求報文。
[SwitchB] dhcp class ss
[SwitchB-dhcp-class-ss] if-match rule 1 hardware-address aabb-aabb-aab0 mask ffff-ffff-fff0
[SwitchB-dhcp-class-ss] quit
# 創建DHCP地址池aa,配置地址範圍和用戶類tt的地址範圍,配置網關和DNS服務器的地址。
[SwitchB] dhcp server ip-pool aa
[SwitchB-dhcp-pool-aa] network 10.10.1.0 mask 255.255.255.0
[SwitchB-dhcp-pool-aa] address range 10.10.1.2 10.10.1.100
[SwitchB-dhcp-pool-aa] class tt range 10.10.1.2 10.10.1.10
[SwitchB-dhcp-pool-aa] class ss range 10.10.1.11 10.10.1.26
[SwitchB-dhcp-pool-aa] gateway-list 10.10.1.254
[SwitchB-dhcp-pool-aa] dns-list 10.10.1.20
[SwitchB-dhcp-pool-aa] quit
配置完成後,10.10.1.0/24網段的客戶端通過用戶類分配方式可以從DHCP服務器Switch B申請到相應地址範圍的IP地址和網絡配置參數。通過display dhcp server ip-in-use命令可以查看DHCP服務器為它分配的IP地址。
[SwitchB] display dhcp server ip-in-use
IP address Client identifier/ Lease expiration Type
Hardware address
10.10.1.2 0031-3865-392e-6262- Jan 14 22:25:03 2015 Auto(C)
3363-2e30-3230-352d-
4745-302f-30
10.10.1.11 aabb-aabb-aab1 Jan 14 22:25:03 2015 Auto(C)
Switch B作為DHCP服務器隻為局域網中匹配硬件地址aabb-aabb-0000,硬件地址掩碼為ffff-ffff-0000的DHCP客戶端動態分配網段為10.1.1.0/24的IP地址。
圖2-4 用戶類白名單功能典型組網圖
(1) 配置DHCP服務器接口的IP地址(略)
(2) 配置DHCP服務
# 開啟DHCP服務
<SwitchB> system-view
[SwitchB] dhcp enable
# 配置VLAN接口2工作在DHCP服務器模式
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] dhcp select server
[SwitchB-Vlan-interface2] quit
# 創建DHCP用戶類ss,設置匹配規則編號1,匹配硬件地址為aabb-aabb-0000,硬件地址掩碼為ffff-ffff-0000
[SwitchB] dhcp class ss
[SwitchB-dhcp-class-ss] if-match rule 1 hardware-address aabb-aabb-0000 mask ffff-ffff-0000
[SwitchB-dhcp-class-ss] quit
# 創建DHCP地址池aa,配置可分配的地址範圍為10.1.1.0/24,開啟用戶類白名單功能,配置白名單中包括的用戶類為ss
[SwitchB] dhcp server ip-pool aa
[SwitchB-dhcp-pool-aa] network 10.1.1.0 mask 255.255.255.0
[SwitchB-dhcp-pool-aa] verify class
[SwitchB-dhcp-pool-aa] valid class ss
[SwitchB-dhcp-pool-aa] quit
配置完成後,匹配地址aabb-aabb-0000,掩碼ffff-ffff-0000的客戶端可以從DHCP服務器Switch B申請到地址範圍為10.1.1.0/24網段的IP地址。通過display dhcp server ip-in-use命令可以查看DHCP服務器分配的IP地址。
[SwitchB] display dhcp server ip-in-use
IP address Client identifier/ Lease expiration Type
Hardware address
10.1.1.2 aabb-aabb-ab01 Jan 14 22:25:03 2015 Auto(C)
· 作為DHCP服務器的Switch A為局域網中的客戶端動態分配IP地址。
· DHCP服務器地址池中有兩個網段的地址:10.1.1.0/24和10.1.2.0/24。當10.1.1.0/24網段沒有空閑地址後,DHCP服務器繼續從10.1.2.0/24網段中選擇IP地址分配給客戶端。
· Switch A為網段10.1.1.0/24內的客戶端分配的網關地址為10.1.1.254/24;為網段10.1.2.0/24內的客戶端分配的網關地址為和10.1.2.254/24。
圖2-5 主從網段組網圖
# 開啟DHCP服務。
<SwitchA> system-view
[SwitchA] dhcp enable
# 配置VLAN接口10的主從IP地址,並配置該接口工作在DHCP服務器模式。
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ip address 10.1.1.1 24
[SwitchA-Vlan-interface10] ip address 10.1.2.1 24 sub
[SwitchA-Vlan-interface10] dhcp select server
[SwitchA-Vlan-interface10] quit
# 創建DHCP地址池aa,配置主網段地址範圍和從網段地址範圍,配置網關地址。
[SwitchA] dhcp server ip-pool aa
[SwitchA-dhcp-pool-aa] network 10.1.1.0 mask 255.255.255.0
[SwitchA-dhcp-pool-aa] gateway-list 10.1.1.254
[SwitchA-dhcp-pool-aa] network 10.1.2.0 mask 255.255.255.0 secondary
[SwitchA-dhcp-pool-aa-secondary] gateway-list 10.1.2.254
[SwitchA-dhcp-pool-aa-secondary] quit
[SwitchA-dhcp-pool-aa] quit
配置完成後,當DHCP服務器地址池主網段中沒有空閑地址分配給客戶端時,服務器會從該地址池中的從網段獲取地址分配給客戶端IP地址和網絡配置參數。通過display dhcp server ip-in-use命令可以查看DHCP服務器已分配的主從網段IP地址。(此處隻截取部分顯示信息)
[SwitchA] display dhcp server ip-in-use
IP address Client identifier/ Lease expiration Type
Hardware address
10.1.1.2 0031-3865-392e-6262- Jan 14 22:25:03 2015 Auto(C)
3363-2e30-3230-352d-
4745-302f-30
10.1.2.2 3030-3030-2e30-3030- Jan 14 22:25:03 2015 Auto(C)
662e-3030-3033-2d45-
7568-6572-1e
DHCP客戶端Switch B從DHCP服務器Switch A獲取IP地址和PXE引導服務器地址信息:
· IP地址所在網段為10.1.1.0/24;
· 匹配硬件地址aabb-aabb-0000,硬件地址掩碼ffff-ffff-0000的客戶端的PXE引導服務器地址為2.3.4.5和3.3.3.3,其他客戶端的PXE引導服務器地址為1.2.3.4和2.2.2.2。
DHCP服務器需要通過自定義DHCP選項的方式配置Option 43的內容,從而實現為客戶端分配PXE引導服務器地址。Option 43和PXE服務器地址列表的格式分別如圖1-5和圖1-7。DHCP服務器上地址池中配置的Option 43選項內容為80 0B 00 00 02 01 02 03 04 02 02 02 02,其中80為子選項類型(Sub-option type),0B為子選項長度(Sub-option length),00 00為PXE服務器類型(PXE server type),02為服務器數目(Server number),01 02 03 04 02 02 02 02為服務器的IP地址1.2.3.4和2.2.2.2。
圖2-6 自定義DHCP選項典型配置舉例
(1) 配置各接口的IP地址(略)
(2) 配置DHCP服務
# 開啟DHCP服務。
<SwitchA> system-view
[SwitchA] dhcp enable
# 創建DHCP用戶類ss,設置匹配規則編號1,匹配硬件地址aabb-aabb-0000,硬件地址掩碼為ffff-ffff-0000。
[SwitchA] dhcp class ss
[SwitchA-dhcp-class-ss] if-match rule 1 hardware-address aabb-aabb-0000 mask ffff-ffff-0000
[SwitchA-dhcp-class-ss] quit
# 創建DHCP選項組1,配置選項信息。
[SwitchA] dhcp option-group 1
[SwitchA-dhcp-option-group-1] option 43 hex 800B0000020203040503030303
# 配置VLAN接口2工作在DHCP服務器模式。
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] dhcp select server
[SwitchA-Vlan-interface2] quit
# 配置DHCP地址池0。
[SwitchA] dhcp server ip-pool 0
[SwitchA-dhcp-pool-0] network 10.1.1.0 mask 255.255.255.0
[SwitchA-dhcp-pool-0] option 43 hex 800B0000020102030402020202
[SwitchA-dhcp-pool-0] class ss option-group 1
[SwitchA-dhcp-pool-0] quit
配置完成後,Switch B可以從DHCP服務器Switch A獲取到10.1.1.0/24網段的IP地址和PXE引導服務器地址。通過display dhcp server ip-in-use命令可以查看DHCP服務器為客戶端分配的IP地址。
[SwitchA] display dhcp server ip-in-use
IP address Client identifier/ Lease expiration Type
Hardware address
10.1.1.2 aabb-aabb-ab01 Jan 14 22:25:03 2015 Auto(C)
客戶端從DHCP服務器動態獲得的IP地址與其他主機IP地址衝突。
可能是網絡上有主機私自配置了IP地址,導致衝突。
(1) 禁用客戶端的網卡或斷開其網線,從另外一台主機執行ping操作,檢查網絡中是否已經存在該IP地址的主機。
(2) 如果能夠收到ping操作的響應消息,則說明該IP地址已由用戶靜態配置。在DHCP服務器上執行dhcp server forbidden-ip命令,禁止該IP地址參與動態地址分配。
(3) 重新啟用客戶端的網卡或連接好其網線,在客戶端釋放並重新獲取IP地址。以Windows XP為例,在Windows環境下運行cmd進入DOS環境,使用ipconfig /release命令釋放IP地址,之後使用ipconfig /renew重新獲取IP地址。
由於在IP地址動態獲取過程中采用廣播方式發送請求報文,因此DHCP隻適用於DHCP客戶端和服務器處於同一個子網內的情況。為進行動態主機配置,需要在所有網段上都設置一個DHCP服務器,這顯然是很不經濟的。
DHCP中繼功能的引入解決了這一難題:客戶端可以通過DHCP中繼與其他網段的DHCP服務器通信,最終獲取到IP地址。這樣,多個網絡上的DHCP客戶端可以使用同一個DHCP服務器,既節省了成本,又便於進行集中管理。
設備作為MCE(Multi-VPN-instance Customer Edge,多VPN實例用戶網絡邊界設備)時,在設備上配置DHCP中繼功能,不僅可以為公網上的DHCP服務器和DHCP客戶端轉發DHCP報文,還可以實現為私網內的DHCP服務器和DHCP客戶端轉發DHCP報文。MCE的詳細介紹,請參見“MPLS配置指導”中的“MCE”。
圖3-1是DHCP中繼的典型應用示意圖。
圖3-1 DHCP中繼的典型組網應用
通過DHCP中繼完成動態配置的過程中,DHCP客戶端與DHCP服務器的處理方式與不通過DHCP中繼時的處理方式基本相同。下麵隻說明DHCP中繼的轉發過程,報文的具體交互過程請參見“1.2.2 IP地址獲取過程”。
圖3-2 DHCP中繼的工作過程
如圖3-2所示,DHCP中繼的工作過程為:
(1) 具有DHCP中繼功能的網絡設備收到DHCP客戶端以廣播方式發送的DHCP-DISCOVER或DHCP-REQUEST報文後,將報文中的giaddr字段填充為DHCP中繼的IP地址,並根據配置將報文單播轉發給指定的DHCP服務器。
(2) DHCP服務器根據giaddr字段為客戶端分配IP地址等參數,並通過DHCP中繼將配置信息轉發給客戶端,完成對客戶端的動態配置。
Option 82記錄了DHCP客戶端的位置信息。管理員可以利用該選項定位DHCP客戶端,實現根據Option 82為客戶端分配特定範圍的地址、對客戶端進行安全和計費等控製。Option 82的詳細介紹請參見“1.4.3 2. 中繼代理信息選項(Option 82)”。
如果DHCP中繼支持Option 82功能,則當DHCP中繼接收到DHCP請求報文後,將根據報文中是否包含Option 82以及用戶配置的處理策略及填充模式等對報文進行相應的處理,並將處理後的報文轉發給DHCP服務器。具體的處理方式見表3-1。
如果DHCP中繼收到的應答報文中帶有Option 82,則會將Option 82刪除後再轉發給DHCP客戶端。
表3-1 DHCP中繼支持Option 82的處理方式
收到DHCP請求報文 |
處理策略 |
DHCP中繼對報文的處理 |
收到的報文中帶有Option 82 |
Drop |
丟棄報文 |
Keep |
保持報文中的Option 82不變並進行轉發 |
|
Replace |
根據DHCP中繼上配置的填充模式、內容、格式等填充Option 82,替換報文中原有的Option 82並進行轉發 |
|
收到的報文中不帶有Option 82 |
- |
根據DHCP中繼上配置的填充模式、內容、格式等填充Option 82,添加到報文中並進行轉發 |
表3-2 DHCP中繼配置任務簡介
配置任務 |
說明 |
詳細配置 |
開啟DHCP服務 |
必選 |
|
配置接口工作在DHCP中繼模式 |
必選 |
|
指定DHCP服務器的地址 |
必選 |
|
配置DHCP中繼的安全功能 |
可選 |
|
配置通過DHCP中繼釋放客戶端的IP地址 |
可選 |
|
配置DHCP中繼支持Option 82功能 |
可選 |
|
配置DHCP中繼發送DHCP報文的DSCP優先級 |
可選 |
|
配置DHCP中繼支持代理功能 |
可選 |
|
指定中繼地址池對應的DHCP服務器地址 |
可選 |
|
配置DHCP中繼在DHCP報文中填充的中繼地址 |
可選 |
|
配置DHCP中繼的用戶下線探測功能 |
可選 |
|
配置DHCP中繼支持smart-relay功能 |
可選 |
|
配置DHCP中繼選擇DHCP服務器方式 |
可選 |
|
指定DHCP中繼向DHCP服務器轉發報文的源地址 |
可選 |
隻有開啟DHCP服務後,其它相關的DHCP中繼配置才能生效。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟DHCP服務 |
dhcp enable |
缺省情況下,DHCP服務處於關閉狀態 |
配置接口工作在中繼模式後,當接口收到DHCP客戶端發來的DHCP報文時,會將報文轉發給DHCP服務器,由服務器分配地址。
DHCP客戶端通過DHCP中繼獲取IP地址時,DHCP服務器上需要配置與DHCP中繼連接DHCP客戶端的接口IP地址所在網段(網絡號和掩碼)匹配的地址池,否則會導致DHCP客戶端無法獲得正確的IP地址。
表3-4 配置接口工作在DHCP中繼模式
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口工作在DHCP中繼模式 |
dhcp select relay |
缺省情況下,開啟DHCP服務後,接口工作在DHCP服務器模式 |
為了提高可靠性,可以在一個網絡中設置多個DHCP服務器。DHCP中繼上配置多個DHCP服務器後,DHCP中繼會將客戶端發來的DHCP報文轉發給所有的服務器。
指定的DHCP服務器的IP地址不能與DHCP中繼的接口IP地址在同一網段。否則,可能導致客戶端無法獲得IP地址。
表3-5 指定DHCP服務器的地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
指定DHCP服務器的地址 |
dhcp relay server-address ip-address [ public | vpn-instance vpn-instance-name ] |
缺省情況下,未指定DHCP服務器的地址 通過多次執行dhcp relay server-address命令可以指定多個DHCP服務器,一個接口下最多可以指定8個DHCP服務器 |
為了防止非法主機靜態配置一個IP地址並訪問外部網絡,設備支持DHCP中繼用戶地址表項記錄功能。
開啟該功能後,當客戶端通過DHCP中繼從DHCP服務器獲取到IP地址時,DHCP中繼可以自動記錄客戶端IP地址與硬件地址的綁定關係,生成DHCP中繼的用戶地址表項。
本功能與其他IP地址安全功能(如ARP地址檢查、授權ARP和IP Source Guard)配合,可以實現隻允許匹配用戶地址表項中綁定關係的報文通過DHCP中繼。從而,保證非法主機不能通過DHCP中繼與外部網絡通信。
表3-6 配置DHCP中繼用戶地址表項記錄功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟DHCP中繼的用戶地址表項記錄功能 |
dhcp relay client-information record |
缺省情況下,DHCP中繼用戶地址表項記錄功能處於關閉狀態 |
DHCP客戶端釋放動態獲取的IP地址時,會向DHCP服務器單播發送DHCP-RELEASE報文,DHCP中繼不會處理該報文的內容。如果此時DHCP中繼上記錄了該IP地址與MAC地址的綁定關係,則會造成DHCP中繼的用戶地址表項無法實時刷新。為了解決這個問題,DHCP中繼支持動態用戶地址表項的定時刷新功能。
DHCP中繼動態用戶地址表項定時刷新功能開啟時,DHCP中繼每隔指定時間采用客戶端獲取到的IP地址向DHCP服務器發送DHCP-REQUEST報文:
· 如果DHCP中繼接收到DHCP服務器響應的DHCP-ACK報文或在指定時間內未接收到DHCP服務器的響應報文,則表明這個IP地址已經可以進行分配,DHCP中繼會刪除動態用戶地址表中對應的表項。為了避免地址浪費,DHCP中繼收到DHCP-ACK報文後,會發送DHCP-RELEASE報文釋放申請到的IP地址。
· 如果DHCP中繼接收到DHCP服務器響應的DHCP-NAK報文,則表示該IP地址的租約仍然存在,DHCP中繼不會刪除該IP地址對應的表項。
表3-7 配置DHCP中繼動態用戶地址表項定時刷新功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟DHCP中繼動態用戶地址表項定時刷新功能 |
dhcp relay client-information refresh enable |
缺省情況下,DHCP中繼動態用戶地址表項定時刷新功能處於開啟狀態 |
配置DHCP中繼動態用戶地址表項的定時刷新周期 |
dhcp relay client-information refresh [ auto | interval interval ] |
缺省情況下,定時刷新周期為auto,即根據表項的數目自動計算刷新時間間隔 |
DHCP餓死攻擊是指攻擊者偽造chaddr字段各不相同的DHCP請求報文,向DHCP服務器申請大量的IP地址,導致DHCP服務器地址池中的地址耗盡,無法為合法的DHCP客戶端分配IP地址,或導致DHCP服務器消耗過多的係統資源,無法處理正常業務。
如果封裝DHCP請求報文的數據幀的源MAC地址各不相同,則限製三層接口上可以學習到的ARP表項數,或限製二層端口上可以學習到的MAC地址數,並配置學習到的MAC地址數達到最大值時,丟棄源MAC地址不在MAC地址表裏的報文,能夠避免攻擊者申請過多的IP地址,在一定程度上緩解DHCP餓死攻擊。
如果封裝DHCP請求報文的數據幀的源MAC地址都相同,則通過上述方法無法防止DHCP餓死攻擊。在這種情況下,需要開啟DHCP中繼的MAC地址檢查功能。開啟該功能後,DHCP中繼檢查接收到的DHCP請求報文中的chaddr字段和數據幀的源MAC地址字段是否一致。如果一致,則認為該報文合法,將其轉發給DHCP服務器;如果不一致,則丟棄該報文。
因為DHCP中繼轉發DHCP報文時會修改報文的源MAC地址,所以隻能在靠近DHCP客戶端的第一跳DHCP中繼設備上開啟MAC地址檢查功能。
設備支持配置DHCP中繼的MAC地址檢查表項老化時間,當老化時間到達以後,該表項信息會被老化掉,DHCP中繼收到該MAC地址對應的DHCP請求報文後重新進行合法性檢查。
表3-8 開啟DHCP中繼的MAC地址檢查功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置DHCP中繼的MAC地址檢查表項的老化時間 |
dhcp relay check mac-address aging-time time |
缺省情況下,DHCP中繼的MAC地址檢查表項的老化時間為30秒 如果未通過dhcp relay check mac-address命令開啟DHCP中繼的MAC地址檢查功能,則本命令的配置不會生效 |
進入接口視圖 |
interface interface-type interface-number |
- |
開啟DHCP中繼的MAC地址檢查功能 |
dhcp relay check mac-address |
缺省情況下,DHCP中繼的MAC地址檢查功能處於關閉狀態 |
在某些情況下,可能需要通過DHCP中繼手工釋放客戶端申請到的IP地址。如果DHCP中繼上存在客戶端IP地址對應的動態用戶地址表項,則配置通過DHCP中繼釋放該客戶端IP地址後,DHCP中繼會主動向DHCP服務器發送DHCP-RELEASE報文。DHCP服務器收到該報文後,將會釋放指定IP地址的租約。DHCP中繼也會刪除該動態用戶地址表項。
釋放的客戶端IP地址必須是動態用戶地址表項中存在的IP地址,否則DHCP中繼無法釋放該IP地址。
表3-9 配置通過DHCP中繼釋放客戶端的IP地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
向DHCP服務器請求釋放客戶端申請到的IP地址 |
dhcp relay release ip ip-address [ vpn-instance vpn-instance-name ] |
- |
為使Option 82功能正常使用,需要在DHCP服務器和DHCP中繼上都進行相應配置。DHCP服務器的相關配置請參見“2.8 配置Option 82的處理方式”。
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
開啟DHCP中繼支持Option 82功能 |
dhcp relay information enable |
缺省情況下,DHCP中繼支持Option 82功能處於關閉狀態 |
(可選)配置DHCP中繼對包含Option 82的請求報文的處理策略 |
dhcp relay information strategy { drop | keep | replace } |
缺省情況下,處理策略為replace DHCP中繼對包含Option 82請求報文的處理策略為replace時,需要配置Option 82的填充模式和填充格式;處理策略為keep或drop時,不需要配置Option 82的填充模式和填充格式 |
(可選)配置Circuit ID子選項的填充模式和填充格式 |
dhcp relay information circuit-id { bas | string circuit-id | { normal | verbose [ node-identifier { mac | sysname | user-defined node-identifier } ] [ interface ] } [ format { ascii | hex } ] } |
缺省情況下,Circuit ID子選項的填充模式為Normal,填充格式為hex 如果以設備的係統名稱(sysname)作為節點標識填充DHCP報文的Option 82,則係統名稱中不能包含空格;否則,DHCP中繼添加或替換Option 82失敗 |
(可選)配置Remote ID子選項的填充模式和填充格式 |
dhcp relay information remote-id { normal [ format { ascii | hex } ] | string remote-id | sysname } |
缺省情況下,Remote ID子選項的填充模式為Normal;填充格式為hex |
DSCP優先級用來體現報文自身的優先等級,決定報文傳輸的優先程度。通過本配置可以指定DHCP中繼發送的DHCP報文的DSCP優先級。
表3-11 配置DHCP中繼發送DHCP報文的DSCP優先級
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置DHCP中繼發送DHCP報文的DSCP優先級 |
dhcp dscp dscp-value |
缺省情況下,DHCP中繼發送的DHCP報文的DSCP優先級為56 |
設備可以通過配置DHCP中繼支持代理功能,來防止非法用戶攻擊DHCP服務器。
開啟該功能後,DHCP中繼收到DHCP服務器的應答報文,會把報文中的DHCP服務器地址修改為中繼的接口地址,並轉發給DHCP客戶端。當DHCP客戶端通過DHCP中繼從DHCP服務器獲取到IP地址等網絡參數後,DHCP客戶端會把DHCP中繼當做自己的服務器,來進行後續的DHCP功能的報文交互。從而達到了把真正的DHCP服務器和DHCP客戶端隔離開,保護DHCP服務器的目的。
表3-12 配置DHCP中繼支持代理功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置DHCP中繼支持代理功能 |
dhcp select relay proxy |
缺省情況下,開啟DHCP服務後,接口工作在DHCP服務器模式 |
對於某些特定的用戶接入方式,基於用戶接入位置信息的不同,網絡中存在大量不同類型的用戶。為了使相同類型的用戶可以從指定的DHCP服務器申請IP地址等網絡參數,模塊根據用戶注冊信息,使不同的用戶選擇不同的DHCP中繼地址池,並從中繼地址池下配置的DHCP服務器獲取IP地址等網絡參數。
為了提高可靠性,一個DHCP中繼地址池下配置多個DHCP服務器地址,當DHCP客戶端匹配該中繼地址池後,DHCP中繼會將DHCP客戶端發來的DHCP報文轉發給該地址池對應所有的DHCP服務器。
一台DHCP中繼的一個接口下可能連接不同類型的用戶,當DHCP中繼轉發DHCP客戶端請求報文給DHCP服務器時,不能再以中繼接口的IP地址作為選擇地址池的依據。為了解決這個問題,需要使用gateway-list命令指定某個類型用戶所在的網段,並將該地址添加到轉發給DHCP服務器的報文字段中,為DHCP服務器選擇地址池提供依據。
表3-13 指定中繼地址池對應的DHCP服務器地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建地址池,並進入地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在地址池 |
指定匹配該地址池的DHCPv4客戶端所在的網段地址 |
gateway-list ip-address&<1-64> |
缺省情況下,未指定匹配該地址池的DHCP客戶端所在的網段地址 |
指定中繼地址池對應的DHCP服務器地址 |
remote-server ip-address&<1-8> |
缺省情況下,未指定中繼地址池對應的DHCP服務器的地址 通過執行remote-server命令一次最多可以指定8個DHCP服務器的地址信息 |
當未開啟該功能時,DHCP中繼收到DHCP客戶端的請求報文後,隻能將接口的主IP地址添加到報文中,然後轉發給DHCP服務器。對於某些特定需求,DHCP中繼需要添加指定的地址到報文中,這時就需要配置此功能。
表3-14 配置DHCP中繼在DHCP報文中填充的中繼地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置DHCP中繼在DHCP報文中填充的中繼地址 |
dhcp relay gateway ip-address |
缺省情況下,DHCP中繼填充的中繼地址是接口下的主IP地址 |
DHCP中繼的用戶下線探測功能以ARP表項老化功能為基礎,當ARP表項老化時認為該表項對應的用戶已經下線。
如果在接口上配置了DHCP中繼的用戶下線檢測功能,則當ARP表項老化時,DHCP中繼認為該表項對應的用戶已經下線,刪除對應的用戶地址表項,並通過發送Release報文通知DHCP服務器刪除下線用戶的IP地址租約。
表3-15 配置DHCP中繼的用戶下線探測功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟DHCP中繼的用戶地址表項記錄功能 |
dhcp relay client-information record |
缺省情況下,DHCP中繼用戶地址表項記錄功能處於關閉狀態 用戶需要開啟DHCP中繼用戶地址表項記錄功能,否則用戶下線探測功能無法完全生效 |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口工作在DHCP中繼模式 |
dhcp select relay |
缺省情況下,開啟DHCP服務後,接口工作在DHCP服務器模式 |
開啟DHCP中繼的用戶下線探測功能 |
dhcp client-detect |
缺省情況下,DHCP中繼的用戶下線探測功能處於關閉狀態 |
手工刪除ARP表項,不會觸發DHCP中繼刪除對應的用戶地址表項。
當DHCP中繼收到DHCP客戶端發來的請求報文時,會使用中繼接口的主IP地址填充請求報文的giaddr字段,然後轉發給DHCP服務器,DHCP服務器根據giaddr字段中的地址選擇合適的地址池為客戶端分配IP地址。當DHCP服務器中該網段地址分配完畢後,不管DHCP服務器上是否存在其他網段的地址,都不會再為該DHCP中繼下的其他DHCP客戶端分配IP地址。
DHCP中繼通過smart-relay解決上述問題,開啟該功能後,DHCP中繼可以使用除中繼接口主地址外的其他IP地址來填充giaddr字段,從而使DHCP客戶端可以獲取到其他網段的IP地址。根據組網不同,DHCP中繼支持smart-relay有以下兩種配置方式:
· 對於普通組網,用戶可以在DHCP中繼接口上配置從IP地址。這樣,當DHCP服務器上匹配中繼接口主地址的地址網段分配完畢後,DHCP中繼可以使用中繼接口的從IP地址來填充請求報文的giaddr字段。這時,DHCP服務器可以從匹配從IP地址的地址池網段中為DHCP客戶端分配IP地址。
· 對於某些用戶接入方式,用戶可以配置中繼地址池,並通過gateway-list命令指定多個IP地址。DHCP中繼先用配置的第一個地址填充giaddr字段,當DHCP服務器上匹配該地址的地址網段分配完畢後,DHCP中繼將依次選擇gateway-list命令中配置的下一個IP地址來填充giaddr字段。這時,DHCP服務器可以從匹配下一個IP地址的地址池網段中為DHCP客戶端分配IP地址。
DHCP中繼轉發3次DHCP-DISCOVER報文後,若還未收到DHCP服務器的應答報文,DHCP中繼將使用下一個可用IP地址來填充giaddr字段。DHCP中繼使用所有配置的IP地址填充giaddr字段之後,將重新選擇第一個配置的IP地址進入下一個循環。
表3-16 配置DHCP中繼支持smart-relay功能(普通組網)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口工作在DHCP中繼模式 |
dhcp select relay |
缺省情況下,開啟DHCP服務後,接口工作在DHCP服務器模式 |
配置DHCPv4客戶端所在的網段地址 |
ip address ip-address { mask-length | mask } [ sub ] |
缺省情況下,接口下不存在地址 |
返回係統視圖 |
quit |
- |
開啟DHCP中繼支持smart-relay功能 |
dhcp smart-relay enable |
缺省情況下,DHCP中繼支持smart-relay功能處於關閉狀態 |
表3-17 配置DHCP中繼支持smart-relay功能(用戶接入方式)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口工作在DHCP中繼模式 |
dhcp select relay |
缺省情況下,開啟DHCP服務後,接口工作在DHCP服務器模式 |
退回係統視圖 |
quit |
- |
創建中繼地址池,並進入中繼地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在中繼地址池 |
指定匹配該地址池的DHCPv4客戶端所在的網段地址 |
gateway-list ip-address&<1-64> |
缺省情況下,未指定匹配該地址池的DHCP客戶端所在的網段地址 |
指定中繼地址池對應的DHCP服務器地址 |
remote-server ip-address&<1-8> |
缺省情況下,未指定中繼地址池對應的DHCP服務器的地址 通過執行remote-server命令一次最多可以指定8個DHCP服務器的地址信息 |
退回係統視圖 |
quit |
- |
開啟DHCP中繼支持smart-relay功能 |
dhcp smart-relay enable |
缺省情況下,DHCP中繼支持smart-relay功能處於關閉狀態 |
一般來說,DHCP中繼是向所有DHCP服務器轉發DHCP請求報文(即polling方式),且DHCP客戶端會選擇最快收到DHCP應答報文。如果用戶想指定一台DHCP服務器作為主用DHCP服務器,其他DHCP服務器隻在主用DHCP服務器不可用或沒有空閑地址時才起作用,就需要DHCP中繼支持優先選擇用戶期望的DHCP服務器作為主用DHCP服務器的功能。
當DHCP中繼使用主備方式選擇DHCP服務器後,會優先向配置的第一個DHCP服務器地址轉發DHCP請求報文。當該DHCP服務器確定無法分配IP地址時,DHCP中繼將之後的DHCP請求報文向下一個DHCP服務器地址轉發。如果DHCP中繼已切換到配置的最後一個DHCP服務器地址且發現該DHCP服務器仍不可用,則重新選擇第一個配置的DHCP服務器地址進入下一個循環。
主備方式有兩種配置方法:
· 對於普通組網,用戶可以在DHCP中繼接口上指定多個DHCP服務器地址。這樣當配置DHCP中繼主備方式選擇DHCP服務器時,配置的第一個地址對應的DHCP服務器為主用DHCP服務器,之後配置的地址對應的DHCP服務器為備用DHCP服務器。
· 對於某些用戶接入方式,用戶需配置中繼地址池,並指定多個DHCP服務器地址。這樣當配置DHCP中繼主備方式選擇DHCP服務器時,配置的第一個地址對應的DHCP服務器為主用DHCP服務器,之後配置的地址對應的DHCP服務器為備用DHCP服務器。
此外,配置DHCP中繼選擇DHCP服務器還支持配置以下功能:
· 配置DHCP服務器應答超時切換時間,缺省應答超時切換時間為30秒。當DHCP中繼向DHCP服務器轉發DHCP請求報文,如果超過配置的應答超時切換時間後還未收到該DHCP服務器的應答報文,則DHCP中繼認為該DHCP服務器已不可用,並切換到下一個DHCP服務器。
· 配置回切主用DHCP服務器並指定回切延遲時間,缺省DHCP中繼是不回切的。當用戶在DHCP中繼配置了回切主用DHCP服務器延遲時間且當前生效的不是主用DHCP服務器時,經過該回切延遲時間後,DHCP服務器會將DHCP請求報文轉發到主用DHCP服務器。如果主用DHCP服務器不可用或沒有空閑地址時則重新使用當前生效的DHCP服務器;如果主用DHCP服務器可用則繼續使用主用DHCP服務器。
表3-18 配置DHCP中繼選擇DHCP服務器方式(接口視圖)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口工作在DHCP中繼模式 |
dhcp select relay |
缺省情況下,開啟DHCP服務後,接口工作在DHCP服務器模式 |
配置DHCP服務器地址 |
dhcp relay server-address ip-address |
缺省情況下,未配置DHCP服務器 |
配置DHCP中繼選擇DHCP服務器方式 |
dhcp relay server-address algorithm { master-backup | polling } |
缺省情況下,DHCP中繼同時向所有DHCP服務器轉發DHCP請求報文(polling方式) |
(可選)配置DHCP服務器應答超時切換時間 |
dhcp relay dhcp-server timeout time |
缺省情況下,DHCP服務器應答超時切換時間為30秒 |
(可選)配置回切主用DHCP服務器並指定回切延遲時間 |
dhcp relay master-server switch-delay delay-time |
缺省情況下,DHCP中繼不回切到主用DHCP服務器 |
表3-19 配置DHCP中繼選擇DHCP服務器方式(中繼地址池視圖)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口工作在DHCP中繼模式 |
dhcp select relay |
缺省情況下,開啟DHCP服務後,接口工作在DHCP服務器模式 |
退回係統視圖 |
quit |
- |
創建DHCP地址池,並進入DHCP地址池視圖 |
dhcp server ip-pool pool-name |
缺省情況下,設備上不存在DHCP地址池 |
指定匹配該地址池的DHCPv4客戶端所在的網段地址 |
gateway-list ip-address&<1-64> |
缺省情況下,未指定匹配該地址池的DHCP客戶端所在的網段地址 |
指定中繼地址池對應的DHCP服務器地址 |
remote-server ip-address&<1-8> |
缺省情況下,未指定中繼地址池對應的DHCP服務器的地址 通過執行remote-server命令一次最多可以指定8個DHCP服務器的地址信息 |
配置DHCP中繼選擇DHCP服務器方式 |
remote-server algorithm { master-backup | polling } |
缺省情況下,DHCP中繼同時向所有DHCP服務器轉發DHCP請求報文(polling方式) |
(可選)配置DHCP服務器應答超時切換時間 |
dhcp-server timeout time |
缺省情況下,DHCP服務器應答超時切換時間為30秒 |
(可選)配置回切主用DHCP服務器並指定回切延遲時間 |
master-server switch-delay delay-time |
缺省情況下,DHCP中繼不回切到主用DHCP服務器 |
在某些組網中,多個DHCP中繼接口IP地址相同或者中繼接口IP到服務器沒有可達路由,用戶需要配置本命令選擇中繼設備上的另一個接口(一般選擇的是Loopback口)的IP地址填充到發送到DHCP服務器的DHCP請求報文中的源地址字段和Giaddr中。
當多個DHCP中繼接口IP地址相同時,導致DHCP中繼轉發DHCP應答報文時候無法根據目的IP地址找到唯一的出接口。配置本功能時需要先開啟DHCP中繼支持Option 82功能,DHCP中繼收到DHCP請求報文時在Option 82中的子選項sub-option5填充正確的子網網段,服務器可以根據中繼填充的sub-option5 來分配地址,之後DHCP中繼處理DHCP應答報文時通過MAC地址表中的接口信息轉發DHCP報文。
表3-20 指定DHCP中繼向DHCP服務器轉發報文的源地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
指定DHCP中繼向DHCP服務器轉發報文的源地址 |
dhcp relay source-address { ip-address | interface interface-type interface-number } |
缺省情況下,DHCP中繼向DHCP服務器轉發報文的源地址為向DHCP服務器轉發報文出接口的地址 一個接口下隻能指定一個DHCP中繼向DHCP服務器轉發報文的源地址 |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後DHCP中繼的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令清除DHCP中繼的統計信息。
表3-21 DHCP中繼顯示和維護
操作 |
命令 |
顯示接口上指定的DHCP服務器地址信息 |
display dhcp relay server-address [ interface interface-type interface-number ] |
顯示DHCP中繼上的Option 82配置信息 |
display dhcp relay information [ interface interface-type interface-number ] |
顯示DHCP中繼的用戶地址表項信息 |
display dhcp relay client-information [ interface interface-type interface-number | ip ip-address [ vpn-instance vpn-instance-name ] ] |
顯示DHCP中繼的相關報文統計信息 |
display dhcp relay statistics [ interface interface-type interface-number ] |
顯示DHCP中繼的MAC地址檢查表項 |
display dhcp relay check mac-address |
清除DHCP中繼的用戶地址表項信息 |
reset dhcp relay client-information [ interface interface-type interface-number | ip ip-address [ vpn-instance vpn-instance-name ] ] |
清除DHCP中繼的相關報文統計信息 |
reset dhcp relay statistics [ interface interface-type interface-number ] |
· DHCP客戶端所在網段為10.10.1.0/24,DHCP服務器的IP地址為10.1.1.1/24;
· 由於DHCP客戶端和DHCP服務器不在同一網段,因此,需要在客戶端所在網段設置DHCP中繼設備,以便客戶端可以從DHCP服務器申請到10.10.1.0/24網段的IP地址及相關配置信息;
· Switch A作為DHCP中繼通過端口(屬於VLAN10)連接到DHCP客戶端所在的網絡,交換機VLAN接口10的IP地址為10.10.1.1/24,VLAN接口20的IP地址為10.1.1.2/24。
圖3-3 DHCP中繼組網示意圖
# 配置各接口的IP地址(略)。
# 開啟DHCP服務。
<SwitchA> system-view
[SwitchA] dhcp enable
# 配置VLAN接口10工作在DHCP中繼模式。
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] dhcp select relay
# 配置DHCP服務器的地址。
[SwitchA-Vlan-interface10] dhcp relay server-address 10.1.1.1
配置完成後,DHCP客戶端可以通過DHCP中繼從DHCP服務器獲取IP地址及相關配置信息。通過display dhcp relay statistics命令可以顯示DHCP中繼轉發的DHCP報文統計信息;如果在DHCP中繼上通過dhcp relay client-information record命令開啟了DHCP中繼的用戶地址表項記錄功能,則可以通過display dhcp relay client-information命令可以顯示通過DHCP中繼獲取IP地址的客戶端信息。
· 由於DHCP中繼連接客戶端的接口IP地址與DHCP服務器的IP地址不在同一網段,因此需要在DHCP服務器上通過靜態路由或動態路由協議保證兩者之間路由可達。
· 為了使DHCP客戶端能從DHCP服務器獲得IP地址,還需要在DHCP服務器上進行一些配置。DHCP服務器的配置方法,請參見“2.17 DHCP服務器典型配置舉例”。
· 在DHCP中繼Switch A上開啟Option 82功能;
· 對包含Option 82的請求報文的處理策略為replace;
· Ciruict ID填充內容為company001,Remote ID填充內容為device001;
· Switch A將添加Option 82的DHCP請求報文轉發給DHCP服務器Switch B,使得DHCP客戶端可以獲取到IP地址。
如圖3-3所示。
# 配置各接口的IP地址(略)。
# 開啟DHCP服務。
<SwitchA> system-view
[SwitchA] dhcp enable
# 配置VLAN接口10工作在DHCP中繼模式。
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] dhcp select relay
# 指定DHCP服務器的地址。
[SwitchA-Vlan-interface10] dhcp relay server-address 10.1.1.1
# 配置Option 82的處理策略和填充內容。
[SwitchA-Vlan-interface10] dhcp relay information enable
[SwitchA-Vlan-interface10] dhcp relay information strategy replace
[SwitchA-Vlan-interface10] dhcp relay information circuit-id string company001
[SwitchA-Vlan-interface10] dhcp relay information remote-id string device001
為使Option 82功能正常使用,DHCP服務器也需要進行相應配置。
· DHCP客戶端所在網段為22.22.22.0/24;
· 由於DHCP客戶端和DHCP服務器不在同一網段,需要在客戶端所在網段設置DHCP中繼,以便DHCP客戶端可以從DHCP服務器申請到22.22.22.0/24網段的IP地址及相關配置信息;
· DHCP中繼Switch A通過VLAN接口2連接到DHCP客戶端所在的網絡,VLAN接口2的IP地址為22.22.22.1/24,通過VLAN接口3連接Switch B,VLAN接口3的IP地址為1.1.1.100/24,通過VLAN接口4連接Switch C,VLAN接口4的IP地址為2.2.2.100/24;
· Switch B配置了22.22.22.0網段的地址池,但未開啟DHCP服務;Switch C配置了22.22.22.0網段的地址池,也未開啟DHCP服務。
圖3-4 DHCP中繼組網示意圖
(1) 配置各設備上各接口的IP地址(略)。
(2) 配置DHCP服務器Switch B和Switch C(略)。
(3) 配置DHCP中繼Switch A。
# 開啟DHCP服務。
<SwitchA> system-view
[SwitchA] dhcp enable
# 配置VLAN接口2工作在DHCP中繼模式。
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] dhcp select relay
# 指定DHCP服務器的IP地址。
[SwitchA-Vlan-interface2] dhcp relay server-address 1.1.1.1
[SwitchA-Vlan-interface2] dhcp relay server-address 2.2.2.2
# 指定DHCP中繼選擇DHCP服務器方式為主備方式。
[SwitchA-Vlan-interface2] dhcp relay server-address algorithm master-backup
# 配置回切主用DHCP服務器並指定回切延遲時間為3分鍾。
[SwitchA-Vlan-interface2] dhcp relay master-server switch-delay 3
# 配置完成後,DHCP客戶端一開始不能申請到IP地址,等待大約30秒後打印日誌信息。
DHCPR/3/DHCPR_SERVERCHANGE:
Switched to the server at 2.2.2.2 because the current server did not respond.
# 用戶開啟Switch B的DHCP服務。
# 此時DHCP客戶端無法申請到IP地址,再等待大約3分鍾後打印日誌信息。
DHCPR/3/DHCPR_SWITCHMASTER:
Switched to the master DHCP server at 1.1.1.1.
# 此時DHCP客戶端可以成功申請到IP地址。
客戶端不能通過DHCP中繼獲得配置信息。
DHCP中繼或DHCP服務器的配置可能有問題。可以打開調試開關顯示調試信息,並通過執行display命令顯示接口狀態信息的方法來分析定位。
· 檢查DHCP服務器和DHCP中繼是否開啟了DHCP服務。
· 檢查DHCP服務器是否配置有DHCP客戶端所在網段的地址池。
· 檢查具有DHCP中繼功能的網絡設備和DHCP服務器是否配置有相互可達的路由。
· 檢查具有DHCP中繼功能的網絡設備是否在連接DHCP客戶端所在網段的接口上指定了正確的DHCP服務器地址。
為了方便用戶配置和集中管理,可以指定設備的接口作為DHCP客戶端,使用DHCP協議從DHCP服務器動態獲得IP地址等參數。
DHCP客戶端中對於接口的相關配置,目前隻能在三層以太網接口(包括子接口)、VLAN接口和三層聚合接口、三層聚合子接口上進行。
配置接口通過DHCP協議獲取IP地址,需要注意:
· 接口作為DHCP客戶端多次申請IP地址失敗後,將停止申請,並為接口配置缺省IP地址。
· 接口可以采用多種方式獲得IP地址,新的配置方式會覆蓋原有的配置方式。
· 當接口被配置為通過DHCP動態獲取IP地址後,不能再給該接口配置從IP地址。
· 如果DHCP服務器為接口分配的IP地址與設備上其他接口的IP地址在同一網段,則該接口不會使用該IP地址,且會再向DHCP服務器重新申請IP地址。
表4-1 配置接口通過DHCP協議獲取IP地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口通過DHCP協議獲取IP地址 |
ip address dhcp-alloc |
缺省情況下,接口不通過DHCP協議獲取IP地址 |
DHCP客戶端ID用來填充DHCP報文Option 61,作為識別DHCP客戶端的唯一標識。DHCP服務器可以根據客戶端ID為特定的客戶端分配特定的IP地址。DHCP客戶端ID包括類型和取值兩部分,用戶可以通過以下三種方法指定DHCP客戶端ID:當客戶端ID的取值為ASCII字符串時,對應的類型值為00;當客戶端ID的取值為十六進製數時,對應的類型值為該十六進製數的前兩個字符;當客戶端ID使用指定接口的MAC地址時,對應的類型值為01。以上三種方式都需要由用戶保證不同客戶端的客戶端ID不會相同。
表4-2 配置接口使用的DHCP客戶端ID
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口使用的DHCP客戶端ID |
dhcp client identifier { ascii ascii-string | hex hex-string | mac interface-type interface-number } |
缺省情況下,根據本接口MAC地址生成DHCP客戶端ID,如果本接口沒有MAC地址,則獲取設備第一個以太接口的MAC地址生成DHCP客戶端ID |
通常情況下,DHCP客戶端上開啟地址衝突檢查功能,通過發送和接收ARP報文,對DHCP服務器分配的IP地址進行地址衝突檢測。
如果攻擊者仿冒地址擁有者進行ARP應答,就可以欺騙DHCP客戶端,導致DHCP客戶端無法正常使用分配到的IP地址。在網絡中存在上述攻擊者時,建議在客戶端上關閉地址衝突檢查功能。
表4-3 開啟地址衝突檢查功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟地址衝突檢查功能 |
dhcp client dad enable |
缺省情況下,地址衝突檢查功能處於開啟狀態 |
DSCP優先級用來體現報文自身的優先等級,決定報文傳輸的優先程度。通過本配置可以指定DHCP客戶端發送的DHCP報文的DSCP優先級。
表4-4 配置DHCP客戶端發送DHCP報文的DSCP優先級
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
配置DHCP客戶端發送DHCP報文的DSCP優先級 |
dhcp client dscp dscp-value |
缺省情況下,DHCP客戶端發送的DHCP報文的DSCP優先級為56 |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後DHCP客戶端的信息,通過查看顯示信息驗證配置的效果。
表4-5 DHCP客戶端顯示和維護
操作 |
命令 |
顯示DHCP客戶端的相關信息 |
display dhcp client [ verbose ] [ interface interface-type interface-number ] |
Switch B的端口(屬於VLAN2)接入局域網,VLAN接口2通過DHCP協議從DHCP服務器獲取IP地址、DNS服務器地址和靜態路由信息:
· DHCP客戶端的IP地址所在網段為10.1.1.0/24;
· DNS服務器地址為20.1.1.1;
· 靜態路由信息為到達20.1.1.0/24網段的下一跳地址是10.1.1.2。
DHCP服務器需要通過自定義選項的方式配置Option 121的內容,以便為客戶端分配靜態路由信息。Option 121的格式如圖4-1所示。其中,目的描述符由子網掩碼長度和目的網絡地址兩部分組成。在本例中,目的描述符字段取值為18 14 01 01(十六進製數值,表示子網掩碼長度為24,目的網絡地址為20.1.1.0);下一跳地址字段取值為0A 01 01 02(十六進製數值,表示下一跳地址為10.1.1.2)。
圖4-1 Option 121選項格式
圖4-2 DHCP客戶端配置舉例組網圖
(1) 配置DHCP服務器Switch A
# 配置接口的IP地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 10.1.1.1 24
[SwitchA-Vlan-interface2] quit
# 開啟DHCP服務。
[SwitchA] dhcp enable
# 配置不參與自動分配的IP地址。
[SwitchA] dhcp server forbidden-ip 10.1.1.2
# 配置DHCP地址池0,采用動態綁定方式分配IP地址。可分配的網段為10.1.1.0/24,租約有效期限為10天,DNS服務器地址為20.1.1.1,到達20.1.1.0/24網段的下一跳地址是10.1.1.2。
[SwitchA] dhcp server ip-pool 0
[SwitchA-dhcp-pool-0] network 10.1.1.0 mask 255.255.255.0
[SwitchA-dhcp-pool-0] expired day 10
[SwitchA-dhcp-pool-0] dns-list 20.1.1.1
[SwitchA-dhcp-pool-0] option 121 hex 181401010A010102
(2) 配置DHCP客戶端Switch B
# 配置VLAN接口2通過DHCP動態獲取地址。
<SwitchB> system-view
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ip address dhcp-alloc
[SwitchB-Vlan-interface2] quit
# 通過display dhcp client命令可以查看Switch B申請到的IP地址和網絡配置參數。
[SwitchB] display dhcp client verbose
Vlan-interface2 DHCP client information:
Current state: BOUND
Allocated IP: 10.1.1.3 255.255.255.0
Allocated lease: 864000 seconds, T1: 331858 seconds, T2: 756000 seconds
Lease from May 21 19:00:29 2012 to May 31 19:00:29 2012
DHCP server: 10.1.1.1
Transaction ID: 0xcde72232
Classless static routes:
Destination: 20.1.1.0, Mask: 255.255.255.0, NextHop: 10.1.1.2
DNS servers: 20.1.1.1
Client ID type: acsii(type value=00)
Client ID value: 000c.29d3.8659-Vlan2
Client ID (with type) hex: 0030-3030-632e-3239-
6433-2e38-3635-392d-
4574-6830-2f30-2f32
T1 will timeout in 3 days 19 hours 48 minutes 43 seconds
# 通過display ip routing-table命令可以查看Switch B的路由表中添加了到達20.1.1.0/24網絡的靜態路由。
[SwitchB] display ip routing-table
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 Direct 0 0 10.1.1.3 Vlan2
10.1.1.3/32 Direct 0 0 127.0.0.1 InLoop0
20.1.1.0/24 Static 70 0 10.1.1.2 Vlan2
10.1.1.255/32 Direct 0 0 10.1.1.3 Vlan2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
設備隻有位於DHCP客戶端與DHCP服務器之間,或DHCP客戶端與DHCP中繼之間時,DHCP Snooping功能配置後才能正常工作;設備位於DHCP服務器與DHCP中繼之間時,DHCP Snooping功能配置後不能正常工作。
DHCP Snooping是DHCP的一種安全特性,具有如下功能:
網絡中如果存在私自架設的非法DHCP服務器,則可能導致DHCP客戶端獲取到錯誤的IP地址和網絡配置參數,從而無法正常通信。為了使DHCP客戶端能通過合法的DHCP服務器獲取IP地址,DHCP Snooping安全機製允許將端口設置為信任端口和不信任端口:
· 信任端口正常轉發接收到的DHCP報文。
· 不信任端口接收到DHCP服務器響應的DHCP-ACK和DHCP-OFFER報文後,丟棄該報文。
在DHCP Snooping設備上指向DHCP服務器方向的端口需要設置為信任端口,其他端口設置為不信任端口,從而保證DHCP客戶端隻能從合法的DHCP服務器獲取IP地址,私自架設的偽DHCP服務器無法為DHCP客戶端分配IP地址。
DHCP Snooping通過監聽DHCP-REQUEST報文和信任端口收到的DHCP-ACK報文,記錄DHCP Snooping表項,其中包括客戶端的MAC地址、DHCP服務器為DHCP客戶端分配的IP地址、與DHCP客戶端連接的端口及VLAN等信息。利用這些信息可以實現:
· ARP Detection:根據DHCP Snooping表項來判斷發送ARP報文的用戶是否合法,從而防止非法用戶的ARP攻擊。ARP Detection的詳細介紹請參見“安全配置指導”中的“ARP攻擊防禦”。
· MFF(MAC-Forced Forwarding):在MFF的自動方式中,設備截獲到用戶發送的ARP請求後,根據DHCP Snooping表項查找該用戶對應的網關地址,並回複網關的MAC地址,強製用戶將所有流量發送到網關,使得網關可以監控用戶之間的數據流量,從而防止用戶之間的惡意攻擊,更好的保障網絡安全。MFF的詳細介紹請參見“安全配置指導”中的“MFF”。
· IP Source Guard:通過動態獲取DHCP Snooping表項對端口轉發的報文進行過濾,防止非法報文通過該端口。IP Source Guard的詳細介紹請參見“安全配置指導”中的“IP Source Guard”。
· VLAN映射:發送給用戶的報文通過查找指定VLAN對應的DHCP Snooping表項中的DHCP客戶端IP地址、MAC地址和原始VLAN的信息,將報文的指定VLAN修改為原始VLAN。VLAN映射的詳細介紹請參見“二層技術-以太網交換配置指導”中的“VLAN映射”。
如圖5-1所示,在DHCP Snooping設備上指向DHCP服務器方向的端口需要設置為信任端口,以便DHCP Snooping設備正常轉發DHCP服務器的應答報文,保證DHCP客戶端能夠從合法的DHCP服務器獲取IP地址。
在多個DHCP Snooping設備級聯的網絡中,為了節省係統資源,不需要每台DHCP Snooping設備都記錄所有DHCP客戶端的IP地址和MAC地址的綁定信息,隻需在與客戶端直接相連不信任端口上記錄綁定信息。間接與DHCP客戶端相連的不信任端口不需要記錄IP地址和MAC地址綁定信息。
圖5-2 DHCP Snooping級聯組網圖
設備 |
記錄綁定信息的不信任端口 |
不記錄綁定信息的不信任端口 |
信任端口 |
Switch A |
GE1/0/1 |
GE1/0/3 |
GE1/0/2 |
Switch B |
GE1/0/3和GE1/0/4 |
GE1/0/1 |
GE1/0/2 |
Switch C |
GE1/0/1 |
GE1/0/3和GE1/0/4 |
GE1/0/2 |
Option 82記錄了DHCP客戶端的位置信息。管理員可以利用該選項定位DHCP客戶端,實現對客戶端的安全和計費等控製。Option 82的詳細介紹請參見“http://press/data/infoblade/Comware V5平台中文/1.1.07 三層技術-IP業務/1.1.07.03 DHCP/DHCP配置.htm - _Ref162336518”。
如果DHCP Snooping支持Option 82功能,則當設備接收到DHCP請求報文後,將根據報文中是否包含Option 82以及用戶配置的處理策略及填充模式等對報文進行相應的處理,並將處理後的報文轉發給DHCP服務器。具體的處理方式見表5-2。DHCP Snooping對Option 82的處理策略、填充模式與DHCP中繼相同。
當設備接收到DHCP服務器的響應報文時,如果報文中含有Option 82,則刪除Option 82,並轉發給DHCP客戶端;如果報文中不含有Option 82,則直接轉發。
表5-2 DHCP Snooping支持Option 82的處理方式
收到DHCP請求報文 |
處理策略 |
DHCP Snooping對報文的處理 |
收到的報文中帶有Option 82 |
Drop |
丟棄報文 |
Keep |
保持報文中的Option 82不變並進行轉發 |
|
Replace |
根據DHCP Snooping上配置的填充模式、內容、格式等填充Option 82,替換報文中原有的Option 82並進行轉發 |
|
收到的報文中不帶有Option 82 |
- |
根據DHCP Snooping上配置的填充模式、內容、格式等填充Option 82,添加到報文中並進行轉發 |
如果二層以太網接口加入聚合組,則在該接口上進行的DHCP Snooping相關配置不會生效;該接口退出聚合組後,之前的配置才會生效。
表5-3 DHCP Snooping配置任務簡介
配置任務 |
說明 |
詳細配置 |
配置DHCP Snooping基本功能 |
必選 |
|
配置DHCP Snooping支持Option 82功能 |
可選 |
|
配置DHCP Snooping表項備份功能 |
可選 |
|
配置防止DHCP餓死攻擊 |
可選 |
|
配置防止偽造DHCP請求方向報文攻擊 |
可選 |
|
配置接口動態學習DHCP Snooping表項的最大數目 |
可選 |
|
配置DHCP Snooping報文限速功能 |
可選 |
|
配置DHCP Snooping報文阻斷功能 |
可選 |
|
開啟DHCP Snooping日誌功能 |
可選 |
配置DHCP Snooping基本功能時,需要注意:
· 為了使DHCP客戶端能從合法的DHCP服務器獲取IP地址,必須將與合法DHCP服務器相連的端口設置為信任端口,設置的信任端口和與DHCP客戶端相連的端口必須在同一個VLAN內。
· 目前,可以設置為DHCP Snooping信任端口的接口類型包括:二層以太網接口、二層聚合接口、三層以太網接口、三層聚合接口、三層聚合子接口。關於聚合接口的詳細介紹,請參見“二層技術-以太網交換配置指導”中的“以太網鏈路聚合”。
· 如果二層以太網接口加入聚合組,則在該接口上進行的DHCP Snooping相關配置不會生效;該接口退出聚合組後,之前的配置才會生效。
· DHCP Snooping功能可以與QinQ功能同時使用,通過DHCP Snooping表項記錄客戶端發送DHCP報文的VLAN Tag信息。QinQ功能的詳細介紹,請參見“二層技術-以太網交換”中的“QinQ”。
在一台DHCP Snooping設備上,如果全局開啟了DHCP Snooping功能,則設備上所有VLAN內的DHCP Snooping功能也同時開啟。
對於某些組網來說,管理員隻需要在設備在某些特定VLAN內開啟DHCP Snooping功能,而不需要在整個設備上開啟DHCP Snooping功能。為了滿足此需求,設備支持在指定VLAN內開啟DHCP Snooping功能,並在VLAN內配置DHCP Snooping信任端口和開啟端口的DHCP Snooping表項記錄功能。
在一台設備上,全局DHCP Snooping功能和VLAN內的DHCP Snooping功能關係如下:
· 如果全局開啟了DHCP Snooping基本功能(包括開啟DHCP Snooping功能、配置信任端口和配置DHCP Snooping表項記錄功能),隻能使用對應的全局命令關閉功能,使用VLAN內的命令關閉功能不生效;
· 如果VLAN內開啟了DHCP Snooping基本功能(包括開啟DHCP Snooping功能、配置信任端口和配置DHCP Snooping表項記錄功能),隻能使用對應的VLAN內命令關閉功能,使用全局命令關閉功能不生效。
表5-4 配置DHCP Snooping基本功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟DHCP Snooping功能 |
dhcp snooping enable |
缺省情況下,DHCP Snooping功能處於關閉狀態 |
進入接口視圖 |
interface interface-type interface-number |
此接口為連接DHCP服務器的接口 |
配置端口為信任端口 |
dhcp snooping trust |
缺省情況下,在開啟DHCP Snooping功能後,設備的所有端口均為不信任端口 |
退回係統視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
此接口為連接DHCP客戶端的接口 |
(可選)開啟端口的DHCP Snooping表項記錄功能 |
缺省情況下,端口的DHCP Snooping表項記錄功能處於關閉狀態 |
表5-5 在VLAN中配置DHCP Snooping基本功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
在指定VLAN內開啟DHCP Snooping功能 |
dhcp snooping enable vlan vlan-id-list |
缺省情況下,所有VLAN內的DHCP Snooping功能處於關閉狀態 |
進入VLAN視圖 |
vlan vlan-id |
該VLAN為開啟了DHCP Snooping功能的VLAN |
配置指定接口為VLAN下DHCP Snooping功能的信任端口 |
dhcp snooping trust interface interface-type interface-number |
缺省情況下,在開啟DHCP Snooping功能後,VLAN內的所有接口均為不信任端口 |
(可選)開啟VLAN的DHCP Snooping表項記錄功能 |
dhcp snooping binding record |
缺省情況下,VLAN的DHCP Snooping表項記錄功能處於關閉狀態 |
當管理員在設備或VLAN中開啟DHCP Snooping功能後,該設備或整個VLAN內的所有接口也都開啟了DHCP Snooping功能。為了靈活控製DHCP Snooping功能生效的接口範圍,用戶可以通過本功能關閉某個接口上的DHCP Snooping功能。
表5-6 關閉接口的DHCP Snooping功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
關閉接口的DHCP Snooping功能 |
dhcp snooping disable |
缺省情況下,當接口所在VLAN或設備上已經開啟DHCP Snooping功能,接口的DHCP Snooping功能是開啟的;當接口所在VLAN或設備上未開啟DHCP Snooping功能,接口的DHCP Snooping功能是關閉的 |
配置DHCP Snooping支持Option 82功能時,需要注意:
· 如果二層以太網接口加入聚合組,則在該接口上進行的DHCP Snooping支持Option 82功能的配置不會生效;該接口退出聚合組後,之前的配置才會生效。
· 為使Option 82功能正常使用,需要在DHCP服務器和DHCP Snooping設備上都進行相應配置。 DHCP服務器的相關配置請參見“http://press/data/infoblade/Comware V5平台中文/1.1.07 三層技術-IP業務/1.1.07.03 DHCP/DHCP配置.htm - _Ref304276600”。
· 如果以設備名稱(sysname)作為節點標識填充DHCP報文的Option 82,則設備名稱中不能包含空格;否則,DHCP Snooping將不處理該報文。用戶可以通過sysname命令配置設備名稱,該命令的詳細介紹請參見“基本配置命令參考”中的“設備管理”。
· DHCP Snooping功能和QinQ功能同時使用,或DHCP Snooping設備接收到的DHCP報文帶有兩層VLAN Tag時,如果采用verbose模式填充Option 82,則sub-option 1中VLAN ID字段的格式為“第一層VLAN Tag.第二層VLAN Tag”。例如,第一層VLAN Tag為10(十六進製值為a),第二層VLAN Tag為20(十六進製值為14),則VLAN ID字段的內容為“000a.0014”。
表5-7 配置DHCP Snooping支持Option 82功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
開啟DHCP Snooping支持Option 82功能 |
dhcp snooping information enable |
缺省情況下,DHCP Snooping支持Option 82功能處於關閉狀態 |
(可選)配置DHCP Snooping對包含Option 82的請求報文的處理策略 |
dhcp snooping information strategy { drop | keep | replace } |
缺省情況下,對帶有Option 82的請求報文的處理策略為replace DHCP Snooping對包含Option 82請求報文的處理策略為replace時,需要配置Option 82的填充模式和填充格式;處理策略為keep或drop時,不需要配置Option 82的填充模式和填充格式。 |
(可選)配置Circuit ID子選項的填充模式和填充格式 |
dhcp snooping information circuit-id { [ vlan vlan-id ] string circuit-id | { normal | verbose [ node-identifier { mac | sysname | user-defined node-identifier } ] } [ format { ascii | hex } ] } |
缺省情況下,Circuit ID子選項的填充模式為Normal,填充格式為hex 如果以設備的係統名稱(sysname)作為節點標識填充DHCP報文的Option 82,則係統名稱中不能包含空格;否則,DHCP Snooping添加或替換Option 82失敗 |
(可選)配置Remote ID子選項的填充模式和填充格式 |
dhcp snooping information remote-id { normal [ format { ascii | hex } ] | [ vlan vlan-id ] string remote-id | sysname } |
缺省情況下,Remote ID子選項的填充模式為Normal,填充格式為hex |
DHCP Snooping設備重啟後,設備上記錄的DHCP Snooping表項將丟失。如果DHCP Snooping與安全模塊(如IP Source Guard)配合使用,則表項丟失會導致安全模塊無法通過DHCP Snooping獲取到相應的表項,進而導致DHCP客戶端不能順利通過安全檢查、正常訪問網絡。
DHCP Snooping表項備份功能將DHCP Snooping表項保存到指定的文件中,DHCP Snooping設備重啟後,自動根據該文件恢複DHCP Snooping表項,從而保證DHCP Snooping表項不會丟失。
表5-8 配置DHCP Snooping表項固化功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
指定存儲DHCP Snooping表項的文件名稱 |
dhcp snooping binding database filename { filename | url url [ username username [ password { cipher | simple } string ] ] } |
缺省情況下,未指定存儲文件名稱 執行本命令後,會立即觸發一次表項備份。之後,如果未配置dhcp snooping binding database update interval命令,若表項發生變化,默認在300秒之後刷新存儲文件;若表項未發生變化,則不再刷新存儲文件。如果配置了dhcp snooping binding database update interval命令,若表項發生變化,則到達刷新時間間隔後刷新存儲文件;若表項未發生變化,則不再刷新存儲文件 |
(可選)將當前的DHCP Snooping表項保存到用戶指定的文件中 |
dhcp snooping binding database update now |
本命令隻用來觸發一次DHCP Snooping表項的備份 |
(可選)配置刷新DHCP Snooping表項存儲文件的延遲時間 |
dhcp snooping binding database update interval interval |
缺省情況下,若DHCP Snooping表項不變化,則不刷新存儲文件;若DHCP Snooping表項發生變化,默認在300秒之後刷新存儲文件 |
執行undo dhcp snooping enable命令關閉DHCP Snooping功能後,設備會刪除所有DHCP Snooping表項,文件中存儲的DHCP Snooping表項也將被刪除。
DHCP餓死攻擊是指攻擊者偽造chaddr字段各不相同的DHCP請求報文,向DHCP服務器申請大量的IP地址,導致DHCP服務器地址池中的地址耗盡,無法為合法的DHCP客戶端分配IP地址,或導致DHCP服務器消耗過多的係統資源,無法處理正常業務。DHCP報文字段的相關內容請參見“1.3 DHCP報文格式”。
如果封裝DHCP請求報文的數據幀的源MAC地址各不相同,則通過mac-address max-mac-count命令限製端口可以學習到的MAC地址數,並配置學習到的MAC地址數達到最大值時,丟棄源MAC地址不在MAC地址表裏的報文,能夠避免攻擊者申請過多的IP地址,在一定程度上緩解DHCP餓死攻擊。此時,不存在DHCP餓死攻擊的端口下的DHCP客戶端可以正常獲取IP地址,但存在DHCP餓死攻擊的端口下的DHCP客戶端仍可能無法獲取IP地址。
如果封裝DHCP請求報文的數據幀的MAC地址都相同,則通過mac-address max-mac-count命令無法防止DHCP餓死攻擊。在這種情況下,需要開啟DHCP Snooping的MAC地址檢查功能。開啟該功能後,DHCP Snooping設備檢查接收到的DHCP請求報文中的chaddr字段和數據幀的源MAC地址字段是否一致。如果一致,則認為該報文合法,將其轉發給DHCP服務器;如果不一致,則丟棄該報文。mac-address max-mac-count命令的詳細介紹,請參見“二層技術-以太網交換”中的“MAC地址表”。
表5-9 開啟DHCP Snooping的MAC地址檢查功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
開啟DHCP Snooping的MAC地址檢查功能 |
dhcp snooping check mac-address |
缺省情況下,DHCP Snooping的MAC地址檢查功能處於關閉狀態 |
本功能用來檢查DHCP續約報文、DHCP-DECLINE和DHCP-RELEASE三種DHCP請求方向的報文,以防止非法客戶端偽造這三種報文對DHCP服務器進行攻擊。
偽造DHCP續約報文攻擊是指攻擊者冒充合法的DHCP客戶端,向DHCP服務器發送偽造的DHCP續約報文,導致DHCP服務器和DHCP客戶端無法按照自己的意願及時釋放IP地址租約。如果攻擊者冒充不同的DHCP客戶端發送大量偽造的DHCP續約報文,則會導致大量IP地址被長時間占用,DHCP服務器沒有足夠的地址分配給新的DHCP客戶端。
偽造DHCP-DECLINE/DHCP-RELEASE報文攻擊是指攻擊者冒充合法的DHCP客戶端,向DHCP服務器發送偽造的DHCP-DECLINE/DHCP-RELEASE報文,導致DHCP服務器錯誤終止IP地址租約。
在DHCP Snooping設備上開啟DHCP請求方向報文檢查功能,可以有效地防止偽造DHCP請求方向報文攻擊。如果開啟了該功能,則DHCP Snooping設備接收到上述報文後,檢查本地是否存在與請求方向報文匹配的DHCP Snooping表項。若存在,則接收報文信息與DHCP Snooping表項信息一致時,認為該報文為合法的DHCP請求方向報文,將其轉發給DHCP服務器;不一致時,認為該報文為偽造的DHCP請求方向報文,將其丟棄。若不存在,則認為該報文合法,將其轉發給DHCP服務器。
表5-10 開啟DHCP Snooping的DHCP請求方向報文檢查功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
開啟DHCP Snooping的DHCP請求方向報文檢查功能 |
dhcp snooping check request-message |
缺省情況下,DHCP Snooping的DHCP請求方向報文檢查功能處於關閉狀態 |
通過本配置可以限製接口動態學習DHCP Snooping表項的最大數目,以防止接口學習到大量DHCP Snooping表項,占用過多的係統資源。
表5-11 配置接口動態學習DHCP Snooping表項的最大數目
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口動態學習DHCP Snooping表項的最大數目 |
dhcp snooping max-learning-num max-number |
缺省情況下,不限製接口動態學習DHCP Snooping表項的數目 |
為了避免非法用戶發送大量DHCP報文,對網絡造成攻擊,DHCP Snooping支持報文限速功能,限製接口接收DHCP報文的速率。當接口接收的DHCP報文速率超過限製的最高速率時,DHCP Snooping設備將丟棄超過速率限製的報文。
表5-12 配置DHCP Snooping報文限速功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
開啟DHCP Snooping的報文限速功能 |
dhcp snooping rate-limit rate |
缺省情況下, DHCP Snooping的報文限速功能處於關閉狀態,即不限製接口接收DHCP報文的速率 如果二層以太網接口加入了聚合組,則該接口采用對應二層聚合接口下的DHCP Snooping報文限速配置,如果二層以太網接口離開聚合組,則該接口采用二層以太網接口下的DHCP Snooping報文限速配置 |
在某些組網環境下,用戶需要在DHCP Snooping設備的某一端口上丟棄該端口收到的所有DHCP請求方向報文,而又不影響其他端口正常接收DHCP報文。這時,用戶可以在該端口上開啟DHCP Snooping報文阻斷功能。
當端口上開啟了DHCP Snooping報文阻斷功能後,該端口收到的所有DHCP請求方向的報文都將被丟棄。
表5-13 開啟DHCP Snooping報文阻斷功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
開啟DHCP Snooping報文阻斷功能 |
dhcp snooping deny |
缺省情況下,DHCP Snooping報文阻斷功能處於關閉狀態 |
DHCP Snooping日誌是為了滿足管理員的審計需求。DHCP Snooping設備生成DHCP Snooping日誌信息會交給信息中心模塊處理,信息中心模塊的配置將決定日誌信息的發送規則和發送方向。關於信息中心的詳細描述請參見“網絡管理和監控配置指導”中的“信息中心”。
當DHCP Snooping設備輸出大量日誌信息時,可能會降低設備性能。為了避免該情況的發生,用戶可以關閉DHCP Snooping日誌信息功能,使得DHCP Snooping設備不再輸出日誌信息。
表5-14 開啟DHCP Snooping日誌信息功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
開啟DHCP Snooping日誌信息功能 |
dhcp snooping log enable |
缺省情況下,DHCP Snooping日誌信息功能處於關閉狀態 |
在完成上述配置後,在任意視圖下執行display命令可以顯示DHCP Snooping的配置情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除DHCP Snooping的統計信息。
表5-15 DHCP Snooping顯示和維護
操作 |
命令 |
顯示DHCP Snooping表項信息 |
display dhcp snooping binding [ ip ip-address [ vlan vlan-id ] ] [ verbose ] |
顯示DHCP Snooping上Option 82的配置信息 |
display dhcp snooping information { all | interface interface-type interface-number } |
顯示DHCP Snooping設備上的DHCP報文統計信息 |
display dhcp snooping packet statistics [ slot slot-number ] |
顯示信任端口信息 |
display dhcp snooping trust |
顯示DHCP Snooping表項備份信息 |
display dhcp snooping binding database |
清除DHCP Snooping表項 |
reset dhcp snooping binding { all | ip ip-address [ vlan vlan-id ] } |
清除DHCP Snooping設備上的DHCP報文統計信息 |
reset dhcp snooping packet statistics [ slot slot-number ] |
Switch B通過以太網端口GigabitEthernet1/0/1連接到合法DHCP服務器,通過以太網端口GigabitEthernet1/0/3連接到非法DHCP服務器,通過GigabitEthernet1/0/2連接到DHCP客戶端。要求:
· 與合法DHCP服務器相連的端口可以轉發DHCP服務器的響應報文,而其他端口不轉發DHCP服務器的響應報文。
· 記錄DHCP-REQUEST報文和信任端口收到的DHCP-ACK報文中DHCP客戶端IP地址及MAC地址的綁定信息。
圖5-3 DHCP Snooping組網示意圖
# 全局開啟DHCP Snooping功能。
<SwitchB> system-view
[SwitchB] dhcp snooping enable
# 設置GigabitEthernet1/0/1端口為信任端口。
[SwitchB] interface gigabitethernet 1/0/1
[SwitchB-GigabitEthernet1/0/1] dhcp snooping trust
[SwitchB-GigabitEthernet1/0/1] quit
# 在GigabitEthernet1/0/2上開啟DHCP Snooping表項功能。
[SwitchB] interface gigabitethernet 1/0/2
[SwitchB-GigabitEthernet1/0/2] dhcp snooping binding record
[SwitchB-GigabitEthernet1/0/2] quit
配置完成後,DHCP客戶端隻能從合法DHCP服務器獲取IP地址和其它配置信息,非法DHCP服務器無法為DHCP客戶端分配IP地址和其他配置信息。且使用display dhcp snooping binding可查詢到獲取到的DHCP Snooping表項。
Switch B通過以太網端口GigabitEthernet1/0/1連接到合法DHCP服務器,通過以太網端口GigabitEthernet1/0/3連接到非法DHCP服務器,通過GigabitEthernet1/0/2連接到DHCP客戶端。要求:
· VLAN 100上與合法DHCP服務器相連的端口可以轉發DHCP服務器的響應報文,而其他端口不轉發DHCP服務器的響應報文。
· 記錄DHCP-REQUEST報文和信任端口收到的DHCP-ACK報文中DHCP客戶端IP地址及MAC地址的綁定信息。
圖5-4 按VLAN開啟DHCP Snooping配置組網示意圖
# 配置端口GigabitEthernet1/0/1、GigabitEthernet1/0/2和GigabitEthernet1/0/3為Access端口,允許VLAN 100通過。
<SwitchB> system-view
[SwitchB] vlan 100
[SwitchB-vlan100] port gigabitethernet 1/0/1 to gigabitethernet 1/0/1
[SwitchB-vlan100] quit
# 在VLAN100內開啟DHCP Snooping功能。
[SwitchB] dhcp snooping enable vlan 100
# 指定端口GigabitEthernet1/0/1為VLAN 100下DHCP Snooping功能的信任端口。
[SwitchB] vlan 100
[SwitchB-vlan100] dhcp snooping trust gigabitethernet 1/0/1
# 在VLAN 100內開啟DHCP Snooping表項記錄功能。
[SwitchB-vlan100] dhcp snooping binding record
[SwitchB-vlan100] quit
配置完成後,DHCP客戶端隻能從合法DHCP服務器獲取IP地址和其它配置信息,非法DHCP服務器無法為DHCP客戶端分配IP地址和其他配置信息。且使用display dhcp snooping binding可查詢到獲取到的DHCP Snooping表項。
· Switch B上開啟DHCP Snooping功能,並支持Option 82功能;
· 對包含Option 82的請求報文的處理策略為replace;
· 在GigabitEthernet1/0/2上配置Circuit ID填充內容為company001,Remote ID填充內容為device001;
· 在GigabitEthernet1/0/3上配置Circuit ID以verbose模式填充,接入節點標識為sysname,填充格式為ASCII格式,Remote ID填充內容為device001;
圖5-5 DHCP Snooping支持Option 82配置示意圖
# 開啟DHCP Snooping功能。
<SwitchB> system-view
[SwitchB] dhcp snooping enable
# 設置GigabitEthernet1/0/1端口為信任端口。
[SwitchB] interface gigabitethernet 1/0/1
[SwitchB-GigabitEthernet1/0/1] dhcp snooping trust
[SwitchB-GigabitEthernet1/0/1] quit
# 在GigabitEthernet1/0/2上配置DHCP Snooping支持Option 82功能。
[SwitchB] interface gigabitethernet 1/0/2
[SwitchB-GigabitEthernet1/0/2] dhcp snooping information enable
[SwitchB-GigabitEthernet1/0/2] dhcp snooping information strategy replace
[SwitchB-GigabitEthernet1/0/2] dhcp snooping information circuit-id string company001
[SwitchB-GigabitEthernet1/0/2] dhcp snooping information remote-id string device001
[SwitchB-GigabitEthernet1/0/2] quit
# 在端口GigabitEthernet1/0/3上配置DHCP Snooping支持Option 82功能。
[SwitchB] interface gigabitethernet 1/0/3
[SwitchB-GigabitEthernet1/0/3] dhcp snooping information enable
[SwitchB-GigabitEthernet1/0/3] dhcp snooping information strategy replace
[SwitchB-GigabitEthernet1/0/3] dhcp snooping information circuit-id verbose node-identifier sysname format ascii
[SwitchB-GigabitEthernet1/0/3] dhcp snooping information remote-id string device001
配置完成後,使用display dhcp snooping information命令可查看到DHCP Snooping在端口GigabitEthernet1/0/2和GigabitEthernet1/0/3上Option 82的配置信息。
BOOTP客戶端中對於接口的相關配置,目前隻能在三層以太網接口(包括子接口)、三層聚合接口、三層聚合子接口和VLAN接口上進行。
BOOTP是Bootstrap Protocol(自舉協議)的簡稱。指定設備的接口作為BOOTP客戶端後,該接口可以通過BOOTP協議從BOOTP服務器獲取IP地址等信息,從而方便用戶配置。
使用BOOTP協議時,管理員需要在BOOTP服務器上為每個BOOTP客戶端配置BOOTP參數文件,該文件包括BOOTP客戶端的MAC地址及其對應的IP地址等信息。當BOOTP客戶端向BOOTP服務器發起請求時,服務器會查找BOOTP參數文件,並返回相應的配置信息。
由於BOOTP協議需要在BOOTP服務器上為每個客戶端事先配置參數文件,BOOTP一般運行在相對穩定的環境中。當網絡變化頻繁時,推薦采用DHCP協議。
由於DHCP服務器可以與BOOTP客戶端進行交互,因此用戶可以不配置BOOTP服務器,而使用DHCP服務器為BOOTP客戶端分配IP地址。
BOOTP客戶端從BOOTP服務器動態獲取IP地址的具體過程如下:
(1) BOOTP客戶端以廣播方式發送BOOTP請求報文,其中包含了BOOTP客戶端的MAC地址;
(2) BOOTP服務器接收到請求報文後,根據報文中的BOOTP客戶端MAC地址,從配置文件數據庫中查找對應的IP地址等信息,並向客戶端返回包含這些信息的BOOTP響應報文;
(3) BOOTP客戶端從接收到的響應報文中即可獲得IP地址等信息。
在下麵的IP地址動態獲取過程中,BOOTP服務器的功能可以用DHCP服務器替代。
與BOOTP相關的協議規範有:
· RFC 951:Bootstrap Protocol (BOOTP)
· RFC 2132:DHCP Options and BOOTP Vendor Extensions
· RFC 1542:Clarifications and Extensions for the Bootstrap Protocol
表6-1 配置接口通過BOOTP協議獲取IP地址
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口通過BOOTP協議獲取IP地址 |
ip address bootp-alloc |
缺省情況下,接口不通過BOOTP協議獲取IP地址 |
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後BOOTP客戶端的運行情況,通過查看顯示信息驗證配置的效果。
表6-2 BOOTP客戶端顯示和維護
操作 |
命令 |
顯示BOOTP客戶端的相關信息 |
display bootp client [ interface interface-type interface-number ] |
Switch B的端口(屬於VLAN10)接入局域網,VLAN接口10通過BOOTP協議從DHCP服務器獲取IP地址。
如圖2-2所示。
下麵隻列出圖2-2中,作為客戶端的Switch B的配置。
# 配置VLAN接口10通過BOOTP動態獲取地址。
<SwitchB> system-view
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] ip address bootp-alloc
通過display bootp client命令可以查看BOOTP客戶端申請到的IP地址。
為了使BOOTP客戶端能從DHCP服務器獲得IP地址,還需要在DHCP服務器上進行一些配置,具體內容請參見“2.17 DHCP服務器典型配置舉例”。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!