前言
普通網絡存在的問題:在如下局域網絡中,終端用戶存在被孤立的可能。一旦交換機的三層虛接口故障,局域網用戶就被孤立,不能實現與外部網絡的通信。VRRP(Virtual Router Redundancy Protocol)正是為了解決此問題而誕生。
一、VRRP概述
- Virtual Router Redundancy Protocol,也即虛擬路由器冗余協議
- 利用VRRP,一組路由器(同一個LAN中的接口)協同工作,但只有一個處於Master 狀態,處於該狀態的路由器(的接口)承擔實際的數據流量轉發任務。在一個VRRP 組內的多個路由器接口共用一個虛擬IP地址,該地址被作為局域網內所有主機的缺 省網關地址。
- VRRP決定哪個路由器是Master,Master路由器負責接收發送至用戶網關的數據包 並進行轉發,以及響應PC對於其網關IP地址的ARP請求。
- Backup路由器偵聽Master路由器的狀態,並在Master路由器發生故障時,接替其工 作,從而保證業務流量的平滑切換。
兩種工作模式的VRRP:
- 標准協議模式:基於RFC 實現的VRRP。
- 負載均衡模式:在標准協議模式的基礎上進行了擴展,實現了負載均衡功能。
RFC:Request For Comments(RFC),是一系列以編號排定的文件。文件收集了有關互聯網相關信息,以及UNIX和互聯網社區的軟件文件。RFC文件是由Internet Society(ISOC)贊助發行。基本的互聯網通信協議都有在RFC文件內詳細說明。RFC文件還額外加入許多在標准內的論題,例如對於互聯網新開發的協議及發展中所有的記錄。因此幾乎所有的互聯網標准都有收錄在RFC文件之中。(源自百度百科)
二、VRRP術語
VRRP路由器:
- 運行VRRP的路由器。一台VRRP路由器(的接口)可以同時參與到多個VRRP 組中,在不同的組中,一台VRRP路由器可以充當不同的角色。
VRRP組:
- 一個VRRP組由多個VRRP路由器組成,使用相同的VRID(Virtual Router ID, 虛擬路由器ID)進行標識,屬於同一VRRP組的VRRP路由器互相交換信息,每 一個VRRP組中只能有一個Master。
虛擬路由器:
- 對於每一個VRRP組,抽象出來的一個邏輯路由器,該路由器充當網絡用戶的 網關,該路由器並非真實存在,事實上對於用戶而言,只需知道虛擬路由器的 IP,至於具體的虛擬路由器的角色由誰來承擔、數據轉發任務由誰來承擔、 Master故障后誰來接替,這是VRRP的工作。
虛擬IP地址、MAC地址:
- 虛擬IP地址就是虛擬路由器的IP地址,該地址實際上就是用戶的網關地址。
- 虛擬MAC地址是虛擬路由器根據VRID生成的MAC地址。一個虛擬路由器擁有 一個虛擬MAC地址,格式為:00-00-5E-00-01-{VRID}。
Master、Backup路由器:
- Master路由器:在VRRP組中實際轉發數據包的路由器,在每一個VRRP組中, 僅有Master響應對虛擬IP地址的ARP請求。Master路由器同時以一定的時間間 隔發送VRRP消息,以便通知Backup路由器自己的存活情況。
- Backup路由器:處於監聽狀態的路由器,一旦Master路由器出現故障, Backup路由器就開始接替工作。
- 選舉依據:先比較接口VRRP優先級(比大),如果相等,則比較接口IP地址 (比大)。
三、虛擬MAC地址
通過VRRP形成的虛擬路由器使用虛擬IP地址和虛擬MAC與網絡中的PC進行通信。 虛擬MAC的格式如下:最后1個字節的VRID表示虛擬路由器ID的16進制,例如VRID 是1,虛擬MAC地址為00-00-5E-00-01-01。
四、VRRP狀態機
VRRP協議的狀態共有三種,分別是Initialize,Master,Backup,初始狀態都是 Initialize,通過比較優先級產生Master和Backup,在規定時間內,Backup若沒有收 到Master發來的心跳報文,將切換為Master。
五、Master / Backup 路由器
- VRRP通過協議報文選舉Master,除Master外,其它路由器作為Backup對Master進行備份。
- Master 充當Virtual Router完成網關的所有功能。
- Virtual Router由LAN上唯一的Virtual Router ID標識。並具有如下的MAC地址:00-00-5E-00-01-{vrid}.
Master路由器:
- 定時(Advertisement Interval)發送VRRP通告報文,以便向Backup路由器告 知自己的存活情況。
- 以虛擬MAC地址響應其他設備對虛擬IP地址的ARP請求。
- 轉發目的MAC地址為虛擬MAC地址的IP報文。
- 如果它是這個虛擬IP地址的擁有者(接口實際IP地址為虛擬IP地址),則接收 目的IP地址為這個虛擬IP地址的IP報文。否則,丟棄這個IP報文。
- 如果收到比自己優先級大的報文,立即成為Backup。
- 如果收到與自己優先級相等的VRRP報文且本地接口IP地址小於對端接口IP, 立即成為Backup。
Backup路由器:
- 接收Master設備發送的VRRP通告報文,判斷Master設備的狀態是否正常。
- 對虛擬IP地址的ARP請求,不做響應。
- 丟棄目的IP地址為虛擬IP地址的IP報文。
- 如果收到優先級和自己相同或者比自己大的報文,則重置 Master_Down_Interval定時器,不進一步比較IP地址。
- 如果收到比自己優先級小的報文且該報文優先級是0時,定時器時間設置為 Skew_time(偏移時間),如果該報文優先級不是0,丟棄報文,立刻成為 Master。
Master_Down_Interval定時器:Backup設備在該定時器超時后仍未收到通告報文,則 會轉換為Master狀態。計算公式如下:Master_Down_Interval=(3* Advertisement_Interval) + Skew_time。其中,Skew_Time=(256–Priority)/256。
六、VRRP報文
- VRRP使用IP報文作為傳輸協議進行協議報文的傳送。其協議號為112。
- VRRP協議報文使用固定的組播地址224.0.0.18進行發送。
VRRP目前只有Advertisement報文,其格式如下:
七、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。
八、搶占(Preempt)
- R2加入到網絡后,接口的VRRP狀態首先過渡到Backup,在收到R1發送的 VRRP報文后,由於本地接口的VRRP優先級大於報文中的優先級,因此如 果設備激活Preempt(缺省啟用)則可立即搶占Master的角色,過渡到 Master狀態,R2開始發送VRRP消息。
- 可修改搶占延遲時間,缺省該時間為0s。
九、VRRP配置
設定虛擬IP地址是否可以使用ping命令ping通
vrrp ping-enable
注意:請在備份組建立之前進行設定,否則系統不允許再使用此命令來設定虛擬IP地址是否可以使用ping命令ping通。
設置虛擬IP地址和MAC地址的對應形式
vrrp method { real-mac| virtual-mac}
- Real-mac表示使用以太網交換機接口的實際MAC地址和虛擬IP地址映射
- Virtual-mac表示使用虛擬MAC地址和虛擬IP地址映射
注意:備份組的IP地址和MAC地址的對應形式需要在配置備份組之前就設定。如果在交換機上已經創建了備份組,系統將不允許在設置備份組的IP地址MAC地址的對應關系。
添加或刪除虛擬IP地址
vrrp vrid virtual-router-ID virtual-ip virtual-address
undo vrrp vrid virtual-router-ID [ virtual-ip virtual-address ]
設置備份組的優先級
vrrp vrid vrid priority priority
- 優先級取值范圍為0~255,供用戶配置使用的為1~254,0保留給特殊用途使用,255保留給虛擬IP地址擁有者使用。缺省優先級為100
- IP地址擁有者的優先級不可配置
設置備份組的搶占方式和延遲時間
vrrp vrid virtual-router-ID preempt-mode [delay delay-value]
- 缺省方式是搶占模式,延遲時間為0
設置備份組的認證方式和認證字
vrrp authentication-mode authentication-type authentication-key
VRRP提供三種認證方式:
- NONE:不進行認證,僅用於安全的網絡
- SIMPLE:簡單字符認證,用於可能收到安全威脅的網絡,認證字符長度不超過8字符
- MD5:利用Authentication Header提供的認證方式和MD5算法來認證,通常用於安全要求較高,但網絡本身存在安全隱患的網絡
設置備份組的定時器
vrrp vrid virtual-router-ID timer advertise adver-interval
- Master-down-interval為3倍advertise-interval
設置監視指定接口
vrrp vrid virtual-router-ID track vlan-interface interface-num [ reduced value-reduced ]
- H3C系列交換機還可以通過監聽接口狀況實現備份功能,當監視接口出現故障時,自動降低交換機所在備份組的優先級,從而實現備份
十、VRRP顯示和調試
- 顯示VRRP的狀態信息
display vrrp verbose
display vrrp [ interface vlan-interface interface-num ] [ virtual-router-ID]
- 打開/關閉VRRP調試開關
debugging vrrp{ state | packet }
undo debugging vrrp{ state | packet }
十一、VRRP配置舉例
網絡結構圖
兩個三層交換機運行VRRP協議
十二、單備份組的實現
在上述網絡結構中,配置一個備份組,虛擬路由器ID為1,虛擬IP地址為10.0.0.1
- 配置Switch_A:
[Switch_A-vlan-interface2] vrrp vrid 1 virtual-ip 10.0.0.1
[Switch_A-vlan-interface2] vrrp vrid 1 priority 100
- 配置Switch B:
[Switch_B-vlan-interface2] vrrp vrid 1 virtual-ip 10.0.0.1
其它配置如路由,虛接口等配置請參見相關部分
十三、多備份組實現負載分擔
同一網絡結構圖,配置兩個備份組,其ID為1和2,虛擬網關分別為10.0.0.1和10.0.0.4正常情況下,Switch_A為1組的Master,Switch_B為2組的Master。局域網內部分用戶以10.0.0.1為缺省網關,部分用戶以10.0.0.4為缺省網關。
- 配置Switch_A:
[Switch_A-vlan-interface2] vrrp vrid 1 virtual-ip 10.0.0.1
[Switch_A-vlan-interface2] vrrp vrid 1 priority 120
[Switch_A-vlan-interface2] vrrp vrid 2 virtual-ip 10.0.0.4
- 配置Switch_B:
[Switch_B-vlan-interface2] vrrp vrid 1 virtual-ip 10.0.0.1
[Switch_B-vlan-interface2] vrrp vrid 2 virtual-ip 10.0.0.4
[Switch_B-vlan-interface2] vrrp vrid 2 priority 120
十四、VRRP故障診斷與排錯
VRRP配置比較簡單,通常通過查看配置文件和調試信息即可完成故障排除
- 故障之一:控制台上頻頻給出配置錯誤的提示
這表明交換機收到了錯誤的VRRP報文
- 故障之二:同一個備份組出現多個Master交換機
多個Master並存時間較短,屬於正常情況
多個Master長時間共存,有可能是Master之間收不到VRRP報文,或者收到的報文不合法
- 故障之三:VRRP的狀態頻繁轉換
備份組的定時器時間間隔設置太小
加大定時器時間間隔
設置搶占延遲時間