防火墙技术案例5_双机热备(负载分担)组网下的IPSec配置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【防火墙技术案例5】双机热备(负载分担)组网下的IPSec配置
论坛的小伙伴们,大家好。

强叔最近已经开始在“侃墙”系列中为各位小伙伴们介绍各种VPN了。

说到VPN,小伙伴们肯定首先想到的是最经典的IPSec VPN,而且我想大家对IPSec的配置也是最熟悉的。

但是如果在两台处于负载分担状态下的防火墙上部署IPSec VPN又该如何操作呢?有什么需要注意的地方呢?
本期强叔就为大家介绍如何在双机热备的负载分担组网下配置IPSec。

【组网需求】
如下图所示,总部防火墙NGFW_C和NGFW_D以负载分担方式工作,其上下行接口都工作在三层,并与上下行路由器之间运行OSPF协议。

(本例中,NGFW是下一代防火墙USG6600的简称,软件版本为USG6600V100R001C10)
现要求分支用户访问总部的流量受IPSec隧道保护,且NGFW_C处理分支A发送到总部的流量,NGFW_D 处理分支B发送到总部的流量。

当NGFW_C或NGFW_D中一台防火墙出现故障时,分支发往总部的流量能全部切换到另一台运行正常的防火墙。

【需求分析】
针对以上需求,强叔先带小伙们做一个简要分析,分析一下我们面临的问题以及解决这个问题的方法。

1、如何使两台防火墙形成双机热备负载分担状态?
两台防火墙的上下行业务接口工作在三层,并且连接三层路由器,在这种情况下,就需要在防火墙上配置VGMP组(即hrp track命令)来监控上下行业务接口。

如果是负载分担状态,则需要在每台防火墙上调动两个VGMP组(active组和standby组)来监控业务接口。

2、分支与总部之间如何建立IPSec隧道?
正常状态下,根据组网需求,需要在NGFW_A与NGFW_C之间建立一条隧道,在NGFW_B与NGFW_D之间建立一条隧道。

当NGFW_C与NGFW_D其中一台防火墙故障时,NGFW_A和NGFW_B都会与另外一台防火墙建立隧道。

3、总部的两台防火墙如何对流量进行引导?
总部的两台防火墙(NGFW_C与NGFW_D)通过路由策略来调整自身的Cost值,从而实现正常状态下来自NGFW_A的流量通过NGFW_C转发,来自NGFW_B的流量通过NGFW_D转发,故障状态下来自NGFW_A和NGFW_B的流量都通过正常运行的防火墙转发。

【配置步骤】
这个想法很好,但是如何实现呢?我们可以在NGFW_C上创建两个tunnel接口,然后在tunnel1上与NGFW_A建立一条主用隧道,在tunnel2上与NGFW_B建立一条备份隧道。

同理在NGFW_D的tunnel1上与NGFW_A建立一条备份隧道,在tunnel2上与NGFW_B建立一条主用隧道。

这里需要注意的是NGFW_C上的tunnel1(tunnel2)地址需要与NGFW_D上的tunnel1(tunnel2)地址保持一致。

我想这时小伙伴们又要问为什么了?这样做的好处是在NGFW_A上只需要与对端的tunnel1接口建立隧道即可,NGFW_A不用去关心这个tunnel1是NGFW_C还是NGFW_D的(因为他们的IP是一致的)。

同理NGFW_B只需要与对端的tunnel2接口建立隧道即可。

1)定义受IPSec VPN保护的数据流。

HRP_A[NGFW_C] acl 3005
HRP_A[NGFW_C-acl-adv-3005] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.3.0
0.0.0.255
HRP_A[NGFW_C-acl-adv-3005] quit
HRP_A[NGFW_C] acl 3006
HRP_A[NGFW_C-acl-adv-3006] rule permit ip source 10.1.2.0 0.0.0.255 destination 10.1.4.0
0.0.0.255
HRP_A [NGFW_C-acl-adv-3006] quit
【强叔点评】ACL3005定义的是总部与分支A之间的流量,ACL3006定义的是总部与分支B之间的流量。

2)配置IPSec安全提议。

【强叔点评】如果创建IPSec安全提议后,不进行任何配置,则IPSec安全提议使用默认参数。

本案例中使用默认参数,小伙伴们可以根据自己的实际安全需求修改IPSec安全提议中的参数。

HRP_A[NGFW_C] ipsec proposal tran1
HRP_A[NGFW_C-ipsec-proposal-tran1] quit
3)配置IKE安全提议。

本案例中使用IKE安全提议的默认参数。

HRP_A[NGFW_C] ike proposal 10
HRP_A[NGFW_C-ike-proposal-10] quit
4)配置两个IKE对等体,分别用于总部与两个分支建立IPSec。

HRP_A[NGFW_C] ike peer ngfw_a
HRP_A[NGFW_C-ike-peer-ngfw_a] ike-proposal 10
HRP_A[NGFW_C-ike-peer-ngfw_a] remote-address 1.1.1.1
HRP_A[NGFW_C-ike-peer-ngfw_a] pre-shared-key Admin@123
HRP_A[NGFW_C-ike-peer-ngfw_a] quit
HRP_A[NGFW_C] ike peer ngfw_b
HRP_A[NGFW_C-ike-peer-ngfw_b] ike-proposal 10
HRP_A[NGFW_C-ike-peer-ngfw_b] remote-address 1.1.2.1
HRP_A[NGFW_C-ike-peer-ngfw_b] pre-shared-key Admin@123
HRP_A[NGFW_C-ike-peer-ngfw_b] quit
5)配置两个IPSec策略,分别用于总部与两个分支建立IPSec。

HRP_A[NGFW_C] ipsec policy map1 10 isakmp
HRP_A[NGFW_C-ipsec-policy-isakmp-map1-10] security acl 3005
HRP_A[NGFW_C-ipsec-policy-isakmp-map1-10] proposal tran1
HRP_A[NGFW_C-ipsec-policy-isakmp-map1-10] ike-peer ngfw_a
HRP_A[NGFW_C-ipsec-policy-isakmp-map1-10] quit
HRP_A[NGFW_C] ipsec policy map2 10 isakmp
HRP_A[NGFW_C-ipsec-policy-isakmp-map2-10] security acl 3006
HRP_A[NGFW_C-ipsec-policy-isakmp-map2-10] proposal tran1
HRP_A[NGFW_C-ipsec-policy-isakmp-map2-10] ike-peer ngfw_b
HRP_A[NGFW_C-ipsec-policy-isakmp-map2-10] quit
6)配置在Tunnel接口上应用IPSec策略。

【强叔点评】之前点评中提到我们需要在NGFW_C的tunnel1上与NGFW_A建立一条主用隧道,在tunnel2上与NGFW_B建立一条备份隧道,这是通过在应用IPSec策略时设定active或standby 参数来实现的。

HRP_A[NGFW_C] interface Tunnel 1
HRP_A[NGFW_C-Tunnel1] ipsec policy map1 active
HRP_A[NGFW_C-Tunnel1] quit
HRP_A[NGFW_C] interface Tunnel 2
HRP_A[NGFW_C-Tunnel2] ipsec policy map2 standby
HRP_A[NGFW_C-Tunnel2] quit
7)在NGFW_D上配置IPSec。

双机热备状态成功建立后,NGFW_C上配置的ACL、IPSec策略(包括其中的IPSec 安全提议,IKE对等体)等都会自动备份到NGFW_D上。

只有在接口上应用IPSec 策略的配置不会备份,需要在此手动配置。

HRP_S[NGFW_D] interface Tunnel 1
HRP_S[NGFW_D-Tunnel1] ipsec policy map1 standby
HRP_S[NGFW_D-Tunnel1] quit
HRP_S[NGFW_D] interface Tunnel 2
HRP_S[NGFW_D-Tunnel2] ipsec policy map2 active
HRP_S[NGFW_D-Tunnel2] quit
8)在NGFW_A和NGFW_B上配置IPSec。

NGFW_A和NGFW_B的配置比较简单,就是一个点到点方式的IPSec配置。

只要将NGFW_A的IPSec隧道Remote Address配置为Tunnel1接口的IP地址;NGFW_B
的IPSec隧道Remote Address配置为Tunnel2接口的IP地址就行了。

受篇幅所限,强叔就不详细讲了。

3、配置路由和路由策略。

双机热备和IPSec配置完成后,只要再保证NGFW_A与Tunnel1接口的路由可达,就可以成功建立IPSec隧道了。

但这时一个新的问题又出现了,那就是流量到达Router1后不知道是该送往NGFW_C 还是NGFW_D的Tunnel1接口了,如下图所示。

而且我们还面临另外一个问题,那就是如何确保NGFW_A的回程流量能够回到NGFW_A呢?回程流量到达Router2后不知道是该发给NGFW_C还是NGFW_D。

小伙伴们别急,强叔还是有办法的,那就是通过路由策略来实现。

1)首先我们需要定义三条数据流,一条匹配来自分支A的去和回的流量:
HRP_A[NGFW_C] acl 2000
HRP_A[NGFW_C-acl-basic-2000] rule permit source 2.2.4.0 0.0.0.255
HRP_A[NGFW_C-acl-basic-2000] rule permit source 10.1.3.0 0.0.0.255
HRP_A[NGFW_C-acl-basic-2000] quit
一条匹配分支B的去和回的流量:
HRP_A[NGFW_C] acl 2001
HRP_A[NGFW_C-acl-basic-2001] rule permit source 2.2.5.0 0.0.0.255
HRP_A[NGFW_C-acl-basic-2001] rule permit source 10.1.4.0 0.0.0.255
HRP_A[NGFW_C-acl-basic-2001] quit
第三条匹配来自分支A和B的去和回的流量:
HRP_A[NGFW_C] acl 2002
HRP_A[NGFW_C-acl-basic-2002] rule permit source 2.2.4.0 0.0.0.255
HRP_A[NGFW_C-acl-basic-2002] rule permit source 10.1.3.0 0.0.0.255
HRP_A[NGFW_C-acl-basic-2002] rule permit source 2.2.5.0 0.0.0.255
HRP_A[NGFW_C-acl-basic-2002] rule permit source 10.1.4.0 0.0.0.255
HRP_A[NGFW_C-acl-basic-2002] quit
2)然后我们需要配置几条路由策略,实现以下效果。

当双机热备负载分担状态正常时,来自分支A的去和回的流量通过NGFW_C时开销减少10:
HRP_A[NGFW_C] route-policy rp permit node 1
HRP_A[NGFW_C-route-policy] if-match acl 2000
HRP_A[NGFW_C-route-policy] if-match backup-status load-balance
HRP_A[NGFW_C-route-policy] apply cost – 10
HRP_A[NGFW_C-route-policy] quit
当双机热备负载分担状态正常时,来自分支B的去和回的流量通过NGFW_C时开销增加10:
HRP_A[NGFW_C] route-policy rp permit node 2
HRP_A[NGFW_C-route-policy] if-match acl 2001
HRP_A[NGFW_C-route-policy] if-match backup-status load-balance
HRP_A[NGFW_C-route-policy] apply cost + 10
HRP_A[NGFW_C-route-policy] quit
当NGFW_C作为主用设备(NGFW_D故障)时,来自分支A和B的去和回的流量通过NGFW_C时开销减少10:
HRP_A[NGFW_C] route-policy rp permit node 3
HRP_A[NGFW_C-route-policy] if-match acl 2002
HRP_A[NGFW_C-route-policy] if-match backup-status active
HRP_A[NGFW_C-route-policy] apply cost - 10
HRP_A[NGFW_C-route-policy] quit
当NGFW_C作为备用设备(NGFW_C故障)时,来自分支A和B的去和回的流量通过NGFW_C时开销增加10:
HRP_A[NGFW_C] route-policy rp permit node 4
HRP_A[NGFW_C-route-policy] if-match acl 2002
HRP_A[NGFW_C-route-policy] if-match backup-status standby
HRP_A[NGFW_C-route-policy] apply cost + 10
HRP_A[NGFW_C-route-policy] quit
3)最后我们需要在OSPF中引入直连和静态路由,并将自身的路由发布出去。

【强叔点评】这里引入的直连路由是Tunnel接口的路由;引入的静态路由是下面配置的使回程流量进入隧道的路由。

HRP_A[NGFW_C] ospf 1
HRP_A[NGFW_C] ip route-static 10.1.3.0 24 tunnel 1
HRP_A[NGFW_C] ip route-static 10.1.4.0 24 tunnel 2
HRP_A[NGFW_C-ospf-1] import-route direct route-policy rp
HRP_A[NGFW_C-ospf-1] import-route static route-policy rp
HRP_A[NGFW_C-ospf-1] area 0.0.0.0
HRP_A[NGFW_C-ospf-1-area-0.0.0.0] network 3.3.3.0 0.0.0.255
HRP_A[NGFW_C-ospf-1-area-0.0.0.0] network 2.2.2.0 0.0.0.255
HRP_A[NGFW_C-ospf-1-area-0.0.0.0] quit
HRP_A[NGFW_C-ospf-1] quit
4)在NGFW_D上配置路由和路由策略。

按照NGFW_C的配置举一反三,我想各位小伙伴肯定没问题的。

【结果验证】
1、当双机热备负载分担状态正常运行时,可以在Router1上看到去往Tunnel1目的地址为2.2.4.1)的流
量通过NGFW_C转发(下一跳为NGFW_C的物理接口IP地址2.2.2.1)。

而去往Tunnel2接口(目的地址为2.2.5.1)的流量通过NGFW_D转发(下一跳为NGFW_D的物理接口IP地址2.2.3.1)。

2、当双机热备负载分担状态正常运行时,可以在Router2上看到总部回复分支A(目的地址10.1.3.0)
的流量通过NGFW_C转发(下一跳为3.3.3.1);总部回复分支B(目的地址10.1.4.0)的流量通过NGFW_D转发(下一跳为3.3.4.1)。

以上两步可以看出在路由层面,我们的配置满足了组网需求。

3、在NGFW_C和D上执行display ikesa、display ipsecsa 命令查看IPSec的隧道建立情况。

下面仅给出NGFW_C上的截图,可以看到NGFW_C的tunnel1接口与NGFW_A的GE1/0/1接口成功建立隧道。

【拍案惊奇】
1、此案例的惊奇之处在于结合了双机热备、IPSec和并不常用的路由策略功能,而且三种功能结合
的十分巧妙。

2、此案例的另一惊奇之处在于负载分担组网下的IPSec只有在华为比较新版本的防火墙上才支持,
是一个比较新的功能。

3、另外看完此案例,小伙伴们应该对双机热备、IPSec、以及路由策略的配置方法和流程有了一定
的了解。

【强叔问答】
本案例中强叔并没有详细讲述防火墙安全策略的配置,但其实在配置双机热备及PSec功能时,安全策略的配置
还是有所讲究的。

请小伙伴们思考双机热备和IPSec这两个功能的安全策略如何配置?。

相关文档
最新文档