華爲防火牆HCIA學習筆記03_雙機熱備
雙機熱備技術原理
雙機熱備技術產生的原因
解決單點故障的問題。
路由器冗餘部署方案
- 路由器組網中通過VRRP協議實現設備冗餘:
- 爲了避免路由器傳統組網所引起的單點故障的發生,通常情況可以採用多條鏈路的保護機制,依靠動態路由協議進行鏈路切換。但這種路由協議來進行切換保護的方式存在一定的侷限性,當不能使用動態路由協議時,仍然會導致鏈路中斷的問題,因此推出了另一種保護機制VRRP(虛擬路由冗餘協議)來進行。採用VRRP的鏈路保護機制比依賴動態路由協議的廣播報文來進行鏈路切換的時間更短,同時彌補了不能使用動態路由情況下的鏈路保護。
- VRRP(Virtual Router Redundancy Protocol)是一種基本的容錯協議。
- 備份組:同一個廣播域的一組路由器組織成一個虛擬路由器,備份組中的所有路由器一起,共同提供一個虛擬IP地址,作爲內部網絡的網關地址。
- 主(Master)路由器:在同一個備份組中的多個路由器中,只有一臺處於活動狀態,只有主路由器能轉發以虛擬IP地址作爲下一跳的報文。
- 備份(Backup)路由器:在同一個備份組中的多個路由器中,除主路由器外,其他路由器均爲備份路由器,處於備份狀態。
- 主路由器通過組播方式定期向備份路由器發送通告報文(HELLO),備份路由器則負責監聽通告報文,以此來確定其狀態。由於VRRP HELLO報文爲組播報文,所以要求備份組中的各路由器通過二層設備相連,即啓用VRRP時上下行設備必須具有二層交換功能,否則備份路由器無法收到主路由器發送的HELLO報文。如果組網條件不滿足,則不能使用VRRP。
VRRP在多區域防火牆組網中的應用
- 當防火牆上多個區域需要提供雙機備份功能時,需要在一臺防火牆上配置多個VRRP備份組。
- 由於USG防火牆是狀態防火牆,它要求報文的來回路徑一致。爲了滿足這個限制條件,就要求在同一臺防火牆上的所有VRRP備份組狀態保持一致,即需要保證在主防火牆上所有VRRP備份組都是主狀態,這樣所有報文都將從此防火牆上通過,而另外一臺防火牆則充當備份設備。
VRRP在防火牆應用中存在的缺陷
- 傳統VRRP方式無法實現主、備用防火牆狀態的一致性。
- 如圖所示,假設USG A和USG B的VRRP狀態一致,即USG A的所有接口均爲主用狀態,USG B的所有接口均爲備用狀態。
- 此時,Trust區域的PC1訪問Untrust區域的PC2,報文的轉發路線爲(1)-(2)-(3)-(4)。USG A轉發訪問報文時,動態生成會話表項。當PC2的返回報文經過(4)-(3)到達USG A時,由於能夠命中會話表項,才能再經過(2)-(1)到達PC1,順利返回。同理,當PC2和DMZ區域的Server也能互訪。
- 假設USG A和USG B的VRRP狀態不一致,例如,當USG B與Trust區域相連的接口爲備用狀態,但與Untrust區域的接口爲主用狀態,則PC1的報文通過USG A設備到達PC2後,在USG A上動態生成會話表項。PC2的返回報文通過路線(4)-(9)返回。此時由於USG B上沒有相應數據流的會話表項,在沒有其他報文過濾規則允許通過的情況下,USG B將丟棄該報文,導致會話中斷。
- 問題產生的原因:報文的轉發機制不同。
- 路由器:每個報文都會查路由表,當匹配上後才進行轉發,當鏈路切換後,後續報文不會受到影響,繼續進行轉發。
- 狀態檢測防火牆:如果首包允許通過會建立一條五元組的會話連接,只有命中該會話表項的後續報文(包括返回報文)才能夠通過防火牆;如果鏈路切換後,後續報文找不到正確的表項,會導致業務中斷。
- 注意:當路由器配置NAT後也會存在同樣的問題,因爲在進行NAT後會形成一個NAT轉換後的表項。
VRRP用於防火牆多區域備份
- 爲了保證所有VRRP備份組切換的一致性,在VRRP的基礎上進行了擴展,推出了VGMP(VRRP Group Management Protocol)來彌補此侷限。
- VRRP在防火牆中應用的要求:
- VRRP狀態的一致性
- 會話表狀態備份
- VGMP提出VRRP管理組的概念,將同一臺防火牆上的多個VRRP備份組都加入到一個VRRP管理組,由管理組統一管理所有VRRP備份組。通過統一控制各VRRP備份組狀態的切換,來保證管理組內的所有VRRP備份組狀態都是一致的。
VGMP基本原理
- 當防火牆上的VGMP爲Active狀態時,此防火牆組內所有VRRP備份組的狀態統一爲Active狀態,所有報文都將從該防火牆上通過,該防火牆成爲主用防火牆。此時另外一臺防火牆上對應的VGMP爲備狀態,該防火牆成爲備用防火牆。
- 通過指定VGMP組的狀態來決定誰將成爲主用防火牆或備用防火牆。
- 防火牆的VGMP優先級有一個初始優先級,當防火牆的接口或者單板等出現故障時,會在初始優先級基礎上減去一定的降低值。
- USG6000和NGFW Module的初始優先級爲45000。
- 與VRRP不同的是,Standby端收到HELLO報文後,會迴應一個ACK消息,該消息中也會攜帶本身的優先級、VRRP成員狀態等。
- VGMP HELLO報文發送週期缺省爲1秒。當Standby端3個HELLO報文週期沒有收到對端發送的HELLO報文時,會認爲對端出現故障,從而將自己切換到Active狀態。
- VGMP只有兩個組:
- Active
- Standby
VGMP組管理
- 狀態一致性管理
- 各備份組的主/備狀態變化都需要通知其所屬的VGMP管理組,由VGMP管理組決定是否允許VRRP備份組進行主/備狀態切換。如果需要切換,則VGMP管理組控制所有的VRRP備份組統一切換。VRRP備份組加入到管理組後,狀態不能自行單獨切換。
- 搶佔管理
- VRRP備份組本身具有搶佔功能。即當原來出現故障的主設備故障恢復時,其優先級也會恢復,此時可以重新將自己的狀態搶佔爲主。
- VGMP管理組的搶佔功能和VRRP備份組類似,當管理組中出現故障的備份組故障恢復時,管理組的優先級也將恢復。此時VGMP可以決定是否需要重新搶佔稱爲主設備。
- 當VRRP備份組加入到VGMP管理組後,備份組上原來的搶佔功能將失效,搶佔行爲發生與否必須由VGMP管理組統一決定。
HRP基本概念
- HRP(Huawei Redundancy Protocol)協議,實現防火牆雙機之間動態狀態數據和關鍵配置命令的備份。
- 在雙機熱備組網中,當主防火牆出現故障時,所有流量都將切換到備防火牆。因爲USG防火牆是狀態防火牆,如果備防火牆上沒有原來主防火牆上的會話表等連接狀態數據,則切換到備防火牆的流量將無法通過防火牆,造成現有的連接中斷,此時用戶必須重新發起連接。
- HRP模塊提供了基礎的數據備份機制和傳輸功能。各個應用模塊收集本模塊需要備份的數據,提交給HRP模塊,HRP模塊負責將數據發送到對端防火牆的對應模塊,應用模塊需要再將HRP模塊提交上來的數據進行解析,並加入到防火牆的動態運行數據池中。
- 備份內容:要備份的連接狀態數據包括TCP/UDP的會話表、ServerMap表項、動態黑名單、NO-PAT表項、ARP表項等。
- 備份方向:狀態爲主的VGMP管理組,向對端備份。
- 備份通道:一般情況下,在兩臺設備上直連的端口作爲備份通道,有時也稱爲"心跳線"(VGMP也通過該通道進行通信)。
HRP心跳接口
- 兩臺FW之間備份的數據是通過心跳口發送和接收的,是通過心跳鏈路(備份通道)傳輸的。
- 心跳口必須是狀態獨立且具有IP地址的接口,可以是一個物理接口(GE接口),也可以是邏輯接口Eth-Trunk。
- 通常情況下,備份數據流量約爲業務流量的20%~30%,請根據備份數據量的大小選擇捆綁物理接口的數量
心跳接口的狀態
- HRP心跳接口共有五種狀態:
- Invalid
- Down
- Peerdown
- Ready
- running
- invalid:當本端FW上的心跳口配置錯誤時顯示此狀態(物理狀態up,協議狀態down),例如指定的心跳口爲二層接口或未配置心跳接口的IP地址。
- down:當本端FW上的心跳口的物理與協議狀態均爲down時,則會顯示此狀態。
- peerdown:當本端FW上的心跳口的物理與協議狀態均爲up時,則心跳口會向對端對應的心跳口發送心跳鏈路探測報文。如果收不到對端響應的報文,那麼FW會設置心跳接口狀態爲peerdown。但是心跳口還會不斷髮送心跳鏈路探測報文,以便當對端的對應心跳口up後,該心跳鏈路能處於連通狀態。
- ready:當本端FW上的心跳口的物理與協議狀態均爲up時,則心跳口會向對端對應的心跳口發送心跳鏈路探測報文。如果對端心跳口能夠響應此報文(也發送心跳鏈路探測報文),那麼FW會設置本端心跳接口狀態爲ready,隨時準備發送和接受心跳報文。這時心跳口依舊會不斷髮送心跳鏈路探測報文,以保證心跳鏈路的狀態正常。
- running:當本端FW有多個處於ready狀態的心跳口時,FW會選擇最先配置的心跳口形成心跳鏈路,並設置此心跳口的狀態爲running。如果只有一個處於ready狀態的心跳口,那麼它自然會成爲狀態爲running的心跳口。狀態爲running的接口負責發送HRP心跳報文、HRP數據報文、HRP鏈路探測報文、VGMP報文和一致性檢查報文。
- 這時其餘處於ready狀態的心跳口處於備份狀態,當處於running狀態的心跳口或心跳鏈路故障時,其餘處於ready狀態的心跳口依次(按配置先後順序)接替當前心跳口處理業務。
- 綜上所述,心跳鏈路探測報文的作用是檢測對端設備的心跳口能否正常接收本端設備的報文,以確定心跳鏈路是否可用的。只要本端心跳接口的物理和協議狀態up就會向對端心跳口發送心跳鏈路探測報文進行探測。
- HRP心跳報文只有主用設備的VGMP組通過狀態爲running的心跳口發出。
雙機熱備的備份方式
- 自動備份
- 自動備份功能缺省爲開啓狀態,能夠自動實時備份配置命令和週期性地備份狀態信息,適用於各種雙機熱備組網。
- 啓用自動備份功能後,在一臺FW上每執行一條可以備份的命令時,此配置命令就會被立即同步備份到另一臺FW上。
- 啓用自動備份功能後,主用設備會週期性地將可以備份的狀態信息備份到備用設備上。即主用設備的狀態信息建立後不會立即備份,而是在建立一段時間(10秒左右)之後纔會備份到備用設備。
- 自動備份不會備份以下類型的會話:
- 到防火牆自身的會話,例如管理員登錄防火牆時產生的會話。
- 未完成3次握手的TCP半連接會話(快速備份支持備份此會話)。
- 只爲UDP首包創建,而不被後續包匹配的會話(快速備份支持備份此會話)。
- 手工批量備份
- 手工批量備份需要管理員手工觸發,每執行一次手工批量備份命令,主用設備就會立即同步一次配置命令和狀態信息到備用設備。因此手工批量備份主要適用於主備設備之間配置不同步,需要手工同步的場景。
- 執行手工批量備份命令後,主用(配置主)設備會立即同步一次可以備份的配置命令到備用(配置備)設備。
- 執行手工批量備份命令後,主用設備會立即同步一次可以備份的狀態信息到備用設備,而不必等到自動備份週期的到來。
- 會話快速備份
- 會話快速備份功能,適用於負載分擔的工作方式,以應對報文來回路徑不一致的場景。負載分擔組網下,由於兩臺防火牆都是主用設備,都能轉發報文,所以可能存在報文的來回路徑不一致的情況,即來回兩個方向的報文分別從不同的防火牆經過。這時如果兩臺防火牆的會話沒有及時相互備份,則回程報文會因爲沒有匹配到會話表項而被丟棄,從而導致業務中斷。所以爲防止上述現象發生,需要在負載分擔組網下配置會話快速備份功能,使兩臺防火牆能夠實時的相互備份會話,使回程報文能夠查找到相應的會話表項,從而保證內外部用戶的業務不中斷。
- 啓用會話快速備份功能後,主用設備會實時地將可以備份的會話(包括上面提到的自動備份不支持的會話)都同步到備用設備上。即在主用設備會話建立的時候立即將其實時備份到備用設備。
- 設備重啓後主備FW的配置自動同步
- 雙機熱備組網中,如果一臺FW重啓,重啓期間業務都是由另一臺FW承載。在此期間,承載業務的FW上可能會新增、刪除或修改配置。爲了保證主備FW配置一致,在FW重啓完成後,會自動從當前承載業務的FW上進行一次配置同步。
- 配置同步僅會同步支持備份的配置,如安全策略、NAT策略等。不支持備份的配置,如OSPF、BGP等,還繼續沿用原有的配置。
- 配置同步需要一定的時間。同步的時間與配置量有關,配置量越大同步配置所需時間也越長,最長可能需要1個小時左右。在配置同步期間,FW上無法執行支持備份的配置命令。
雙機熱備基本組網與配置
雙機熱備基本組網
- 上下行業務接口工作在三層模式,連接二層設備時,需要在上下行的業務接口上配置VRRP備份組,使VGMP管理組能夠通過VRRP備份組監測三層業務接口。
- 雙機熱備組網最常見的是防火牆採用路由模式,下行交換機雙線上聯到防火牆,正常情況下防火牆A作爲主,當防火牆A上行或下行鏈路down掉後,防火牆B自動切換爲主設備,交換機流量走向防火牆B。
VRRP備份組配置命令 – CLI
- Master管理組默認情況下會每隔1秒發送一次vrrp報文,可以在接口視圖下調整vrrp報文發送間隔。接口視圖下修改vrrp報文發送時間:
- vrrp vrid virtual-router-ID timer advertise adver-interval
- vrrp也可以與ip-link進行配合,當上行鏈路斷掉後使vrrp能夠進行主備切換。在接口視圖下配置ip-link:
- vrrp vrid virtual-router-id ip-link link-id
- 缺省情況下,VGMP管理組的搶佔功能爲啓用狀態,搶佔延遲時間爲60s。配置VGMP管理組的搶佔延遲時間命令如下:
- hrp preempt [ delay interval ]
HRP配置命令 – CLI
- HRP兩臺USG心跳口的接口類型和編號必須相同,且心跳口不能爲二層以太網接口。USG支持使用Eth-Trunk接口做爲心跳口,既提高了可靠性,又增加了備份通道的帶寬。主備USG的心跳口可以直接相連,也可以通過中間設備,如交換機或路由器連接。當心跳口通過中間設備相連時,需要配置remote參數來指定對端IP地址。
- 當兩臺設啓用備HRP備份功能之後,會進行主備狀態的協商,最後得到一個主用設備(顯示時以HRP_A表示),一個備用設備(顯示時以HRP_S表示)。兩端首次協商出主備後,主用設備將向備用設備備份配置和連接狀態等信息。
- 啓用允許配置備用設備的功能後,所有可以備份的信息都可以直接在備用設備上進行配置,且備用設備上的配置可以同步到主用設備。如果主備設備上都進行了某項配置,則從時間上來說,後配置的信息會覆蓋先配置的信息。
- USG工作於負載分擔組網時,報文的來回路徑可能會不一致,務必啓用會話快速備份功能,使一臺USG的會話信息立即同步至另一臺USG,保證內外部用戶的業務不中斷。
VRRP配置舉例 – CLI
- USG_A關於VRRP組2配置:
- [USG_A]interface GigabitEthernet 1/0/3
- [USG_A-GigabitEthernet 1/0/3 ]ip address 10.3.0.1 24
- [USG_A-GigabitEthernet 1/0/3 ]vrrp vrid 2 virtual-ip 10.3.0.3 active
- USG_B關於VRRP組2的配置:
- [USG_B]interface GigabitEthernet 1/0/3
- [USG_B-GigabitEthernet 1/0/3 ]ip address 10.3.0.2 24
- [USG_B-GigabitEthernet 1/0/3 ]vrrp vrid 2 virtual-ip 10.3.0.3 standby
HRP配置舉例 – CLI
- USG_B關於HRP的配置:
- [USG_B]hrp enable
- [USG_B]hrp mirror session enable
- [USG_B]hrp interface GigabitEthernet 1/0/6
- hrp enable //使能hrp協議。
- hrp mirror session enable //開啓會話快速備份功能。
- hrp interface GigabitEthernet 1/0/6 //指定心跳接口爲G1/0/6。
查看VRRP狀態 – CLI
查看HRP狀態 – CLI
- 查看處於Slave狀態防火牆的狀態信息如下:
HRP_S[USG_B] display hrp state
The firewall's config state is: Standby
Current state of virtual routers configured as standby:
GigabitEthernet1/0/1 vrid 1 : standby
GigabitEthernet1/0/3 vrid 2 : standby
防火牆配置界面 – Web
- 點擊"系統 > 高可靠性 > 雙機熱備 > 配置"進行雙機熱備相關配置。
- 點擊"配置"進入雙機熱備配置界面,在配置界面中可以配置HRP的基本參數,以及對接口、VLAN、IP-Link、BFD的監視;
- 點擊"詳細"按鈕可以查看HRP的歷史切換信息;
- 點擊"一致性檢查"按鈕可以對主備防火牆的配置做一致性檢查。
雙機熱備主用設備配置 – Web
- 在雙機熱備配置界面點擊"配置"按鈕對主用設備USG_A的配置,在配置虛擬IP地址下點擊"新建"建立相應VRRP備份組。
雙機熱備備用設備配置 - Web
查看雙機熱備歷史切換信息 – Web
- 在雙機熱備界面,點擊"詳細"可以查看雙機熱備主備切換信息。
查看雙機熱備狀態信息 – Web
- 在雙機熱備界面確認運行模式、角色及VRRP備份組的狀態信息。
實驗
需求:
使用雙機熱備技術,PC1能夠訪問PC2。FW1爲主,FW2爲備。FW1出現問題,PC1能夠正常訪問PC2
雙擊熱備配置思路:
1. 基礎配置,ip地址、區域劃分、ping通(完成)
2. 配置VRRP(VGMP)
3. 配置心跳接口(HRP)
4. 設置備份方式
5. 安全策略(關於雙機熱備的安全策略不需要, 單獨配置)
命令行:
2. VRRP配置:
FW1:
[Active-GigabitEthernet1/0/0]vrrp vrid 1 virtual-ip 10.1.1.254 active
//此接口爲組1,虛擬IP爲10.1.1.254
//active:啓動VGMP協議,使FW1爲主防火牆
[Active-GigabitEthernet1/0/1]vrrp vrid 2 virtual-ip 20.1.1.254 active
FW2:
[Standby-GigabitEthernet1/0/0]vrrp vrid 1 virtual-ip 10.1.1.254 standby
[Standby-GigabitEthernet1/0/1]vrrp vrid 2 virtual-ip 20.1.1.254 standby
3. 配置心跳接口:
FW1
[Active]hrp enable
//心跳線的啓動命令
[Active]hrp interface GigabitEthernet 1/0/6 remote 192.168.1.2
//在g1/0/6上配置心跳接口,對端IP:192.168.1.2
FW2
[Standby]hrp enable
[Standby]hrp interface g1/0/6 remote 192.168.1.1
4. 配置備份方式:默認啓動自動備份
FW1
HRP_M[Active]hrp mirror session enable
//開啓快速備份(鏡像備份),負載均衡防火牆需要開啓。
5. 追蹤鏈路狀態命令:
HRP_M[Active]hrp track interface g1/0/0
HRP_M[Active]hrp track interface g1/0/1
6. 強制切換主備:
HRP_M[Active]hrp switch standby
HRP_S[Active]hrp switch active
查看命令:
[Active]display vrrp brief
2020-05-07 07:19:19.940
Total:2 Master:1 Backup:1 Non-active:0
VRID State Interface Type Virtual IP
----------------------------------------------------------------
1 Master GE1/0/0 Vgmp 10.1.1.254
2 Backup GE1/0/1 Vgmp 20.1.1.254
[Active]display vrrp
查看VRRP狀態改變
[Standby]dis vrrp state-change interface g1/0/0 vrid 1
2020年05月07日 07:30:30.110
Time SourceState DestState Reason
-------------------------------------------------------------------------------
2020-05-07 07:24:50 Initialize Backup Interface up
HRP_M[Active]display hrp state
2020年05月07日 07:57:55.480
本端角色:主用,對端角色:備份
運行優先級:45000,對端優先級:45000
備份通道帶寬使用率:0.00%
穩定運行時間:0 天,0 小時,5 分鐘
最後一次狀態切換信息:2020-05-07 7:52:03 HRP link changes to up.
查看心跳口:
HRP_M[Active]dis hrp interface
2020年05月07日 08:03:53.420
GigabitEthernet1/0/6 : 運行
HRP_M[Active]dis hrp state verbose
2020年05月07日 08:22:02.790
本端角色:主用,對端角色:備份
運行優先級:45000,對端優先級:45000
備份通道帶寬使用率:0.00%
穩定運行時間:0 天,0 小時,30 分鐘
最後一次狀態切換信息:2020-05-07 7:52:03 HRP link changes to up.
配置信息:
hello interval: 1000ms
preempt: 60s
mirror configuration: 關閉
mirror session: 開啓
track trunk member: 開啓
auto-sync configuration: 開啓
auto-sync connection-status: 開啓
adjust ospf-cost: 開啓
adjust ospfv3-cost: 開啓
adjust bgp-cost: 開啓
nat resource: 關閉
詳細信息:
GigabitEthernet1/0/0 vrrp vrid 1:主狀態
GigabitEthernet1/0/1 vrrp vrid 2:主狀態
GigabitEthernet1/0/0:正常
GigabitEthernet1/0/1:正常