近期在學習基於keepalived配置主備模式的服務集羣,其中keepalived的實現是基於VRRP協議,因此梳理該篇文章以學習vrrp協議。
1. VRRP協議簡介
1.1 概念
虛擬路由冗餘協議VRRP(Virtual Router Redundancy Protocol)通過把幾台路由設備聯合組成一台虛擬的路由設備,將虛擬路由設備的IP地址作為用户的默認網關實現與外部網絡通信。當網關設備發生故障時,VRRP機制能夠選舉新的網關設備承擔數據流量,從而保障網絡的可靠通信。
1.2 為什麼需要VRRP
VRRP能夠在不改變組網的情況下,採用將多台路由設備組成一個虛擬路由器,通過配置虛擬路由器的IP地址為默認網關,實現默認網關的備份。當網關設備發生故障時,VRRP機制能夠選舉新的網關設備承擔數據流量。從客户的角度來看,在這個過程中服務器沒有發生任何變化,但是實際提供服務的實例卻發生了更改,這種機制保障了網絡的可靠通信。
2. VRRP原理
2.1 VRRP概述
- VRRP路由器(VRRP Router):運行VRRP協議的設備,它可能屬於一個或多個虛擬路由器。
- 虛擬路由器(Virtual Router):又稱VRRP備份組,由一個Master設備和多個Backup設備組成,被當作一個共享局域網內主機的缺省網關。
- Master路由器(Virtual Router Master):承擔轉發報文任務的VRRP設備。
- Backup路由器(Virtual Router Backup):一組沒有擔任轉發任務的VRRP設備,當Master設備出現故障時,它們將通過競選成為新的Master設備。
- VRID:虛擬路由器的標識。
- 虛擬IP地址(Virtual IP Address):虛擬路由器的IP地址,一個虛擬路由器可以有一個或多個IP地址,由用户配置。
- IP地址擁有者(IP Address Owner):如果一個VRRP設備將虛擬路由器IP地址作為真實的接口地址,則該設備被稱為IP地址擁有者。如果IP地址擁有者是可用的,通常它將成為Master。
- 虛擬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請求時,使用虛擬MAC地址,而不是接口的真實MAC地址。
2.2 VRRP報文分析
2.3 VRRP工作原理
2.3.1 VRRP的三種狀態
VRRP協議中定義了三種狀態機:初始狀態(Initialize)、活動狀態(Master)、備份狀態(Backup)。其中,只有處於Master狀態的設備才可以轉發那些發送到虛擬IP地址的報文。
2.3.2 VRPP的工作過程
- 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。
- 搶佔模式:在搶佔模式下,如果Backup設備的優先級比當前Master設備的優先級高,則主動將自己切換成Master。
- 非搶佔模式:在非搶佔模式下,只要Master設備沒有出現故障,Backup設備即使隨後被配置了更高的優先級也不會成為Master設備。
2.3.2.1 master的選舉
VRRP根據優先級來確定虛擬路由器中每台設備的角色(Master設備或Backup設備)。優先級越高,則越有可能成為Master設備。
- 如果VRRP報文中Master設備的優先級高於或等於自己的優先級,則Backup設備保持Backup狀態。
- 如果VRRP報文中Master設備的優先級低於自己的優先級,採用搶佔方式的Backup設備將切換至Master狀態,採用非搶佔方式的Backup設備仍保持Backup狀態。
- 如果多個VRRP設備同時切換到Master狀態,通過VRRP通告報文的交互進行協商後,優先級較低的VRRP設備將切換成Backup狀態,優先級最高的VRRP設備成為最終的Master設備;優先級相同時,VRRP設備上VRRP備份組所在接口主IP地址較大的成為Master設備。
- 如果創建的VRRP設備為IP地址擁有者,收到接口Up的消息後,將會直接切換至Master狀態。
2.3.2.1 master設備的通告
- 當Master設備主動放棄Master地位(如Master設備退出備份組)時,會發送優先級為0的通告報文,用來使Backup設備快速切換成Master設備,而不用等到Master_Down_Interval定時器超時。這個切換的時間稱為Skew time,計算方式為:(256-Backup設備的優先級)/256,單位為秒。
- 當Master設備發生網絡故障而不能發送通告報文的時候,Backup設備並不能立即知道其工作狀況。等到Master_Down_Interval定時器超時後,才會認為Master設備無法正常工作,從而將狀態切換為Master。其中,Master_Down_Interval定時器取值為:3×Advertisement_Interval+Skew_time,單位為秒。