■ 安徽工商職業(yè)學(xué)院 王春苗 劉玥
編者按:本文以企業(yè)內(nèi)部網(wǎng)絡(luò)的實(shí)際需求為出發(fā)點(diǎn),以CentOS 8 虛擬機(jī)和華為eNSP 模擬器為系統(tǒng)和網(wǎng)絡(luò)平臺(tái),復(fù)現(xiàn)實(shí)際的企業(yè)內(nèi)網(wǎng)環(huán)境,詳細(xì)講解如何部署DHCP 故障轉(zhuǎn)移雙活架構(gòu)DHCP failover peer,并進(jìn)行故障轉(zhuǎn)移測(cè)試和抓包分析。
在桌面云應(yīng)用中,批量的虛擬機(jī)需要自動(dòng)獲取IP 參數(shù),如果獲取失敗,則虛擬機(jī)無法注冊(cè)到域控制器。在典型的公司企業(yè)網(wǎng)絡(luò)中,辦公電腦、移動(dòng)終端、物聯(lián)網(wǎng)設(shè)備等也需要從DHCP 服務(wù)器獲取IP 參數(shù),便于網(wǎng)絡(luò)管理。
由此可見,DHCP 服務(wù)器在很多網(wǎng)絡(luò)環(huán)境中是不可或缺的,但是它也存在單點(diǎn)故障的風(fēng)險(xiǎn)。而基于CentOS 8的DHCP failover peer 則是一種健壯穩(wěn)定的DHCP 高可用解決方案,基本結(jié)構(gòu)如圖1 所示。
本文使用華為eNSP 模擬器構(gòu)建交換網(wǎng)絡(luò)環(huán)境;使用兩臺(tái)CentOS 8 虛擬機(jī)系統(tǒng)部署DHCP failover peer雙活架構(gòu);分別使用一臺(tái)CentOS 8 和一臺(tái)Windows 7 虛擬機(jī)系統(tǒng)作為DHCP 客戶端角色;最后再使用一臺(tái)CentOS 8 作為網(wǎng)關(guān)角色(或使用eNSP 模擬器的路由設(shè)備)。
添加虛擬網(wǎng)絡(luò):通過 VMware Workstation 的虛擬網(wǎng)絡(luò)編輯器添加4 個(gè)虛擬網(wǎng)絡(luò),分別為Vmnet1、Vmnet2、Vmnet3 和Vmnet4。為了能夠和eNSP 模擬器實(shí)現(xiàn)橋接通信,需要啟用主機(jī)虛擬適配器連接到4 個(gè)虛擬網(wǎng)絡(luò),且必須在4 個(gè)虛擬網(wǎng)絡(luò)中禁用VMware Workstation 自帶的DHCP 服務(wù),如圖2 所示。
圖1 基本 DHCP failover peer 拓?fù)鋱D
為各個(gè)虛擬機(jī)分配虛擬網(wǎng)絡(luò):兩臺(tái)DHCP 服務(wù)器自定義分配到Vmnet1 虛擬網(wǎng)絡(luò);CentOS 8 客戶端自定義分配到Vmnet2 虛擬網(wǎng)絡(luò);Windows 7 客戶端自定義分配到Vmnet3 虛擬網(wǎng)絡(luò);CentOS 8 網(wǎng)關(guān)的內(nèi)網(wǎng)網(wǎng)卡自定義分配到Vmnet4 虛擬網(wǎng)絡(luò),外網(wǎng)網(wǎng)卡使用NAT 模式。
為了實(shí)現(xiàn)和Vmware 虛擬機(jī)的通信,需要在eNSP 模擬器中添加4 個(gè)Cloud 設(shè)備,分別綁定到Vmnet1~Vmnet4虛擬網(wǎng)絡(luò)和增加UDP 端口,4 臺(tái)Cloud 設(shè)備設(shè)置出入端口編號(hào),啟用雙向通道,并增加端口映射;添加一臺(tái)交換機(jī)設(shè)備,用于連接4 臺(tái)Cloud設(shè)備。
在eNSP 模擬器中使用以太網(wǎng)鏈路互連交換機(jī)和所有Cloud 設(shè)備的相應(yīng)接口,并啟動(dòng)交換機(jī)設(shè)備。
圖2 虛擬網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)
圖3 網(wǎng)絡(luò)拓?fù)溥B接
至此,用于復(fù)現(xiàn)實(shí)際企業(yè)公司內(nèi)部網(wǎng)絡(luò)的拓?fù)洵h(huán)境就已成功搭建完成,如圖3 所示。
以華為S5700 交換機(jī)為例,結(jié)合網(wǎng)絡(luò)拓?fù)浜蛻?yīng)用需求,具體配置如下:
(1)創(chuàng)建4 個(gè)VLAN 和添加以太網(wǎng)接口
(2)啟用全局DHCP 功能
[S5700]dhcp enable
(3)VLAN 接口配置IP 參數(shù)、啟用DHCP 中繼和指定中繼服務(wù)器地址
VLAN11 接口配置:兩臺(tái)DHCP 服務(wù)器屬于VLAN11,所以VLAN11 虛擬接口無需啟用DHCP 中繼功能。
圖4 網(wǎng)關(guān)內(nèi)網(wǎng)接口配置
VLAN12 接口配置:CentOS 8 客戶端屬于VLAN12,所以VLAN12 虛擬接口需要啟用DHCP 中繼功能并指定兩臺(tái)DHCP 服務(wù)器地址。
VLAN13 接口配置:IP 地址為172.16.13.254/24,配置方法同VLAN12 接口,此處略;VLAN14 接口配置:IP 地址為172.16.14.254/24,接口無需啟用DHCP 中繼功能,配置方法同VLAN11 接口,此處略。
(4)交換機(jī)配置默認(rèn)路由
本文中網(wǎng)關(guān)的主要功能是提供源NAT 技術(shù),從而支持內(nèi)網(wǎng)訪問互聯(lián)網(wǎng),并且為兩臺(tái)DHCP 服務(wù)器配置使用網(wǎng)絡(luò)yum 倉庫源提供連網(wǎng)支持。
本文采用CentOS 8 虛擬機(jī)系統(tǒng)作為網(wǎng)關(guān)服務(wù)器,需要添加兩塊虛擬網(wǎng)絡(luò)適配器,并配置內(nèi)網(wǎng)接口IP 參數(shù)、外網(wǎng)接口IP 參數(shù)、啟用路由轉(zhuǎn)發(fā)、配置源NAT 功能、添加到內(nèi)網(wǎng)各個(gè)網(wǎng)段的靜態(tài)路由。
(1)配置內(nèi)網(wǎng)和外網(wǎng)接口IP 參數(shù)
可以直接運(yùn)行nmtui 命令,打開“網(wǎng)絡(luò)管理文本用戶接口”工具,利用該工具可以方便的配置IP 參數(shù)。
此處配置內(nèi)網(wǎng)接口IP參數(shù)為172.16.14.253/24,配置外網(wǎng)接口通過VMware Workstation 的NAT 模式自帶的DHCP 服務(wù)獲取IP 參數(shù),如圖4 和圖5 所示。
另外,選擇圖4 中的“Routing(No custom routes)
(2)啟用路由轉(zhuǎn)發(fā)
(3)配置firewalld 防火墻并啟用源NAT
外網(wǎng)接口ens33 加入external 區(qū)域,該防火墻區(qū)域連接外網(wǎng),默認(rèn)情況下啟用了偽裝(masquerade)功能,即源NAT,凡是從該接口發(fā)出去的數(shù)據(jù)包,其源IP 地址都會(huì)轉(zhuǎn)換為ens33 接口的IP 地址。
圖5 網(wǎng)關(guān)外網(wǎng)接口配置
(4)添加到內(nèi)網(wǎng)的靜態(tài)路由和測(cè)試網(wǎng)絡(luò)連通性
可以通過route 命令添加靜態(tài)路由。由于最小化方式安裝的CentOS 8 系統(tǒng)沒有該命令,可以通過yum 方式安裝包含該命令的軟件包。
確保當(dāng)前網(wǎng)關(guān)服務(wù)器能夠連接互聯(lián)網(wǎng),從華為開源鏡像站(https://mirrors.huaweicloud.com/)下載yu m 倉庫源配置文件,從而使用華為開源鏡像站作為yum 倉庫源(也可以使用CentOS 8系統(tǒng)光盤作為倉庫源):
清理yum 倉庫緩存、重建緩存、查看yum 倉庫狀態(tài):
通 過yum 安 裝nettools 軟件包:yum install-y net-tools
安裝成功后,通過route命令添加靜態(tài)路由:
注意,如果希望添加永久路由,則可以通過前面介紹的nmtui 工具配置。
對(duì)內(nèi)網(wǎng)交換機(jī)VLAN 接口進(jìn)行PING 測(cè)試:
(1)使用nmtui 工具配置接口IP 參數(shù)
(2)使用華為開源鏡像站作為yum 倉庫源和安裝DHCP 服務(wù)軟件包
Yum 倉庫源配置及初始化如前面所述,此處略。
查詢和安裝DHCP 服務(wù)軟件包:
(3)DHCP 服務(wù)器01 作為主服務(wù)器,配置DHCP 區(qū)域文件
添加內(nèi)容如下,然后保存配置文件:
(4)啟動(dòng)dhcpd 服務(wù)和添加服務(wù)自啟
(1)使用nmtui 工具配置接口IP 參數(shù)
(2)配置yum 倉庫源和安裝DHCP 服務(wù)軟件包(同上)
(3)DHCP 服務(wù)器02 作為從服務(wù)器,從主服務(wù)器拷貝配置文件并進(jìn)行修改
考慮到SELinux 和Fire walld 防火墻可能會(huì)影響DHCP 服務(wù)的正常工作,建議兩臺(tái)DHCP 服務(wù)器都修改SELinux 的默認(rèn)模式以及禁用Firewalld 防火墻或設(shè)置防火墻放行策略。
DHCP failover peer 雙活架構(gòu)要求兩臺(tái)DHCP 服務(wù)器之間的時(shí)間誤差較小,而在實(shí)際的應(yīng)用中,隨著兩臺(tái)服務(wù)器的長時(shí)間運(yùn)行,它們之間的時(shí)間誤差可能會(huì)越來越大,所以必須配置相應(yīng)的時(shí)間自動(dòng)同步策略。
CentOS 8 已經(jīng)不支持舊版的ntpdate 命令,時(shí)間同步通過chrony 的程序來完成。
從顯示的結(jié)果可以知道chrony 程序后臺(tái)服務(wù)是:
當(dāng)上述所有配置完成后,在兩臺(tái)DHCP 服務(wù)器上重啟dhcpd 服務(wù):
此時(shí)如果沒有任何報(bào)錯(cuò)信息,說明服務(wù)啟動(dòng)成功,但是不代表兩臺(tái)dhcpd 服務(wù)狀態(tài)同步正確,需要進(jìn)一步查看服務(wù)狀態(tài)信息:
如果兩臺(tái)DHCP 服務(wù)器顯示的信息中,都包含“failover peer dhcp:Both servers normal”,則兩臺(tái)dhcpd 服務(wù)狀態(tài)是同步和一致的。
另外,通過在Vmnet1 虛擬網(wǎng)絡(luò)中抓包,可以發(fā)現(xiàn)兩臺(tái)DHCP 服務(wù)器之間會(huì)定期交換狀態(tài)信息報(bào)文,用于一致性同步。
啟動(dòng)CentOS 8 客戶端系統(tǒng),通過nmtui 工具設(shè)置自動(dòng)獲取IP 參數(shù),然后依次禁用網(wǎng)卡和啟用網(wǎng)卡:ifdown ens33、ifup ens33
查看獲取到的IP 參數(shù):ip addr
分別在兩臺(tái)DHCP 服務(wù)器上再次查看服務(wù)狀態(tài):systemctl status dhcpd
兩臺(tái)服務(wù)器顯示的結(jié)果包含了相同的地址租約信息:
通過類似的方法,測(cè)試Windows 7 客戶端系統(tǒng)的地址獲取情況,并且查看兩臺(tái)服務(wù)器的服務(wù)狀態(tài)信息,依然顯示相同的地址租約信息。
關(guān)閉任意一臺(tái)DHCP 服務(wù)器,如“DHCP 服務(wù)器01”,然后查看“DHCP 服務(wù)器02”的服務(wù)狀態(tài)信息,顯示結(jié)果如下:
說明當(dāng)前狀態(tài)存活的“DHCP 服務(wù)器02”已經(jīng)檢測(cè)到伙伴服務(wù)器出現(xiàn)故障。
此時(shí),重啟兩臺(tái)客戶端系統(tǒng),并查看IP 參數(shù)獲取情況,發(fā)現(xiàn)它們獲取到的地址并沒有發(fā)生改變,即“DHCP failover peer”中的一臺(tái)服務(wù)器故障。
對(duì)于DHCP 客戶端來說是透明無感知的,故障轉(zhuǎn)移是完全自動(dòng)進(jìn)行的,且客戶端重啟后會(huì)繼續(xù)原有的地址租約不會(huì)改變。再次啟動(dòng)“DHCP服務(wù)器01”,然后查看“DHCP服務(wù)器02”的服務(wù)狀態(tài)信息,顯示“failover peer dhcp:Both servers normal”,說明“DHCP failover peer”恢復(fù)到正常狀態(tài)。