摘 ?要:針對(duì)中、大型以太網(wǎng)絡(luò)中因網(wǎng)絡(luò)劃分而帶來的DHCP廣播無法到達(dá)的問題,文中規(guī)劃設(shè)計(jì)了一種基于eNSP的DHCP中繼代理的實(shí)施方案。首先分析了DHCP服務(wù)應(yīng)用場(chǎng)景及其面臨的問題,然后對(duì)DHCP中繼的實(shí)現(xiàn)原理進(jìn)行了分析,最后在eNSP模擬軟件中設(shè)計(jì)了一個(gè)生產(chǎn)生活中常見的網(wǎng)絡(luò)應(yīng)用拓?fù)溥M(jìn)行實(shí)施應(yīng)用,測(cè)試結(jié)果表明,該設(shè)計(jì)方案完全達(dá)到了預(yù)期目標(biāo)。
關(guān)鍵詞:eNSP;DHCP;中繼代理
中圖分類號(hào):TP393 ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A ? 文章編號(hào):2096-4706(2021)06-0073-04
Principle Analysis and Application of DHCP Relay Agent Based on eNSP
ZHANG Qingtao
(Hebei Petroleum University of Technology,Chengde ?067000,China)
Abstract:Aimming at the problem that the DHCP broadcasting cant reach because of the network division in the medium and large Ethernet,in this paper,an implementation scheme of DHCP relay agent based on eNSP is designed. Firstly,it analyzes the application scenarios of DHCP service and the problems it faces,then analyzes the implementation principle of DHCP relay,and finally designs a common network application topology in production and life by eNSP simulation software for application. The test results show that the design scheme fully achieves the expected goal.
Keywords:eNSP;DHCP;relay agent
0 ?引 ?言
筆者所在單位中大量的終端設(shè)備(計(jì)算機(jī)、移動(dòng)智能終端等)需要從網(wǎng)絡(luò)中自動(dòng)獲取IP地址,以連接辦公網(wǎng)絡(luò)和互聯(lián)網(wǎng)。但這些終端又被分散在校園網(wǎng)不同的子網(wǎng)絡(luò)中,簡(jiǎn)單的DHCP模型并不能跨子網(wǎng)分配IP地址,如何為這些跨子網(wǎng)終端自動(dòng)分配IP地址成了迫切需要解決的問題。
DHCP是動(dòng)態(tài)主機(jī)配置協(xié)議的縮寫,DHCP服務(wù)用以為終端設(shè)備自動(dòng)分配IP地址和其他網(wǎng)絡(luò)參數(shù),可以簡(jiǎn)化企業(yè)組網(wǎng)的配置流程,減輕網(wǎng)絡(luò)管理員的工作負(fù)擔(dān),降低終端用戶接入企業(yè)網(wǎng)絡(luò)的配置難度。DHCP服務(wù)在工作時(shí)的數(shù)據(jù)包多為廣播數(shù)據(jù),尤其是在終端或網(wǎng)絡(luò)剛剛啟動(dòng)時(shí)更是如此。在同一個(gè)廣播域內(nèi),利用廣播報(bào)文DHCP客戶端可以方便地找到DHCP服務(wù)器,并獲得為其分配的網(wǎng)絡(luò)參數(shù)。
然而,在多IP子網(wǎng)的大、中型企業(yè)網(wǎng)絡(luò)中,為了抑制廣播風(fēng)暴限制廣播流量對(duì)網(wǎng)絡(luò)帶來的負(fù)面影響,需要對(duì)網(wǎng)絡(luò)進(jìn)行邏輯或物理子網(wǎng)劃分,常用的做法是利用三層設(shè)備對(duì)廣播域進(jìn)行隔離。但這在提高網(wǎng)絡(luò)安全性和可靠性的同時(shí),也阻隔了所有的廣播數(shù)據(jù)流量,影響了DHCP服務(wù)的正常工作,而在連接多個(gè)子網(wǎng)的三層設(shè)備上開啟DHCP中繼代理服務(wù)則可以很好地解決這個(gè)問題。
1 ?DHCP中繼原理
中繼代理在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中位于DHCP客戶端和DHCP服務(wù)器之間,是DHCP握手報(bào)文的中轉(zhuǎn)站。當(dāng)DHCP中繼代理收到DHCP客戶端發(fā)來的廣播報(bào)文后,將其轉(zhuǎn)換為單播報(bào)文并通過IP網(wǎng)絡(luò)轉(zhuǎn)發(fā)給DHCP服務(wù)器;當(dāng)DHCP中繼代理收到DHCP服務(wù)器返回的單播報(bào)文后,再反向轉(zhuǎn)換成廣播報(bào)文發(fā)送給DHCP客戶端;經(jīng)過DHCP中繼代理的中轉(zhuǎn)后,DHCP廣播報(bào)文就可以穿過三層設(shè)備到達(dá)另一個(gè)子網(wǎng),其工作原理如圖1所示。
2 ?DHCP中繼代理的實(shí)施與應(yīng)用
DHCP中繼代理在企業(yè)中有著廣泛的應(yīng)用,DHCP中繼代理服務(wù)器往往處于兩個(gè)或多個(gè)不同的子網(wǎng)之間。下面設(shè)計(jì)一個(gè)日常中企業(yè)應(yīng)用較多的DHCP中繼代理組網(wǎng)拓?fù)洹?/p>
2.1 ?DHCP中繼代理組網(wǎng)方案
多數(shù)路由器和三層交換機(jī)都支持DHCP中繼代理功能,如圖2所示的拓?fù)鋱D是DHCP中繼代理的典型組網(wǎng)方案。
在組網(wǎng)方案中,DHCP中繼代理被部署在連接192.168.1.0/ 24、172.21.16.0/24和10.10.0/24這3個(gè)子網(wǎng)絡(luò)的路由器上。需要進(jìn)行DHCP轉(zhuǎn)發(fā)的是G0/0/0和G0/0/2端口。這里DHCP服務(wù)器被架設(shè)在路由器上,服務(wù)端口是G0/0/0。
在上述拓?fù)渲?,DHCP中繼代理和DHCP服務(wù)器是直接相連的,然而在大型拓?fù)渲校鼈冎虚g往往還間隔著多臺(tái)路由設(shè)備,但是這并不妨礙DHCP中繼代理的正常工作。因?yàn)榻?jīng)過DHCP中繼代理的DHCP廣播報(bào)文已經(jīng)被轉(zhuǎn)換成了普通單播報(bào)文,故只要鏈路中路由器的路由選擇策略正確,被轉(zhuǎn)換的DHCP報(bào)文依然可以正常往返于DHCP客戶端和DHCP服務(wù)器之間。
2.2 ?DHCP中繼代理配置實(shí)施
配置DHCP中繼代理路由器上G0/0/0、G0/0/1和G0/0/2接口的IP地址。
從系統(tǒng)視圖進(jìn)入接口視圖,以便對(duì)接口進(jìn)行進(jìn)一步的配置,例如IP地址、子網(wǎng)掩碼等。按照規(guī)劃,G0/0/0接口連接192.168.1.0/24網(wǎng)絡(luò),G0/0/2接口連接172.21.16.0/24網(wǎng)絡(luò),G0/0/1接口連接DHCP服務(wù)器可以使用命令:
[dhcp-relay]interface g0/0/0
[dhcp-relay-GigabitEthernet0/0/0]ip address 192.168.1.1 24
[dhcp-relay-GigabitEthernet0/0/0]interface g0/0/1
[dhcp-relay-GigabitEthernet0/0/1]ip address 10.10.0.1 24
[dhcp-relay-GigabitEthernet0/0/1]interface g0/0/2
[dhcp-relay-GigabitEthernet0/0/2]ip address 172.21.16.1 24
必須啟用路由器的DHCP服務(wù)后才能啟用端口的中繼轉(zhuǎn)發(fā)功能可以使用命令:
[dhcp-relay]dhcp enable
在G0/0/0端口上啟用DHCP中繼轉(zhuǎn)發(fā)功能,啟用后該端口如果收到了客戶端廣播的DHCP請(qǐng)求報(bào)文,將會(huì)接收并轉(zhuǎn)換為指向DHCP服務(wù)器的單播報(bào)文進(jìn)行三層轉(zhuǎn)發(fā)。默認(rèn)情況下,未進(jìn)行特殊配置的三層接口會(huì)直接拋棄收到的廣播報(bào)文可以使用命令:
[dhcp-relay]int g0/0/0
[dhcp-relay-GigabitEthernet0/0/0]dhcp select relay
指定DHCP服務(wù)器IP地址,當(dāng)該端口收到DHCP廣播數(shù)據(jù)包時(shí)將轉(zhuǎn)發(fā)到該IP可以使用命令:
[dhcp-relay-GigabitEthernet0/0/0]dhcp relay server-ip 10.10.0.2
在G0/0/2端口上啟用DHCP中繼服務(wù)并指定DHCP服務(wù)器地址可以使用命令:
[dhcp-relay]int g0/0/2
[dhcp-relay-GigabitEthernet0/0/2]dhcp select relay
[dhcp-relay-GigabitEthernet0/0/2]dhcp relay server-ip 10.10.0.2
2.3 ?DHCP服務(wù)器配置
這里DHCP服務(wù)器使用的是eNSP中的一臺(tái)路由器,對(duì)應(yīng)的服務(wù)端口號(hào)是G0/0/0。在路由器等三層設(shè)備中,采用了一種被稱作地址池(pool)的對(duì)象來定義DHCP服務(wù)可以使用的IP地址段,一般一個(gè)地址段是一個(gè)子網(wǎng)絡(luò)。在地址池中還可以定義默認(rèn)網(wǎng)關(guān)、DNS地址等可選參數(shù)。這些參數(shù)將隨IP地址和子網(wǎng)掩碼一同分配給DHCP客戶端。
地址池分為接口地址池和全局地址池兩種。接口地址池不需要專門定義,只要在相應(yīng)的接口配置視圖下,配置完IP地址后,使用命令“dhcp select interface”啟用即可。接口地址池配置相對(duì)比較簡(jiǎn)單,但也存在一定弊端,例如不能為多個(gè)子網(wǎng)客戶端分配IP地址,當(dāng)接口IP地址修改后,接口地址池會(huì)被自動(dòng)清除而不是跟隨變化。
全局地址池需要使用“ip pool<地址池名>”命令專門定義,可以多地址池并存。接口如果要使用全局地址池可以使用命令“dhcp select global”啟用,端口收到dhcp請(qǐng)求后,會(huì)自動(dòng)判斷客戶端所在子網(wǎng)絡(luò)所屬網(wǎng)段,然后選擇與之匹配的全局地址池中空閑IP地址進(jìn)行選擇分配。
跨網(wǎng)段分配IP地址不能使用接口地址池,因此這里的DHCP服務(wù)器使用全局地址池。
啟用dhcp服務(wù)并配置全局地址池pool-1可以使用命令:
[dhcp-server]dhcp enable
創(chuàng)建pool-1地址池可以使用命令:
[dhcp-server]ip pool pool-1
配置pool-1所屬網(wǎng)絡(luò)號(hào)和子網(wǎng)掩碼可以使用命令:
[dhcp-server-ip-pool-pool-1]network 192.168.1.0 mask 24
配置默認(rèn)網(wǎng)關(guān)可以使用命令:
[dhcp-server-ip-pool-pool-1]gateway-list 192.168.1.1
配置全局地址池pool-2可以使用命令:
[dhcp-server]ip pool pool-2
[dhcp-server-ip-pool-pool-2]network 172.21.16.0 mask 24
[dhcp-server-ip-pool-pool-2]gateway-list 172.21.16.1
配置G0/0/0 的IP地址為10.10.0.2/24,并啟用全局地址池可以使用命令:
[dhcp-server-GigabitEthernet0/0/0]ip address 10.10.0.2 24
[dhcp-server-GigabitEthernet0/0/0]dhcp select global
添加到192.168.1.0/24網(wǎng)絡(luò)的靜態(tài)路由可以使用命令:
[dhcp-server]ip route-static 192.168.1.0 24 10.10.0.1
[dhcp-server]ip route-static 172.21.16.0 24 10.10.0.1
這兩條靜態(tài)路由的功能是使DHCP服務(wù)器返回的Offer和ACK數(shù)據(jù)包能夠找到發(fā)送路徑。否則客戶端DHCP請(qǐng)求可以到達(dá)DHCP服務(wù)器,但是DHCP服務(wù)器無法向客戶端做出回應(yīng)。因?yàn)?92.168.1.0/24網(wǎng)段和172.21.16.0/24網(wǎng)段并非DHCP服務(wù)器的直連網(wǎng)段,所以,對(duì)于這兩個(gè)網(wǎng)段的路由在沒有啟用任何動(dòng)態(tài)路由協(xié)議的情況下不能自動(dòng)生成。
2.4 ?驗(yàn)證
通過eNSP的配套抓包工具Wireshark對(duì)DHCP服務(wù)器的端口進(jìn)行抓包分析,如圖3所示,可以看出DHCP服務(wù)的Discovery、Offer、Request和ACK四次握手全部成功完成。分別位于192.168.1.0/24網(wǎng)絡(luò)和172.21.16.0/24網(wǎng)絡(luò)的兩臺(tái)DHCP客戶端都通過DHCP中繼代理成功獲取到了外網(wǎng)段DHCP服務(wù)器提供的IP地址。
查看DHCP服務(wù)器地址池使用情況,如圖4所示。
圖4 ?DHCP服務(wù)器地址池使用情況
圖中的“used:2”說明全局地址池pool-1和pool-2總共有2個(gè)地址被分配出去。這與實(shí)驗(yàn)拓?fù)渲蠨HCP客戶端的數(shù)量吻合。
作為DHCP客戶端的PC1已經(jīng)通過DHCP中繼從位于外網(wǎng)段的DHCP服務(wù)器處成功獲取到了IP地址192.168. 1.254/24和默認(rèn)網(wǎng)關(guān)192.168.1.1。如果查看其中一個(gè)客戶端的IP地址,則結(jié)果如圖5所示。
圖5 ?客戶端IP地址
2.5 ?故障排查
如果某些客戶端無法獲取到IP地址,應(yīng)該從以下幾方面著手排查故障:
(1)檢查各端口IP地址配置是否正確;
(2)檢查DHCP客戶端的網(wǎng)絡(luò)工作模式是否是自動(dòng)獲取IP地址,即“DHCP”模式;
(3)檢查DHCP服務(wù)器中是否已經(jīng)配置了相應(yīng)的全局地址池,并且配置了正確的子網(wǎng)網(wǎng)段;
(4)檢查DHCP服務(wù)器上是否配置了正確的靜態(tài)路由或者啟用了RIP、RIPv2、OSPF等動(dòng)態(tài)路由協(xié)議。如果是使用動(dòng)態(tài)路由協(xié)議,則在DHCP中繼代理上也應(yīng)啟用相一致的動(dòng)態(tài)路由協(xié)議;
(5)檢查DHCP中繼代理是否在相應(yīng)的端口上啟用了DHCP中繼功能;
(6)檢查DHCP中繼代理是否指向了正確的DHCP服務(wù)器地址。
3 ?結(jié) ?論
因?yàn)槟J(rèn)情況下DHCP廣播無法穿透三層設(shè)備,所以實(shí)驗(yàn)環(huán)境下傳統(tǒng)的部署方案通常把DHCP服務(wù)器部署在連接各子網(wǎng)的三層交換機(jī)上,使DHCP服務(wù)器和各子網(wǎng)都直接相連,這和現(xiàn)實(shí)生產(chǎn)環(huán)境存在較大差異。在中、大型企業(yè)的以太網(wǎng)絡(luò)中,在各子網(wǎng)邊界間的路由器或三層交換機(jī)上啟用DHCP中繼服務(wù)可以很好地解決三層設(shè)備隔離DHCP廣播報(bào)文的問題。文中采用DHCP中繼技術(shù),成功利用一臺(tái)DHCP服務(wù)器為多個(gè)IP子網(wǎng)中的DHCP客戶端分配了IP地址,這臺(tái)DHCP服務(wù)器可以方便地部署在企業(yè)網(wǎng)絡(luò)的核心機(jī)房中,管理相對(duì)簡(jiǎn)便。文中在eNSP模擬環(huán)境下使用了一臺(tái)路由器擔(dān)任DHCP服務(wù)器角色,而在實(shí)際生產(chǎn)環(huán)境下應(yīng)該使用更專業(yè)的DHCP服務(wù)器。
參考文獻(xiàn):
[1] 歐坤,陳玲.Intranet中DHCP服務(wù)應(yīng)用與仿真實(shí)驗(yàn)設(shè)計(jì) [J].河池學(xué)院學(xué)報(bào),2018,38(5):72-80.
[2] 謝芳.DHCP技術(shù)在校園網(wǎng)絡(luò)中的應(yīng)用 [J].電子技術(shù)與軟件工程,2021(9):9-10.
[3] 梁賓,宋蓓蓓.VLAN之間通信方案設(shè)計(jì)與仿真實(shí)驗(yàn) [J].電子測(cè)試,2019(Z1):88-90.
[4] 邊勝琴,王洪泊,崔曉龍.DHCP實(shí)驗(yàn)的設(shè)計(jì)與實(shí)現(xiàn) [J].電子測(cè)試,2020(1):77-80.
[5] 惠震.基于DHCP協(xié)議的高校宿舍網(wǎng)絡(luò)規(guī)劃 [J].科教導(dǎo)刊(下旬),2017(5):22-23.
[6] 楊禮.基于eNSP的DHCP原理設(shè)計(jì)與分析 [J].新疆師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2019,38(1):85-90.
[7] 周娟.基于eNSP的DHCP網(wǎng)絡(luò)實(shí)驗(yàn)的設(shè)計(jì)與實(shí)施 [J].電腦知識(shí)與技術(shù),2021,17(8):34-36+48.
[8] 辛偉偉,郝繼升,張成.基于Wireshark的DHCP網(wǎng)絡(luò)故障定位分析 [J].延安大學(xué)學(xué)報(bào)(自然科學(xué)版),2018,37(1):34-36.
作者簡(jiǎn)介:張清濤(1980.01—),男,漢族,河北邯鄲人,講師,碩士,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和云計(jì)算技術(shù)。