VRRP是一種容錯協議,它為具有組播或廣播能力的區域網(如乙太網)設計,它保證當區域網內主機的下一跳路由器出現故障時,可以及時的由另一臺路由器來代替,從而保持通訊的連續性和可靠性。
為了使VRRP工作,要在路由器上配置虛擬路由器號和虛擬IP位址,同時產生一個虛擬MAC地址,這樣在這個網絡中就加入了一個虛擬路由器。
而網絡上的主機與虛擬路由器通信,無需了解這個網絡上物理路由器的任何信息,一個虛擬路由器由一個主路由器和若干個備份路由器組成,主路由器實現真正的轉發功能。當主路由器出現故障時,一個備份路由器將成為新的主路由器,接替它的工作。
VRRP中只定義了一種報文——VRRP報文,這是一種組播報文,封裝在IP報文上,由主路由器定時發出來通告它的存在,使用這些報文可以檢測虛擬路由器各種參數,還可以用於主路由器的選舉。
VRRP還定義了三種狀態模型:初始狀態Initialize, 活動狀態Master, 備份狀態Backup 。其中只有活動狀態可以為到虛擬IP位址的轉發請求服務。
VRRP協議僅僅適用於IPv4版本的路由器。對於IPv6版本的路由器將會有新的規範來規定相關內容。
VRRP 協議報文用來將 Master 設備的優先級和狀態通告給同一備份組的所有 Backup 設備。VRRP 協議報文封裝在 IP 報文中源地址為發送報文接口的主 IP 地址(不是虛擬 IP 地址),目的地址是224.0.0.18,TTL 是 255,協議號是 112。
目前,VRRP 協議包括兩個版本:VRRPv2 和 VRRPv3,兩者的主要區別為:
1、支持的網絡類型不同:VRRPv3適用於 IPv4和 IPv6兩種網絡,而 VRRPv2僅適用於 IPv4網絡。
2、認證功能不同:VRRPv3 不支持認證功能而 VRRPv2 支持該功能。
3、發送通告報文的時間間隔單位不同。VRRPv3 支持的是釐秒級,而 VRRPv2 支持秒級。
1、初始創建的VRRP 設備工作在 Initialize 狀態,接口up後,若此設備的優先級小於 255,則會先切換至 Backup 狀態;若此設備優先級為 255(即虛擬 IP 地址也是該設備的物理接口地址),則會切換成 Master 狀態並定時發送 VRRP 通告報文。
2、切換成Backup 狀態的設備,在 Master_Down_Interval 定時器[ Master_Down_Interval定時器取值為:(3×Advertisement_Interval)+Skew_time,Skew_time=(256-Backup 設備的優先級)/256;默認情況下 Advertisement_Interval 為1( 秒 )],超時後再切換至 Master 狀態。
3、首先切換至Master 狀態的設備向外發送 VRRP 通告報文,如果 Backup 設備中有設備優先級高於 Master 設備,且該設備採用搶佔方式,則該 Buckup 設備變為 Master。
4、如果多個 VRRP 設備同時切換到 Master 狀態,通過 VRRP 通告報文的交互進行協商後,優先級最高的 VRRP 設備成為最終的 Master 設備;優先級相同時,VRRP 設備上 VRRP備份組所在接口主 IP 地址較大的成為 Master 設備。
5、新的 Master 設備會立即發送攜帶虛擬路由器的虛擬 MAC 地址(格式為:
00-00-5E-00-01-{VRID}(VRRP for IPv4);00-00-5E-00-02-{VRID}(VRRP for IPv6))和虛擬 IP位址信息的免費 ARP 報文,刷新與它連接的主機或設備中的 MAC 表項,從而把用戶流量引到新的 Master 設備上來。
6、原 Master 設備故障恢復時,若該設備為 IP 地址擁有者(優先級為 255),將直接切換至 Master 狀態。
7、優先級0 和 255 不可以手動設置,只有虛擬 IP 和接口 IP 為同一個 IP 地址時,該設備的優先級會自動調為255。Master 設備要退出該VRRP 時,會發送優先級為0 的VRRP通告報文。
組成虛擬路由器的路由器會有三種狀態,分別是Initialize Master和Backup
下面對這三種狀態進行說明:
Initialize
系統啟動後進入此狀態,當收到接口startup的消息,將轉入Backup (優先級不為255時)或Master狀態(優先級為255時)。在此狀態時,路由器不會對VRRP報文做任何處理。
Master
當路由器處於Master狀態時,它將會做下列工作:
· 定期發送VRRP組播報文;
· 發送免費(gratuitous) ARP報文,以使網絡內各主機知道虛擬IP位址所對應的虛擬MAC地址;
· 響應對虛擬IP位址的ARP請求,並且響應的是虛擬MAC地址,而不是接口的真實MAC地址;
· 轉發目的MAC地址為虛擬MAC地址的IP報文;
· 如果它是這個虛擬IP位址的擁有者,則接收目的IP位址為這個虛擬IP位址的IP報文,否則,丟棄這個IP報文。需要注意的是,由於有這一點要求,所以除非主路由器是IP位址擁有者,否則主機ping虛擬IP位址不能ping通;
在Master狀態中只有接收到比自己的優先級大的VRRP報文時,才會轉為Backup ,只有當接收到接口的Shutdown事件時才會轉為Initialize
Backup
只有當Backup接收到MASTER_DOWN這個定時器到時的事件時,才會轉為Master ;而當接收到比自己的優先級小的VRRP報文時,它只是做丟棄這個報文的處理,從而就不對定時器做重置處理。這樣定時器就會在若干次這樣的處理之後轉為Master ,只有當接收到接口的Shutdown事件時才會轉為Initialize
對於安全程度不同的網絡環境可以在報頭上設定不同的認證方式和認證字,任何沒有通過認證的報文將做丟棄處理, VRRP定義了三種認證方式:無認證(no authentication),簡單字符認證(simple clear text passwords)和MD5認證(MD5)