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