來說說 Vrrp 協(xié)議?
本文轉(zhuǎn)載自微信公眾號「Java極客技術(shù)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系Java極客技術(shù)公眾號。
keepalived 是一個基于 VRRP 協(xié)議來實現(xiàn)的服務高可用方案,從而可以避免 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ǎng)內(nèi)的主機只需將虛擬路由器配置為缺省網(wǎng)關(guān)
- VRRP 是一種選擇協(xié)議,它可以把一個虛擬路由器的責任動態(tài)分配到局域網(wǎng)上的 VRRP 路由器中的一臺??刂铺摂M路由器 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)
如圖,我們能夠看到前端在請求后端時,我們并不是讓它直接將請求打到實際的服務器上面來,而是去請求虛擬 IP ,此時如果 master 服務器沒有出現(xiàn)故障的話,就會由它將前端的請求打到真實的服務器上面去
如果 master 不能工作的話,就會由 backup 服務器將前端請求打到真實的服務器上面(阿粉在圖中拿虛線來表示當 master 宕掉時,由 backup 來負責轉(zhuǎn)發(fā)請求),這樣就實現(xiàn)了服務高可用
以上,感謝你的閱讀哇~