一、 1 概述 1.1 產(chǎn)生背景 隨著Internet的發(fā)展,人們對網(wǎng)絡(luò)可靠性的要求越來越高。特別是對于終端用戶
來說,能夠?qū)崟r與網(wǎng)絡(luò)其他部分保持聯(lián)系是非常重要的。一般來說,主機(jī)通過設(shè)
置默認(rèn)網(wǎng)關(guān)來與外部網(wǎng)絡(luò)聯(lián)系,如圖1所示:

圖1 常用局域網(wǎng)組網(wǎng)方案 主機(jī)將發(fā)送給外部網(wǎng)絡(luò)的報文發(fā)送給網(wǎng)關(guān),由網(wǎng)關(guān)傳遞給外部網(wǎng)絡(luò),從而實(shí)現(xiàn)主
機(jī)與外部網(wǎng)絡(luò)的通信。正常的情況下,主機(jī)可以完全信賴網(wǎng)關(guān)的工作,但是當(dāng)網(wǎng)
關(guān)壞掉時,主機(jī)與外部的通信就會中斷。要解決網(wǎng)絡(luò)中斷的問題,可以依靠再添
加網(wǎng)關(guān)的方式解決,不過由于大多數(shù)主機(jī)只允許配置一個默認(rèn)網(wǎng)關(guān),此時需要網(wǎng)
絡(luò)管理員進(jìn)行手工干預(yù)網(wǎng)絡(luò)配置,才能使得主機(jī)使用新的網(wǎng)關(guān)進(jìn)行通信;有時,
人們運(yùn)用動態(tài)路由協(xié)議的方法來解決網(wǎng)絡(luò)出現(xiàn)故障這一問題,如運(yùn)行RIP、OSPF等
,或者使用IRDP。然而,這些協(xié)議由于配置過于復(fù)雜,或者安全性能不好等原因
都不能滿足用戶的需求。 為了更好地解決網(wǎng)絡(luò)中斷的問題,網(wǎng)絡(luò)開發(fā)者提出了VRRP,它既不需要改變組網(wǎng)
情況,也不需要在主機(jī)上做任何配置,只需要在相關(guān)路由器上配置極少的幾條命
令,就能實(shí)現(xiàn)下一跳網(wǎng)關(guān)的備份,并且不會給主機(jī)帶來任何負(fù)擔(dān)。和其他方法比
較起來,VRRP更加能夠滿足用戶的需求。 1.2 技術(shù)優(yōu)點(diǎn) VRRP是一種容錯協(xié)議,它保證當(dāng)主機(jī)的下一跳路由器出現(xiàn)故障時,由另一臺路由
器來代替出現(xiàn)故障的路由器進(jìn)行工作,從而保持網(wǎng)絡(luò)通信的連續(xù)性和可靠性。 VRRP具有如下優(yōu)點(diǎn): 簡化網(wǎng)絡(luò)管理。在具有多播或廣播能力的局域網(wǎng)(如以太網(wǎng))
中,借助VRRP能在某臺設(shè)備出現(xiàn)故障時仍然提供高可靠的缺省鏈路,有效避免單
一鏈路發(fā)生故障后網(wǎng)絡(luò)中斷的問題,而無需修改動態(tài)路由協(xié)議、路由發(fā)現(xiàn)協(xié)議等
配置信息,也無需修改主機(jī)的默認(rèn)網(wǎng)關(guān)配置。 適應(yīng)性強(qiáng)。VRRP報文封裝在IP報文中,支持各種上層協(xié)議。 網(wǎng)絡(luò)開銷小。VRRP只定義了一種報文——VRRP通告報文,并且
只有處于Master狀態(tài)的路由器可以發(fā)送VRRP報文。 二、 2 VRRP協(xié)議介紹 2.1 相關(guān)術(shù)語 虛擬路由器:由一個Master路由器和多個Backup路由器組成。
主機(jī)將虛擬路由器當(dāng)作默認(rèn)網(wǎng)關(guān)。 VRID:虛擬路由器的標(biāo)識。有相同VRID的一組路由器構(gòu)成一個
虛擬路由器。 Master路由器:虛擬路由器中承擔(dān)報文轉(zhuǎn)發(fā)任務(wù)的路由器。 Backup路由器:Master路由器出現(xiàn)故障時,能夠代替Master路
由器工作的路由器。 虛擬IP地址:虛擬路由器的IP地址。一個虛擬路由器可以擁有
一個或多個IP地址。 IP地址擁有者:接口IP地址與虛擬IP地址相同的路由器被稱為
IP地址擁有者。 虛擬MAC地址:一個虛擬路由器擁有一個虛擬MAC地址。虛擬MAC
地址的格式為00-00-5E-00-01-{VRID}。通常情況下,虛擬路由器回應(yīng)ARP請求使
用的是虛擬MAC地址,只有虛擬路由器做特殊配置的時候,才回應(yīng)接口的真實(shí)MAC
地址。 優(yōu)先級:VRRP根據(jù)優(yōu)先級來確定虛擬路由器中每臺路由器的地位。 非搶占方式:如果Backup路由器工作在非搶占方式下,則只要
Master路由器沒有出現(xiàn)故障,Backup路由器即使隨后被配置了更高的優(yōu)先級也不
會成為Master路由器。 搶占方式:如果Backup路由器工作在搶占方式下,當(dāng)它收到
VRRP報文后,會將自己的優(yōu)先級與通告報文中的優(yōu)先級進(jìn)行比較。如果自己的優(yōu)
先級比當(dāng)前的Master路由器的優(yōu)先級高,就會主動搶占成為Master路由器;否則
,將保持Backup狀態(tài)。 2.2 虛擬路由器簡介 VRRP將局域網(wǎng)內(nèi)的一組路由器劃分在一起,形成一個VRRP備份組,它在功能上相
當(dāng)于一臺虛擬路由器,使用虛擬路由器號進(jìn)行標(biāo)識。以下使用虛擬路由器代替
VRRP備份組進(jìn)行描述。 虛擬路由器有自己的虛擬IP地址和虛擬MAC地址,它的外在表現(xiàn)形式和實(shí)際的物理
路由器完全一樣。局域網(wǎng)內(nèi)的主機(jī)將虛擬路由器的IP地址設(shè)置為默認(rèn)網(wǎng)關(guān),通過
虛擬路由器與外部網(wǎng)絡(luò)進(jìn)行通信。 虛擬路由器是工作在實(shí)際的物理路由器之上的。它由多個實(shí)際的路由器組成,包
括一個Master路由器和多個Backup路由器。Master路由器正常工作時,局域網(wǎng)內(nèi)
的主機(jī)通過Master與外界通信。當(dāng)Master路由器出現(xiàn)故障時,Backup路由器中的
一臺設(shè)備將成為新的Master路由器,接替轉(zhuǎn)發(fā)報文的工作,如圖2所示。

圖2 虛擬路由器示意圖 2.3 VRRP工作過程 VRRP的工作過程為: (1) 虛擬路由器中的路由器根據(jù)優(yōu)先級選舉出Master。Master路由器通過
發(fā)送免費(fèi)ARP報文,將自己的虛擬MAC地址通知給與它連接的設(shè)備或者主機(jī),從而
承擔(dān)報文轉(zhuǎn)發(fā)任務(wù); (2) Master路由器周期性發(fā)送VRRP報文,以公布其配置信息(優(yōu)先級等)
和工作狀況; (3) 如果Master路由器出現(xiàn)故障,虛擬路由器中的Backup路由器將根據(jù)優(yōu)
先級重新選舉新的Master; (4) 虛擬路由器狀態(tài)切換時,Master路由器由一臺設(shè)備切換為另外一臺設(shè)
備,新的Master路由器只是簡單地發(fā)送一個攜帶虛擬路由器的MAC地址和虛擬IP地
址信息的免費(fèi)ARP報文,這樣就可以更新與它連接的主機(jī)或設(shè)備中的ARP相關(guān)信息
。網(wǎng)絡(luò)中的主機(jī)感知不到Master路由器已經(jīng)切換為另外一臺設(shè)備。 (5) Backup路由器的優(yōu)先級高于Master路由器時,由Backup路由器的工作
方式(搶占方式和非搶占方式)決定是否重新選舉Master。 由此可見,為了保證Master路由器和Backup路由器能夠協(xié)調(diào)工作,VRRP需要實(shí)現(xiàn)
以下功能: Master路由器的選舉; Master路由器狀態(tài)的通告; 同時,為了提高安全性,VRRP還提供了認(rèn)證功能; 下面將從上述三個方面詳細(xì)介紹VRRP的工作過程。 2.3.1 Master路由器的選舉 VRRP根據(jù)優(yōu)先級來確定虛擬路由器中每臺路由器的角色(Master路由器或Backup
路由器)。優(yōu)先級越高,則越有可能成為Master路由器。 初始創(chuàng)建的路由器工作在Backup狀態(tài),通過VRRP報文的交互獲知虛擬路由器中其
他成員的優(yōu)先級: 如果VRRP報文中Master路由器的優(yōu)先級高于自己的優(yōu)先級,則
路由器保持在Backup狀態(tài); 如果VRRP報文中Master路由器的優(yōu)先級低于自己的優(yōu)先級,采
用搶占工作方式的路由器將搶占成為Master狀態(tài),周期性地發(fā)送VRRP報文,采用
非搶占工作方式的路由器仍保持Backup狀態(tài); 如果在一定時間內(nèi)沒有收到VRRP報文,則路由器切換為Master狀態(tài)。 VRRP優(yōu)先級的取值范圍為0到255(數(shù)值越大表明優(yōu)先級越高),可配置的范圍是1
到254,優(yōu)先級0為系統(tǒng)保留給路由器放棄Master位置時候使用,255則是系統(tǒng)保留
給IP地址擁有者使用。當(dāng)路由器為IP地址擁有者時,其優(yōu)先級始終為255。因此,
當(dāng)虛擬路由器內(nèi)存在IP地址擁有者時,只要其工作正常,則為Master路由器。 2.3.2 Master路由器狀態(tài)的通告 Master路由器周期性地發(fā)送VRRP報文,在虛擬路由器中公布其配置信息(優(yōu)先級
等)和工作狀況。Backup路由器通過接收到VRRP報文的情況來判斷Master路由器
是否工作正常。 Master路由器主動放棄Master地位(如Master路由器退出虛擬路由器)時,會發(fā)
送優(yōu)先級為0的VRRP報文,致使Backup路由器快速切換變成Master路由器。這個切
換的時間稱為Skew time,計(jì)算方式為:(256-Backup路由器的優(yōu)先級)/256,
單位為秒。 當(dāng)Master路由器發(fā)生網(wǎng)絡(luò)故障而不能發(fā)送VRRP報文的時候,Backup路由器并不能
立即知道其工作狀況。Backup路由器等待一段時間之后,如果還沒有接收到VRRP
報文,那么會認(rèn)為Master路由器無法正常工作,而把自己升級為Master路由器,
周期性發(fā)送VRRP報文。如果此時多個Backup路由器競爭Master路由器的位置,將
通過優(yōu)先級來選舉Master路由器。Backup路由器默認(rèn)等待的時間稱為
Master_Down_Interval,取值為:(3×VRRP報文的發(fā)送時間間隔)+Skew time
,單位為秒。 在性能不夠穩(wěn)定的網(wǎng)絡(luò)中,Backup路由器可能因?yàn)榫W(wǎng)絡(luò)堵塞而在
Master_Down_Interval期間沒有收到Master路由器的報文,而主動搶占為Master
位置,如果此時原Master路由器的報文又到達(dá)了,就會出現(xiàn)虛擬路由器的成員頻
繁的進(jìn)行Master搶占現(xiàn)象。為了緩解這種現(xiàn)象的發(fā)生,特制定了延遲等待定時器
。它可以使得Backup路由器在等待了Master_Down_Interval后,再等待延遲等待
時間。如在此期間仍然沒有收到VRRP報文,則此Backup路由器才會切換為Master
路由器,對外發(fā)送VRRP報文。 2.3.3 認(rèn)證方式 VRRP提供了三種認(rèn)證方式: 無認(rèn)證:不進(jìn)行任何VRRP報文的合法性認(rèn)證,不提供安全性保障。 簡單字符認(rèn)證:在一個有可能受到安全威脅的網(wǎng)絡(luò)中,可以將
認(rèn)證方式設(shè)置為簡單字符認(rèn)證。發(fā)送VRRP報文的路由器將認(rèn)證字填入到VRRP報文
中,而收到VRRP報文的路由器會將收到的VRRP報文中的認(rèn)證字和本地配置的認(rèn)證
字進(jìn)行比較。如果認(rèn)證字相同,則認(rèn)為接收到的報文是合法的VRRP報文;否則認(rèn)
為接收到的報文是一個非法報文。 MD5認(rèn)證:在一個非常不安全的網(wǎng)絡(luò)中,可以將認(rèn)證方式設(shè)置為
MD5認(rèn)證。發(fā)送VRRP報文的路由器利用認(rèn)證字和MD5算法對VRRP報文進(jìn)行加密,加
密后的報文保存在Authentication Header(認(rèn)證頭)中。收到VRRP報文的路由器
會利用認(rèn)證字解密報文,檢查該報文的合法性。 三、 3 Comware實(shí)現(xiàn)的技術(shù)特色 3.1 監(jiān)視上行鏈路 VRRP網(wǎng)絡(luò)傳輸功能有時需要額外的技術(shù)來完善其工作。例如,Master路由器到達(dá)
某網(wǎng)絡(luò)的鏈路突然斷掉時,主機(jī)無法通過此Master路由器遠(yuǎn)程訪問該網(wǎng)絡(luò)。此時
,可以通過監(jiān)視指定接口上行鏈路功能,解決這個問題。當(dāng)Master路由器發(fā)現(xiàn)上
行鏈路出現(xiàn)故障后,主動降低自己的優(yōu)先級(使Master路由器的優(yōu)先級低于
Backup路由器),并立即發(fā)送VRRP報文。Backup路由器接收到優(yōu)先級比自己低的
VRRP報文后,等待Skew_Time切換為新的Master路由器。從而,使得能夠到達(dá)此網(wǎng)
絡(luò)的Backup路由器充當(dāng)VRRP新的Master路由器,協(xié)助主機(jī)完成網(wǎng)絡(luò)通訊。 VRRP可以直接監(jiān)視連接上行鏈路的接口狀態(tài)。當(dāng)連接上行鏈路的接口down時,將
Master路由器降低指定的優(yōu)先級。VRRP優(yōu)先級最低可以降低到1。 VRRP可以利用NQA技術(shù)監(jiān)視上行鏈路連接的遠(yuǎn)端主機(jī)或者網(wǎng)絡(luò)狀況。例如,Master
設(shè)備上啟動NQA的ICMP-echo探測功能,探測遠(yuǎn)端主機(jī)的可達(dá)性。當(dāng)ICMP-echo探測
失敗時,它可以通知本設(shè)備探測結(jié)果,達(dá)到降低VRRP優(yōu)先級的目的。 VRRP也可以利用BFD技術(shù)監(jiān)視上行鏈路連接的遠(yuǎn)端主機(jī)或者網(wǎng)絡(luò)狀況。由于BFD的
精度可以到達(dá)10ms,通過BFD能夠快速檢測到鏈路狀態(tài)的變化,達(dá)到快速搶占的目
的。例如,可以在Master路由器上使用BFD技術(shù)監(jiān)視上行設(shè)備的物理狀態(tài),在上行
設(shè)備壞掉之后,快速檢測到該變化,并降低Master路由器的優(yōu)先級,致使Backup
路由器等待Skew time后,搶占成為新的Master路由器。 3.2 Backup監(jiān)視Master工作狀態(tài) Backup路由器在Master路由器壞掉之后,正常情況下需要等待
Master_Down_Interval才能切換為新的Master的位置,這段時間內(nèi)主機(jī)將無法正
常通信,因?yàn)榇藭r沒有Master設(shè)備替它轉(zhuǎn)發(fā)報文。為了解決這個網(wǎng)絡(luò)故障,
Backup設(shè)備提供了一個監(jiān)聽Master工作狀態(tài)的功能,使得Master路由器壞掉之后
Backup能夠立即切換成為新的Master路由器,維持網(wǎng)絡(luò)通訊。 Backup路由器監(jiān)視Master路由器采用的是具有快速檢測功能的BFD技術(shù)。在Backup
設(shè)備上使用該技術(shù)監(jiān)視Master路由器的狀態(tài),一旦Master路由器發(fā)生故障,
Backup就可以自動切換成為新的Master路由器,將切換時間縮短到毫秒級。 四、 4 典型組網(wǎng)案例 4.1 主備備份 主備備份方式表示業(yè)務(wù)僅由Master路由器承擔(dān)。當(dāng)Master路由器出現(xiàn)故障時,才
會由選舉出來的Backup路由器接替它工作。如圖3中所示。

圖3 主備備份VRRP
初始情況下,Device A是Master路由器并承擔(dān)轉(zhuǎn)發(fā)任務(wù),Device B和Device C是
Backup路由器且都處于就緒監(jiān)聽狀態(tài)。如果Device A發(fā)生故障,則虛擬路由器內(nèi)
處于Backup狀態(tài)的Device B和Device C路由器將根據(jù)優(yōu)先級選出一個新的Master
路由器,這個新Master路由器繼續(xù)為網(wǎng)絡(luò)內(nèi)的主機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)。
4.2 負(fù)載分擔(dān)
在路由器的一個接口上可以創(chuàng)建多個虛擬路由器,使得該路由器可以在一個虛擬
路由器中作為Master路由器,同時在其他的虛擬路由器中作為Backup路由器。
負(fù)載分擔(dān)方式是指多臺路由器同時承擔(dān)業(yè)務(wù),因此負(fù)載分擔(dān)方式需要兩個或者兩
個以上的虛擬路由器,每個虛擬路由器都包括一個Master路由器和若干個Backup
路由器,各虛擬路由器的Master路由器可以各不相同,如圖4中所示。

圖4 負(fù)載分擔(dān)VRRP 在圖4中,有三個虛擬路由器存在: 虛擬路由器1:Device A作為Master路由器,Device B和Device
C作為Backup路由器。 虛擬路由器2:Device B作為Master路由器,Device A和Device
C作為Backup路由器。 虛擬路由器3:Device C作為Master路由器,Device A和Device
B作為Backup路由器。 為了實(shí)現(xiàn)業(yè)務(wù)流量在Device A、Device B和Device C之間進(jìn)行負(fù)載分擔(dān),需要將
局域網(wǎng)內(nèi)的主機(jī)的默認(rèn)網(wǎng)關(guān)分別設(shè)置為虛擬路由器1、2和3。在配置優(yōu)先級時,需
要確保三個虛擬路由器中各路由器的VRRP優(yōu)先級形成一定的交叉,使得一臺路由
器盡可能不同時充當(dāng)2個Master路由器。 4.3 Master使用BFD/NQA監(jiān)視上行鏈路 VRRP可以通過BFD或NQA等快速檢測協(xié)議監(jiān)視一些上行敏感鏈路,使得Master路由
器快速地發(fā)現(xiàn)網(wǎng)絡(luò)故障,降低自身的優(yōu)先級,從而保證上行鏈路工作正常的
Backup路由器能夠接替它的工作。

圖5 Master監(jiān)視上行鏈路 如圖5所示,初始情況下,Device A作為Master路由器,承擔(dān)轉(zhuǎn)發(fā)任務(wù);Device B
為Backup路由器,處于就緒監(jiān)聽狀態(tài)。Device A使用BFD監(jiān)視上行到達(dá)Internet的
鏈路狀態(tài)。如果Device A的上行鏈路發(fā)生故障,Device A可以在毫秒級感知到網(wǎng)
絡(luò)變化,立即發(fā)送低優(yōu)先級的VRRP報文給Device B。如果此時Device B的優(yōu)先級
高于報文中的優(yōu)先級,那么它將在Skew Time時間之后切換為新的Master路由器,
之后由這個新的Master路由器為網(wǎng)絡(luò)內(nèi)的主機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)。 4.4 Backup使用BFD監(jiān)視Master狀態(tài) 為了保證網(wǎng)絡(luò)傳輸?shù)姆(wěn)定性,可以在Backup設(shè)備上使用BFD技術(shù)監(jiān)視Master的狀態(tài)
,使得Master設(shè)備發(fā)生故障時,Backup設(shè)備能夠立即切換為新的Master設(shè)備。

圖6 Backup監(jiān)視Master狀態(tài) 如圖6中所示,初始情況下,Device A作為Master路由器,承擔(dān)轉(zhuǎn)發(fā)任務(wù);Device
B是Backup路由器,處于就緒監(jiān)聽狀態(tài)。Device B使用BFD監(jiān)視Device A上IP地址
10.1.1.1的可達(dá)性。如果Device A發(fā)生故障,Device B可以立即通過BFD感知到對
端的變化,主動切換成為新的Master設(shè)備,之后這個新Master路由器將為網(wǎng)絡(luò)內(nèi)
的主機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)。 五、 5 附錄 5.1 參考文獻(xiàn) RFC 3768:Virtual Router Redundancy Protocol (VRRP)
|