廖伯勛,羅 俊
(廣州工商學(xué)院 廣東 廣州 510850)
一臺(tái)主機(jī)要與另一臺(tái)主機(jī)進(jìn)行通信,通常需要擁有一個(gè)IP地址。在小型的網(wǎng)絡(luò)中,IP地址可以通過(guò)手工的方式來(lái)進(jìn)行配置,當(dāng)企業(yè)網(wǎng)絡(luò)規(guī)模較大時(shí),使用手工配置的方式工作量太大,同時(shí)容易出錯(cuò),而且不好維護(hù),故亟需一種自動(dòng)配置IP地址的方式[1]。動(dòng)態(tài)主機(jī)配置協(xié)議(dynamic host configuration protocol,DHCP)是應(yīng)用最廣泛的一種自動(dòng)配置IP地址信息的協(xié)議。為了提高網(wǎng)絡(luò)管理員的工作效率,本文提出通過(guò)華為模擬器對(duì)動(dòng)態(tài)主機(jī)配置協(xié)議實(shí)驗(yàn)進(jìn)行設(shè)計(jì)的一種方法。
DHCP協(xié)議基于服務(wù)器/客戶端模式,工作在TCP/IP的應(yīng)用層。DHCP在運(yùn)輸層使用UDP協(xié)議。服務(wù)器使用68號(hào)端口,客戶端使用67號(hào)端口。其工作流程可分為4個(gè)階段。
DHCP的工作流程首先是由客戶端來(lái)進(jìn)行觸發(fā)的。當(dāng)一臺(tái)主機(jī)將自身的網(wǎng)絡(luò)適配器中的IP地址選項(xiàng)設(shè)置為自動(dòng)獲取時(shí),該主機(jī)就成為一臺(tái)DHCP客戶端。DHCP客戶端向本地網(wǎng)絡(luò)發(fā)送DHCP發(fā)現(xiàn)報(bào)文,目的是在本地網(wǎng)絡(luò)中找到一臺(tái)DHCP服務(wù)器,進(jìn)而進(jìn)行后續(xù)的地址申請(qǐng)。DHCP發(fā)現(xiàn)報(bào)文為廣播報(bào)文,將被二層交換機(jī)轉(zhuǎn)發(fā)至其所連接的所有其他設(shè)備。
當(dāng)本地網(wǎng)絡(luò)中的一臺(tái)DHCP服務(wù)器接收到DHCP發(fā)現(xiàn)報(bào)文時(shí),根據(jù)DHCP協(xié)議,DHCP服務(wù)器會(huì)發(fā)出DHCP提供報(bào)文。該報(bào)文中含有可以分發(fā)給DHCP客戶端的IP地址信息,包括IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)、DNS服務(wù)器地址等信息。該報(bào)文既可以通過(guò)廣播的方式來(lái)發(fā)送,也可以通過(guò)單播的方式來(lái)發(fā)送。至于DHCP服務(wù)器以何種方式發(fā)送DHCP提供報(bào)文,取決于DHCP客戶端發(fā)送的DHCP發(fā)現(xiàn)報(bào)文中的broadcast字段中的值,若為0則DHCP提供報(bào)文以單播形式發(fā)送,若為1則DHCP提供報(bào)文以廣播形式發(fā)送。
當(dāng)DHCP客戶端接收到DHCP提供報(bào)文時(shí),客戶端并非立即使用該報(bào)文中的IP地址信息,而是先向DHCP服務(wù)器請(qǐng)求使用該IP地址信息??蛻舳艘呀?jīng)收到地址信息,但不能直接使用,因?yàn)樵摼W(wǎng)絡(luò)中可能存在多臺(tái)DHCP服務(wù)器。當(dāng)網(wǎng)絡(luò)中有多臺(tái)DHCP服務(wù)器時(shí),這些服務(wù)器都能收到客戶端發(fā)來(lái)的DHCP發(fā)現(xiàn)報(bào)文,都會(huì)回復(fù)DHCP提供報(bào)文,這時(shí)客戶端會(huì)收到來(lái)自多臺(tái)DHCP服務(wù)器的IP地址信息。由于一臺(tái)主機(jī)只能選擇一個(gè)IP地址信息,于是必須進(jìn)行取舍。DHCP客戶端通過(guò)DHCP請(qǐng)求報(bào)文,選擇最先收到的DHCP提供報(bào)文中的IP地址信息。DHCP請(qǐng)求報(bào)文以廣播方式發(fā)送,目的是告知其選中的DHCP服務(wù)器,本客戶端接受該DHCP服務(wù)器的IP地址信息,同時(shí)也告知其他DHCP服務(wù)器,請(qǐng)回收之前發(fā)給本客戶端的IP地址信息。
此報(bào)文為DHCP服務(wù)器對(duì)DHCP請(qǐng)求報(bào)文的響應(yīng)報(bào)文。DHCP服務(wù)器正式將該IP地址信息分配給該客戶端。
網(wǎng)絡(luò)模擬器是使用軟件的方式模擬真實(shí)網(wǎng)絡(luò)設(shè)備的一種工具。通過(guò)網(wǎng)絡(luò)模擬器,網(wǎng)絡(luò)學(xué)習(xí)者可以搭建實(shí)驗(yàn)拓?fù)洌瑢?duì)模擬的設(shè)備進(jìn)行配置,并能對(duì)設(shè)備進(jìn)行調(diào)試[2]。不同的數(shù)據(jù)通信設(shè)備廠家為了讓客戶能更容易掌握設(shè)備的使用,開(kāi)發(fā)了自家的模擬器。華為模擬器eNSP是華為官方的網(wǎng)絡(luò)模擬器,使用華為模擬器,可以方便地進(jìn)行數(shù)據(jù)通信實(shí)驗(yàn)的模擬。本文使用華為模擬器來(lái)進(jìn)行DHCP實(shí)驗(yàn)的仿真設(shè)計(jì)。
本實(shí)驗(yàn)是DHCP協(xié)議的基本應(yīng)用。在本實(shí)驗(yàn)中,DHCP服務(wù)器只為本地客戶端提供IP地址信息。本實(shí)驗(yàn)的拓?fù)鋱D見(jiàn)圖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)簽頁(yè)的“IPv4配置”中選擇“DHCP”,即可成為一臺(tái)DHCP客戶端,并立即觸發(fā)DHCP的工作過(guò)程。此時(shí)通過(guò)調(diào)用wireshark協(xié)議分析器,在DHCP客戶端的Ethernet0/0/1接口進(jìn)行抓包,在顯示過(guò)濾器欄輸入“bootp”,便可以直觀地查看到DHCP交互過(guò)程的4個(gè)報(bào)文,見(jiàn)圖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è)置一臺(tái)DHCP服務(wù)器,該服務(wù)器需要為不同部門的主機(jī)分配不同網(wǎng)段的IP地址。在這種環(huán)境下,若仍按上一實(shí)驗(yàn)進(jìn)行配置,則DHCP服務(wù)器接收到DHCP發(fā)現(xiàn)報(bào)文時(shí),將無(wú)法分辨該報(bào)文來(lái)自哪個(gè)部門,從而無(wú)法確定應(yīng)從哪個(gè)地址池中分配IP地址。為了解決這個(gè)問(wèn)題,需要部署DHCP中繼。當(dāng)DHCP中繼設(shè)備接收到下游主機(jī)提交的DHCP發(fā)現(xiàn)報(bào)文或請(qǐng)求報(bào)文時(shí),會(huì)轉(zhuǎn)發(fā)給上游的DHCP服務(wù)器處理;當(dāng)DHCP中繼設(shè)備接收到上游DHCP服務(wù)器發(fā)來(lái)的DHCP提供報(bào)文或確認(rèn)報(bào)文時(shí),會(huì)轉(zhuǎn)發(fā)給下游的主機(jī)[3]。DHCP中繼實(shí)驗(yàn)只能使用全局地址池的方式來(lái)實(shí)現(xiàn)。本實(shí)驗(yàn)的拓?fù)鋱D見(jiàn)圖3。
銷售部PC屬于VLAN10,財(cái)務(wù)部PC屬于VLAN20。DHCP服務(wù)器上創(chuàng)建兩個(gè)地址池pool10和pool20。DHCP中繼仍然由S3700充當(dāng),此時(shí)需使用S3700的三層功能,分別創(chuàng)建VLANIF10接口和VLANIF20接口。當(dāng)DHCP中繼接收到銷售部PC發(fā)來(lái)的DHCP發(fā)現(xiàn)報(bào)文時(shí),發(fā)現(xiàn)該報(bào)文來(lái)自VLAN10,于是將該廣播報(bào)文轉(zhuǎn)為單播報(bào)文發(fā)送給DHCP服務(wù)器。該單播報(bào)文的源IP地址為VLANIF10的地址,目的IP地址為DHCP服務(wù)器的地址。DHCP服務(wù)器接收到DHCP中繼轉(zhuǎn)發(fā)過(guò)來(lái)的DHCP發(fā)現(xiàn)報(bào)文,根據(jù)報(bào)文中的源IP地址從全局地址池pool10中,選擇一個(gè)當(dāng)前可分配的IP地址,封裝成DHCP提供報(bào)文,回復(fù)給DHCP中繼,再由DHCP中繼轉(zhuǎn)發(fā)給銷售部PC[4]。后續(xù)的DHCP請(qǐng)求和DHCP確認(rèn)報(bào)文同樣經(jīng)過(guò)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)報(bào)文將由于路由不通而無(wú)法正常發(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
配置完成后,財(cái)務(wù)部PC啟動(dòng)DHCP時(shí),在交換機(jī)的GE0/0/1接口啟動(dòng)wireshark進(jìn)行抓包,可以抓取到交換機(jī)作為DHCP中繼與DHCP服務(wù)器交互的數(shù)據(jù)包。如圖4所示,DHCP Discover報(bào)文的源IP地址為交換機(jī)VLANIF20接口的IP地址,目的IP地址為DHCP服務(wù)器的IP地址,該報(bào)文為單播報(bào)文。證實(shí)了DHCP中繼將客戶端發(fā)送的DHCP Discover廣播報(bào)文轉(zhuǎn)換為單播報(bào)文,發(fā)送給DHCP服務(wù)器。同樣地,后續(xù)的DHCP Offer、DHCP Request和DHCP Ack報(bào)文都是DHCP中繼與DHCP服務(wù)器之間通信的單播報(bào)文。
銷售部PC獲得的IP地址信息見(jiàn)圖5。
財(cái)務(wù)部獲得的IP地址信息見(jiàn)圖6。
本文使用華為模擬器搭建仿真環(huán)境,對(duì)DHCP基礎(chǔ)實(shí)驗(yàn)和DHCP中繼實(shí)驗(yàn)進(jìn)行了設(shè)計(jì),通過(guò)調(diào)試達(dá)到了預(yù)期的效果,并給出了具體實(shí)驗(yàn)流程和配置命令[5]。通過(guò)這些實(shí)驗(yàn),網(wǎng)絡(luò)學(xué)習(xí)者能更深入地理解DHCP協(xié)議的工作原理和應(yīng)用場(chǎng)景,提高自身的實(shí)踐技能。