1. 程式人生 > >華為防火墻中的VGMP/VRRP/HRP

華為防火墻中的VGMP/VRRP/HRP

hcie 防火墻 vgmp vrrp hrp 心跳線

Vgmp VRRP Group Management Protocol

由於雙機熱備導致設備出問題時可能會來回路徑不一致,因為主備切換了

配置VGMP保證一個組內的VRRP全為master,如果有一個不是,則全部切換至slave

HRP ( Huawei Redundancy Protocol)

用於主設備出現問題時,備能快速切換至主,同時保證了主備之間的數據同步

防火墻作雙機熱備時只支持兩臺設備做,不像路由器多臺設備做VRRP

備份組:兩臺設備的接口在同一個網段,同一個廣播域內,是接口的概念不是設備的概念

VRRP通過組播地址224.0.0.18發送advertisement報文(只有一種報文)

vrrp

的主備選舉,切換時間,優先級

單純的VRRP在防火墻上配置的話很可能會導致來回路徑不一致的故障

VGMP(華為私有)解決了來回路徑不一致的問題

建立鄰居:1.組播建鄰居 2.單播UDP通過端口18514建立鄰居(用於心跳線上存在路由設備,非同一個網段)

UDP Header

VRRP Header

VGMP Header

DATA

VGMPVRRP關系:基於VRRP華為開發的私有協議,改變報文的結構,所以VRRP的功能被擴展,VRRP只是負責在VRRP備份組內交互報文起作用

VRRP名存實亡,主要是通過VGMP去實現控制管理VRRP的組

VRRP:備份組

VGMPactive組和standby

VGMP的報文結構:

技術分享

如上圖所示,從 VGMP 報文封裝順序中我們可以發現,VGMP 報文是根植於 VRRP 報文的,

是由 VRRP 報文頭封裝的。但這個 VRRP 報文並不是標準的 VRRP 報文,是經過華為擴展

和修改的,具體有以下幾點變化:

  • 標準VRRP報文的“Type”字段只有“1”一個取值,我們增加了“2”取值。也就是說如果Type=1,就是標準的VRRP報文;如果Type=2,就是我們修改後的VRRP報文。

  • 標準VRRP報文的“Virtual Rtr ID”字段代表VRRP備份組ID,而修改後的VRRP報文“Virtual Rtr ID”取值固定為“0”

  • 修改後的VRRP報文中去掉了標準VRRP報文的“IP Address”字段。

  • 標準VRRP報文中的“Priority”字段在VRRP報文頭中被修改成“Type2”字段。

雙機熱備

  • Type2=1時,報文封裝成 心跳鏈路探測報文。心跳鏈路探測報文用於檢測對端設備的心跳口能否正常接收本端設備的報文,以確定是否有心跳口可以使用。

  • Type2=5時,報文封裝成 一致性檢查報文。一致性檢查報文用於檢測雙機熱備狀態下的兩臺防火墻是否配置了相同的策略。

  • Type2=2時,VRRP報文才會進一步封裝VGMP報文頭,並根據VGMP報文頭中

  • “vType”字段繼續分成以下三種報文

  1. VGMP 報文(VGMP Hello 報文)。VGMP Hello 報文用於兩臺防火墻間的VGMP組協商主備狀態。這也正是我們問題的答案所在。

  2. HRP 心跳報文(HRP Hello 報文)。HRP心跳報文用於探測對端設備是否處於工作狀態。主用設備會每隔一段時間(缺省為1s)向備用設備發HRP心跳報文,用來通知主用設備處於工作狀態。如果備用設備在三個周期內沒有收到HRP心跳報文,則認為主用設備故障,而自身切換成主用備。

  3. HRP 數據報文。我們還需要在VGMP報文頭後繼續增加HRP報文頭,才能封裝成HRP數據報文。HRP數據報文用於主備設備之間的數據備份,包括命令行配置的備份和各種狀態信息的備份。

priority默認為65001(主)

priority默認為65000(備)

一個接口down了減2

Hrp standly-device ----主備

Hrp loadbalance-device ----負載

雙機熱備交換模式時上下連接都為三層路由設備時只能為負載分擔模式,否則會導致一邊不通。

雙機熱備交換模式時上下連接都為二層透明網橋時只能為主備模式,否則會產生環路,斷了一邊防止環路。

通過hrp track監控三層接口,且將其置為active狀態作為主

VGMP三大特性:


特性

監測故障

二層接口:監控VLAN接口,根據VLAN所加入的接口判斷

三層接口:直接監測接口,IP linkBFD

狀態切換


流量引導

三層接口:調整ospf的接口cost值,有接口出故障cost65500

二層接口:調整VGMP組的優先級

監測鏈路故障

一共存在四種模式:

雙機熱備組網

支持場景

故障監控

流量引導

防火墻路由模式,上下行都為路由模式

主備/負載

接口/IP link/BFD

ospf修改cost值影響選路

防火墻路由模式,上下行都為交換模式

主備/負載

VLAN接口

主用VLAN切換至備用時會down一下,再up,刷新二層Mac地址,知道新的主在哪

防火墻交換模式,上下行都為路由模式

只為負載

接口/IP link/BFD

ospf修改cost值影響選路

防火墻交換模式,上下行都為交換模式

只為主備

VLAN接口

主用VLAN切換至備用時會down一下,再up,刷新二層Mac地址,知道新的主在哪

VGMP狀態切換

兩臺防火墻之間的VGMP狀態主備切換的具體交互過程及動作分以下三種情況:

  • 因接口或鏈路故障引起的切換

    • 這一類故障發生時,主設備通過VGMP報文將狀態信息和本端優先級立即發送到備設備,備設備比較報文中的優先級和本機優先級,如果滿足切換條件將立即切換,瞬間完成業務流量的切換。

  • 因整機或心跳鏈路故障引起的切換

    • 這種故障發生時,由於主設備無法發送狀態通知消息到備機,因此只能依靠備機檢測到心跳報文(VGMP Hello報文)超時才能發現故障,因此切換時間為三個心跳報文周期。

  • 搶占流程

    • 故障恢復後的切換流程,由於備設備處於正常轉發狀態,等主機故障恢復後再切換回去,因此基本上不會影響業務。

主備模式下的切換

技術分享

負載分擔下的主備切換

技術分享

VGMP狀態機

技術分享

啟用雙機熱備功能後,各VGMP組進入Initialize(初始化)狀態。

1) 啟用Active組後,Active組的狀態由Initialize切換成Active。

2) 啟用Standby組後,Standby組的狀態由Initialize切換成Standby。

3) 本端VGMP組監控的接口故障時,狀態由Active切換成ActiveToStandby,並發送VGMP請求報文給對端設備的VGMP組。

4) 本端VGMP組收到對端的VGMP請求報文,發現自身優先級高,則將狀態由Standby切換Acitve,並發送VGMP確認報文給對端設備的VGMP組。

5) 本端VGMP組收到對端的VGMP確認報文,確認本端需要進行狀態切換,則本端的VGMP組狀態由ActiveToStandby切換成Standby

6) 對端VGMP組確認本端的VGMP組不需要進行狀態切換或連續三次沒有回應本端的VGMP請報文,則本端的VGMP組狀態由ActiveToStandby切換成Active。

7) 本端VGMP組監控的接口故障恢復後,如果本端VGMP組優先級高於對端且配置了搶占功能,則本端VGMP組狀態由Standby切換成StandbyToAcitve,並向對端發送VGMP請求報文

8) 本端VGMP組收到對端的VGMP請求報文,發現對端優先級高,則將狀態由Active切換成Standby,並發送VGMP確認報文給對端設備的VGMP組。

9) 本端VGMP組收到對端的VGMP確認報文,確認本端需要進行狀態切換,則本端的VGMP組狀態由StandbyToAcitve切換成Active,完成搶占過程。

10) 對端VGMP組確認本端的VGMP組不需要進行狀態切換或連續三次沒有回應本端的VGMP請報文,則本端的VGMP組狀態由StandbyToAcitve切換成Standby。


本文出自 “hcietea” 博客,請務必保留此出處http://hcietea.blog.51cto.com/9642637/1974899

華為防火墻中的VGMP/VRRP/HRP