keepalived之 Keepalived 原理(定义、VRRP 协议、VRRP 工作机制)
1.Keepalived 定義
Keepalived 是一個基于VRRP協(xié)議來實現(xiàn)的LVS服務高可用方案,可以利用其來避免單點故障。一個LVS服務會有2臺服務器運行Keepalived,一臺為主服務器(MASTER),一臺為備份服務器(BACKUP),但是對外表現(xiàn)為一個虛擬IP,主服務器會發(fā)送特定的消息給備份服務器,當備份服務器收不到這個消息的時候,即主服務器宕機的時候, 備份服務器就會接管虛擬IP,繼續(xù)提供服務,從而保證了高可用性。Keepalived是VRRP的完美實現(xiàn),因此在介紹keepalived之前,先介紹一下VRRP的原理。
2.VRRP 協(xié)議簡介
在現(xiàn)實的網(wǎng)絡環(huán)境中,兩臺需要通信的主機大多數(shù)情況下并沒有直接的物理連接。對于這樣的情況,它們之間路由怎樣選擇?主機如何選定到達目的主機的下一跳路由,這個問題通常的解決方法有二種:
在主機上使用動態(tài)路由協(xié)議(RIP、OSPF等)
在主機上配置靜態(tài)路由
很明顯,在主機上配置動態(tài)路由是非常不切實際的,因為管理、維護成本以及是否支持等諸多問題。配置靜態(tài)路由就變得十分流行,但路由器(或者說默認網(wǎng)關(guān)default gateway)卻經(jīng)常成為單點故障。VRRP的目的就是為了解決靜態(tài)路由單點故障問題,VRRP通過一競選(election)協(xié)議來動態(tài)的將路由任務交給LAN中虛擬路由器中的某臺VRRP路由器。
3.VRRP 工作機制
在一個VRRP虛擬路由器中,有多臺物理的VRRP路由器,但是這多臺的物理的機器并不能同時工作,而是由一臺稱為MASTER的負責路由工作,其它的都是BACKUP,MASTER并非一成不變,VRRP讓每個VRRP路由器參與競選,最終獲勝的就是MASTER。MASTER擁有一些特權(quán),比如,擁有虛擬路由器的IP地址,我們的主機就是用這個IP地址作為靜態(tài)路由的。擁有特權(quán)的MASTER要負責轉(zhuǎn)發(fā)發(fā)送給網(wǎng)關(guān)地址的包和響應ARP請求。
VRRP通過競選協(xié)議來實現(xiàn)虛擬路由器的功能,所有的協(xié)議報文都是通過IP多播(multicast)包(多播地址224.0.0.18)形式發(fā)送的。虛擬路由器由VRID(范圍0-255)和一組IP地址組成,對外表現(xiàn)為一個周知的MAC地址。所以,在一個虛擬路由 器中,不管誰是MASTER,對外都是相同的MAC和IP(稱之為VIP)。客戶端主機并不需要因為MASTER的改變而修改自己的路由配置,對客戶端來說,這種主從的切換是透明的。
在一個虛擬路由器中,只有作為MASTER的VRRP路由器會一直發(fā)送VRRP通告信息(VRRPAdvertisement message),BACKUP不會搶占MASTER,除非它的優(yōu)先級(priority)更高。當MASTER不可用時(BACKUP收不到通告信息), 多臺BACKUP中優(yōu)先級最高的這臺會被搶占為MASTER。這種搶占是非??焖俚?<1s),以保證服務的連續(xù)性。由于安全性考慮,VRRP包使用了加密協(xié)議進行加密。
4.VRRP 工作流程
(1).初始化:?
路由器啟動時,如果路由器的優(yōu)先級是255(最高優(yōu)先級,路由器擁有路由器地址),要發(fā)送VRRP通告信息,并發(fā)送廣播ARP信息通告路由器IP地址對應的MAC地址為路由虛擬MAC,設置通告信息定時器準備定時發(fā)送VRRP通告信息,轉(zhuǎn)為MASTER狀態(tài);否則進入BACKUP狀態(tài),設置定時器檢查定時檢查是否收到MASTER的通告信息。
(2).Master
設置定時通告定時器;
用VRRP虛擬MAC地址響應路由器IP地址的ARP請求;
轉(zhuǎn)發(fā)目的MAC是VRRP虛擬MAC的數(shù)據(jù)包;
如果是虛擬路由器IP的擁有者,將接受目的地址是虛擬路由器IP的數(shù)據(jù)包,否則丟棄;
當收到shutdown的事件時刪除定時通告定時器,發(fā)送優(yōu)先權(quán)級為0的通告包,轉(zhuǎn)初始化狀態(tài);
如果定時通告定時器超時時,發(fā)送VRRP通告信息;
收到VRRP通告信息時,如果優(yōu)先權(quán)為0,發(fā)送VRRP通告信息;否則判斷數(shù)據(jù)的優(yōu)先級是否高于本機,或相等而且實際IP地址大于本地實際IP,設置定時通告定時器,復位主機超時定時器,轉(zhuǎn)BACKUP狀態(tài);否則的話,丟棄該通告包;
(3).Backup
設置主機超時定時器;
不能響應針對虛擬路由器IP的ARP請求信息;
丟棄所有目的MAC地址是虛擬路由器MAC地址的數(shù)據(jù)包;
不接受目的是虛擬路由器IP的所有數(shù)據(jù)包;
當收到shutdown的事件時刪除主機超時定時器,轉(zhuǎn)初始化狀態(tài);
主機超時定時器超時的時候,發(fā)送VRRP通告信息,廣播ARP地址信息,轉(zhuǎn)MASTER狀態(tài);
收到VRRP通告信息時,如果優(yōu)先權(quán)為0,表示進入MASTER選舉;否則判斷數(shù)據(jù)的優(yōu)先級是否高于本機,如果高的話承認MASTER有效,復位主機超時定時器;否則的話,丟棄該通告包;
5.ARP查詢處理
當內(nèi)部主機通過ARP查詢虛擬路由器IP地址對應的MAC地址時,MASTER路由器回復的MAC地址為虛擬的VRRP的MAC地址,而不是實際網(wǎng)卡的 MAC地址,這樣在路由器切換時讓內(nèi)網(wǎng)機器覺察不到;而在路由器重新啟動時,不能主動發(fā)送本機網(wǎng)卡的實際MAC地址。如果虛擬路由器開啟的ARP代理 (proxy_arp)功能,代理的ARP回應也回應VRRP虛擬MAC地址;
本文轉(zhuǎn)自 張沖andy 博客園博客,原文鏈接:http://www.cnblogs.com/andy6/p/7019054.html?? ,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的keepalived之 Keepalived 原理(定义、VRRP 协议、VRRP 工作机制)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Centos 6.0/ Nginx 安装
- 下一篇: Linux基础知识题解答(一)