原文地址:VRRP協議詳解
文中涉及縮略語
縮略語 | 英文全名 | 中文解釋 |
---|---|---|
VRRP | Virtual Router Redundancy Protocol | 虛擬路由器冗余協議 |
NQA | Network Quality Analyzer | 網絡質量分析 |
BFD | Bidirectional Forwarding Detection | 雙向轉發檢測 |
IRDP | ICMP Router Discovery Protocol | ICMP路由發現協議 |
VRID | Virtual Router ID | 虛擬路由器號 |
1、概述
1.1、產生背景
隨着Internet的發展,人們對網絡可靠性的要求越來越高。特別是對於終端用戶來說,能夠實時與網絡其他部分保持聯系是非常重要的。一般來說,主機通過設置默認網關來與外部網絡聯系,如圖1所示:
圖1 常用局域網組網方案
主機將發送給外部網絡的報文發送給網關,由網關傳遞給外部網絡,從而實現主機與外部網絡的通信。正常的情況下,主機可以完全信賴網關的工作,但是當網關壞掉時,主機與外部的通信就會中斷。
要解決網絡中斷的問題,可以依靠再添加網關的方式解決,不過由於大多數主機只允許配置一個默認網關,此時需要網絡管理員進行手工干預網絡配置,才能使得主機使用新的網關進行通信;
有時,人們運用動態路由協議的方法來解決網絡出現故障這一問題,如運行RIP、OSPF等,或者使用IRDP。然而,這些協議由於配置過於復雜,或者安全性能不好等原因都不能滿足用戶的需求。
為了更好地解決網絡中斷的問題,網絡開發者提出了VRRP,它既不需要改變組網情況,也不需要在主機上做任何配置,只需要在相關路由器上配置極少的幾條命令,就能實現下一跳網關的備份,並且不會給主機帶來任何負擔。和其他方法比較起來,VRRP更加能夠滿足用戶的需求。
1.2、技術優點
VRRP是一種容錯協議,它保證當主機的下一跳路由器出現故障時,由另一台路由器來代替出現故障的路由器進行工作,從而保持網絡通信的連續性和可靠性。
VRRP具有如下優點:
- 簡化網絡管理。在具有多播或廣播能力的局域網(如以太網)中,借助VRRP能在某台設備出現故障時仍然提供高可靠的缺省鏈路,有效避免單一鏈路發生故障后網絡中斷的問題,而無需修改動態路由協議、路由發現協議等配置信息,也無需修改主機的默認網關配置。
- 適應性強。VRRP報文封裝在IP報文中,支持各種上層協議。
- 網絡開銷小。VRRP只定義了一種報文——
VRRP通告報文
,並且只有處於Master狀態的路由器可以發送VRRP報文。
2、VRRP協議介紹
2.1、相關術語
- 虛擬路由器:由一個Master路由器和多個Backup路由器組成。主機將虛擬路由器當作默認網關。
- VRID:虛擬路由器的標識。有相同VRID的一組路由器構成一個虛擬路由器。
- Master路由器:虛擬路由器中承擔報文轉發任務的路由器。
- Backup路由器:Master路由器出現故障時,能夠代替Master路由器工作的路由器。
- 虛擬IP地址:虛擬路由器的IP地址。一個虛擬路由器可以擁有一個或多個IP地址。
- IP地址擁有者:接口IP地址與虛擬IP地址相同的路由器被稱為IP地址擁有者。
- 虛擬MAC地址:一個虛擬路由器擁有一個虛擬MAC地址。虛擬MAC地址的格式為00-00-5E-00-01-{VRID}。通常情況下,虛擬路由器回應ARP請求使用的是虛擬MAC地址,只有虛擬路由器做特殊配置的時候,才回應接口的真實MAC地址。
- 優先級:VRRP根據優先級來確定虛擬路由器中每台路由器的地位。
- 非搶占方式:如果Backup路由器工作在非搶占方式下,則只要Master路由器沒有出現故障,Backup路由器即使隨后被配置了更高的優先級也不會成為Master路由器。
- 搶占方式:如果Backup路由器工作在搶占方式下,當它收到VRRP報文后,會將自己的優先級與通告報文中的優先級進行比較。如果自己的優先級比當前的Master路由器的優先級高,就會主動搶占成為Master路由器;否則,將保持Backup狀態。
2.2、虛擬路由器簡介
VRRP將局域網內的一組路由器划分在一起,形成一個VRRP備份組,它在功能上相當於一台虛擬路由器,使用虛擬路由器號進行標識。以下使用虛擬路由器代替VRRP備份組進行描述。
虛擬路由器有自己的虛擬IP地址和虛擬MAC地址,它的外在表現形式和實際的物理路由器完全一樣。局域網內的主機將虛擬路由器的IP地址設置為默認網關,通過虛擬路由器與外部網絡進行通信。
虛擬路由器是工作在實際的物理路由器之上的。它由多個實際的路由器組成,包括一個Master路由器和多個Backup路由器。Master路由器正常工作時,局域網內的主機通過Master與外界通信。當Master路由器出現故障時,Backup路由器中的一台設備將成為新的Master路由器,接替轉發報文的工作,如圖2所示。
圖2 虛擬路由器示意圖
2.3、VRRP工作過程
VRRP的工作過程為:
- (1) 虛擬路由器中的路由器根據優先級選舉出Master。Master路由器通過發送免費ARP報文,將自己的虛擬MAC地址通知給與它連接的設備或者主機,從而承擔報文轉發任務;
- (2) Master路由器周期性發送VRRP報文,以公布其配置信息(優先級等)和工作狀況;
- (3) 如果Master路由器出現故障,虛擬路由器中的Backup路由器將根據優先級重新選舉新的Master;
- (4) 虛擬路由器狀態切換時,Master路由器由一台設備切換為另外一台設備,新的Master路由器只是簡單地發送一個攜帶虛擬路由器的MAC地址和虛擬IP地址信息的免費ARP報文,這樣就可以更新與它連接的主機或設備中的ARP相關信息。網絡中的主機感知不到Master路由器已經切換為另外一台設備。
- (5) Backup路由器的優先級高於Master路由器時,由Backup路由器的工作方式(搶占方式和非搶占方式)決定是否重新選舉Master。
由此可見,為了保證Master路由器和Backup路由器能夠協調工作,VRRP需要實現以下功能:
- Master路由器的選舉;
- Master路由器狀態的通告;
- 同時,為了提高安全性,VRRP還提供了認證功能;
下面將從上述三個方面詳細介紹VRRP的工作過程。
2.3.1、Master路由器的選舉
VRRP根據優先級來確定虛擬路由器中每台路由器的角色(Master路由器或Backup路由器)。優先級越高,則越有可能成為Master路由器。
初始創建的路由器工作在Backup狀態,通過VRRP報文的交互獲知虛擬路由器中其他成員的優先級:
- 如果VRRP報文中Master路由器的優先級高於自己的優先級,則路由器保持在Backup狀態;
- 如果VRRP報文中Master路由器的優先級低於自己的優先級,采用搶占工作方式的路由器將搶占成為Master狀態,周期性地發送VRRP報文,采用非搶占工作方式的路由器仍保持Backup狀態;
- 如果在一定時間內沒有收到VRRP報文,則路由器切換為Master狀態。
VRRP優先級的取值范圍為0到255(數值越大表明優先級越高),可配置的范圍是1到254,優先級0為系統保留給路由器放棄Master位置時候使用,255則是系統保留給IP地址擁有者使用。當路由器為IP地址擁有者時,其優先級始終為255。因此,當虛擬路由器內存在IP地址擁有者時,只要其工作正常,則為Master路由器。
2.3.2、Master路由器狀態的通告
Master路由器周期性地發送VRRP報文,在虛擬路由器中公布其配置信息(優先級等)和工作狀況。Backup路由器通過接收到VRRP報文的情況來判斷Master路由器是否工作正常。
Master路由器主動放棄Master地位(如Master路由器退出虛擬路由器)時,會發送優先級為0的VRRP報文,致使Backup路由器快速切換變成Master路由器。這個切換的時間稱為Skew time
,計算方式為:(256-Backup路由器的優先級)/256
,單位為秒。
當Master路由器發生網絡故障而不能發送VRRP報文的時候,Backup路由器並不能立即知道其工作狀況。Backup路由器等待一段時間之后,如果還沒有接收到VRRP報文,那么會認為Master路由器無法正常工作,而把自己升級為Master路由器,周期性發送VRRP報文。如果此時多個Backup路由器競爭Master路由器的位置,將通過優先級來選舉Master路由器。Backup路由器默認等待的時間稱為Master_Down_Interval
,取值為:(3×VRRP報文的發送時間間隔)+Skew time
,單位為秒。
在性能不夠穩定的網絡中,Backup路由器可能因為網絡堵塞而在Master_Down_Interval
期間沒有收到Master路由器的報文,而主動搶占為Master位置,如果此時原Master路由器的報文又到達了,就會出現虛擬路由器的成員頻繁的進行Master搶占現象。為了緩解這種現象的發生,特制定了延遲等待定時器。它可以使得Backup路由器在等待了Master_Down_Interval
后,再等待延遲等待時間。如在此期間仍然沒有收到VRRP報文,則此Backup路由器才會切換為Master路由器,對外發送VRRP報文。
2.3.3、認證方式
VRRP提供了三種認證方式:
- 無認證:不進行任何VRRP報文的合法性認證,不提供安全性保障。
- 簡單字符認證:在一個有可能受到安全威脅的網絡中,可以將認證方式設置為簡單字符認證。發送VRRP報文的路由器將認證字填入到VRRP報文中,而收到VRRP報文的路由器會將收到的VRRP報文中的認證字和本地配置的認證字進行比較。如果認證字相同,則認為接收到的報文是合法的VRRP報文;否則認為接收到的報文是一個非法報文。
- MD5認證:在一個非常不安全的網絡中,可以將認證方式設置為MD5認證。發送VRRP報文的路由器利用認證字和MD5算法對VRRP報文進行加密,加密后的報文保存在
AuthenticationHeader
(認證頭)中。收到VRRP報文的路由器會利用認證字解密報文,檢查該報文的合法性。
3、Comware實現的技術特色
3.1 監視上行鏈路
VRRP網絡傳輸功能有時需要額外的技術來完善其工作。例如,Master路由器到達某網絡的鏈路突然斷掉時,主機無法通過此Master路由器遠程訪問該網絡。此時,可以通過監視指定接口上行鏈路功能,解決這個問題。當Master路由器發現上行鏈路出現故障后,主動降低自己的優先級(使Master路由器的優先級低於Backup路由器),並立即發送VRRP報文。Backup路由器接收到優先級比自己低的VRRP報文后,等待Skew_Time切換為新的Master路由器。從而,使得能夠到達此網絡的Backup路由器充當VRRP新的Master路由器,協助主機完成網絡通訊。
VRRP可以直接監視連接上行鏈路的接口狀態。當連接上行鏈路的接口down時,將Master路由器降低指定的優先級。VRRP優先級最低可以降低到1。
VRRP可以利用NQA
技術監視上行鏈路連接的遠端主機或者網絡狀況。例如,Master設備上啟動NQA的ICMP-echo
探測功能,探測遠端主機的可達性。當ICMP-echo
探測失敗時,它可以通知本設備探測結果,達到降低VRRP優先級的目的。
VRRP也可以利用BFD
技術監視上行鏈路連接的遠端主機或者網絡狀況。由於BFD的精度可以到達10ms,通過BFD能夠快速檢測到鏈路狀態的變化,達到快速搶占的目的。例如,可以在Master路由器上使用BFD技術監視上行設備的物理狀態,在上行設備壞掉之后,快速檢測到該變化,並降低Master路由器的優先級,致使Backup路由器等待Skew time
后,搶占成為新的Master路由器。
3.2、Backup監視Master工作狀態
Backup路由器在Master路由器壞掉之后,正常情況下需要等待Master_Down_Interval
才能切換為新的Master的位置,這段時間內主機將無法正常通信,因為此時沒有Master設備替它轉發報文。為了解決這個網絡故障,Backup設備提供了一個監聽Master工作狀態的功能,使得Master路由器壞掉之后Backup能夠立即切換成為新的Master路由器,維持網絡通訊。
Backup路由器監視Master路由器采用的是具有快速檢測功能的BFD
技術。在Backup設備上使用該技術監視Master路由器的狀態,一旦Master路由器發生故障,Backup就可以自動切換成為新的Master路由器,將切換時間縮短到毫秒級。
4、典型組網案例
4.1、主備備份
主備備份方式表示業務僅由Master路由器承擔。當Master路由器出現故障時,才會由選舉出來的Backup路由器接替它工作。如圖3中所示。
圖3 主備備份VRRP
初始情況下,Device A是Master路由器並承擔轉發任務,Device B和Device C是Backup路由器且都處於就緒監聽狀態。如果Device A發生故障,則虛擬路由器內處於Backup狀態的Device B和Device C路由器將根據優先級選出一個新的Master路由器,這個新Master路由器繼續為網絡內的主機轉發數據。
4.2、負載分擔
在路由器的一個接口上可以創建多個虛擬路由器,使得該路由器可以在一個虛擬路由器中作為Master路由器,同時在其他的虛擬路由器中作為Backup路由器。
負載分擔方式是指多台路由器同時承擔業務,因此負載分擔方式需要兩個或者兩個以上的虛擬路由器,每個虛擬路由器都包括一個Master路由器和若干個Backup路由器,各虛擬路由器的Master路由器可以各不相同,如圖4中所示。
圖4 負載分擔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路由器。
為了實現業務流量在Device A、Device B和Device C之間進行負載分擔,需要將局域網內的主機的默認網關分別設置為虛擬路由器1、2和3。在配置優先級時,需要確保三個虛擬路由器中各路由器的VRRP優先級形成一定的交叉,使得一台路由器盡可能不同時充當2個Master路由器。
4.3、Master使用BFD/NQA監視上行鏈路
VRRP可以通過BFD或NQA等快速檢測協議監視一些上行敏感鏈路,使得Master路由器快速地發現網絡故障,降低自身的優先級,從而保證上行鏈路工作正常的Backup路由器能夠接替它的工作。
圖5 Master監視上行鏈路
如圖5所示,初始情況下,Device A作為Master路由器,承擔轉發任務;Device B為Backup路由器,處於就緒監聽狀態。Device A使用BFD
監視上行到達Internet的鏈路狀態。如果Device A的上行鏈路發生故障,Device A可以在毫秒級感知到網絡變化,立即發送低優先級的VRRP報文給Device B。如果此時Device B的優先級高於報文中的優先級,那么它將在Skew Time
時間之后切換為新的Master路由器,之后由這個新的Master路由器為網絡內的主機轉發數據。
4.4、Backup使用BFD監視Master狀態
為了保證網絡傳輸的穩定性,可以在Backup設備上使用BFD
技術監視Master的狀態,使得Master設備發生故障時,Backup設備能夠立即切換為新的Master設備。
圖6 Backup監視Master狀態
如圖6中所示,初始情況下,DeviceA作為Master路由器,承擔轉發任務;DeviceB是Backup路由器,處於就緒監聽狀態。DeviceB使用BFD
監視DeviceA上IP地址10.1.1.1的可達性。如果Device A發生故障,DeviceB可以立即通過BFD感知到對端的變化,主動切換成為新的Master設備,之后這個新Master路由器將為網絡內的主機轉發數據。