【防火墙技术案例5】双机热备(负载分担)组网下的IPSec配置 论坛的小伙伴们,大家好。强叔最近已经开始在“侃墙”系列中为各位小伙伴们介绍各种VPN了。说到VPN,小伙伴们肯定首先想到的是最经典的IPSecVPN,而且我想大家对IPSec的配置也是最熟悉的。但是如果在两台处于负载分担状态下的防火墙上部署IPSecVPN又该如何操作呢?有什么需要注意的地方呢? 本期强叔就为大家介绍如何在双机热备的负载分担组网下配置IPSec。 【组网需求】 如下图所示,总部防火墙NGFW_C和NGFW_D以负载分担方式工作,其上下行接口都工作在三层,并与上下行路由器之间运行OSPF协议。(本例中,NGFW是下一代防火墙USG6600的简称,软件版本为USG6600V100R001C10) 现要求分支用户访问总部的流量受IPSec隧道保护,且NGFW_C处理分支A发送到总部的流量,NGFW_D处理分支B发送到总部的流量。当NGFW_C或NGFW_D中一台防火墙出现故障时,分支发往总部的流量能全部切换到另一台运行正常的防火墙。 【需求分析】 针对以上需求,强叔先带小伙们做一个简要分析,分析一下我们面临的问题以及解决这个问题的方法。 1、??如何使两台防火墙形成双机热备负载分担状态? 两台防火墙的上下行业务接口工作在三层,并且连接三层路由器,在这种情况下,就需要在防火墙上配置VGMP组(即hrptrack命令)来监控上下行业务接口。如果是负载分担状态,则需要在每台防火墙上调动两个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的流量都通过正常运行的防火墙转发。 【配置步骤】 1、??配置双机热备功能。 在配置双机热备功能前,小伙伴们需要按照上图配置各接口的IP地址,并将各接口加入相应的安全区域,然后配置正确的安全策略,允许网络互通。由于这些不是本案例的重点,因此不在此赘述。 完成以上配置后,就要开始配置双机热备功能了。大家可以看到形成双机的两台防火墙(NGFW_C和NGFW_D负载分担处理流量)的上下行接口都工作在三层,而且连接的是路由器。这无疑是非常经典的“防火墙业务接口工作在三层,上下行连接路由器的负载分担组网”。各位小伙伴们可以在华为的任何防火墙资料中看到此经典举例,无论是命令行配置举例还是Web配置举例,大家想怎么看就怎么看~ 因此强叔只在此给出双机热备的命令行配置和关键解释。 # ?hrpmirrorsessionenable?????//负载分担组网必须配置此命令 ?hrpenable?????????????????//启用双机热备功能 ?hrpospf-costadjust-enable????//根据主备状态调整OSPF的COST值? ?hrpinterfaceGigabitEthernet1/0/7????//指定心跳接口 # interfaceGigabitEthernet1/0/1 ?ip ?hrptrackactive//业务接口工作在三层,上下行连接路由器的组网需要配置hrptrack ?hrptrackstandby???//负载分担组网需要同时配置hrptrackactive和standby # interfaceGigabitEthernet1/0/3 仅供个人学习参考 ?ip ?hrptrackactive ?hrptrackstandby # interfaceGigabitEthernet1/0/7 ?ip 【强叔点评】各位小伙伴们在配置双机热备功能时,首先要确定的是防火墙业务接口的工作状态和上下行连接的设备,然后据此采用不同的命令进行配置。强叔在此先为大家简单总结下,如果小伙伴们想深入学习,可以关注后面几期的“侃墙”系列。 组网 业务接口工作在三层,上下行连接二层设备 业务接口工作在三层,上下行连接三层设备 业务接口工作在二层,上下行连接三层设备 2、??配置IPSec。 【强叔点评】双机热备配置完成后,我们就开始配置IPSec功能,建立IPSecVPN隧道啦。 由于公司希望NGFW_C处理分支A(NGFW_A)发送到总部的流量,NGFW_D处理分支B(NGFW_B)发送到总部的流量,因此正常情况下我们需要在NGFW_C和NGFW_A之间建立一条隧道,在NGFW_D和NGFW_B之间建立一条隧道。 这样看似已经满足需求了,但是如果NGFW_D出现故障了怎么办呢?分支B发送到总部的流量不就中断了吗?小伙伴们仔细思考就会想到办法,我们需要在NGFW_C与NGFW_B,NGFW_D与NGFW_A之间分别建立一条备用隧道(图中虚线表示)。这样当NGFW_D出现故障时,分支B发送到总部的流量会通过备用隧道由NGFW_C发送到总部,就不会导致业务中断啦。 这个想法很好,但是如何实现呢?我们可以在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)地址保持一致。 配置命令 VRRP相关命令 在接口视图下配置(hrptrack) 在VLAN视图下配置(hrptrack) ? 我想这时小伙伴们又要问为什么了?这样做的好处是在NGFW_A上只需要与对端的tunnel1接口建立隧道即可,NGFW_A不用去关心这个tunnel1是NGFW_C还是NGFW_D的(因为他们的IP是一致的)。同理NGFW_B只需要与对端的tunnel2接口建立隧道即可。 1)??定义受IPSecVPN保护的数据流。 HRP_A[NGFW_C]?acl3005? HRP_A[NGFW_C-acl-adv-3005]?rulepermitip? HRP_A[NGFW_C-acl-adv-3005]?quit? 仅供个人学习参考
HRP_A[NGFW_C]acl3006? HRP_A[NGFW_C-acl-adv-3006]?rulepermitip? HRP_A[NGFW_C-acl-adv-3006]?quit 【强叔点评】ACL3005定义的是总部与分支A之间的流量,ACL3006定义的是总部与分支B之间的流量。 2)??配置IPSec安全提议。 【强叔点评】如果创建IPSec安全提议后,不进行任何配置,则IPSec安全提议使用默认参数。本案例中使用默认参数,小伙伴们可以根据自己的实际安全需求修改IPSec安全提议中的参数。 HRP_A[NGFW_C]?ipsecproposaltran1 HRP_A[NGFW_C-ipsec-proposal-tran1]?quit 3)??配置IKE安全提议。本案例中使用IKE安全提议的默认参数。 HRP_A[NGFW_C]?ikeproposal10 HRP_A[NGFW_C-ike-proposal-10]?quit 4)??配置两个IKE对等体,分别用于总部与两个分支建立IPSec。 HRP_A[NGFW_C]?ikepeerngfw_a? HRP_A[NGFW_C-ike-peer-ngfw_a]?ike-proposal10? HRP_A[NGFW_C-ike-peer-ngfw_a]?? HRP_A[NGFW_C-ike-peer-ngfw_a]?pre-shared-keyAdmin@123? HRP_A[NGFW_C-ike-peer-ngfw_a]?quit? HRP_A[NGFW_C]?ikepeerngfw_b? HRP_A[NGFW_C-ike-peer-ngfw_b]?ike-proposal10? HRP_A[NGFW_C-ike-peer-ngfw_b]?? HRP_A[NGFW_C-ike-peer-ngfw_b]?pre-shared-keyAdmin@123? HRP_A[NGFW_C-ike-peer-ngfw_b]?quit 5)??配置两个IPSec策略,分别用于总部与两个分支建立IPSec。 HRP_A[NGFW_C]?ipsecpolicymap110isakmp? HRP_A[NGFW_C-ipsec-policy-isakmp-map1-10]?securityacl3005? HRP_A[NGFW_C-ipsec-policy-isakmp-map1-10]?proposaltran1? HRP_A[NGFW_C-ipsec-policy-isakmp-map1-10]?ike-peerngfw_a? HRP_A[NGFW_C-ipsec-policy-isakmp-map1-10]?quit? HRP_A[NGFW_C]?ipsecpolicymap210isakmp? HRP_A[NGFW_C-ipsec-policy-isakmp-map2-10]?securityacl3006? HRP_A[NGFW_C-ipsec-policy-isakmp-map2-10]?proposaltran1? HRP_A[NGFW_C-ipsec-policy-isakmp-map2-10]?ike-peerngfw_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]?interfaceTunnel1? HRP_A[NGFW_C-Tunnel1]?ipsecpolicymap1active? HRP_A[NGFW_C-Tunnel1]?quit? HRP_A[NGFW_C]?interfaceTunnel2? HRP_A[NGFW_C-Tunnel2]?ipsecpolicymap2?standby? HRP_A[NGFW_C-Tunnel2]?quit 7)??在NGFW_D上配置IPSec。 仅供个人学习参考
双机热备状态成功建立后,NGFW_C上配置的ACL、IPSec策略(包括其中的IPSec安全提议,IKE对等体)等都会自动备份到NGFW_D上。只有在接口上应用IPSec策略的配置不会备份,需要在此手动配置。 HRP_S[NGFW_D]?interfaceTunnel1? HRP_S[NGFW_D-Tunnel1]?ipsecpolicymap1standby? HRP_S[NGFW_D-Tunnel1]?quit? HRP_S[NGFW_D]?interfaceTunnel2? HRP_S[NGFW_D-Tunnel2]?ipsecpolicymap2active? HRP_S[NGFW_D-Tunnel2]?quit 8)??在NGFW_A和NGFW_B上配置IPSec。 NGFW_A和NGFW_B的配置比较简单,就是一个点到点方式的IPSec配置。只要将NGFW_A的IPSec隧道RemoteAddress配置为Tunnel1接口的IP地址;NGFW_B的IPSec隧道RemoteAddress配置为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]?acl2000? HRP_A[NGFW_C-acl-basic-2000]?? HRP_A[NGFW_C-acl-basic-2000]?? HRP_A[NGFW_C-acl-basic-2000]?quit 一条匹配分支B的去和回的流量: HRP_A[NGFW_C]?acl2001? HRP_A[NGFW_C-acl-basic-2001]?? HRP_A[NGFW_C-acl-basic-2001]?? HRP_A[NGFW_C-acl-basic-2001]?quit 第三条匹配来自分支A和B的去和回的流量:? HRP_A[NGFW_C]?acl2002? HRP_A[NGFW_C-acl-basic-2002]?? HRP_A[NGFW_C-acl-basic-2002]?? HRP_A[NGFW_C-acl-basic-2002]?? HRP_A[NGFW_C-acl-basic-2002]?? HRP_A[NGFW_C-acl-basic-2002]?quit 2)然后我们需要配置几条路由策略,实现以下效果。 当双机热备负载分担状态正常时,来自分支A的去和回的流量通过NGFW_C时开销减少10: HRP_A[NGFW_C]?route-policyrppermitnode1? HRP_A[NGFW_C-route-policy]?if-matchacl2000? HRP_A[NGFW_C-route-policy]?if-matchbackup-statusload-balance? HRP_A[NGFW_C-route-policy]?applycost–10 HRP_A[NGFW_C-route-policy]?quit 当双机热备负载分担状态正常时,来自分支B的去和回的流量通过NGFW_C时开销增加10: 仅供个人学习参考
相关推荐: