李軍旺
(岳陽職業技術學院,湖南岳陽 414000)
DHCP 是Dynamic Host Configuration Protocol(動態主機配置協議)的簡稱。網絡中的DHCP 服務器可以為客戶機自動配置IP地址、DNS、默認網關、子網掩碼等IP地址參數,在大中型網絡中這項技術可以提高網絡管理效率,應用比較廣泛。但由于DHCP 通信的報文是以廣播的形式發送,因此當DHCP 服務器與客戶機不在同一網段時,報文就無法跨越,此時就要用到DHCP中繼技術。
DHCP 基于UDP 協議,采用C/S 工作模式。服務器端接受客戶端的請求報文的端口號為67,客戶端接收服務器應答報文的端口號為68,網絡層協議號字段為0x11。可以用主機、路由器或三層交換機充當DHCP 服務器[1]。其工作過程主要包括發現、提供、請求、確認四個階段,如圖1所示。

圖1 DHCP工作原理
第一階段:客戶機尋找DHCP服務器
客戶機啟動時,以廣播的方式發出DHCP Discover 報文,尋找局域網內的DHCP 服務器。DHCP Discover 報文的源IP 地址為0.0.0.0,目標地址為255.255.255.255。
第二階段:DHCP服務器分配地址給客戶機
所有收到Discover 的DHCP 服務器會做出響應,并發送DHCP Offer 報文給客戶機。DHCP Offer 報文中包含從未分配地址池中挑選出來準備分配給客戶機的IP地址以及網關、子網掩碼、DNS地址等信息。
第三階段:客戶機接收并請求使用該IP地址
DHCP 客戶端收到Offer 報文后(一般是第1 個到達的Offer包),以廣播的方式應答一個DHCP Request報文,請求正式使用該IP 地址。該Request 報文中包含選定的DHCP服務器的IP地址,但該報文源IP地址仍為0.0.0.0,目標地址仍為255.255.255.255。
網絡中的DHCP 服務器收到Request 報文后,根據選項字段中的IP地址判斷自己分配的IP地址是否已選用。如果選項字段中的IP地址與自己的IP地址相同,表明已選用,則會向客戶端發送一個DHCP Ack響應報文,同意將IP地址租用給DHCP客戶端。如果不相同,則收回它以前提供IP的地址。
第四階段:服務器確認IP地址及租期
客戶機收到DHCP Ack 報文后,發送3 個ARP 解析請求到網絡中,以檢測被分到的IP 地址是否已使用。如果沒有沖突,說明該IP地址未被其他客戶機使用,則該客戶機成功獲得IP地址,并初始化相關信息。如果有沖突,說明該IP 地址已被其他客戶機使用,本次IP 地址申請過程失敗。客戶機發DHCP Decline 報文給DHCP 服務器,通知它禁用此IP 地址,并重啟地址申請過程。
當客戶機與DHCP 服務器不在同一物理網段時,由DHCP 中繼設備充當中間代理設備,代替DHCP 服務器接收DHCP 客戶機的請求,并將報文以單播的形式轉發給DHCP 服務器[2]。DHCP 服務器在收到由DHCP 中繼設備發送來的報文后,同樣以單播的形式將響應報文發送給DHCP 中繼設備,再由DHCP 中繼設備轉發給DHCP 客戶機。DHCP 中繼技術解決了DHCP 客戶端不能跨網段向服務器動態獲取IP 地址的問題,使得同一個DHCP 服務器可以為不同網段的客戶機分配IP地址[3],其工作過程如圖2所示。

圖2 DHCP中繼原理
IP 地址池是指DHCP 服務器給客戶機分配地址的范圍。通過DHCP中繼給客戶端分配IP地址時,因為DHCP 服務器與客戶機不在同一網段,所以必須創建地址池。eNSP 中創建地址池的方法是在系統模式下使用ip pool命令創建,1個子網創建一個地址池,多個子網創建多個地址池。地址池創建完后,再用network命令指定地址池對應的網絡,網絡地址一定要與客戶機需要獲取的IP地址的網絡地址一致[4]。
分組從一個地方轉發到另一個地方的行為和動作稱為路由,路由器是執行路由的設備。當分組的源端與目的端在同一網絡時,不需要路由器,目的端就能收到分組。當分組的源端與目的端不在同一網絡時,需要路由器轉發,目的端才能收到分組。根據DHCP中繼原理,DHCP服務器與DHCP客戶機不在同一網絡,因此必定用到路由技術。路由分直連路由、靜態路由和動態路由。直連路由是路由器在啟動的時候自動生成,用來指定路由器的接口所連接的網絡能相互直達。靜態路由網管手工設定,設定到達某個網絡要經過什么接口。動態路由通過動態路由協議自動生成,常用的動態路由協議有OSPF、RIP 等。DHCP 中繼配置時,必須在DHCP 服務器上指定Offer和Ack報文的出口,通信過程才能完成[5]。
Vlanif 全稱Virtual Local Area Network Interface(虛擬局域網接口),是華為設備上虛擬局域網(Vlan)的接口類型之一,是一種基于Vlan 的三層邏輯接口。每個Vlan 對應一個Vlanif 接口,配置Vlanif 接口的IP地址后,就可以與Vlan 所屬子網內其他設備互相通信[6]。
2.1.1 實驗拓撲(圖3)

圖3 路由器作為中繼設備
2.1.2 實驗分析
本實驗的DHCP 服務器和DHCP 均采用路由器(或三層交換機)作為中繼設備,設備接口均是三層口,要給PC1分配一個200.10.10.0/24網段的IP址。
2.1.3 配置及相關說明
1)配置DHCP服務器關鍵命令
必須啟用路由器(或三層交換機)的DHCP 服務功能,路由器(或三層交換機)才能提供DHCP服務
[r1]dhcp enable//啟用dhcp服務
[r1-GigabitEthernet0/0/0]ip address 192.168.1.1 24//此端口是三層端口,可以直接分配IP地址。
[r1]ip pool addr1//創建地址池addr1
[r1-ip-pool-addr1]network 200.10.10.0//指定地址池addr1對應的網絡
[r1]ip route-static 200.10.10.0 24 192.168.1.2//添加至200.10.10.0 的靜態路由,指定Offer 和ACK 數據包的出口。
[r1-GigabitEthernet0/0/0]dhcp select interface//開啟DHCP接口地址池模式
2)配置DHCP中繼關鍵命令
[r2]dhcp enable//啟用dhcp 服務,必須啟用,路由器才能提供DHCP服務
[r2-GigabitEthernet0/0/0]ip address 192.168.1.2 255.255.255.0//配置端口IP 地址,與r1 中0 端口地址在同一網段。
[r2-GigabitEthernet0/0/1]ip address 200.10.10.1 255.255.255.0//配置端口IP 地址,與PC1 地址在同一網段。
[r2-GigabitEthernet0/0/1]dhcp select relay//啟用端口中繼
[r2-GigabitEthernet0/0/1]dhcp relay server-ip
192.16 8.1.1//設置中繼服務對應DHCP 服務器的IP地址。
3)PC機配置
PC機只需要設置自動獲取IP即可。
2.2.1 實驗拓撲(圖4)
2.2.2 實驗分析
本實驗的拓撲與實驗一相似,區別是DHCP 中繼設備接口是二層口,路由器的二層口不能直接分配IP地址,因此配置與實驗一稍有不同。
2.2.3 配置及相關說明
1)配置DHCP服務器關鍵命令
與實驗一相同
2)配置DHCP中繼關鍵命令
2.3.1 實驗拓撲(圖5)

圖5 DHCP服務器要通過中繼設備配兩個網段的IP
2.3.2 實驗分析
本實驗的拓撲與實驗一相似,區別是DHCP 服務器要通過中繼設備配兩個網段的IP。
2.3.3 配置及相關說明
1)配置DHCP服務器關鍵命令
因為要分配兩個網段的IP,所以必須創建兩個網段的IP 地址池,添加兩條靜態路由,且端口要啟用全局模式,其他與實驗一相同。
2)配置DHCP中繼關鍵命令
DHCP 中繼器與PC 相連的兩個端口都要啟用中繼,關鍵代碼如下,其他與實驗一相同。
2.4.1 實驗拓撲(圖6)

圖6 三層交換機作DHCP中繼設備
2.4.2 實驗分析
本實驗的拓撲與實驗三相似,區別是DHCP 中繼設備采用的是三層交換機。
2.4.3 配置及相關說明
1)配置DHCP服務器關鍵命令
同實驗三
2)配置DHCP中繼關鍵命令
[lsw1]vlan batch 10 20 30//交換機的三個端口都不能直接設IP,因此要創建三個虛擬接口。
路由器與三層交換機都可以作DHCP 服務器,也可以作DHCP 中繼設備,他們的配置方法與步驟類似。不同拓撲下,配置主要不同點是設備的端口類型,當設備的端口是二層端口時,無法直接配IP地址,必須建立虛擬端口,通過虛擬端口來配IP地址。