華爲網絡----防火牆雙機熱備實驗(VGMP、HRP協議)

前言:

  • 傳統組網中,只有一臺防火牆部署在出口,當防火牆出現故障後,內部網絡中所有以防火牆作爲默認網關的主機與外部網絡之間的通訊中斷,通訊可靠性無法保證。
  • 雙機熱備份技術的出現改變了可靠性難以保證的尷尬狀態,通過在網絡出口位置部署兩臺或多臺網關設備,保證了內部網絡於外部網絡之間的通訊暢通。
  • USG防火牆作爲安全設備,一般會部署在需要保護的網絡和不受保護的網絡之間,即位於業務接口點上。在這種業務點上,如果僅僅使用一臺USG防火牆設備,無論其可靠性多高,系統都可能會承受因爲單點故障而導致網絡中斷的風險。爲了防止一臺設備出現意外故障而導致網絡業務中斷,可以採用兩臺防火牆形成雙機備份。解決單點故障,從而實現業務的平滑過渡(會話表需要同步的)

一、華爲防火牆雙機熱備概述

1.1 防火牆雙機熱備概念
  • 平常多個VRRP備份組會存在狀態不一致的問題,於是華爲防火牆引入了VGMP來實現對VRRP備份組的統一管理,保證多個VRRP備份組狀態的一致性
  • VGMP(VRRP Group Management Protocol)組管理協議:由於雙機熱備導致設備出問題時可能會來回路徑不一致,因此,我們將防火牆上的所有VRRP備份組都加入到一個VGMP組中,由VGMP組來集中監控並管理所有的VRRP備份組狀態。如果有一個VRRP備份組有狀態變化,則全部VRRP備份組進行狀態切換,保證各VRRP備份組狀態的一致性
    • 實現VRRP備份組的統一管理
    • 保證設備在各個備份組中的狀態一致性
  • HRP(Huawei Redundancy Protocol)雙機熱備協議(華爲冗餘協議):協議是承載在VGMP報文上進行傳輸的,用於主設備出現問題時,備能快速切換至主,同時保證了主備之間的配置命令和會話表狀態信息同步。
  • VGMP、HRP是華爲私有協議
1.2 防火牆雙機熱備特點
  • VGMP組的狀態決定了VRRP備份組的狀態
  • VGMP組的狀態通過比較優先級決定
  • 默認情況下,VGMP組的優先級爲45000
  • 通過心跳線協商VGMP狀態信息
  • 一旦檢測到備份組的狀態變成Initialize狀態,VGMP組的優先級會自動減2
1.2.1 VGMP的優先級
  • 中低端:Active設備優先級爲65001,Standby設備優先級爲6500
  • 高端:VGMP組初始優先級=45000+1000 LPU板上的插卡個數+2SPU 板上的CPU個數
  • USG6000,NGFW Module的初始化優先級都爲45000
1.3 華爲防火牆雙機熱備方式
  • ① 自動備份

    該模式下,和雙機熱備有關的配置命令只能再主用設備上配置,並自動同步到備用設備中,主用設備自動將裝填信息同步到備設備中。該模式是華爲防火牆默認開啓模式,主要用於熱備模式 hrp auto-sync

  • ② 手工批量備份

    該模式下,主要設備上所有的配置命令和狀態信息,只有在手工執行執行批量備份命令時纔會自動同步到備用設備,該模式主要用於主備設備配置不同步,需要立即進行同步的場景中

  • ③ 快速備份

    該模式下,不同步配置命令,只同步狀態信息,在負載均衡方式的雙機熱備環境中,該模式必須啓動,以快速更新狀態信息

1.4 VGMP的狀態轉換與工作過程
  • 啓用雙機熱備功能後,各VGMP組進入Initialize(初始化)狀態。
  • 啓用Active組後,Active組的狀態由Initialize切換成Active。
  • 啓用Standby組後,Standby組的狀態由Initialize切換成Standby。
  • 本端VGMP組監控的接口故障時,狀態由Active切換成A to S,併發送VGMP請求報文給對端設備的VGMP組。
  • 本端VGMP組收到對端的VGMP請求報文,發現自身優先級高,則將狀態由Standby切換成Acitve,併發送VGMP確認報文給對端設備的VGMP組。
  • 本端VGMP組收到對端的VGMP確認報文,確認本端需要進行狀態切換,則本端的VGMP組狀態由A to S切換成Standby。
  • 對端VGMP組確認本端的VGMP組不需要進行狀態切換或連續三次沒有迴應本端的VGMP請報文,則本端的VGMP組狀態由A to S切換成Active。
  • 本端VGMP組監控的接口故障恢復後,如果本端VGMP組優先級高於對端且配置了搶佔功能,則本端VGMP組狀態由Standby切換成S to A,並向對端發送VGMP請求報文。
  • 本端VGMP組收到對端的VGMP請求報文,發現對端優先級高,則將狀態由Active切換成Standby,併發送VGMP確認報文給對端設備的VGMP組。
  • 本端VGMP組收到對端的VGMP確認報文,確認本端需要進行狀態切換,則本端的VGMP組狀態由S to A切換成Active,完成搶佔過程。
  • 對端VGMP組確認本端的VGMP組不需要進行狀態切換或連續三次沒有迴應本端的VGMP請報文,則本端的VGMP組狀態由S to A切換成Standby。
1.5 VGMP的工作原理(主備模式下)
  • 指定設備爲Active和Standby
  • 將VGMP組內所有VRRP備份組狀態爲指定的Active standby(VRRP備份組狀態的一致性)
  • Active設備發送免費ARP,刷新交換機MAC地址表(引導流量)
  • 週期性發送HRP心跳報文(週期1s 死亡3s),監控Active和Standby
1.6 HRP協議基本原理
  • HRP協議實現備份會話表等狀態信息和關鍵的配置

  • HRP報文實際是一種VGMP報文,承載在VGMP報文的Data區域,即存在兩種封裝方式

  • 管理面上的HRP報文會攜帶:指定自動備份還是批量備份、指定發送還是應答備份的數據類型,兩種方式如下
    在這裏插入圖片描述

  • 轉發層面的兩種方式
    在這裏插入圖片描述

  • 封裝VRRP,組播224.0.0.18,不需要考慮安全策略監控

  • 封裝UDP,單播,需要考慮安全策略

  • 配置心跳線的時候需要考慮remote

1.7 HRP的備份方式
  • 自動備份,默認方式
  • 手動備份,批量方式(hrp sync config 手動觸發批量備份)
  • 快速備份,針對分載分擔
1.8 備份通道狀態
  • 當設備兩邊均配置心跳口,防火牆會判斷心跳接口的物理與協議狀態。心跳鏈路一共存在五種狀態

    ① running:正常運行,能夠發送報文

    ② ready:正常運行,此接口爲備份通道,當前未使用

    ③ peerdown:本段正常,但是收不到對端的心跳報文

    ④ invaild:未指定心跳地址的IP地址,心跳口工作在二層

    ⑤ down:心跳接口的物理狀態與協議狀態都爲DOWN

當有多根心跳線時,哪個接口先配置的心跳線,即哪個接口的狀態先成爲ready,當兩端心跳線通信時,先成爲ready的接口就會成爲running

當本端running接口down時,第二成爲ready的接口會代替down的接口成爲本端設備的running口。

繼承順序按照成爲ready的時間,沒有比較優先級等。只看時間戳。

當兩端心跳有多根時,如果兩端的running口不是一根鏈路,也可以正常通信
1.9 心跳線
  • 雙機熱備組網中,心跳線是兩臺FW交互消息瞭解對端狀態以及備份配置命令和各種表項的通道。心跳線兩端的接口通常稱爲“心跳接口”

  • 心跳線主要傳遞如下消息

    心跳報文(hello報文):兩臺FW通過定期(默認週期爲1秒)互相發送心跳報文檢測對端設備是否存活

    VGMP報文:瞭解對端設備的VGMP組狀態,確定本端和對端設備當前狀態是否穩定,是否要進行故障切換

    配置和表項備份報文:用於兩臺FW同步配置命令和狀態信息

    心跳鏈路探測報文:用於檢測對端設備的心跳口能否正常接收本端設備的報文,確定是否有心跳接口可以使用

    配置一致性檢查報文:用於檢測兩臺FW的關鍵配置是否一致,比如安全策略、NAT等

二、防火牆雙機熱備實驗

2.1 實驗拓撲圖

在這裏插入圖片描述

2.2 路由器R1配置
<Huawei>sys
[Huawei]sysname R1

#配置物理接口和環回接口IP地址
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 10.1.1.1 24
[R1-GigabitEthernet0/0/0]undo shut
[R1-GigabitEthernet0/0/0]q
[R1]int loo 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]q

#配置指向
[R1]ip route-static 192.168.10.0 24 10.1.1.100
2.3 防火牆FW1配置
<USG6000V1>sys
[USG6000V1]sysname FW1

#配置接口地址
[FW1]int g1/0/0
[FW1-GigabitEthernet1/0/0]ip add 10.1.1.101 24
[FW1-GigabitEthernet1/0/0]undo shut
[FW1-GigabitEthernet1/0/0]q
[FW1]int g1/0/2
[FW1-GigabitEthernet1/0/2]ip add 192.168.10.101 24
[FW1-GigabitEthernet1/0/2]undo shut
[FW1-GigabitEthernet1/0/2]q
[FW1]int g1/0/1
[FW1-GigabitEthernet1/0/1]ip add 172.16.1.1 24
[FW1-GigabitEthernet1/0/1]undo shut

#配置untrust區域
[FW1]firewall zone untrust 
#將g1/0/0接口加入到untrust區域
[FW1-zone-untrust]add in g1/0/0

#配置dmz區域
[FW1-zone-untrust]firewall zone dmz
#將g1/0/1接口加入到dmz區域
[FW1-zone-dmz]add int g1/0/1

#配置trust區域
[FW1-zone-dmz]firewall zone trust
#將g1/0/2接口加入到trust區域
[FW1-zone-trust]add in g1/0/2
[FW1-zone-trust]q

#配置通往路由器的靜態路由
[FW1]ip route-static 0.0.0.0 0.0.0.0 10.1.1.1 

#配置安全策略
[FW1]security-policy 
#定義規則 (permit_heat)心跳線安全規則
[FW1-policy-security]rule name permit_heat
#源區域--本地
[FW1-policy-security-rule-permit_heat]source-zone local
#目的區域--DMZ
[FW1-policy-security-rule-permit_heat]destination-zone dmz
#允許通過
[FW1-policy-security-rule-permit_heat]action permit
[FW1-policy-security-rule-permit_heat]q

#定義規則(規則名:permit_trust_untrust
[FW1-policy-security]rule name permit_trust_untrust
#源區域--trust
[FW1-policy-security-rule-permit_trust_untrust]source-zone trust
#目的區域--untrust
[FW1-policy-security-rule-permit_trust_untrust]destination-zone untrust
#允許通過
[FW1-policy-security-rule-permit_trust_untrust]action permit 
[FW1-policy-security-rule-permit_trust_untrust]q

#定義下連口VRRP主用組和虛擬IP地址
[FW1-policy-security]int g1/0/2
[FW1-GigabitEthernet1/0/2]vrrp vrid 1 virtual-ip 192.168.10.100 active
[FW1-GigabitEthernet1/0/2]undo shut
[FW1-GigabitEthernet1/0/2]q
#定義上連口VRRP主用組和虛擬IP地址
[FW1]int g1/0/0	
[FW1-GigabitEthernet1/0/0]vrrp vrid 2 virtual-ip 10.1.1.100 active 
[FW1-GigabitEthernet1/0/0]un shut
[FW1-GigabitEthernet1/0/0]q

#配置心跳接口(remote 遠程連接的地址未172.16.1.2)
[FW1]hrp interface g1/0/1 remote 172.16.1.2

#啓動雙機熱備
[FW1]hrp enable 
#定義雙機熱備方式爲自動備份
HRP_S[FW1]hrp auto-sync
#查看雙機熱備狀態信息	
HRP_S[FW1]display hrp state
2020-02-26 04:05:06.200 
 Role: standby, peer: unknown
 Running priority: 45000, peer: unknown
 Backup channel usage: 0.00%
 Stable time: 0 days, 0 hours, 0 minutes
 Last state change information: 2020-02-26 4:04:29 HRP core state changed, old_s
tate = initial, new_state = abnormal(standby), local_priority = 45000, peer_prio
rity = unknown.

#查看心跳接口狀態信息
HRP_S[FW1]dis hrp int
2020-02-26 04:05:19.470 
             GigabitEthernet1/0/1 : negotiation failed
2.4 防火牆FW2配置
<USG6000V1>sys	
[USG6000V1]sysname FW2

#配置物理接口地址
[FW2]int g1/0/0
[FW2-GigabitEthernet1/0/0]ip add 10.1.1.102 24
[FW2-GigabitEthernet1/0/0]undo shut
[FW2-GigabitEthernet1/0/0]q
[FW2]int g1/0/1
[FW2-GigabitEthernet1/0/1]ip add 172.16.1.2 24
[FW2-GigabitEthernet1/0/1]undo shut
[FW2-GigabitEthernet1/0/1]q
[FW2]int g1/0/2
[FW2-GigabitEthernet1/0/2]ip add 192.168.10.102 24
[FW2-GigabitEthernet1/0/2]undo shut
[FW2-GigabitEthernet1/0/2]q

#定義防火牆untrust區域
[FW2]firewall zone untrust 
#講接口加入到untrust區域
[FW2-zone-untrust]add int g1/0/0
[FW2-zone-untrust]q
#定義防火牆dmz區域
[FW2]firewall zone dmz
#將接口加入到dmz區域
[FW2-zone-dmz]add int g1/0/1
[FW2-zone-dmz]q
#定義trust區域
[FW2]firewall zone trust 
#將接口加入到trust區域
[FW2-zone-trust]add in g1/0/2
[FW2-zone-trust]q

#配置往路由器放向的靜態路由
[FW2]ip route-static 0.0.0.0 0.0.0.0 10.1.1.1

#定義安全策略
[FW2]security-policy 
#定義規則名(permit_heat)
[FW2-policy-security]rule name permit_heat
#源區域--本地
[FW2-policy-security-rule-permit_heat]source-zone local
#目標區域--dmz
[FW2-policy-security-rule-permit_heat]destination-zone dmz	
#允許通行
[FW2-policy-security-rule-permit_heat]action permit 
[FW2-policy-security-rule-permit_heat]q

#定義規則名(permit_trust_untust)
[FW2-policy-security]rule name permit_trust_untrust
#源區域--trust
[FW2-policy-security-rule-permit_trust_untrust]source-zone trust
#目標區域--untrust
[FW2-policy-security-rule-permit_trust_untrust]destination-zone untrust 	
#允許通行
[FW2-policy-security-rule-permit_trust_untrust]action permit 
[FW2-policy-security-rule-permit_trust_untrust]q
#定義上連口VRRP主用組和虛擬IP地址
[FW2-policy-security]int g1/0/2
#定義下連口VRRP主用組和虛擬IP地址(standby 備用)
[FW2-GigabitEthernet1/0/2]vrrp vrid 1 virtual-ip 192.168.10.100 standby 
[FW2-GigabitEthernet1/0/2]undo shut
[FW2-GigabitEthernet1/0/2]q
#定義上連口VRRP主用組和虛擬IP地址
[FW2]int g1/0/0	
[FW2-GigabitEthernet1/0/0]vrrp vrid 2 virtual-ip 10.1.1.100 standby 
[FW2-GigabitEthernet1/0/0]undo shut
[FW2-GigabitEthernet1/0/0]q
#配置心跳接口(remote 遠程連接的地址未172.16.1.1)
[FW2]hrp int g1/0/1 remote 172.16.1.1
#啓動雙機熱備
[FW2]hrp enable	
#定義雙機熱備方式爲自動備份
HRP_S[FW2]hrp auto-sync 
#查看雙機熱備狀態信息
HRP_S[FW2]dis hrp state
2020-02-26 04:56:37.580 
 Role: standby, peer: active
 Running priority: 45000, peer: 45000
 Backup channel usage: 0.00%
 Stable time: 0 days, 0 hours, 0 minutes
 Last state change information: 2020-02-26 4:56:21 HRP link changes to up.

#查看心跳接口狀態信息
HRP_S[FW2]dis hrp int
2020-02-26 04:56:54.370 
             GigabitEthernet1/0/1 : running
2.5 驗證
2.5.1 使用PC1ping R1環回口
  • 先在LSW2的e0/0/1接口抓包
    在這裏插入圖片描述

  • PC 1 PING R1e0/0/1接口、查看抓包信息
    在這裏插入圖片描述

2.5.2 模擬故障
  • 切斷FW1下連口,再次使用PC1 ping R1環回口

在這裏插入圖片描述

  • 查看FW1雙機熱備狀態

在這裏插入圖片描述

2.5.3 模擬故障修復
  • 開啓關閉的的接口,模擬故障修復、查看雙機熱備狀態

在這裏插入圖片描述

  • 故障修復後,由於搶佔機制,FW1由standby變爲active
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章