huawei實戰2 VRRP+HRP


huawei實戰2 VRRP+HRP

設備IP編址、接口VLAN見下表:

實驗需求

1. 設備IP、VLAN規劃如上表所示;

2. PC1(VLAN10)的網關在匯聚交換機SW1及SW2上;PC3的網關在FW1及FW2上;

3. PC1屬於安全區域Trust;PC3屬於安全區域Untrust;

4. 網絡中一共存在四組VRRP,VRRP組1的虛擬IP地址作為PC1的網關;VRRP組3的虛擬IP地址作為SW1及SW2上默認路由的下一跳;VRRP組2的虛擬IP地址作為FW1及FW2上回程路由的下一跳;VRRP組4的虛擬IP地址作為PC3的網關;

5. FW1及FW2上不激活HRP(也就是說不運行雙機熱備)的情況下完成配置使得PC1能夠ping通PC3,並且流量從PC1發出後,路徑是SW1-FW1-SW4-PC3。

6. 斷開FW1-SW1的互聯線路,檢查PC1及PC3的連通性,分析原因。

7. 在FW1的GE0/0/2口及FW2的GE0/0/2口之間增加一根連線(GE0/0/2口劃入DMZ區域),激活HRP,防火牆以主備模式運行,FW1為主,FW2為備。

配置實現

1. 配置接入層交換機SW3

#在SW3上創建VLAN

[SW3] vlan batch 10

#配置二層接口類型,並加入相應的VLAN

[SW3] interface GigabitEthernet0/0/1

[SW3-GigabitEthernet0/0/1] port link-type access

[SW3-GigabitEthernet0/0/1] port default vlan 10

[SW3] interface GigabitEthernet0/0/21

[SW3-GigabitEthernet0/0/21] port link-type trunk

[SW3-GigabitEthernet0/0/21] port trunk allow-pass vlan all

[SW3] interface GigabitEthernet0/0/22

[SW3-GigabitEthernet0/0/22] port link-type trunk

[SW3-GigabitEthernet0/0/22] port trunk allow-pass vlan all

#配置MSTP

[SW3] stp mode mstp

[SW3] stp enable


2. 配置SW1及SW2,使得PC1能夠ping通網關

#在SW1上創建VLAN、配置二層接口並將接口劃入相應VLAN

[SW1] vlan batch 10 210

[SW1] interface GigabitEthernet0/0/24

[SW1-GigabitEthernet0/0/24] port link-type trunk

[SW1-GigabitEthernet0/0/24] port trunk allow-pass vlan all

[SW1] interface GigabitEthernet0/0/21

[SW1-GigabitEthernet0/0/21] port link-type trunk

[SW1-GigabitEthernet0/0/21] port trunk allow-pass vlan all

#SW1配置MSTP

[SW1] stp mode mstp

[SW1] stp instance 0 root primary

[SW1] stp enable

#在SW1上配置vlanif10,並加入VRRP組1,VRRP組1的虛擬IP作為PC1的網關

[SW1] interface vlanif 10

[SW1-vlanif 10] ip address 192.168.10.3 24

[SW1-vlanif 10] vrrp vrid 1 virtual-ip 192.168.10.1

[SW1-vlanif 10] vrrp vrid 1 priority 120


#在SW2上創建VLAN、配置二層接口並將接口劃入相應VLAN

[SW2] vlan batch 10 210

[SW2] interface GigabitEthernet0/0/24

[SW2-GigabitEthernet0/0/24] port link-type trunk

[SW2-GigabitEthernet0/0/24] port trunk allow-pass vlan all

[SW2] interface GigabitEthernet0/0/22

[SW2-GigabitEthernet0/0/22] port link-type trunk

[SW2-GigabitEthernet0/0/22] port trunk allow-pass vlan all

#SW2配置MSTP

[SW2] stp mode mstp

[SW2] stp instance 0 root secondary

[SW2] stp enable

#在SW2上配置vlanif10,並加入VRRP組1,VRRP組1的虛擬IP作為PC1的網關

[SW2] interface vlanif 10

[SW2-vlanif 10] ip address 192.168.10.2 24

[SW2-vlanif 10] vrrp vrid 1 virtual-ip 192.168.10.1


完成上述配置後,PC1即可ping通自己的網關192.168.10.1。


3. 配置FW1及FW2,使得PC3能夠聯通自己的網關

在FW1上將GE0/0/3口添加到相應的安全區域,並完成接口的IP地址、VRRP等配置:

[Fw1] firewall zone untrust

[Fw1-zone-untrust] add interface GigabitEthernet 0/0/3

[Fw1] interface GigabitEthernet 0/0/3

[Fw1-GigabitEthernet0/0/3] ip address 10.1.1.3 24

[Fw1-GigabitEthernet0/0/3] vrrp vrid 4 virtual-ip 10.1.1.1 master


在FW2上將GE0/0/3口添加到相應的安全區域,並完成接口的IP地址、VRRP等配置:

[Fw2] firewall zone untrust

[Fw2-zone-untrust] add interface GigabitEthernet 0/0/3

[Fw2] interface GigabitEthernet 0/0/3

[Fw2-GigabitEthernet0/0/3] ip address 10.1.1.2 24

[Fw2-GigabitEthernet0/0/3] vrrp vrid 4 virtual-ip 10.1.1.1 slave


完成上述配置後,FW1的GE0/0/3口及FW2的GE0/0/3口就會加入VRRP組4,其產生的虛擬路由器就是PC3的網關,只不過由於我們暫時沒有在防火牆上放開Untrust到local的inbound方向的策略,因此PC3無法ping通自己的網關10.1.1.1,但是這並不影響實驗,當然如果向看看實驗現象,可以開放local untrust的inbound策略,不過在實際的網絡環境中要慎重。

4. 完成FW1FW2與SW1SW2的對接(SW1及SW2的配置)

#在SW1上完成vlanif210的接口IP及VRRP的配置

[SW1] interface vlanif 210

[SW1-vlanif210] ip address 192.168.210.12 24

[SW1-vlanif210] vrrp vrid 2 virtual-ip 192.168.210.1

[SW1-vlanif210] vrrp vrid 2 priority 120

[SW1-vlanif210] quit

#在SW1上將GE0/0/20接口加入vlan210

[SW1] interface GigabitEthernet0/0/20

[SW1-GigabitEthernet0/0/20] port link-type access

[SW1-GigabitEthernet0/0/20] port default vlan 210

[SW1-GigabitEthernet0/0/20] quit

#在SW1上配置默認路由,該默認路由下一跳為VRRP組3的虛擬IP地址

[SW1] ip route-static 0.0.0.0 0.0.0.0 192.168.210.2


#在SW2上完成vlanif210的接口IP及VRRP的配置

[SW2] interface vlanif 210

[SW2-vlanif210] ip address 192.168.210.11 24

[SW2-vlanif210] vrrp vrid 2 virtual-ip 192.168.210.1

[SW2-vlanif210] quit

#在SW2上將GE0/0/20接口加入vlan210

[SW2] interface GigabitEthernet0/0/20

[SW2-GigabitEthernet0/0/20] port link-type access

[SW2-GigabitEthernet0/0/20] port default vlan 210

[SW2-GigabitEthernet0/0/20] quit

#在SW2上配置默認路由,該默認路由下一跳為VRRP組3的虛擬IP地址

[SW2] ip route-static 0.0.0.0 0.0.0.0 192.168.210.2


#在FW1上完成GE0/0/1接口的IP及VRRP配置,將GE0/0/1加入Trust安全區域

[FW1] interface GigabitEthernet0/0/1

[FW1-GigabitEthernet0/0/1] ip address 192.168.210.22 24

[FW1-GigabitEthernet0/0/1] vrrp vrid 3 virtual-ip 192.168.210.2 master

[FW1-GigabitEthernet0/0/1] vrrp virtual-mac enable #如果在eNSP模擬器上實驗,需配置此條命令,否則SW1及SW2無法ping通VRRP組3的虛擬IP地址。

[FW1-GigabitEthernet0/0/1] quit

[FW1] firewal zone trust

[Fw1-zone-trust] add interface GigabitEthernet 0/0/1

[Fw1-zone-trust] quit

#在FW1上配置回程路由,下一跳為VRRP組2的虛擬IP地址

[FW1] ip route-static 192.168.10.0 24 192.168.210.1

#在FW1上配置區域間安全策略,允許trust區域的192.168.10.0/24網絡訪問Untrust區域:

[FW1] policy interzone trust untrust outbound

[Fw1-policy-interzone-trust-untrust-outbound] policy 0

[Fw1-policy-interzone-trust-untrust-outbound-0] policy source 192.168.10.0 0.0.0.255

[Fw1-policy-interzone-trust-untrust-outbound-0] action permit

[Fw1-policy-interzone-trust-untrust-outbound-0] quit

[Fw1-policy-interzone-trust-untrust-outbound] quit


#在FW2上完成GE0/0/1接口的IP及VRRP配置,將GE0/0/1加入Trust安全區域

[FW2] interface GigabitEthernet0/0/1

[FW2-GigabitEthernet0/0/1] ip address 192.168.210.21 24

[FW2-GigabitEthernet0/0/1] vrrp vrid 3 virtual-ip 192.168.210.2 slave

[FW2-GigabitEthernet0/0/1] vrrp virtual-mac enable #如果在eNSP模擬器上實驗,需配置此條命令,否則SW1及SW2無法ping通VRRP組3的虛擬IP地址。

[FW2-GigabitEthernet0/0/1] quit

[FW2] firewal zone trust

[FW2-zone-trust] add interface GigabitEthernet 0/0/1

[FW2-zone-trust] quit

#在FW2上配置回程路由,下一跳為VRRP組2的虛擬IP地址

[FW2] ip route-static 192.168.10.0 24 192.168.210.1

#在FW2上配置區域間安全策略,允許trust區域的192.168.10.0/24網絡訪問Untrust區域:

[FW2] policy interzone trust untrust outbound

[FW2-policy-interzone-trust-untrust-outbound] policy 0

[FW2-policy-interzone-trust-untrust-outbound-0] policy source 192.168.10.0 0.0.0.255

[FW2-policy-interzone-trust-untrust-outbound-0] action permit

[FW2-policy-interzone-trust-untrust-outbound-0] quit

[FW2-policy-interzone-trust-untrust-outbound] quit


最後為PC1及PC3配置網卡IP、網關地址。

完成上述配置後,PC1即可ping通PC3。

數據交互過程分析

下面我們來分析一下,PC1訪問PC3時,數據的交互過程:

1. PC1產生數據包,數據包的源IP地址為192.168.10.100,目的IP為10.1.1.100。PC1發向數據包的目的地是非本地網絡的IP,因此將數據包交給自己的網關192.168.10.1。此時我們已經在SW1及SW2的vlanif 10接口上部署了VRRP(組1)並且Master為SW1,因此數據包被引導到SW1的vlanif10。

huawei實戰2 VRRP+HRP

值得注意的是,此時由於MSTP的作用,SW3的GE0/0/22口被Block,因此網絡中不存在環路。所以PC1到網關的數據包直接從SW3的GE0/0/21口轉發出去到達SW1。

2. SW1在收到這個數據包後,發現目的地址為10.1.1.100,於是在路由表中進行查找,最終匹配路由表中的默認路由。默認路由的下一跳地址為192.168.210.2。

此時我們已在FW1的GE0/0/1及FW2的GE0/0/1口上運行了一組VRRP(組ID為3),而此刻FW1的GE0/0/1口為該組VRRP的Master,因此數據包被引導到了FW1上:

huawei實戰2 VRRP+HRP

防火牆從自己的GE0/0/1口收到這個數據包,而該接口屬於Trust安全區域,目的地址為10.1.1.100,而10.1.1.100正是自己的GE0/0/3口直連的網絡,因此它查看安全策略,發現Trust到Untrust的Outbound方向的安全策略放行了來源於192.168.10.0/24網絡的流量,於是FW1為了該流量在會話表中創建了一個條目,並將報文轉發給PC3。

huawei實戰2 VRRP+HRP

3. 數據包到達PC3後,PC3要回包,回送的報文源地址為10.1.1.100,目的地址為192.168.10.100。該數據包被PC3交給了自己的網關:10.1.1.1。

而我們已經在防火牆FW的GE0/0/3及FW2的GE0/0/3口上運行了一組VRRP(組ID為4),此刻該組VRRP的Master為FW1的GE0/0/3口,因此PC3發向自己網關10.1.1.1的數據實際上是轉發到了FW1上:

huawei實戰2 VRRP+HRP

4. FW1在從自己的GE0/0/1口上收到這個數據包後,發現該接口為Untrust接口,同時經過路由查找後確認該數據包需從GE0/0/1口送出(我們為FW1配置了到達192.168.10.0/24的路由),雖然我們沒有放開trust與untrust的inbound方向的安全策略,但是FW1在會話表中找到了一個匹配的表項,確認該報文為回程報文,因此放行。數據包的下一跳是192.168.210.1。

5. 由於我們在SW1及SW2的vlanif210接口上已經部署了一組VRRP(組ID為2),虛擬IP地址為192.168.210.1,並且此時SW1的vlanif210為該組VRRP的Master,因此,FW1轉發到192.168.210.1的報文實際上是轉發給了SW1:

huawei實戰2 VRRP+HRP

6. SW1在收到該報文後,發現報文的目的地址是192.168.10.100,就是自己本地直連的網絡,因此將數據直接走二層丟給了PC1。到此PC1與PC3的通信過程就完成了。

遺留問題及防火牆雙機熱備

經過我們的配置,大體上是實現了網路的需求,在網絡拓撲正常的情況下,PC1及PC3的數據訪問是沒有問題的,但是這個網絡卻存在隱患:

huawei實戰2 VRRP+HRP

由於某種原因,SW1及FW1之間的鏈路發生了故障,故障發生後,FW2的GE0/0/1口由於無法收到原Master的VRRP消息因此認為FW1的GE0/0/1口已發生故障,於是自己切換到Master狀態。此時PC1發往PC3的報文將經由交換機轉發給FW2,FW2從GE0/0/1口收到這些報文,轉給PC3。但是問題就出在PC3回包上,PC3的回程數據包是發向自己的網關的,而此刻FW1及FW2加入的VRRP組4由於並未發生切換,FW1的GE0/0/3口依然是Master。因此PC3的回程流量實際上是發給了FW1,這就造成了來回路徑不一致的問題,由於此刻FW1已經丟失了與SW1的連接,因此數據包在這裡被丟棄。

huawei實戰2 VRRP+HRP

從上面的現象我們可以看出,之所以發生這樣的問題,是因為防火牆上,VRRP組3和VRRP組4是相互獨立的,一個VRRP組的狀態切換並不影響另一個VRRP組的狀態切換,一種理想的方式是當FW1及FW1之間的鏈路發生故障時,VRRP組3發生了狀態切換,同時激發VRRP組4也發生切換,這樣一來FW2就同時成為VRRP組3和組4的Master,來回路徑就能一致了。

實現這個目標的方法是部署雙機熱備。

huawei實戰2 VRRP+HRP

在FW1及FW2之間增加一根連線:雙方GE0/0/2口互聯。

FW1的配置增加如下:

[FW1] Interface GigabitEthernet 0/0/2

[FW1-GigabitEthernet 0/0/2] Ip address 1.1.1.1 24

[FW1-GigabitEthernet 0/0/2] quit

[FW1] firewall zone dmz

[FW1-zone-dmz] add interface GigabitEthernet 0/0/2

[FW1-zone-dmz] quit

[FW1] hrp interface GigabitEthernet0/0/2 #將GE0/0/2口配置為HRP心跳接口

[FW1] hrp enable #啟用HRP備份功能,啟用之後就會協商主備,主設備顯示HRP_M,備設備顯示HRP_S。兩端首次協商出主備後,主用設備將向備用設備備份配置和連接狀態等信息


FW2的配置增加如下:

[FW2] Interface GigabitEthernet 0/0/2

[FW2-GigabitEthernet 0/0/2] Ip address 1.1.1.2 24

[FW2-GigabitEthernet 0/0/2] quit

[FW2] firewall zone dmz

[FW2-zone-dmz] add interface GigabitEthernet 0/0/2

[FW2-zone-dmz] quit

[FW2] hrp interface GigabitEthernet0/0/2 #將GE0/0/2口配置為HRP心跳接口

[FW2] hrp enable #啟用HRP備份功能,啟用之後就會協商主備,主設備顯示HRP_M,備設備顯示HRP_S。兩端首次協商出主備後,主用設備將向備用設備備份配置和連接狀態等信息

完成上述配置後,FW1及FW2就會進行主備的協商。

由於我們在FW1上的VRRP組3及組4的配置中,都加入了Master的VGMP組,而在FW2上加入的是Slave的VGMP組,因此在激活HRP後,FW1成為HRP的Master,FW2成為Slave。VGMP會監控並同一管理VRRP的狀態,HRP會在心跳線上同步兩臺防火牆的會話表、配置等信息。

當網絡正常的時候,數據流是這麼走的:

huawei實戰2 VRRP+HRP

當FW1-SW1之間的鏈路發生故障時:

huawei實戰2 VRRP+HRP

由VRRP組3發生了狀態切換,VRRP切換將觸發VGMP管理組的狀態發生切換,FW2變成了VGMP Master,而FW1變成了VGMP Slave,而我們知道VRRP組的狀態是由VGMP統一管理的,因此在FW2上,接口GE0/0/1成為了組3的 master,同時,接口GE0/0/3成為了組4的master。如此一來VRRP組的狀態就達成了一致,數據的往返路徑也就一致了。


分享到:


相關文章: