日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

keepalive是基于vrrp協議實現接入層高可用組件,避免系統的單點故障。

工作原理

要想理解keepalive的原理,就需要理解vrrp協議的工作原理。

概念解釋:

Vrrp(Virtual Router Redundancy Protocol),虛擬路由冗余協議,一種為了避免路由器單點故障的容錯協議。

網絡架構如下圖:

一文讀懂keepalive的工作原理

 

?

工作原理

  • 多個路由器組成一個路由器組,即虛擬路由器。如圖RouterA和RouterB組成一個虛擬路由器。
  • 虛擬路由器使用虛擬IP與外網交互(如圖中VIP),虛擬mac與內網交互(如圖中VMAC)
  • 獲得VIP的路由器為主路由器(Master狀態),其他路由器為備份路由器(Backup狀態);
  • 主路由器每隔 advertisement_intervl 秒(對應圖中配置項 advert_int),向組內其他路由器發送通告消息(即心跳),告知本路由器的優先級等信息;
  • 組播的方式發送,組播地址224.0.0.18。
  • 只有主路由器會響應ARP請求,組內其他路由器會丟棄ARP請求;
  • 只有主路由器會響應對虛擬IP請求,組內其他路由器會丟棄對虛擬IP的請求;

主備切換

虛擬路由器中的Master可以切換(即VIP切換到備份路由器上),切換方式分為3種:

Master路由器退出該路由器組

  • Master路由器在vrrp消息中將本路由器的優先級設置為0,表示原Master設備聲明不參與該VRRP組了;
  • Backup路由器接收到這個消息后,會等待 skew_time(偏移時間,= (256-backup_priority)/256),切換為Master狀態

Master路由器降低自身優先級

  • Master路由器在vrrp消息中將本路由器的優先級降低,小于Backup路由器優先級(但不為0);
  • 這時Backup路由器會丟棄該消息;如果是搶占模式,會立即切換為Master狀態;如果是非搶占模式,仍保持Backup狀態;

Backup超時未收到vrrp消息

  • Backup路由器在超過一定時間(Master_down_interval=3*advert_int + skew_time)未收到Master的vrrp消息時,會切換為Master;

常見問題

當 Router A 和 Router B 無法正常通信時, 可能存在2個Master路由器,即“腦裂”。

解決方案:

  1. 核查A和B之間的網絡,關閉防火墻或者配置好ip,Router之間保證網絡通暢
  2. 使用2條線路連接2個路由器,一條壞了時,另一條備用
  3. 主節點編寫腳本測試網絡情況;如果網絡不通,則關閉keepalived進程;
  4. Master路由器宕機后,立即告警,人為介入處理。

擴展知識

VRRP協議棧

一文讀懂keepalive的工作原理

vrrp協議棧


一文讀懂keepalive的工作原理

 

上述標紅的幾個字段是關鍵字段,都會出現在 keepalive 的配置文件中。

  • Version:VRRP協議版本號,RFC3768定義了版本2.
  • Type:該字段指明了VRRP報文的類型,RFC3768只定義了一種VRRP報文,那就是
  • VRRP通告報文,所以該字段總是置為1,若收到的VRRP通告報文擁有非1的類型
  • 值,那么會被丟棄。
  • Virtual Rtr ID:也就是我們上面介紹過的VRID,一個VRID唯一地標識了一個虛擬
  • 路由器,取值范圍是[1,255],所以一臺路由器的接口可以同時運行最多255個VRRP
  • 實例,此字段沒有缺省值,必須人為設定。
  • Priority:
  • 優先級,在一個虛擬路由器中用來選取Master路由器和Backup路由器,值越大表明優先級越高,此字段共有8個bit,取值范圍[1,254],若沒有人為指定,缺省值是100。
  • 其中,VRRP協議會將IP地址擁有者路由器的該字段永遠設置為255,若人為指定為其它值,也不會影響VRRP協議的默認行為,即IP地址擁有者路由器的該字段總是255。
  • 另外,此字段設置為0會出現在下面這種情形中,當Master路由器出現故障后,它會立刻發送一個Priority置0的VRRP通告報文,當Backup路由器收到此通告報文后,會等待Skew time時間,然后將自己切換為Master路由器,其中Skew time=(256-Backup路由器的優先級)/256,單位為秒,例如若Backup路由器的優先級為100,那么Skew time=156/256=0.609秒,對于主路由器來說,Skew time并沒有實際意義,雖然cisco的路由器也會計算并顯示出來。
  • Count IP Addrs:VRRP通告報文中包含的IP地址數量,這個字段其實就是為一個VRRP虛擬路由器所分配的IP地址的數量,
  • Auth Type:認證類型字段,是一個8位的無符號整數,一個虛擬路由器只能使用一種認證類型,如果Backup路由器收到的通告報文中認證類型字段是未知的或和本地配置的不匹配,那么它將丟棄該數據包。
  • 目前支持3種認證方式:無認證,簡單字符,和MD5認證。
  • Adver Int::此字段規定了Mater路由器向外發送VRRP通告報文的時間間隔,以秒為單位,取值范圍是[1,255],若沒有人工配置,缺省為1秒。
  • Checksum:整個VRRP報文的校驗和,計算過程中,將Checksum字段置為0,計算完成后將結果填入此字段。若希望進一步了解Checksum的計算,可以查看RFC1071(CKSM)。
  • IP Address:此字段存放3個VRRP虛擬路由器的虛擬IP地址,配置了幾個就封裝幾個,在上面的cisco實例中我們配置了三個,那么VRRP通告報文就會封裝3個。
  • Authentication Data:RFC3768中規定,此字段只是為了向RFC2338兼容,在實際的封裝時,全置為0.,接收方也會忽略此字段。

虛擬MAC地址

組成方式是00-00-5E-00-01-{VRID},前三個字節00-00-5E是IANA組織分配的,接下來的兩個字節00-01是為VRRP協議指定的,最后的VRID是虛擬路由器標識,取值范圍[1,255]

VRID

虛擬路由器標識,在同一個VRRP組內的路由器必須有相同的VRID

其他

Keepalive內置了一個模塊,可以通過配置文件操作內核,向ipvs添加規則,創建LVS。這又是另一個關鍵組件,就不在本節討論了。

keepalived進程

keepalived啟動時有3個進程:

  • 主進程,監控其他子進程
  • vrrp子進程,負責vrrp通信
  • checker子進程,檢測服務狀態;如果服務不可用,則通知vrrp子進程,發降級通告

寫在最后

對于常用組件,我們不但需要知道如何用,更要知道它的底層原理,在遇到問題是可以事半功倍。希望通過本文可以讓大家對keepalive有更深入的了解。

?

分享到:
標簽:keepalive
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定