徐濟(jì)成,朱 昊,李靜月
(安徽中澳科技職業(yè)學(xué)院信息技術(shù)與藝術(shù)傳媒系,安徽 合肥 230041)
隨著互聯(lián)網(wǎng)的飛速發(fā)展,用戶終端對(duì)計(jì)算機(jī)網(wǎng)絡(luò)的魯棒性和健壯性提出了更高的要求.對(duì)于內(nèi)網(wǎng)用戶來(lái)說(shuō),與外部網(wǎng)絡(luò)保持不間斷的通信可以保證信息獲取的實(shí)時(shí)性和準(zhǔn)確性.內(nèi)網(wǎng)中的主機(jī)一般通過(guò)設(shè)置指向出口網(wǎng)關(guān)的缺省路由來(lái)實(shí)現(xiàn)主機(jī)與外部網(wǎng)絡(luò)的通信.在此情況下,若該出口網(wǎng)關(guān)死機(jī),那么整個(gè)上行的流量就會(huì)全部斷掉,主機(jī)與外部網(wǎng)絡(luò)的通信也中斷,這就是所謂的單點(diǎn)故障[1].設(shè)置多個(gè)出口網(wǎng)關(guān)是網(wǎng)絡(luò)管理人員用來(lái)提高網(wǎng)絡(luò)魯棒性[2-3]的常用方法,但內(nèi)網(wǎng)的終端設(shè)備大多不支持動(dòng)態(tài)路由協(xié)議,因此如何在多個(gè)出口網(wǎng)關(guān)之間進(jìn)行路由選擇,實(shí)現(xiàn)故障環(huán)境下的網(wǎng)絡(luò)穩(wěn)定通信是亟待解決的問(wèn)題.
VRRP(Virtual Router Redundancy Protocol,虛擬路由冗余協(xié)議)是由IETF 因特網(wǎng)工程任務(wù)組推出的一種容錯(cuò)協(xié)議,旨在解決局域網(wǎng)主機(jī)訪問(wèn)外部網(wǎng)絡(luò)的可靠性問(wèn)題[4].它包括如下應(yīng)用特性:
(1)主備備份:該方式是建立一個(gè)虛擬備份組.該備份組中包括一個(gè)Master 設(shè)備和若干Backup 設(shè)備.正常情況下由Master 設(shè)備承擔(dān)全部數(shù)據(jù)轉(zhuǎn)發(fā)業(yè)務(wù),當(dāng)Master 設(shè)備出現(xiàn)故障時(shí),Backup 設(shè)備接替其工作.
(2)負(fù)載均衡:該方式是指多臺(tái)路由器同時(shí)承擔(dān)業(yè)務(wù),單個(gè)虛擬備份組不具備負(fù)載分擔(dān)功能的,需要在多臺(tái)設(shè)備上建立兩個(gè)或兩個(gè)以上的備份組,所有備份組均勻承擔(dān)Master 狀態(tài),而對(duì)于每臺(tái)設(shè)備來(lái)說(shuō),它們只是承擔(dān)了部分業(yè)務(wù),從而達(dá)到負(fù)載均衡的作用[5].
(3)監(jiān)視接口狀態(tài):每一個(gè)VRRP 的虛擬備份組都可以監(jiān)視與該備份組綁定的接口的狀態(tài).一旦接口出現(xiàn)故障,VRRP 就會(huì)通過(guò)調(diào)整優(yōu)先級(jí)來(lái)重新確定主備關(guān)系.
(4)安全功能:VRRP 通過(guò)在報(bào)頭上設(shè)定相應(yīng)的認(rèn)證方式和認(rèn)證字來(lái)適應(yīng)安全程度不同的網(wǎng)絡(luò)環(huán)境.
(5)快速切換:VRRP 通過(guò)雙向轉(zhuǎn)發(fā)檢測(cè)機(jī)制來(lái)實(shí)現(xiàn)主備間的快速切換,切換時(shí)間在1 s 以內(nèi).
VRRP 將內(nèi)部網(wǎng)絡(luò)中的一組路由器構(gòu)成一個(gè)虛擬備份組,相當(dāng)于一個(gè)虛擬路由器.局域網(wǎng)內(nèi)的主機(jī)無(wú)需知道具體某臺(tái)網(wǎng)關(guān)設(shè)備的IP 地址,只需要知道該虛擬路由器的IP 地址,并將網(wǎng)絡(luò)內(nèi)主機(jī)的缺省網(wǎng)關(guān)設(shè)置為該虛擬路由備份組的IP 地址,主機(jī)就可以利用該虛擬網(wǎng)關(guān)與外部網(wǎng)絡(luò)進(jìn)行通信.VRRP 將該虛擬路由器動(dòng)態(tài)關(guān)聯(lián)到承擔(dān)傳輸業(yè)務(wù)的物理路由器上.當(dāng)該物理路由器出現(xiàn)故障時(shí),會(huì)再次選擇新的物理路由器來(lái)接替業(yè)務(wù)傳輸工作,整個(gè)過(guò)程對(duì)用戶完全透明,實(shí)現(xiàn)了內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)不間斷通信.VRRP 協(xié)議既消除了單點(diǎn)故障,又同時(shí)實(shí)現(xiàn)了下行設(shè)備在故障發(fā)生時(shí)的流量無(wú)障礙轉(zhuǎn)發(fā).這種協(xié)議無(wú)需下行設(shè)備與出口路由器進(jìn)行交互性操作,卻完全實(shí)現(xiàn)了網(wǎng)絡(luò)出口的冗余備份[6].
圖1 VRRP 工作原理拓?fù)?/p>
如圖1所示,RA、RB 和RC 的真實(shí)IP 地址分別是10.110.10.5、10.110.10.6 和10.110.10.7,它們構(gòu)成一個(gè)VRRP 虛擬備份組,形成一個(gè)虛擬路由器,可以給這個(gè)虛擬路由器設(shè)置IP地址10.110.10.1,主機(jī)終端通過(guò)該虛擬IP 與外部網(wǎng)絡(luò)進(jìn)行通信.在此過(guò)程中,路由器RA、RB 和RC 按如下方式進(jìn)行工作:
(1)選出Master 設(shè)備.比較路由器優(yōu)先級(jí)的大小,優(yōu)先級(jí)高的當(dāng)選為Master 設(shè)備.在優(yōu)先級(jí)相同的情況下,比較接口IP 地址大小,接口地址較大者當(dāng)選為Master 設(shè)備.其他路由器則作為Backup 設(shè)備,隨時(shí)監(jiān)聽(tīng)Master 設(shè)備的狀態(tài).
(2)當(dāng)Master 設(shè)備正常工作時(shí),會(huì)每隔一段時(shí)間發(fā)送一個(gè)VRRP 組播報(bào)文,以通知組內(nèi)的Backup 設(shè)備,Master 設(shè)備處于正常工作狀態(tài).
(3)當(dāng)VRRP 虛擬備份組內(nèi)的Backup 設(shè)備一段時(shí)間內(nèi)沒(méi)有接收到來(lái)自Master 設(shè)備的報(bào)文,則將自己轉(zhuǎn)為Master 設(shè)備.當(dāng)一個(gè)虛擬備份組里有多臺(tái)Backup 設(shè)備時(shí),短時(shí)間內(nèi)可能產(chǎn)生多個(gè)Master,此時(shí),路由器將會(huì)把收到的VRRP 報(bào)文中的優(yōu)先級(jí)與本地優(yōu)先級(jí)做比較,從而選取優(yōu)先級(jí)高的設(shè)備做Master.
從上述分析可以看到,當(dāng)某臺(tái)路由器出現(xiàn)故障時(shí),內(nèi)部網(wǎng)絡(luò)的主機(jī)終端只需要將缺省網(wǎng)關(guān)的IP 地址設(shè)置成10.110.10.1,即可與外界繼續(xù)保持通信,而無(wú)需知道具體路由器上的接口地址.
VRRP 協(xié)議僅有一種報(bào)文,該報(bào)文主要用來(lái)將Master 設(shè)備的優(yōu)先級(jí)和狀態(tài)通告給同一虛擬備份組中的所有VRRP 路由器[7].
VRRP 協(xié)議的報(bào)文結(jié)構(gòu)如圖2所示,它的協(xié)議號(hào)為112,TTL 為255,源地址為發(fā)送報(bào)文的主接口地址.VRRP 報(bào)文事先要封裝到IP 報(bào)文中,再發(fā)送給目的地址224.0.0.18(該地址是分配給VRRP 的組播地址).
圖2 VRRP 協(xié)議的報(bào)文結(jié)構(gòu)
VRRP 協(xié)議在運(yùn)行中會(huì)出現(xiàn)3 種狀態(tài):初始狀態(tài)、活動(dòng)狀態(tài)和備份狀態(tài)[4].其中,發(fā)往虛擬IP 地址的報(bào)文只有處于活動(dòng)狀態(tài)的路由器才可以轉(zhuǎn)發(fā).VRRP 狀態(tài)轉(zhuǎn)換如圖3所示.
圖3 VRRP 狀態(tài)機(jī)
(1)初始狀態(tài)(Init)
路由器啟動(dòng)時(shí)進(jìn)入此狀態(tài),收到接口開(kāi)啟的消息,將轉(zhuǎn)入活動(dòng)狀態(tài)或者備份狀態(tài).處于初始狀態(tài)的VRRP 報(bào)文不做任何處理.
(2)活動(dòng)狀態(tài)(Master)
當(dāng)路由器處于活動(dòng)狀態(tài)時(shí),它將定期發(fā)送VRRP 報(bào)文,再通過(guò)虛擬MAC 地址響應(yīng)虛擬IP地址的ARP 請(qǐng)求,然后轉(zhuǎn)發(fā)目的MAC 地址為虛擬MAC 地址的IP 報(bào)文.若它是這個(gè)虛擬IP 地址的擁有者,則接收目的IP 地址為這個(gè)虛擬IP地址的IP 報(bào)文,否則丟棄這個(gè)IP 報(bào)文;若收到比自己優(yōu)先級(jí)大的報(bào)文則轉(zhuǎn)為備份狀態(tài);若收到優(yōu)先級(jí)和自己相同的報(bào)文,并且發(fā)送端的主IP地址比自己的主IP 地址大,則轉(zhuǎn)為備份狀態(tài).當(dāng)接收到接口的關(guān)閉消息時(shí),轉(zhuǎn)為初始狀態(tài).
(3)備份狀態(tài)(Backup)
當(dāng)路由器處于備份狀態(tài)時(shí),它將接收Master發(fā)送的VRRP 報(bào)文,判斷Master 的狀態(tài)是否正常.對(duì)于虛擬IP 地址的ARP 請(qǐng)求,路由器不做響應(yīng),同時(shí)丟棄目的MAC 地址為虛擬MAC 地址的IP 報(bào)文和目的IP 地址為虛擬IP 地址的IP 報(bào)文.在此狀態(tài)下,若收到比自己優(yōu)先級(jí)小的報(bào)文時(shí),丟棄報(bào)文,不重置定時(shí)器;若收到優(yōu)先級(jí)與自己相同的報(bào)文,則重置定時(shí)器,不進(jìn)一步比較IP 地址.當(dāng)Backup 接收到MASTER_DOWN_TIMER定時(shí)器超時(shí)的事件時(shí),才會(huì)轉(zhuǎn)為Master;當(dāng)接收到接口的Shutdown 事件時(shí),轉(zhuǎn)為初始狀態(tài).
本文采用Cisco 開(kāi)發(fā)的GNS3 模擬器[8],搭建如圖4所示的網(wǎng)絡(luò)拓?fù)?該拓?fù)浣Y(jié)構(gòu)將圖1中的示例進(jìn)行簡(jiǎn)化,增加了VRRP 協(xié)議實(shí)驗(yàn)驗(yàn)證的便利性.其中,路由器RA、RB 屬于同一個(gè)VRRP虛擬備份組,指定該虛擬備份組的IP 地址為10.110.10.1.
圖4 VRRP 實(shí)驗(yàn)仿真拓?fù)?/p>
(1)在路由器上配置RIP 協(xié)議,實(shí)現(xiàn)全網(wǎng)連通,如Config 1(其他路由器配置類(lèi)似)所示.在不運(yùn)行VRRP 的情況下,如果RA 或者RB 中的某臺(tái)路由器宕機(jī),主機(jī)都將無(wú)法訪問(wèn)Network.
Config 1:
RA(config)#router rip
RA(config-router)#version 2
RA(config-router)#network 210.96.10.0
RA(config-router)#network 10.110.10.0
RA(config-router)#no auto-summary
RA(config-router)#end
(2)在RA 和RB 上運(yùn)行VRRP 協(xié)議.設(shè)置RA 的優(yōu)先級(jí)為200,RB 的優(yōu)先級(jí)為100,根據(jù)VRRP 路由器的工作機(jī)制,RA 成為主路由器(Master),RB 成為備份路由器(Backup),如Config 2 所示.
Config 2:
RA#show vrrp brief
Interface Grp Pri Pre State Grp addr
Fa0/0 1 200 Y Master 10.110.10.1
RB#show vrrp brief
Interface Grp Pri Pre State Grp addr
Fa0/0 1 100 Y Backup 10.110.10.1
(3)將RA 的fa0/0 端口down 掉,RA 和RB的狀態(tài)將迅速發(fā)生切換,RB 由原來(lái)的Backup 狀態(tài)轉(zhuǎn)換為Master 狀態(tài),如Config 3 所示.
Config 3:
RA#show vrrp brief
Interface Grp Pri Pre State Grp addr
Fa0/0 1 200 Y Init 10.110.10.1
RB#show vrrp brief
Interface Grp Pri Pre State Grp addr
Fa0/0 1 100 Y Master 10.110.10.1
(4)設(shè)置HostA 的網(wǎng)關(guān)地址為虛擬備份組的IP 地址10.10.110.1,當(dāng)前的主路由器RB 將為HostA 轉(zhuǎn)發(fā)數(shù)據(jù),從而實(shí)現(xiàn)了在RA 宕機(jī)的情況下,HostA 依然能夠訪問(wèn)Network.
本文通過(guò)仿真實(shí)驗(yàn)設(shè)計(jì),驗(yàn)證了VRRP 協(xié)議具有消除單點(diǎn)故障,提升網(wǎng)絡(luò)魯棒性的功能.但在VRRP 的運(yùn)行環(huán)境中,備份路由器只負(fù)責(zé)監(jiān)聽(tīng)網(wǎng)絡(luò)狀態(tài)而不轉(zhuǎn)發(fā)數(shù)據(jù),造成了資源的浪費(fèi).因此,為了進(jìn)一步提高網(wǎng)絡(luò)資源的利用率,可以通過(guò)配置多個(gè)VRRP 組來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)的負(fù)載均衡[9].
[1]徐江紅,馬蕾.使用雙機(jī)備份方案解決網(wǎng)絡(luò)中單點(diǎn)故障[J].微處理機(jī),2012,33(6):20 -22.
[2]李國(guó)穎,成柏松,張鵬,等.相互依存網(wǎng)絡(luò)魯棒性研究綜述[J].電子科技大學(xué)學(xué)報(bào),2013(1):23-28.
[3]黃金源,張寧,肖仰華.基于拷貝模型的復(fù)雜網(wǎng)絡(luò)魯棒性研究[J].計(jì)算機(jī)應(yīng)用研究,2010(4):1403-1406.
[4]R.Hinden Ed.Virtual router redundancy protocol(VRRP)[S].IETF RFC3768,USA,2004:10 -18.
[5]關(guān)瑞東,孫文勝.支持動(dòng)態(tài)負(fù)載均衡的虛擬路由器冗余技術(shù)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2010,32(1):13 -16.
[6]張珠庭.VRRP+MSTP 技術(shù)提升網(wǎng)絡(luò)可用性水平的方案設(shè)計(jì)研究[J].淮海工學(xué)院學(xué)報(bào),2013,22(2):42-45.
[7]陳偉旭.基于IPv4 的VRRP 協(xié)議研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué)碩士學(xué)位論文,2012:10 -11.
[8]王麗娜,劉炎.基于GNS3 的冗余網(wǎng)絡(luò)仿真[J].實(shí)驗(yàn)室研究與探索,2013,32(8):55 -59.
[9]祝偉華,徐強(qiáng).基于動(dòng)態(tài)負(fù)載均衡的VRRP 協(xié)議研究[J].重慶理工大學(xué)學(xué)報(bào):自然科學(xué)版,2011,25(7):76 -80.
重慶文理學(xué)院學(xué)報(bào)(社會(huì)科學(xué)版)2015年2期