一、VRRP簡介
VRRP(Virtual Router Redundancy Protocol)虛擬路由冗余協議通過把幾臺設備聯合組成一臺虛擬的設備,使用一定的機制保證當主機的下一跳設備出現故障時,及時將業務切換到備份設備,從而保持通訊的連續性和可靠性。
VRRP的運行結果是在局域網上提供一個虛擬路由器。
本例中:
局域網中有兩個路由器R1和R2,R1端口IP地址為192.168.1.251/24,R2端口IP地址為192.168.1.252/24。
配置R1和R2關聯到同一個虛擬路由器,該虛擬路由器使用192.168.1.254做為端口IP地址。
所有的PC使用192.168.1.254做為默認網關。
VRRP可以分為VRRP for IPv4和VRRP for IPv6(簡稱VRRP6)。VRRP for IPv4支持VRRPv2和VRRPv3,而VRRP for IPv6僅支持VRRPv3。對IPv4網絡而言,VRRP協議報文封裝在IP報文中,發送到分配給VRRP的組播地址,目的地址是224.0.0.18,TTL是255,協議號是112。
為什么需要VRRP?
現網中的主機使用缺省網關與外部網絡聯系時,如果網關的設備出現故障,與其相連的主機將與外界失去聯系,導致業務中斷
二、VRRP基本概念
VRRP虛擬MAC地址為00-00-5E-00-01-組id值。
VRRP優先級1-255,默認優先級100,VRRP協議默認開啟了搶占。默認發送免費ARP報文時間間隔180秒。
VRRP角色分為Master和Backup。Master承載轉發報文任務,Backup作為備份,一旦Master出現故障,Backup接替成為Master
概念 | 含義 |
虛擬路由器(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請求(VRRPfor IPv4)或者NS請求(VRRP for IPv6)時,使用虛擬MAC地址,而不是接口的真實MAC地址。 |
IP地址擁有者(IP Address 0wner) | 如果一個VRRP設備將虛擬路由器IP地址作為真實的接口地址,則該設備被稱為IP地址擁有者。如果IP地址擁有者是可用的,通常它將成為Master。 |
主IP地址(Primary IP Address) | 從接口的真實IP地址中選出來的一個可用IP地址,通常選擇配置的第一個IP地址。VRRP廣播報文使用主IP地址作為 IP報文的源地址。 |
VRRP設備 | 運行VRRP協議的設備,它可能屬于一個或多個虛擬路由器。 |
Master設備 | 承載轉發報文任務的VRRP設備。 |
Backup設備 | 一組沒有承擔轉發任務的VRRP設備,當Master設備出現故障時,它們將通過競選成為新的Master設備。 |
優先級(Priority) | 虛擬路由器中VRRP設備的優先級。虛擬路由器根據優先級選舉出Master設備和Backup設備。 |
VRRP搶占模式 | 在搶占模式下,如果Backup設備的優先級比當前Master設備的優先級高,則主動將自己切換成Master。 |
VRRP非搶占模式 | 在非搶占模式下,只要Master設備沒有出現故障,Backup設備即使隨后被配置了更高的優先級也不會成為Master設備。 |
Adver_Interval定時器 | Master設備會根據該定時器定期發送VRRP通告報文。 |
Master_Down定時器 | Backup設備在該定時器超時后,會變為Master狀態。 |
三、VRRP報文格式
VRRP只有一種報文,即Advertisement報文,基于組播方式發送,因此只能在同一個廣播域傳遞。 Advertisement報文的目的組播地址為224.0.0.18。
VRRP報文字段含義如下:
Ver:VRRP目前有兩個版本,其中VRRPv2僅適用于IPv4網絡,VRRPv3適用于IPv4和IPv6兩種網絡。
Virtual Rtr ID:該報文所關聯的虛擬路由器的標識。
Priority:發送該報文的VRRP路由器的優先級。
Count IP Addrs:該VRRP報文中所包含的虛擬IP地址的數量。
Auth Type:VRRP支持三種認證類型:不認證、純文本密碼認證、MD5方式認證,對應值分別為0、1、2。
Adver Int:發送VRRP通告消息的間隔。默認為1秒
IP Address:所關聯的虛擬路由器的虛擬IP地址,可以為多個。
Authentication Data:驗證所需要的密碼信息。
四、VRRP狀態機
VRRP協議中定義了三種狀態機:初始狀態(Initialize)、活動狀態(Master)、備份狀態(Backup)。其中,只有處于Master狀態的設備才可以轉發那些發送到虛擬IP地址的報文。
五、VRRP協議狀態
Master狀態 | Backup狀態 |
1.定期(ADVER_INTERVAL)發送VRRP報文。 2.以虛擬MAC地址響應對虛擬IP地址的ARP請求。 3.轉發目的MAC地址為虛擬MAC地址的IP報文。 4.默認允許ping通虛擬IP地址。 5.當多臺設備同時為Master時,若設備收到與自己優先級相同的報文時,會進一步比較IP地址的大小。如果收到報文的源IP地址比自己大,則切換到Backup狀態,否則保持Master狀態。 ? | 1.接收Master設備發送的VRRP報文,判斷Master設備的狀態是否正常。 2.對虛擬IP地址的ARP請求,不做響應。 3.丟棄目的MAC地址為虛擬MAC地址的IP報文。 4.丟棄目的IP地址為虛擬IP地址的IP報文。 5.如果收到優先級和自己相同或者比自己優先級大的報文時,重置MASTER_DOWN定時器,不進一步比較IP地址的大小。 ? |
六、VRRP主備選舉
-
優先級不同
-
開啟VRRP進入初始化狀態
-
設備根據VRRP優先級,計算超時定時器,時間短的進入Master狀態
-
開始發送VRRP報文,優先級高的被選舉為Master設備
-
發送免費ARP檢測地址沖突,以及通告設備和主機(交換機和主機無需進行ARP解析和泛洪,縮短故障時間)
-
優先級相同
-
開啟VRRP進入初始化狀態
-
設備根據VRRP優先級,計算超時定時器,同時進入Master狀態
-
開始發送VRRP報文,優先級相同,繼續對比IP地址,越大越優,IP地址小的切換為Backup狀態
-
發送免費ARP檢測地址沖突,以及通告設備和主機
七、VRRP負載分擔
負載分擔是指多個VRRP備份組同時承擔業務,VRRP負載分擔與VRRP主備備份的基本原理和報文協商過程都是相同的。同樣對于每一個VRRP備份組,都包含一個Master設備和若干Backup設備。
VRRP備份組1:DeviceA作為Master設備,DeviceB作為Backup設備。
VRRP備份組2:DeviceB作為Master設備,DeviceA作為Backup設備。
一部分用戶將VRRP備份組1作為網關,另一部分用戶將VRRP備份組2作為網關。這樣便可實現分擔業務流量又相互備份的目的。
八、VRRP路由監控與接口聯動
配置VRRP備份組后,VRRP備份組之間的主備切換通過VRRP通告報文進行協商。當網絡中出現故障(比如接口Down或鏈路故障)或網絡進行調整時,VRRP備份組并不能及時感知并進行狀態切換,或者當VRRP備份組在主備切換完成后未能及時聯動路由,會造成流量轉發故障。
路由監視配置思路:
DeviceA上的VRRP備份組的優先級為120,狀態為Master;
DeviceB上的VRRP備份組的優先級為100,狀態為Backup,為立即搶占;
DeviceA上VRRP監視地址為10.1.2.0/24網段的路由,在檢測到10.1.2.0/24網段信息為不可達時,DeviceA的優先級降低40(優先級降低后必須小于100)。
接口聯動配置思路:
DeviceA上的VRRP備份組的優先級為120,狀態為Master;
DeviceB上的VRRP備份組的優先級為100,狀態為Backup,為立即搶占;
在DeviceA上配置監視上行接口interface1,當interface1狀態變為Down時,DeviceA降低自身優先級,通過VRRP通告報文協商,DeviceB搶占成為Master設備,承擔流量轉發
九、VRRP的配置實現
1.VRRP常用基本配置
1.創建VRRP備份組并給備份組配置虛擬IP地址
[interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id virtual-ip virtual-address
注意:各備份組之間的虛擬IP地址不能重復;同屬一個備份組的設備接口需使用相同的VRID。
2.? 配置路由器在備份組中的優先級
[interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id priority priority-value
注意:通常情況下,Master設備的優先級應高于Backup設備。
3.? 配置備份組中設備的搶占延遲時間
[interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id preempt-mode timer delay delay-value
4.? 配置VRRP備份組中設備采用非搶占模式
[interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id preempt-mode disable
缺省情況下,搶占模式已被激活。
5.? 配置VRRP備份組監視接口
[interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id track interface interface-type interface-number [ increased value-increased | reduced value-decreased ]
可配置設備當檢測到上行接口或鏈路出現故障時,增加或者減少自身優先級,IP地址擁有者和Eth-trunk成員口不允許配置VRRP監視功能。
6.? 配置VRRP備份組聯動普通BFD會話
[interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id track bfd-session { bfd-session-id | session-name bfd-configure-name } [ increased value-increased | reduced value-reduced ]
如果選擇參數session-name bfd-configure-name,可以綁定靜態BFD會話或者標識符自協商的靜態BFD會話。如果選擇參數bfd-session-id,只能綁定靜態BFD會話。
2.VRRP基礎配置實例
配置要求:
R1與R2組成一個VRRP備份組,其中R1為Master,R2為Backup;
Master設備故障恢復時采用搶占模式,搶占延時10秒;
Master設備監視上行接口狀態實現VRRP主備自動切換。
R1:
[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.1.253 24
[R1-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.254
[R1-GigabitEthernet0/0/0] vrrp vrid 1 priority 120
[R1-GigabitEthernet0/0/0] vrrp vrid 1 preempt-mode timer delay 10
[R1-GigabitEthernet0/0/0] vrrp vrid 1 track interface GigabitEthernet0/0/1 reduced 30
R2:
[R2] interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0] ip address 192.168.1.252 24
[R2-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.254
[R2-GigabitEthernet0/0/0] vrrp vrid 1 priority 110
3.VRRP主備備份配置
HostA通過Switch雙歸屬到RouterA和RouterB。用戶希望實現:
正常情況下,主機以RouterA為默認網關接入Internet,當RouterA故障時,RouterB接替作為網關繼續進行工作,實現網關的冗余備份。RouterA故障恢復后,可以重新成為網關。
配置思路:
采用VRRP主備備份實現網關冗余備份,配置思路如下:
(1)配置各設備接口IP地址及路由協議,使各設備間網絡層連通。
(2)在RouterA和RouterB上配置VRRP備份組。其中,RouterA上配置較高優先級和20秒搶占延時,作為Master設備承擔流量轉發;RouterB上配置較低優先級,作為備用工業路由交換一體機,實現網關冗余備份。
配置步驟:
(1)配置設備間的網絡互連
# 配置設備各接口的IP地址,以RouterA為例。RouterB和RouterC的配置與RouterA類似,詳見配置文件。
<Huawei> system-view
[Huawei] sysname RouterA
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] undo portswitch
[RouterA-GigabitEthernet2/0/0] ip address 10.1.1.1 24
[RouterA-GigabitEthernet2/0/0] quit
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] undo portswitch
[RouterA-GigabitEthernet1/0/0] ip address 192.168.1.1 24
[RouterA-GigabitEthernet1/0/0] quit
# 配置RouterA、RouterB和RouterC間采用OSPF協議進行互連。以RouterA為例,RouterB和RouterC的配置與RouterA類似,詳見配置文件。
[RouterA] ospf 1
[RouterA-ospf-1] area 0
[RouterA-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.0] quit
[RouterA-ospf-1] quit
(2)配置VRRP備份組
# 在RouterA上創建VRRP備份組1,配置RouterA在該備份組中的優先級為120,并配置搶占時間為20秒。
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 virtual-ip 10.1.1.111 //配置vrrp虛擬ip和vrid
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 priority 120 ? //默認優先級為100,RouterA設置優先級為120,該設備為Master
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 preempt-mode timer delay 20 ?//VRRP默認是搶占模式,設置搶占延時,避免頻繁出現主備切換
[RouterA-GigabitEthernet2/0/0] quit
# 在RouterB上創建VRRP備份組1,其在該備份組中的優先級為缺省值100。
[RouterB] interface gigabitethernet 2/0/0
[RouterB-GigabitEthernet2/0/0] vrrp vrid 1 virtual-ip 10.1.1.111
[RouterB-GigabitEthernet2/0/0] quit
(3)驗證配置結果
# 完成上述配置以后,在RouterA和RouterB上分別執行display vrrp命令,可以看到RouterA在備份組中的狀態為Master,RouterB在備份組中的狀態為Backup。
4.VRRP負載分擔
HostA和HostC通過Switch雙歸屬到RouterA和RouterB。用戶希望HostA以RouterA為默認網關接入Internet,RouterB作為備份網關;HostC以RouterB為默認網關接入Internet,RouterA作為備份網關,以實現流量的負載均衡。
配置思路:
采用VRRP多網關負載分擔實現流量的負載均衡,配置思路如下:
(1)配置各設備接口IP地址及路由協議,使各設備間網絡層連通。
(2)在RouterA和RouterB上創建VRRP備份組1和VRRP備份組2,在備份組1中,配置RouterA為Master設備,RouterB為Backup設備;在備份組2中,配置RouterB為Master設備,RouterA為Backup設備,實現流量的負載均衡。
配置步驟:
(1)配置設備間的網絡互連
# 配置設備各接口的IP地址,以RouterA為例。RouterB和RouterC的配置與RouterA類似,詳見配置文件。
<Huawei> system-view
[Huawei] sysname RouterA
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] undo portswitch
[RouterA-GigabitEthernet1/0/0] ip address 192.168.1.1 24
[RouterA-GigabitEthernet1/0/0] quit
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] undo portswitch
[RouterA-GigabitEthernet2/0/0] ip address 10.1.1.1 24
[RouterA-GigabitEthernet2/0/0] quit
# 配置RouterA、RouterB和RouterC間采用OSPF協議進行互連。以RouterA為例,RouterB和RouterC的配置與RouterA類似,詳見配置文件。
[RouterA] ospf 1
[RouterA-ospf-1] area 0
[RouterA-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.0] quit
[RouterA-ospf-1] quit
(2)配置VRRP備份組
# 在RouterA和RouterB上創建VRRP備份組1,配置RouterA的優先級為120,搶占延時為20秒;RouterB的優先級為缺省值。
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 virtual-ip 10.1.1.111
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 priority 120
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 preempt-mode timer delay 20
[RouterA-GigabitEthernet2/0/0] quit
[RouterB] interface gigabitethernet 2/0/0
[RouterB-GigabitEthernet2/0/0] vrrp vrid 1 virtual-ip 10.1.1.111
[RouterB-GigabitEthernet2/0/0] quit
# 在RouterA和RouterB上創建VRRP備份組2,配置RouterB的優先級為120,搶占延時為20秒;RouterA的優先級為缺省值。
[
RouterB] interface gigabitethernet 2/0/0
[RouterB-GigabitEthernet2/0/0] vrrp vrid 2 virtual-ip 10.1.1.112
[RouterB-GigabitEthernet2/0/0] vrrp vrid 2 priority 120
[RouterB-GigabitEthernet2/0/0] vrrp vrid 2 preempt-mode timer delay 20
[RouterB-GigabitEthernet2/0/0] quit
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] vrrp vrid 2 virtual-ip 10.1.1.112
[RouterA-GigabitEthernet2/0/0] quit
(3)驗證配置結果
#在RouterA上執行display vrrp命令,可以看到RouterA在備份組1中作為Master設備,在備份組2中作為Backup設備。
# 在RouterB上執行display vrrp命令,可以看到RouterB在備份組1中作為Backup設備,在備份組2中作為Master設備。
5.VRRP監視上行接口
局域網主機通過Switch雙歸屬到部署了VRRP備份組的RouterA和RouterB,其中RouterA為Master。
用戶希望當RouterA的上行接口GE1/0/0狀態Down時,VRRP備份組能夠及時感知并進行主備切換,由RouterB接替作為網關繼續承擔業務轉發,以減小接口狀態Down對業務傳輸的影響。
配置思路:
采用VRRP與接口狀態聯動實現對上行接口故障的感知及主備網關的切換,配置思路如下:
(1)配置各設備接口IP地址及路由協議,使網絡層路由可達。
(2)在RouterA和RouterB上配置VRRP備份組。其中,RouterA上配置較高優先級,作為Master設備承擔業務轉發;RouterB上配置較低優先級,實現冗余備份。
(3)在RouterA上配置VRRP與接口狀態聯動,監視上行接口GE1/0/0,實現RouterA到RouterC間鏈路故障時,VRRP備份組及時感知并進行主備切換。
操作步驟:
(1)配置設備間的網絡互連
# 配置設備各接口的IP地址,以RouterA為例。RouterB和RouterC的配置與RouterA類似,詳見配置文件。
<Huawei> system-view
[Huawei] sysname RouterA
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] undo portswitch
[RouterA-GigabitEthernet2/0/0] ip address 10.1.1.1 24
[RouterA-GigabitEthernet2/0/0] quit
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] undo portswitch
[RouterA-GigabitEthernet1/0/0] ip address 192.168.1.1 24
[RouterA-GigabitEthernet1/0/0] quit
# 配置RouterA、RouterB和RouterC間采用OSPF協議進行互連。以RouterA為例,RouterB和RouterC的配置與RouterA類似,詳見配置文件。
[RouterA] ospf 1
[RouterA-ospf-1] area 0
[RouterA-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[RouterA-ospf-1-area-0.0.0.0] quit
[RouterA-ospf-1] quit
(2)配置VRRP備份組
# 在RouterA上創建VRRP備份組1,配置RouterA在該備份組中的優先級為120,并配置搶占延時為20秒。
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 virtual-ip 10.1.1.3
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 priority 120
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 preempt-mode timer delay 20
[RouterA-GigabitEthernet2/0/0] quit
# 在RouterB上創建VRRP備份組1,其在該備份組中的優先級為缺省值100。
[RouterB] interface gigabitethernet 2/0/0
[RouterB-GigabitEthernet2/0/0] vrrp vrid 1 virtual-ip 10.1.1.3
[RouterB-GigabitEthernet2/0/0] quit
(3)配置VRRP與接口狀態聯動
# 在RouterA上配置VRRP與接口狀態聯動,當監視的接口GE1/0/0狀態Down時,RouterA的優先級降低40。
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 track interface gigabitethernet 1/0/0 reduced 40 ? //優先級從120-40=80,小于RouterB默認的100優先級,所以RouterB變為Master設備
[RouterA-GigabitEthernet2/0/0] quit
(4)驗證配置結果
# 完成上述配置后,在RouterA和RouterB上分別執行display vrrp命令,可以看到RouterA為Master設備,聯動的接口狀態為Up,RouterB為Backup設備。
?