來說說 Vrrp 協(xié)議?
本文轉(zhuǎn)載自微信公眾號「Java極客技術(shù)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Java極客技術(shù)公眾號。
keepalived 是一個基于 VRRP 協(xié)議來實現(xiàn)的服務(wù)高可用方案,從而可以避免 IP 單點故障。
一般與其他負載均衡技術(shù),如 LVS,Nginx 等一起來工作來達到集群高可用的目的
今天阿粉來說說 VRRP 協(xié)議
VRRP 簡介(轉(zhuǎn)發(fā)機制)
- VRRP(Virtual Router Redundancy Protocol,虛擬路由器冗余協(xié)議)將可以承擔網(wǎng)關(guān)功能的路由器加入到備份組中,形成一臺虛擬路由器,由 VRRP 的選舉機制決定哪臺路由器承擔轉(zhuǎn)發(fā)任務(wù),局域網(wǎng)內(nèi)的主機只需將虛擬路由器配置為缺省網(wǎng)關(guān)
- VRRP 是一種選擇協(xié)議,它可以把一個虛擬路由器的責任動態(tài)分配到局域網(wǎng)上的 VRRP 路由器中的一臺。控制虛擬路由器 IP 地址的 VRRP 路由器稱為主路由器,它負責轉(zhuǎn)發(fā)數(shù)據(jù)包到這些虛擬 IP 地址。一旦主路由器不可用,這種選擇過程就提供了動態(tài)的故障轉(zhuǎn)移機制,這就允許虛擬路由器的 IP 地址可以作為終端主機的默認第一跳路由器 3.VRRP是一種容錯協(xié)議,在提高可靠性的同時,簡化了主機的配置。在具有多播或廣播能力的局域網(wǎng)(如以太網(wǎng))中,借助 VRRP 能在某臺設(shè)備出現(xiàn)故障時仍然提供高可靠的缺省鏈路,有效避免單一鏈路發(fā)生故障后網(wǎng)絡(luò)中斷的問題,而無需修改動態(tài)路由協(xié)議、路由發(fā)現(xiàn)協(xié)議等配置信息
- VRRP 協(xié)議的實現(xiàn)有 VRRPv2 和 VRRPv3 兩個版本, VRRPv2 基于 IPv4 , VRRPv3 基于 IPv6
- VRRP 路由器:所有運行 VRRP 協(xié)議的路由器就叫做 VRRP 路由器
- VRRP 備份組:多臺路由器被分到一個組中,在這個組中選舉出一臺主路由器,其他作為備份路由器。平常時候都是主路由器一個工作,備份路由器空閑,當主路由器故障后,從多臺備份路由器中選舉出一臺替代故障的主路由器工作。這一組中的路由器構(gòu)成了一個備份組。
- 虛擬路由器:虛擬路由器是 VRRP 備份組中所有路由器的集合,它是一個邏輯概念,并不是正真存在的。從備份組外面看備份組中的路由器,感覺組中的所有路由器就像一個一樣,你可以理解為在一個組中:主路由器 + 所有備份路由器=虛擬路由器。虛擬路由器有一個虛擬的 IP 地址和 MAC 地址。如果虛擬 IP 和備份組中的某臺路由器的 IP 相同的話,那么這臺路由器稱為 IP 地址擁有者,并且作為備份組中的主路由器
VRRP 狀態(tài)
VRRP 路由器在運行過程中有三種狀態(tài):
- Initialize 狀態(tài):系統(tǒng)啟動后就進入 Initialize ,此狀態(tài)下路由器不對 VRRP 報文做任何處處理,可以理解為初始化
- Master 狀態(tài):路由器會發(fā)送 VRRP 通告,發(fā)送免費 ARP 報文。
- Backup狀態(tài):接受 VRRP 通告。
一般主路由器處于 Master 狀態(tài),備份路由器處于 Backup 狀態(tài)。
VRRP工作過程如下:
- 路由器使用 VRRP 功能后,會根據(jù)優(yōu)先級確定自己在備份組中的角色。優(yōu)先級高的路由器成為 Master 路由器,優(yōu)先級低的成為 Backup 路由器。Master 路由器定期發(fā)送 VRRP 通告報文,通知備份組內(nèi)的其他設(shè)備自己工作正常;Backup 路由器則啟動定時器等待通告報文的到來。
- 在搶占方式下,當 Backup 路由器收到 VRRP 通告報文后,會將自己的優(yōu)先級與通告報 文中的優(yōu)先級進行比較。如果大于通告報文中的優(yōu)先級,則成為 Master 路由器;否則將保持 Backup 狀態(tài)
- 在非搶占方式下,只要 Master 路由器沒有出現(xiàn)故障,備份組中的路由器始終保持 Master 或 Backup 狀態(tài),Backup 路由器即使隨后被配置了更高的優(yōu)先級也不會成為 Master 路由器
- 如果 Backup 路由器的定時器超時后仍未收到 Master 路由器發(fā)送來的 VRRP 通告報文,則認為 Master 路由器已經(jīng)無法正常工作,此時 Backup 路由器會認為自己是 Master 路由器,并對外發(fā)送 VRRP 通告報文。備份組內(nèi)的路由器根據(jù)優(yōu)先級選舉出 Master 路由器,承擔報文的轉(zhuǎn)發(fā)功能
在項目中的體現(xiàn)
如圖,我們能夠看到前端在請求后端時,我們并不是讓它直接將請求打到實際的服務(wù)器上面來,而是去請求虛擬 IP ,此時如果 master 服務(wù)器沒有出現(xiàn)故障的話,就會由它將前端的請求打到真實的服務(wù)器上面去
如果 master 不能工作的話,就會由 backup 服務(wù)器將前端請求打到真實的服務(wù)器上面(阿粉在圖中拿虛線來表示當 master 宕掉時,由 backup 來負責轉(zhuǎn)發(fā)請求),這樣就實現(xiàn)了服務(wù)高可用
以上,感謝你的閱讀哇~