DHCP允許計算機動態地獲取IP位址,而不是靜態為每台主機指定地址。
DHCP能夠分配其他配置參數,例如客戶端的啟動配置文件,使客戶端僅用一個消息就獲取它所需要的所有配置信息。
動態分配機制:通過DHCP為主機分配一個有使用期限(這個使用期限通常叫做租期)的IP位址。這種分配機制適用於主機需要臨時接入網絡或者空閒地址數小於網絡主機總數且主機不需要永久連接網絡的場景。
靜態分配機制:網絡管理員通過DHCP為指定的主機分配固定的IP位址。相比手工靜態配置IP位址,通過DHCP方式靜態分配機制避免人工配置發生錯誤,方便管理員統一維護管理。
降低客戶端的配置和維護成本。 DHCP易配置部署,對於非技術用戶,DHCP能夠將客戶端與配置相關的操作降至最低,並能夠降低遠程部署和維護成本。
集中管理。DHCP伺服器可以管理多個網段的配置信息,當某個網段的配置發生變化時,管理員只需要更新DHCP伺服器上的相關配置即可。
圖:典型組網
一、DHCP組網中,包括以下三種角色
1、DHCP伺服器
DHCP伺服器負責從地址池中選擇IP位址分配至DHCP客戶端,還可以為DHCP客戶端提供其他網絡參數,如默認網關地址、DNS伺服器地址和WINS伺服器地址。DHCP伺服器可以接收處理來自本網段或跨網段由DHCP中繼轉發的DHCP請求報文。
2、DHCP客戶端
DHCP客戶端發送DHCP請求報文、通過BOOTP或DHCP協議請求獲取IP位址等網絡參數的設備。例如,IP電話、PC、手機、無盤工作站等。
3、DHCP中繼
DHCP中繼負責轉發DHCP伺服器和DHCP客戶端之間的DHCP報文,協助DHCP伺服器向DHCP客戶端動態分配網絡參數的設備。
DHCP客戶端廣播發送請求報文(即目的IP位址為255.255.255.255),位於同一網段內的DHCP伺服器能夠接收請求報文。如果DHCP客戶端和DHCP伺服器不在同一個網段,DHCP伺服器無法接收來自客戶端的請求報文,此時,需要通過DHCP中繼來轉發DHCP報文。不同於傳統的IP報文轉發,DHCP中繼接收到DHCP請求或應答報文後,會重新修改報文格式並生成一個新的DHCP報文再進行轉發。
二、DHCP原理描述
DHCP伺服器給首次接入網絡的客戶端分配IP
1、無中繼場景
在沒有部署DHCP中繼的場景下,首次接入網絡DHCP客戶端與DHCP伺服器的報文交互過程,該過程稱為DHCP報文四步交互。
第一步:發現階段
首次接入網絡的DHCP客戶端不知道DHCP伺服器的IP位址,為了學習到DHCP伺服器的IP位址,DHCP客戶端以廣播方式發送DHCP DISCOVER報文(目的IP位址為255.255.255.255)給同一網段內的所有設備(包括DHCP伺服器或中繼)。
第二步:提供階段
與DHCP客戶端位於同一網段的DHCP伺服器都會接收到DHCP DISCOVER報文,DHCP伺服器選擇跟接收DHCP DISCOVER報文接口的IP位址處於同一網段的地址池,並且從中選擇一個可用的IP位址,然後通過DHCP OFFER報文發送給DHCP客戶端。
第三步:選擇階段
如果有多個DHCP伺服器向DHCP客戶端回應DHCP OFFER報文,則DHCP客戶端一般只接收第一個收到的DHCP OFFER報文,然後以廣播方式發送DHCP REQUEST報文,它將選擇某個DHCP伺服器提供的IP位址,其他DHCP伺服器可以重新將曾經分配給客戶端的IP位址分配給其他客戶端。
第四步:確認階段
當DHCP伺服器收到DHCP客戶端發送的DHCP REQUEST報文後,DHCP伺服器回應DHCP ACK報文,表示DHCP REQUEST報文中請求的IP位址分配給客戶端使用。
2、有中繼場景
有DHCP中繼的場景中,首次接入網絡的DHCP客戶端和DHCP伺服器的工作原理與無中繼場景時DHCP客戶端首次接入網絡的工作原理相同。主要差異是DHCP中繼在DHCP伺服器和DHCP客戶端之間轉發DHCP報文,以保證DHCP伺服器和DHCP客戶端可以正常交互。如下圖:
3、DHCP客戶端重用曾經使用過的地址的工作原理
DHCP客戶端非首次接入網絡時,可以重用曾經使用過的地址。如圖所示,DHCP客戶端與DHCP伺服器交互DHCP報文,以重新獲取之前使用的IP位址等網絡參數,該過程稱為兩步交互。
第一步:選擇階段
客戶端廣播發送包含前一次分配的IP位址的DHCP REQUEST報文,請求的IP位址選項欄位填入曾經使用過的IP位址。
第二步:確認階段
DHCP伺服器收到DHCP REQUEST報文後,根據DHCP REQUEST報文中攜帶的MAC地址來查找有沒有相應的租約記錄,如果有則返回DHCP ACK報文,通知DHCP客戶端可以繼續使用這個IP位址。否則,保持沉默,等待客戶端重新發送DHCP DISCOVER報文請求新的IP位址。
4、DHCP客戶端更新租期的工作原理
DHCP伺服器採用動態分配機制給客戶端分配IP位址時,分配出去的IP位址有租期限制。
DHCP客戶端向伺服器申請地址時可以攜帶期望租期,伺服器在分配租期時把客戶端期望租期和地址池中租期配置比較,分配其中一個較短的租期給客戶端。租期到期或者客戶端下線釋放地址後,伺服器會收回該IP位址,收回的IP位址可以繼續分配給其他客戶端使用。
這種機制可以提高IP位址的利用率,避免客戶端下線後IP位址繼續被占用。如果DHCP客戶端希望繼續使用該地址,需要更新IP位址的租期(如延長IP位址租期)。
1.當租期達到50%(T1)時,DHCP客戶端會自動以單播的方式向DHCP伺服器發送DHCP REQUEST報文,請求更新IP位址租期。如果收到DHCP伺服器回應的DHCP ACK報文,則租期更新成功(即租期從0開始計算);如果收到DHCP NAK報文,則重新發送DHCP DISCOVER報文請求新的IP位址。
2.當租期達到87.5%(T2)時,如果仍未收到DHCP伺服器的應答,DHCP客戶端會自動以廣播的方式向DHCP伺服器發送DHCP REQUEST報文,請求更新IP位址租期。如果收到DHCP伺服器回應的DHCP ACK報文,則租期更新成功(即租期從0開始計算);如果收到DHCP NAK報文,則重新發送DHCP DISCOVER報文請求新的IP位址。
3.如果租期時間到時都沒有收到伺服器的回應,客戶端停止使用此IP位址,重新發送DHCP DISCOVER報文請求新的IP位址。
三、DHCP配置舉例
配置設備作為DHCP伺服器示例(基於接口地址池)
1、組網需求
如圖所示,某企業為辦公終端規劃了兩個網段,網段10.1.1.0/24內PC為員工固定辦公終端,網段10.1.2.0/24供企業出差人員臨時接入網絡。為方便管理員統一管理,希望企業終端能夠自動獲取IP位址和DNS伺服器IP位址(當用戶希望以域名方式訪問時需要配置域名解析的DNS伺服器)。其中,企業管理者的辦公PC(Client_1)由於業務需要,希望使用固定IP位址為10.1.1.100/24。
2、配置思路
基於接口地址池的DHCP伺服器的配置思路如下:
通過在Router上配置DHCP伺服器,實現為企業的兩個網段內終端動態分配IP位址和DNS伺服器地址。其中,網段10.1.1.0/24內PC為員工固定辦公終端,IP位址租期配置為30天,並通過DHCP靜態方式為DHCP Client_1分配固定IP位址(10.1.1.100/24);網段10.1.2.0/24供企業出差人員臨時接入網絡,IP位址租期配置為2天。
3、操作步驟
(1)使能DHCP服務
[Huawei] sysname Router
[Router] dhcp enable
(2)配置接口加入VLAN
# 配置Eth2/0/0接口加入VLAN10。
[Router] vlan batch 10 to 11
[Router] interface ethernet 2/0/0
[Router-Ethernet2/0/0] port link-type access
[Router-Ethernet2/0/0] port default vlan 10
[Router-Ethernet2/0/0] quit
# 配置Eth2/0/1加接口入VLAN11。
[Router] interface ethernet 2/0/1
[Router-Ethernet2/0/1] port link-type access
[Router-Ethernet2/0/1] port default vlan 11
[Router-Ethernet2/0/1] quit
(3)配置VLANIF接口IP位址
# 配置VLANIF10接口地址。
[Router] interface vlanif 10
[Router-Vlanif10] ip address 10.1.1.1 24
[Router-Vlanif10] quit
# 配置VLANIF11接口地址。
[Router] interface vlanif 11
[Router-Vlanif11] ip address 10.1.2.1 24
[Router-Vlanif11] quit
(4)配置接口地址池
# 配置VLANIF10接口下的客戶端從接口地址池中獲取IP位址和相關網絡參數。
[Router] interface vlanif 10
[Router-Vlanif10] dhcp select interface
[Router-Vlanif10] dhcp server lease day 30
[Router-Vlanif10] dhcp server domain-name huawei.com
[Router-Vlanif10] dhcp server dns-list 10.1.1.2
[Router-Vlanif10] dhcp server excluded-ip-address 10.1.1.2
[Router-Vlanif10] dhcp server static-bind ip-address 10.1.1.100 mac-address 286e-d488-b684
[Router-Vlanif10] quit
# 配置VLANIF11接口下的客戶端從接口地址池中獲取IP位址和相關網絡參數。
[Router] interface vlanif 11
[Router-Vlanif11] dhcp select interface
[Router-Vlanif11] dhcp server lease day 2
[Router-Vlanif11] dhcp server domain-name huawei.com
[Router-Vlanif11] dhcp server dns-list 10.1.1.2
[Router-Vlanif11] quit