虛擬路由冗餘協議VRRP(Virtual Router Redundancy Protocol)通過把幾臺路由設備聯合組成一臺虛擬的路由設備,使用一定的機制保證當主機的下一跳路由設備出現故障時,及時將業務切換到備份路由設備,從而保持通訊的連續性和可靠性。
VRRP是相關標準 定義的一種冗餘容錯協議,通過物理設備和邏輯設備的分離,實現在多個出口網關之間選路。
如下圖所示,在路由器上成功配置VRRP後,將物理網絡中的主、備路由器虛擬爲一臺路由器,這臺虛擬路由器擁有虛擬的IP地址和虛擬的MAC地址,主機只感知到這個虛擬路由器的存在,實際的主、備路由器對於用戶並不感知,主機直接通過虛擬路由器與非本網段的其他設備進行通信。
一個虛擬路由器由一個主路由器和若干個備份路由器組成,主路由器實現真正的轉發功能。當主路由器出現故障時,通過VRRP協商,從原備份中路由器選出一個,它將成爲新的主路由器來接替故障路由器的工作。
在具有多播或廣播能力的局域網(如以太網)中,VRRP提供邏輯網關確保重要傳輸鏈路的可靠性,不僅能夠解決因某網關設備故障帶來的業務中斷,而且無需修改路由協議等配置信息,具有配置簡單、可靠性高的優勢。
目的
隨着網絡的快速普及和相關應用的日益深入,各種增值業務(如IPTV、視頻會議等)已經開始廣泛部署,基礎網絡的可靠性日益成爲用戶關注的焦點,能夠保證網絡傳輸不中斷對於終端用戶非常重要。
現網中,主機一般使用缺省網關與外部網絡聯繫,如果缺省網關發生故障,主機與外部網絡的通信將被中斷。配置動態路由協議如RIP、OSPF或ICMP路由發現協議等可以提高系統可靠性,但是需要複雜的配置,而且並不能保證每臺主機都支持配置動態路由協議。
VRRP的出現很好地解決了這個問題。VRRP能夠在不改變組網的情況下,將多臺路由設備組成一個虛擬路由器,通過配置虛擬路由器的IP地址爲缺省網關,實現缺省網關的備份。當網關設備發生故障時,VRRP機制能夠選舉新的網關設備承擔數據流量,從而保障網絡的可靠通信。
現網中,主機一般使用缺省網關與外部網絡聯繫,主機發出目的地址不在本網段的報文通過缺省路由發往出口網關(即下圖中的PE),通過網關轉發數據流,從而實現主機與外部網絡的通信。
如果PE出現故障,與其相連的主機將與外界失去聯繫,導致業務中斷。如果採用在網絡中再增加一臺路由器與主機相連也不能解決此問題。因爲大多數主機只允許配置一個默認網關,同時不管網絡上存在多少個與其相連的路由器,對於目的地址不在本網段的數據報文,主機僅使用已經配置好的默認網關進行傳輸。
對於以上問題,一種解決方案是配置多個出口網關,這是提高系統可靠性的常見方法,但是需要解決如何在多個出口網關之間進行選路的問題。另一種解決方案是運行動態路由協議,如RIP、OSPF,或者是ICMP路由發現協議等,但是很難實現在每一臺主機上都運行動態路由協議,這主要涉及管理問題、安全問題、操作系統對協議的是否支持等問題。
VRRP的出現很好地解決了這個問題。VRRP能夠在不改變組網的情況下,只在相關路由器上進行簡單的配置,就能實現下一跳網關的備份,而不會給主機帶來任何負擔。
受益
運營商受益:
- 簡化網絡管理:在具有多播或廣播能力的局域網(如以太網)中,藉助VRRP能在某臺設備出現故障時仍然提供高可靠的缺省鏈路,無需修改動態路由協議、路由發現協議等配置信息便可有效避免單一鏈路發生故障後的網絡中斷問題。
- 適應性強:VRRP報文封裝在IP報文中,支持各種上層協議。
- 網絡開銷小:VRRP只定義了一種報文即VRRP通告報文。
用戶受益:
- 用戶僅需指定網關地址即可,無需支持複雜的路由協議。
- 用戶不會感知網關設備的單點故障,能夠持續保持與外部網絡的通信。
VRRP基本功能
VRRP可以通過主備備份和負載分擔兩種基本方式實現設備的冗餘備份和負載均衡。
VRRP主備備份示意圖如圖所示,其工作方式如下:
- 僅有一個備份組,且該備份組包括一個Master設備和若干Backup設備。
- 備份組內優先級最高的一臺路由器作爲Master設備,承擔業務流量。
- 除了Master設備,其它路由器作爲備份組內的Backup設備,處於就緒偵聽狀態,一旦Master設備發生故障,Backup設備中優先級高的設備接替原Master設備工作,承擔業務流量轉發。
用戶能夠通過建立多個VRRP備份組實現負載均衡。此時一臺路由器可以屬於多個備份組,VRRP負載分擔示意圖如圖所示,其工作方式如下:
- PE1作爲備份組1的Master設備,同時又是備份組2的Backup設備。
- PE2作爲備份組2的Master設備,同時又是備份組1的Backup設備。
- 正常情況下,不同路由器承擔不同用戶羣的業務流量,實現負載均衡。
概念
如圖所示,通過將多臺網關設備虛擬爲一臺網關設備,將虛擬網關設備的IP地址作爲用戶的默認網關實現與外部網絡通信。當網關設備發生故障時,VRRP機制能夠選舉新的網關設備承擔數據流量,從而保障網絡的可靠通信。
VRRP協議的基本概念如下:
- 虛擬路由器(Virtual Router):又稱爲VRRP備份組,由一個Master設備和若干個Backup設備組成,被當作一個共享局域網內主機的缺省網關。它包括了一個虛擬路由器標識符和一組虛擬IP地址。
- VRID:虛擬路由器的標識。具有相同VRID的一組設備構成一個虛擬路由器。
- 虛擬IP地址(Virtual IP Address):虛擬路由器的IP地址,一個虛擬路由器可以有一個或多個IP地址,由用戶配置。
- 虛擬MAC地址(Virtual MAC Address):虛擬路由器根據虛擬路由器ID生成的MAC地址。一個虛擬路由器擁有一個虛擬MAC地址,格式爲:00-00-5E-00-01-{VRID}(VRRP for IPv4)或者00-00-5E-00-02-{VRID}(VRRP for IPv6)。當虛擬路由器迴應ARP請求(VRRP for IPv4)或者NS請求(VRRP for IPv6)時,使用虛擬MAC地址,而不是接口的真實MAC地址。
- IP地址擁有者(IP Address Owner):如果一個VRRP設備將虛擬路由器IP地址作爲真實的接口地址,則該設備被稱爲IP地址擁有者。如果IP地址擁有者是可用的,通常它將成爲Master。
- 主IP地址(Primary IP Address):從接口的真實IP地址中選出來的一個主用IP地址,通常選擇配置的第一個IP地址。VRRP廣播報文使用主IP地址作爲IP報文的源地址。
- VRRP路由器(VRRP Router):運行VRRP協議的設備,它可能屬於一個或多個虛擬路由器。
- Master路由器(Virtual Router Master):承擔轉發報文任務的VRRP設備。
- Backup路由器(Virtual Router Backup):一組沒有承擔轉發任務的VRRP設備,當Master設備出現故障時,它們將通過競選成爲新的Master設備。
- 優先級(Priority):虛擬路由器中VRRP路由器的優先級。虛擬路由器根據優先級選舉出Master設備和Backup設備。
- VRRP的搶佔模式:
- 搶佔模式:在搶佔模式下,如果Backup設備的優先級比當前Master設備的優先級高,則主動將自己切換成Master。
- 非搶佔模式:在非搶佔模式下,只要Master設備沒有出現故障,Backup設備即使隨後被配置了更高的優先級也不會成爲Master設備。
- VRRP定時器:
- ADVER_INTERVAL定時器:Master設備會根據該定時器定期發送VRRP通告報文,缺省值爲1秒。
- MASTER_DOWN定時器:Backup設備在該定時器超時後,會變爲Master狀態。計算公式如下:MASTER_DOWN=(3* ADVER_INTERVAL)+ Skew_time(偏移時間),其中,Skew_Time=(256–Priority)/256。
VRRP協議報文
VRRP協議報文用來將Master設備的優先級和狀態通告給同一備份組的所有Backup設備。由於VRRP報文是一種組播報文,因此只能在同一個廣播域(如VLAN,VSI等)內轉發。
目前,VRRP協議包括兩個版本:VRRPv2和VRRPv3。VRRPv2僅適用於IPv4網路,VRRPv3適用於IPv4和IPv6兩種網絡。基於不同的網絡類型,VRRP可以分爲VRRP for IPv4(簡稱VRRP4)和VRRP for IPv6(簡稱VRRP6)。VRRP for IPv4支持VRRPv2和VRRPv3,而VRRP for IPv6僅支持VRRPv3。
- 對IPv4網絡而言,VRRP協議報文封裝在IP報文中,發送到分配給VRRP的IP組播地址。在IP報文頭中,源地址爲發送報文接口的主IP地址(不是虛擬IP地址),目的地址是224.0.0.18,TTL是255,協議號是112。
- 對IPv6網絡而言,VRRP協議報文封裝在IPv6報文中,發送到分配給VRRP6的IPv6組播地址。在IPv6報文頭中,源地址爲發送報文接口的鏈路本地地址(不是虛擬IPv6地址),目的地址是FF02::12,跳數值是255,協議號是112。
由報文結構可以看出,VRRPv2和VRRPv3的主要區別爲:
- 認證功能不同。VRRPv3不支持認證功能,而VRRPv2支持認證功能。
- 發送通告報文的時間間隔的單位不同。VRRPv3支持的是釐秒級,而VRRPv2支持的是秒級。
VRRP狀態機
VRRP協議中定義了三種狀態機:初始狀態(Initialize)、活動狀態(Master)、備份狀態(Backup)。其中,只有處於Master狀態的設備纔可以轉發那些發送到虛擬IP地址的報文。
VRRP狀態轉換如圖所示。
VRRP的工作過程如下:
- VRRP備份組中的設備根據優先級選舉出Master。Master設備通過發送免費ARP報文,將虛擬MAC地址通知給與它連接的設備或者主機,從而承擔報文轉發任務。
- Master設備週期性向備份組內所有Backup設備發送VRRP通告報文,以通告其配置信息(優先級等)和工作狀況。
- 如果Master設備出現故障,VRRP備份組中的Backup設備將根據優先級重新選舉新的Master。
- VRRP備份組狀態切換時,Master設備由一臺設備切換爲另外一臺設備,新的Master設備會立即發送攜帶虛擬路由器的虛擬MAC地址和虛擬IP地址信息的免費ARP報文,刷新與它連接的設備或者主機的MAC表項,從而把用戶流量引到新的Master設備上來,整個過程對用戶完全透明。
- 原Master設備故障恢復時,若該設備爲IP地址擁有者(優先級爲255),將直接切換至Master狀態。若該設備優先級小於255,將首先切換至Backup狀態,且其優先級恢復爲故障前配置的優先級。
- Backup設備的優先級高於Master設備時,由Backup設備的工作方式(搶佔方式和非搶佔方式)決定是否重新選舉Master。
由此可見,爲了保證Master設備和Backup設備能夠協調工作,VRRP需要實現以下功能:
- Master設備的選舉
- Master設備狀態的通告
下面將從上述兩個方面詳細介紹VRRP的工作過程。
Master設備的選舉
VRRP根據優先級來確定虛擬路由器中每臺設備的角色(Master設備或Backup設備)。優先級越高,則越有可能成爲Master設備。
初始創建VRRP的設備工作在Initialize狀態,收到接口Up的消息後,若此設備的優先級小於255,則會先切換至Backup狀態,待MASTER_DOWN定時器超時後再切換至Master狀態。首先切換至Master狀態的VRRP設備通過VRRP通告報文的交互獲知虛擬設備中其他成員的優先級,進行Master的選舉:
- 如果VRRP報文中Master設備的優先級高於或等於自己的優先級,則Backup設備保持Backup狀態;
- 如果VRRP報文中Master設備的優先級低於自己的優先級,採用搶佔方式的Backup設備將切換至Master狀態,採用非搶佔方式的Backup設備仍保持Backup狀態。
-
Master設備狀態的通告
Master設備週期性地發送VRRP通告報文,在VRRP備份組中通告其配置信息(優先級等)和工作狀況。Backup設備通過接收到VRRP報文的情況來判斷Master設備是否工作正常。
- 當Master設備主動放棄Master地位(如Master設備退出備份組)時,會發送優先級爲0的通告報文,用來使Backup設備快速切換成Master設備,而不用等到MASTER_DOWN定時器超時。這個切換的時間稱爲Skew_time,計算方式爲:(256-Backup設備的優先級)/256,單位爲秒。
- 當Master設備發生網絡故障而不能發送通告報文的時候,Backup設備並不能立即知道其工作狀況。等到MASTER_DOWN定時器超時後,纔會認爲Master設備無法正常工作,從而將狀態切換爲Master。其中,MASTER_DOWN定時器取值爲:(3* ADVER_INTERVAL)+ Skew_time,單位爲秒。
對於安全程度不同的網絡環境,VRRP支持在通告報文中設定不同的認證方式和認證字。
- 在安全程度高的網絡中,可以採用無認證方式。設備對要發送的VRRP通告報文不進行任何認證處理,收到通告報文的設備也不進行任何認證,認爲收到的都是真實的、合法的VRRP報文。
- 在有可能受到安全威脅的網絡中,可以採用簡單字符(Simple)認證方式或MD5認證方式。
- 簡單字符(Simple)認證:發送VRRP通告報文的設備將認證方式和認證字填充到通告報文中,而收到通告報文的設備則會將報文中的認證方式和認證字與本端配置的認證方式和認證字進行匹配。如果相同,則認爲接收到的報文是合法的VRRP通告報文;否則認爲接收到的報文是一個非法報文,並丟棄這個報文。
- MD5認證:設備採用MD5算法對本端配置的認證字進行加密,加密之後的密文保存在Authentication Data字段中。當設備收到通告報文時,會對報文中的認證字採用MD5算法進行加密,並通過比較Authentication Data字段中保存的密文和對收到的通告報文的認證字加密之後的密文,檢查報文的合法性。