彭求明
任何一臺終端(筆記本電腦、臺式機、手機、平板電腦、網絡攝像頭等)要能接入到互聯網中,必須要配置IP地址、子網掩碼、默認網關等信息,這些信息可以使用手工靜態配置,但需要用戶具備一定的技術背景,在用戶經常變更的網絡或較大型的網絡中,采用手工靜態配置工作量大、容易出錯、還可能會造成IP地址沖突等問題,因此在企業網絡、校園網絡、家庭網絡中基本上都是通過DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)自動獲取IP地址、子網掩碼、默認網關等信息,實現終端設備在網絡中的即插即用,可見DHCP的使用非常廣泛。因此對于計算機相關專業的學生就很有必要學習DHCP的基本原理、掌握其基本配置。
DHCP作為一種應用層協議,使用的是客戶端—服務器通信模型,客戶端可以使用Windows系統的筆記本電腦或臺式機,服務器既可以是專用Windows或Linux服務器。如果沒有真實的服務器設備,也可以在計算機里安裝VMware Workstation虛擬機,再在虛擬機里裝Windows系統作為DHCP客戶端,虛擬機里裝Windows Server服務器版操作系統作為DHCP服務器。在中等規模及以下的企業網中,無需單獨部署DHCP服務器,使用華為企業級路由器即可充當DHCP服務器,這樣省掉了單獨部署DHCP服務器的成本,因此對于網絡工程師、網絡系統建設與運維等專業的學生就很有必要掌握企業級路由器來充當DHCP服務器的工作原理、配置命令,由于在物理真機上做DHCP實驗,對設備、數量、場地等都有要求,并且操作起來還比較麻煩,因此本文是在華為eNSP(Enterprise Network Simulation Platform,企業網絡仿真平臺)模擬器中,用企業級路由器來模擬DHCP服務器、PC或路由器來模擬DHCP客戶端,來完成DHCP實驗。
要想讓華為企業級路由器提供DHCP服務器功能,管理員可以使用兩種方式進行配置:
1)基于接口地址池的配置方式:路由器能夠為接口連接的同一IP子網中的DHCP客戶端動態分配IP地址等信息;
2)基于全局地址池的配置方式:通過配置全局地址池,路由器不僅能夠為與本地接口同屬于一個IP子網的DHCP客戶端分配IP地址等信息,還能夠為非直連的DHCP客戶端分配IP地址等信息。
本實驗采用基于接口地址池的配置方式,拓撲圖如下所示:AR1的GE0/0/1接口充當DHCP服務器,PC10和PC11充當 DHCP客戶端;AR1的GE0/0/2接口充當DHCP服務器,AR2的GE0/0/2接口充當DHCP客戶端。
圖1
基于接口地址池,把華為路由器接口配置為DHCP服務器,步驟如下:
1)啟動整個網絡拓撲,在系統視圖下利用sysname命令,把AR1路由器更名為AR1_DHCP_SERVER,把AR2路由器更名為AR2。
2)配置AR1_DHCP_SERVER路由器兩個接口的IP地址和子網掩碼:
[AR1_DHCP_SERVER]interface G0/0/1
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]ip address 10.0.10.1 24
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]quit
[AR1_DHCP_SERVER]interface G0/0/2
[AR1_DHCP_SERVER-GigabitEthernet0/0/2]ip address 10.0.20.1 24
3)使用系統視圖命令為路由器啟用DHCP服務,分別在G0/0/1和G0/0/2接口視圖下啟用DHCP服務器功能,基于接口地址池的DHCP服務器必須要做的配置就已完成。那么網關地址就是此接口的IP地址,可分配的地址池就是本子網除了此接口IP地址外的所有主機地址。
[AR1_DHCP_SERVER]dhcp enable
[AR1_DHCP_SERVER]interface G0/0/1
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]dhcp select interface
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]quit
[AR1_DHCP_SERVER]interface G0/0/2
[AR1_DHCP_SERVER-GigabitEthernet0/0/2]dhcp select interface
4)分別在PC10的E0/0/1接口、PC11的E0/0/1接口、AR2的G0/0/2接口上Wireshark抓包,在顯示過濾器中輸入"bootp"或"dhcp",只顯示dhcp協議的報文。
5)把PC10的IPv4配置由默認的靜態改成DHCP,點擊“應用”立即生效,然后在命令行里執行ipconfig就能查看到G0/0/1接口作為DHCP服務器動態分配的IPv4地址等信息,PC11的操作也一樣。
PC>ipconfig
6)要想讓AR2的G0/0/2接口IP地址由DHCP分配,需要先在AR2的系統下啟用DHCP服務,再在此接口視圖下啟用DHCP客戶端功能,然后就能查看到此接口的IP地址等信息是由AR1的G0/0/2接口作為DHCP服務器動態分配的。
[AR2]dhcp enable
[AR2]interface G0/0/2
[AR2-GigabitEthernet0/0/2]ip address dhcp-alloc
[AR2-GigabitEthernet0/0/2]display ip interface G0/0/2
7)查看AR1的兩個接口IP地址池信息:
至此,DHCP的基本工作流程已經結束,以PC10上抓取的報文為例,DHCP客戶端和DHCP服務器之間交互的報文截圖如圖2:
圖2
(1)由于剛剛連接到網絡中的客戶端(或叫終端)既沒有IP地址,也不知道DHCP服務器的IP地址,因此客戶端會在本地網絡中發送一條DHCP Discover廣播消息,來發現DHCP服務器。
(2)如果網絡中部署了一臺或多臺DHCP服務器,那么它(們)收到DHCP Discover消息后,會選取一個未分配的IP地址,向DHCP客戶端響應DHCP Offer消息,此消息中提供了分配給客戶端的IP地址和其它信息。如果存在多個DHCP服務器,每個DHCP服務器都會響應DHCP Offer消息。
(3)客戶端如果準備接受(其中一臺)DHCP服務器的提供,那么它就會向網絡中廣播一條DHCP Request消息,請求使用(其中一臺)DHCP服務器通過DHCP Offer消息提供的IP地址,鑒于這是一條廣播消息,因此網絡中所有在步驟(2)發送DHCP Offer的DHCP服務器都會接收到客戶端發送的DHCP請求消息,當然只有其中一臺DHCP服務器會發現客戶端是在向自己請求使用IP地址,而其它DHCP服務器在發現客戶端向另一臺服務器請求使用IP地址之后,就會將這條DHCP請求消息視為隱式的拒絕服務消息。
(4)提供了DHCP Offer消息中IP地址的那臺DHCP服務器在接收到DHCP請求后,如果發現對方所請求的IP地址仍然可用,那么DHCP服務器就會向請求IP地址的客戶端發送一條DHCP ACK消息,這條消息的目的是向客戶端確認其請求的IP地址仍然可用,如果已經不可用,那么DHCP服務器就會向客戶端發送一條DHCP NAK消息。DHCP客戶端在接收到DHCP服務器確認消息后,就會開始使用此確認消息中分配的IP地址等信息。
8)DHCP服務器除了分配必須的IP地址、子網掩碼、網關外,還可以做其它可選配置,進行配置優化,為了演示這些優化配置,我們先在PC10、PC11命令行里輸入ipconfig/release
PC>ipconfig/release
DHCP客戶端就會主動向DHCP服務器發送DHCP Release消息,釋放由DHCP服務器動態分配的IPv4地址等信息,DHCP服務器收到DHCP釋放消息后,就把此IP地址置為空閑狀態,之后可以把該IP地址分配給其它DHCP客戶端,報文截圖如圖3:
圖3
9)DHCP優化配置
(1)在AR1的G0/0/1接口視圖上配置分配給DHCP客戶端的DNS地址:
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]dhcp server dns-list 10.0.10.1
(2)在AR1的G0/0/1接口視圖上修改IP地址租期,默認租期為1天,修改為2天12小時30分鐘:
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]dhcp server lease day 2 hour 12 minute 30
(3)在AR1的G0/0/1接口視圖上排除一些IP地址,不分配給DHCP客戶端:
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]dhcp server excluded-ip-address 10.0.10.200 10.0.10.254
(4)在AR1的G0/0/1接口視圖上為指定MAC地址的客戶端固定分配一個IP地址。分配的IP地址必須在接口地址池范圍中,并且未被動態分配出去。把PC11固定分配IP地址10.0.10.11
[AR1_DHCP_SERVER-GigabitEthernet0/0/1]dhcp server static-bind ip-address 10.0.10.11 mac-address 5489-9899-01B9
10)分別在PC10、PC11命令行里輸入ipconfig/renew,DHCP服務器重新給DHCP客戶端動態分配IPv4地址等信息,DHCP客戶端和服務器之間交互流程跟上面的基本工作流程一樣,只不過DHCP服務器按照上面優化配置給客戶端分配。
PC>ipconfig/renew
11)查看AR1的G0/0/1接口IP地址池信息:
至此,動態主機配置暫時告一段落。由于DHCP動態分配的IP地址往往會有租期,因此之后客戶端與服務器雙方會圍繞IP地址續租周期性的進行通信。
華為企業級路由器基于接口地址池的DHCP服務器配置方式,基本配置簡單,而且還可以做各種優化配置,在eNSP模擬器中完成此實驗,不僅方便,也能理解其工作原理。