天天看點

華為雙機熱備目前的總結概述

雙機熱備一個小小的詞牽扯出一大塊的内容和協定,總的來說還是比較雜和亂的,是以在這裡先總結目前學習到的内容。

概述

雙機熱備總共涉及的協定有VRRP,VGMP,HRP,VRRP主要的應用場景是防火牆處于三層模式下所做的一個雙機熱備。傳統的vrrp的缺點就是vrrp組之間都是獨立的,沒有辦法将這些vrrp組進行集中的管理和控制,這就使得了vrrp組錯誤的流量引導的發生。是以就出現了VGMP,VGMP的主要思想就是将一台裝置上的vrrp組全部都視為同一個VGMP組,通過控制VGMP組來對獨立的vrrp組進行統一的控制。因為三種協定的組合,使得其熱備的數量僅局限在兩台防火牆。VGMP協定的主要作用就是對防火牆與防火牆之間的優先級進行管理,通過對故障進行監控來動态調整優先級,使得高優先級裝置可以通過vrrp的master接口進行資料的轉發,并通過優先級來進行active裝置和standby裝置的選舉,當然如果兩台防火牆裝置的優先級是相同的,那麼VGMP将認為兩台裝置都是active裝置,都是需要進行資料通信的裝置。某台防火牆上是否為vrrp的master取決于該防火牆的VGMP組狀态是否為active,換句話來說,一台防火牆如果是active,那麼它一定含有狀态為master的vrrp,如果A防火牆和B防火牆建立了雙機熱備的關系,即便此時防火牆A和防火牆B沒有做優先級的修改,若此時A防火牆上的vrrp被人工的都設定為standby,那麼防火牆A的VGMP狀态就直接變為standby,防火牆B的VGMP狀态就直接變為active。我們如果輸入hrp track interface xxx那麼就代表我們需要監控這個接口,當這個接口down掉了,那麼VGMP的優先級就會減少2,如果該接口上面有vrrp的配置,那麼優先級還會再減少2,即便我們沒有監控配置了vrrp的接口,當vrrp的關系down掉了,那麼其優先級也會減少2,我們如果監控聚合口,而且聚合口down掉了,那麼優先級就會減少2*聚合口的數量,同時VGMP還可以和其他的鍊路檢測工具進行關聯,比如IP-LINK,BFD,OSPF的鄰居表,每down一個相關的對象優先級就減少2。是以VGMP的作用就是進行故障的檢測來動态調整VGMP的優先級,進而來決定哪個裝置應該是vrrp的master,哪個裝置去進行vrrp的相關流量的轉發。當防火牆上面的相關接口如果down掉了,那麼優先級減少2,VGMP通過比對發現對端的優先級高,就會發送VGMP狀态請求變化的封包,希望對端可以将狀态進行改變,于是對端如果是standby就會轉變為active,如果是active就不變,當接收到對端發送來的應答後,本端就會進行狀态的切換,将自己切換為standby,于是自己上面的所有vrrp組全部都變為standby的狀态。或者說是slave的狀态。總的來說VGMP的主要作用就是為了防止vrrp的間接錯誤的生成,雖然傳統的vrrp的關聯跟蹤也可以但是,沒有VGMP快。

然後就是hrp,雖然VGMP可以解決vrrp的間接錯誤,實作vrrp組的統一管理,但是由于防火牆是一種狀态檢測的裝置,是以雙機熱備經常出現的一個問題就是會話不同步的問題,對于防火牆來說,每個到達防火牆的封包會進行狀态的檢測,看下是否有對應的會話,如果沒有就要進行狀态檢測,因為有些封包如果syn+ack,ICMP的回顯,這些都是不正常的資料流量,因為沒有一條資料流的首包會是以這些封包開頭,是以防火牆會對其進行攔截,于是就會出現因為來回路徑不一緻而導緻的丢包的現象。于是HRP就出來解決這個問題,我們在防火牆于防火牆間單獨拉一條hrp資料通路的原因不僅僅是因為要進行VGMP封包的傳送并借助VGMP來協商相關裝置的角色,而且因為我們要通過心跳線來傳輸相關的配置資訊,狀态資訊,為什麼要傳輸配置資訊?因為為了防止主備切換的時候,備裝置裝置上面沒有主裝置的配置進而導緻業務的中斷,是以我們就需要進行配置的同步,而且我們在連接配接防火牆的時候,接口也應該是對應的。這裡我們需要注意,防火牆同步過來的配置并不是進行配置的覆寫,也是配置的重新輸入,也就是說備裝置上面的還是會儲存,但是當主裝置的配置過來的時候,備裝置會将同步配置再輸入一遍,保證備裝置上面有主裝置的相關配置。一般來說,同步的配置都是一些與資料,流量,業務相關的配置。VGMP的active和hrp的主裝置是兩個獨立的稱呼,VGMP的active表示了這個裝置上面的vrrp組肯定有至少一個的master狀态,而hrp的主裝置表達的是在主裝置上進行配置将會将配置同步到備裝置上。

那麼備份的内容和方式有哪些呢?備份的内容主要是配置,狀态資訊,而且為了保證對端一直是存活的,hrp必須不斷地進行心跳封包的傳送來确定對端是存活的。而且有的時候防火牆還會主動發送一緻性檢查的封包,雙方由此來确定哪些配置是不同的。配置的方式有三種針對的備份内容也不同,第一種是自動備份,這個是預設開啟的,當我們在防火牆上配置了可以備份的配置那麼将立刻在另一台防火牆上輸入,但是狀态資訊則是在一段周期後進行同步,這種自動備份會在裝置重新開機的時候進行一次,熱備關系建立的時候備份一次,周期到的時候備份一次。第二種是手工備份,可以備份配置也可以備份狀态資訊,主要指令就是hrp sync config/connection-status,因為一個周期後才備份的自動備份有的時候需要我們進行等待,是以我們可以直接手動進行強制備份。第三種是快速備份,它的主要主要備份内容是狀态化資訊。在負載的情況下,狀态會話的快速備份是十分的需要的,因為很有可能下一個資料包就是一個來回路徑不一緻的資料包。

上面将的是vrrp和VGMP以及hrp的關聯,這種情況下,假設我們的防火牆此時上下聯的都是路由器,那麼如何實作主備和負載?現網中比較常用的IGP就是OSPF,是以我們通告加大自己type-1LSA的cost值,由此來使得形成主備的流量流向,主備就加大standby的cost值,負載就不加大,由此來實作負載和主備。是以三層裝置無論是上下聯交換機還是上下聯路由器,它們的都是可以負載和主備的。那麼此時假設我們的上聯是路由器,下聯是交換機,那麼此時的是否還是主備和負載都可以呢?我們來探讨一下,因為上聯是路由器,是以我們如果要實作防火牆與路由器之間的主備,那麼還是一樣,将某台防火牆設定為standby即可,standby裝置加大ospf的cost值,同時将本端的vrrp組全部都設定為standby狀态,那麼因為沒人生成任何從standby防火牆經過的ospf路由,那麼standby防火牆上的vrrp組也就根本沒有必要變為master狀态。是以主備還是負載都是可以的。

防火牆二層該如何實作負載和主備,當防火牆工作在二層,它會監控相應的vlan,當某個裝置因為優先級的緣故變為standby裝置,那麼它上面監控的vlan都會被禁止,于是綁定或者放行了相應vlan的接口也就不會放行相應的vlan流量,進而達到主備切換和負載的功能。

那麼假設防火牆此時是工作在二層,且它的上下聯都是路由器,路由器與路由器之間通過OSPF進行鄰居的建立,那麼假設此時我們設定防火牆為主備模式,那麼無疑在防火牆放行相應的vlan流量的時候,會引起OSPF關系的重建立立,這就使得業務中斷,那為什麼防火牆在三層就可以主備?因為防火牆在三層的時候是和路由器建立鄰居關系的,它修改的隻是OSPF的cost值,是以收斂較這種方式來說快。是以二層防火牆上下聯是路由器的情況下是不适合主備的方式

那麼如果二層防火牆上下聯是交換機的話,那麼是否主備和負載都可以?

防火牆上預設是沒有STP的相關協定的,是以如果将防火牆設定為負載的話,将會引起環路。是以這種情況下我們不設定為負載模式。而且即便防火牆有STP的相關協定功能,STP的功能是切斷相關環路,這樣也會切斷防火牆與交換機組成的負載鍊路,進而導緻最後其實本質還是主備模式。

中心鍊路故障引起的問題。

1、三層防火牆上下聯交換機

在這種情況下将會出現雙主,下聯交換機mac表漂移,IP位址沖突,資料不連續通信

其實原因也很簡單,當心跳線斷了之後,兩個防火牆都會認為是主防火牆,于是就會不斷地進行vrrp的封包宣告,于是下聯或者上聯的交換機就會開始mac表的漂移,而且因為vrrp的免費arp的宣告使得出現虛拟IP位址沖突的情況。兩台防火牆之間失去了心跳線了之後狀态話資訊配置資訊将無法同步,是以會出現資料不連續通信,嚴重時(如配置大修改)将導緻業務的持久中斷。

2、三層防火牆上下聯路由器

在這種情況下,其實并不會引起什麼大問題。這種情況下将出現負載的模式

3、二層防火牆上下聯交換機

這種情況下将出現二層環路,因為兩台防火牆都認為自己是主,是以最終将形成二層環路影響相關業務。

4、二層防火牆上下聯路由器

這種情況不會引起什麼大問題

繼續閱讀