廖伯勛,羅 俊
(廣州工商學(xué)院 廣東 廣州 510850)
一臺主機(jī)要與另一臺主機(jī)進(jìn)行通信,通常需要擁有一個IP地址。在小型的網(wǎng)絡(luò)中,IP地址可以通過手工的方式來進(jìn)行配置,當(dāng)企業(yè)網(wǎng)絡(luò)規(guī)模較大時,使用手工配置的方式工作量太大,同時容易出錯,而且不好維護(hù),故亟需一種自動配置IP地址的方式[1]。動態(tài)主機(jī)配置協(xié)議(dynamic host configuration protocol,DHCP)是應(yīng)用最廣泛的一種自動配置IP地址信息的協(xié)議。為了提高網(wǎng)絡(luò)管理員的工作效率,本文提出通過華為模擬器對動態(tài)主機(jī)配置協(xié)議實(shí)驗(yàn)進(jìn)行設(shè)計的一種方法。
DHCP協(xié)議基于服務(wù)器/客戶端模式,工作在TCP/IP的應(yīng)用層。DHCP在運(yùn)輸層使用UDP協(xié)議。服務(wù)器使用68號端口,客戶端使用67號端口。其工作流程可分為4個階段。
DHCP的工作流程首先是由客戶端來進(jìn)行觸發(fā)的。當(dāng)一臺主機(jī)將自身的網(wǎng)絡(luò)適配器中的IP地址選項(xiàng)設(shè)置為自動獲取時,該主機(jī)就成為一臺DHCP客戶端。DHCP客戶端向本地網(wǎng)絡(luò)發(fā)送DHCP發(fā)現(xiàn)報文,目的是在本地網(wǎng)絡(luò)中找到一臺DHCP服務(wù)器,進(jìn)而進(jìn)行后續(xù)的地址申請。DHCP發(fā)現(xiàn)報文為廣播報文,將被二層交換機(jī)轉(zhuǎn)發(fā)至其所連接的所有其他設(shè)備。
當(dāng)本地網(wǎng)絡(luò)中的一臺DHCP服務(wù)器接收到DHCP發(fā)現(xiàn)報文時,根據(jù)DHCP協(xié)議,DHCP服務(wù)器會發(fā)出DHCP提供報文。該報文中含有可以分發(fā)給DHCP客戶端的IP地址信息,包括IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)、DNS服務(wù)器地址等信息。該報文既可以通過廣播的方式來發(fā)送,也可以通過單播的方式來發(fā)送。至于DHCP服務(wù)器以何種方式發(fā)送DHCP提供報文,取決于DHCP客戶端發(fā)送的DHCP發(fā)現(xiàn)報文中的broadcast字段中的值,若為0則DHCP提供報文以單播形式發(fā)送,若為1則DHCP提供報文以廣播形式發(fā)送。
當(dāng)DHCP客戶端接收到DHCP提供報文時,客戶端并非立即使用該報文中的IP地址信息,而是先向DHCP服務(wù)器請求使用該IP地址信息。客戶端已經(jīng)收到地址信息,但不能直接使用,因?yàn)樵摼W(wǎng)絡(luò)中可能存在多臺DHCP服務(wù)器。當(dāng)網(wǎng)絡(luò)中有多臺DHCP服務(wù)器時,這些服務(wù)器都能收到客戶端發(fā)來的DHCP發(fā)現(xiàn)報文,都會回復(fù)DHCP提供報文,這時客戶端會收到來自多臺DHCP服務(wù)器的IP地址信息。由于一臺主機(jī)只能選擇一個IP地址信息,于是必須進(jìn)行取舍。DHCP客戶端通過DHCP請求報文,選擇最先收到的DHCP提供報文中的IP地址信息。DHCP請求報文以廣播方式發(fā)送,目的是告知其選中的DHCP服務(wù)器,本客戶端接受該DHCP服務(wù)器的IP地址信息,同時也告知其他DHCP服務(wù)器,請回收之前發(fā)給本客戶端的IP地址信息。
此報文為DHCP服務(wù)器對DHCP請求報文的響應(yīng)報文。DHCP服務(wù)器正式將該IP地址信息分配給該客戶端。
網(wǎng)絡(luò)模擬器是使用軟件的方式模擬真實(shí)網(wǎng)絡(luò)設(shè)備的一種工具。通過網(wǎng)絡(luò)模擬器,網(wǎng)絡(luò)學(xué)習(xí)者可以搭建實(shí)驗(yàn)拓?fù)洌瑢δM的設(shè)備進(jìn)行配置,并能對設(shè)備進(jìn)行調(diào)試[2]。不同的數(shù)據(jù)通信設(shè)備廠家為了讓客戶能更容易掌握設(shè)備的使用,開發(fā)了自家的模擬器。華為模擬器eNSP是華為官方的網(wǎng)絡(luò)模擬器,使用華為模擬器,可以方便地進(jìn)行數(shù)據(jù)通信實(shí)驗(yàn)的模擬。本文使用華為模擬器來進(jìn)行DHCP實(shí)驗(yàn)的仿真設(shè)計。
本實(shí)驗(yàn)是DHCP協(xié)議的基本應(yīng)用。在本實(shí)驗(yàn)中,DHCP服務(wù)器只為本地客戶端提供IP地址信息。本實(shí)驗(yàn)的拓?fù)鋱D見圖1。
華為路由器支持兩種地址池方式:接口地址池和全局地址池。下面就兩種地址池方式分別進(jìn)行實(shí)驗(yàn)。
2.2.1 接口地址池方式
(1)服務(wù)器配置。
[DHCP_Server]dhcp enable
[DHCP_Server]interface g0/0/1
[DHCP_Server-GigabitEthernet0/0/1]ip address 192.168.1.254 24
[DHCP_Server-GigabitEthernet0/0/1]dhcp select interface
[DHCP_Server-GigabitEthernet0/0/1]dhcp server dns-list 192.168.1.200
[DHCP_Server-GigabitEthernet0/0/1]dhcp server lease day 7
(2)交換機(jī)保持默認(rèn)配置。
(3)客戶端的配置。PC只需在“基礎(chǔ)配置”標(biāo)簽頁的“IPv4配置”中選擇“DHCP”,即可成為一臺DHCP客戶端,并立即觸發(fā)DHCP的工作過程。此時通過調(diào)用wireshark協(xié)議分析器,在DHCP客戶端的Ethernet0/0/1接口進(jìn)行抓包,在顯示過濾器欄輸入“bootp”,便可以直觀地查看到DHCP交互過程的4個報文,見圖2。
(4)驗(yàn)證。在DHCP客戶端上使用ipconfig命令,查看到該客戶端獲得了192.168.1.253的IP地址信息(華為DHCP服務(wù)器默認(rèn)從大到小分配IP)。
2.2.2 全局地址池方式
由于全局地址池方式的交換機(jī)配置和DHCP客戶端的配置方式與接口地址池方式相同,此處不再贅述,僅給出DHCP服務(wù)器的配置。
[DHCP_Server]ip pool pool1
[DHCP_Server-ip-pool-pool1]network 192.168.1.0 mask 24
[DHCP_Server-ip-pool-pool1]gateway-list 192.168.1.254
[DHCP_Server-ip-pool-pool1]dns-list 192.168.1.200
[DHCP_Server-ip-pool-pool1]lease day 7
[DHCP_Server-GigabitEthernet0/0/1]dhcp select global
在規(guī)模較大的企業(yè)網(wǎng)的交換區(qū)塊中,PC按部門被劃分到不同的虛擬局域網(wǎng)中,通常為其配置不同的網(wǎng)段IP。為了節(jié)省經(jīng)費(fèi),通常僅設(shè)置一臺DHCP服務(wù)器,該服務(wù)器需要為不同部門的主機(jī)分配不同網(wǎng)段的IP地址。在這種環(huán)境下,若仍按上一實(shí)驗(yàn)進(jìn)行配置,則DHCP服務(wù)器接收到DHCP發(fā)現(xiàn)報文時,將無法分辨該報文來自哪個部門,從而無法確定應(yīng)從哪個地址池中分配IP地址。為了解決這個問題,需要部署DHCP中繼。當(dāng)DHCP中繼設(shè)備接收到下游主機(jī)提交的DHCP發(fā)現(xiàn)報文或請求報文時,會轉(zhuǎn)發(fā)給上游的DHCP服務(wù)器處理;當(dāng)DHCP中繼設(shè)備接收到上游DHCP服務(wù)器發(fā)來的DHCP提供報文或確認(rèn)報文時,會轉(zhuǎn)發(fā)給下游的主機(jī)[3]。DHCP中繼實(shí)驗(yàn)只能使用全局地址池的方式來實(shí)現(xiàn)。本實(shí)驗(yàn)的拓?fù)鋱D見圖3。
銷售部PC屬于VLAN10,財務(wù)部PC屬于VLAN20。DHCP服務(wù)器上創(chuàng)建兩個地址池pool10和pool20。DHCP中繼仍然由S3700充當(dāng),此時需使用S3700的三層功能,分別創(chuàng)建VLANIF10接口和VLANIF20接口。當(dāng)DHCP中繼接收到銷售部PC發(fā)來的DHCP發(fā)現(xiàn)報文時,發(fā)現(xiàn)該報文來自VLAN10,于是將該廣播報文轉(zhuǎn)為單播報文發(fā)送給DHCP服務(wù)器。該單播報文的源IP地址為VLANIF10的地址,目的IP地址為DHCP服務(wù)器的地址。DHCP服務(wù)器接收到DHCP中繼轉(zhuǎn)發(fā)過來的DHCP發(fā)現(xiàn)報文,根據(jù)報文中的源IP地址從全局地址池pool10中,選擇一個當(dāng)前可分配的IP地址,封裝成DHCP提供報文,回復(fù)給DHCP中繼,再由DHCP中繼轉(zhuǎn)發(fā)給銷售部PC[4]。后續(xù)的DHCP請求和DHCP確認(rèn)報文同樣經(jīng)過DHCP中繼進(jìn)行轉(zhuǎn)發(fā)。該實(shí)驗(yàn)配置如下。
2.3.1 DHCP服務(wù)器配置
[DHCP_Server]ip pool pool_10
[DHCP_Server-ip-pool-pool_10]network 192.168.10.0 mask 24
[DHCP_Server-ip-pool-pool_10]gateway-list 192.168.10.254
[DHCP_Server-ip-pool-pool_10]dns-list 192.168.10.200
[DHCP_Server-ip-pool-pool_10]lease day 7
[DHCP_Server]ip pool pool_20
[DHCP_Server-ip-pool-pool_20]network 192.168.20.0 mask 24
[DHCP_Server-ip-pool-pool_20]gateway-list 192.168.20.254
[DHCP_Server-ip-pool-pool_20]dns-list 192.168.20.200
[DHCP_Server-ip-pool-pool_20]lease day 7
[DHCP_Server]int g0/0/1
[DHCP_Server-GigabitEthernet0/0/1]ip address 12.1.1.2 24
[DHCP_Server-GigabitEthernet0/0/1]dhcp select global
//注意DHCP服務(wù)需配置默認(rèn)路由指向DHCP中繼,否則DHCP提供和DHCP確認(rèn)報文將由于路由不通而無法正常發(fā)送。
[DHCP_Server]ip route-static 0.0.0.0 0.0.0.0 12.1.1.1
2.3.2 DHCP中繼配置
[DHCP_Relay]vlan batch 10 20
[DHCP_Relay]interface e0/0/1
[DHCP_Relay-Ethernet0/0/1]port link-type access
[DHCP_Relay-Ethernet0/0/1]port default vlan 10
[DHCP_Relay]interface e0/0/2
[DHCP_Relay-Ethernet0/0/2]port link-type access
[DHCP_Relay-Ethernet0/0/2]port default vlan 20
[DHCP_Relay]interface vlan 10
[DHCP_Relay-Vlanif10]ip address 192.168.10.254 24
[DHCP_Relay-Vlanif10]dhcp select relay
[DHCP_Relay-Vlanif10]dhcp relay server-ip 12.1.1.2
[DHCP_Relay]interface vlan 20
[DHCP_Relay-Vlanif20]ip address 192.168.20.254 24
[DHCP_Relay-Vlanif20]dhcp select relay
[DHCP_Relay-Vlanif20]dhcp relay server-ip 12.1.1.2
[DHCP_Relay]interface vlan 1
[DHCP_Relay-Vlanif1]ip address 12.1.1.1 24
配置完成后,財務(wù)部PC啟動DHCP時,在交換機(jī)的GE0/0/1接口啟動wireshark進(jìn)行抓包,可以抓取到交換機(jī)作為DHCP中繼與DHCP服務(wù)器交互的數(shù)據(jù)包。如圖4所示,DHCP Discover報文的源IP地址為交換機(jī)VLANIF20接口的IP地址,目的IP地址為DHCP服務(wù)器的IP地址,該報文為單播報文。證實(shí)了DHCP中繼將客戶端發(fā)送的DHCP Discover廣播報文轉(zhuǎn)換為單播報文,發(fā)送給DHCP服務(wù)器。同樣地,后續(xù)的DHCP Offer、DHCP Request和DHCP Ack報文都是DHCP中繼與DHCP服務(wù)器之間通信的單播報文。
銷售部PC獲得的IP地址信息見圖5。
財務(wù)部獲得的IP地址信息見圖6。
本文使用華為模擬器搭建仿真環(huán)境,對DHCP基礎(chǔ)實(shí)驗(yàn)和DHCP中繼實(shí)驗(yàn)進(jìn)行了設(shè)計,通過調(diào)試達(dá)到了預(yù)期的效果,并給出了具體實(shí)驗(yàn)流程和配置命令[5]。通過這些實(shí)驗(yàn),網(wǎng)絡(luò)學(xué)習(xí)者能更深入地理解DHCP協(xié)議的工作原理和應(yīng)用場景,提高自身的實(shí)踐技能。