CLI举例:负载分担场景下的源NAT配置(主备设备共用同一个地址池)
组网需求
如图1所示,企业的两台FW的业务接口都工作在三层,上下行分别连接路由器。FW与上下行路由器之间运行OSPF协议。上行接口连接同一个ISP。
现在希望两台FW以负载分担方式工作。正常情况下,部门A的用户发出的流量通过FW_A转发,部门B的用户发出的流量通过FW_B转发。当其中一台FW出现故障时,流量全部通过另一台FW转发,保证业务不中断。
本例以上下行均连接路由器的负载分担组网为例,实际上下行设备和接口根据实际场景判断是否需要配置OSPF,源NAT配置没有差异。
本例不适用上行接口连接两个不同的ISP的场景。
数据规划
项目 | FW_A | FW_B | |
---|---|---|---|
接口 | GigabitEthernet 1/0/1 IP地址:10.2.0.1/24 安全区域:Untrust GigabitEthernet 1/0/3 IP地址:10.3.0.1/24 安全区域:Trust GigabitEthernet 1/0/7 IP地址:10.10.0.1/24 安全区域:DMZ | GigabitEthernet 1/0/1 IP地址:10.2.1.1/24 安全区域:Untrust GigabitEthernet 1/0/3 IP地址:10.3.1.1/24 安全区域:Trust GigabitEthernet 1/0/7 IP地址:10.10.0.2/24 安全区域:DMZ | |
OSPF | 进程ID:10 区域标识:0 区域包含的网段:10.2.0.0/24、10.3.0.0/24、1.1.1.10/32 | 进程ID:10 区域标识:0 区域包含的网段:10.2.1.0/24、10.3.1.0/24、1.1.1.10/32 |
配置思路
- 分别在FW_A和FW_B上配置接口IP地址和安全区域,完成网络基本参数配置。
- 分别在FW_A和FW_B上配置OSPF。
- 由于FW_A和FW_B共用一个NAT地址池,主备设备都正常运行的情况下,两台FW可能会将不同主机发来的流量的源IP地址和源端口转换为同一个公网地址和公网端口。为避免出现端口冲突问题,需要为主备设备分配不同的端口范围。
- 分别在FW_A和FW_B上配置双机热备功能,包括配置接口监控、指定心跳口、启用快速备份功能等。
- 在FW_A上配置允许设备间交互OSPF报文及允许内网访问外网的安全策略。FW_A上配置的安全策略会自动备份到FW_B上。
- 在FW_A上配置NAT地址池。FW_A上配置的NAT地址池会自动备份到FW_B上。
- 在FW_A上配置源NAT策略,实现内网访问外网时自动进行源地址转换。FW_A上配置的源NAT策略会自动备份到FW_B上。
- 配置下行设备,使得正常情况下部门A用户发出的流量通过FW_A转发,部门B用户发出的流量通过FW_B转发。
- 在上行路由器上配置接口地址、指向ISP的静态路路由,同时配置OSPF使得FW和路由之间互相学习对方的路由。在下行路由器上配置接口地址,同时配置OSPF使得FW和路由之间互相学习对方的路由。具体配置请参见路由器的产品文档,本举例不作介绍。
操作步骤
- 配置接口IP地址和安全区域,完成网络基本参数配置。
在FW_A上配置接口。# 配置接口IP地址。<FW_A> system-view [FW_A] interface GigabitEthernet 1/0/1 [FW_A-GigabitEthernet 1/0/1] ip address 10.2.0.1 24 [FW_A-GigabitEthernet 1/0/1] quit [FW_A] interface GigabitEthernet 1/0/3 [FW_A-GigabitEthernet 1/0/3] ip address 10.3.0.1 24 [FW_A-GigabitEthernet 1/0/3] quit [FW_A] interface GigabitEthernet 1/0/7 [FW_A-GigabitEthernet 1/0/7] ip address 10.10.0.1 24 [FW_A-GigabitEthernet 1/0/7] quit # 配置接口加入相应安全区域。[FW_A] firewall zone trust [FW_A-zone-trust] add interface GigabitEthernet 1/0/3 [FW_A-zone-trust] quit [FW_A] firewall zone untrust [FW_A-zone-untrust] add interface GigabitEthernet 1/0/1 [FW_A-zone-untrust] quit [FW_A] firewall zone dmz [FW_A-zone-dmz] add interface GigabitEthernet 1/0/7 [FW_A-zone-dmz] quit在FW_B上配置接口。# 配置接口IP地址。<FW_B> system-view [FW_B] interface GigabitEthernet 1/0/1 [FW_B-GigabitEthernet 1/0/1] ip address 10.2.1.1 24 [FW_B-GigabitEthernet 1/0/1] quit [FW_B] interface GigabitEthernet 1/0/3 [FW_B-GigabitEthernet 1/0/3] ip address 10.3.1.1 24 [FW_B-GigabitEthernet 1/0/3] quit [FW_B] interface GigabitEthernet 1/0/7 [FW_B-GigabitEthernet 1/0/7] ip address 10.10.0.2 24 [FW_B-GigabitEthernet 1/0/7] quit # 配置接口加入相应安全区域。[FW_B] firewall zone trust [FW_B-zone-trust] add interface GigabitEthernet 1/0/3 [FW_B-zone-trust] quit [FW_B] firewall zone untrust [FW_B-zone-untrust] add interface GigabitEthernet 1/0/1 [FW_B-zone-untrust] quit [FW_B] firewall zone dmz [FW_B-zone-dmz] add interface GigabitEthernet 1/0/7 [FW_B-zone-dmz] quit在FW_A和FW_B上配置OSPF。# 在FW_A上配置OSPF。[FW_A] ospf 10 [FW_A-ospf-100] import-route unr [FW_A-ospf-100] area 0 [FW_A-ospf-100-area-0.0.0.0] network 10.2.0.0 0.0.0.255 [FW_A-ospf-100-area-0.0.0.0] network 10.3.0.0 0.0.0.255 # 在FW_B上配置OSPF。[FW_B] ospf 10 [FW_B-ospf-100] import-route unr [FW_B-ospf-100] area 0 [FW_B-ospf-100-area-0.0.0.0] network 10.2.1.0 0.0.0.255 [FW_B-ospf-100-area-0.0.0.0] network 10.3.1.0 0.0.0.255
- 配置负载分担场景的NAT地址池端口分配功能。
双机热备的负载分担场景下,两台FW共用同一个NAT地址池时,在NAPT模式下有可能两台设备分配的公网端口出现冲突。为了避免这种可能存在的冲突,需要在两台设备上分别配置各自可使用的NAT资源(包括公网IP地址和公网端口号)。此时,可以在主设备上配置hrp nat resource primary-group命令,备设备上会自动生成hrp nat resource secondary-group命令(如果主设备上配置的是hrp nat resource secondary-group命令,则备设备上将自动对应生成hrp nat resource primary-group命令)。[FW_A] hrp nat resource primary-group
- 配置双机热备功能。
-
在FW_A上配置双机热备功能。# 配置接口监控。[FW_A] hrp track interface GigabitEthernet 1/0/1 [FW_A] hrp track interface GigabitEthernet 1/0/3 # 指定心跳接口。[FW_A] hrp interface GigabitEthernet 1/0/7 remote 10.10.0.2 # 启用快速备份功能。[FW_A] hrp mirror session enable 负载分担场景下,报文的来回路径可能会不一致,务必启用会话快速备份功能,使一台FW的会话信息立即同步至另一台FW,保证内外部用户的业务不中断。# 启用双机热备。[FW_A] hrp enable
- 在FW_B上配置双机热备功能。
# 配置接口监控。[FW_B] hrp track interface GigabitEthernet 1/0/1 [FW_B] hrp track interface GigabitEthernet 1/0/3 # 指定心跳接口。[FW_B] hrp interface GigabitEthernet 1/0/7 remote 10.10.0.1 # 启用快速备份功能。[FW_B] hrp mirror session enable # 启用双机热备。[FW_B] hrp enable
-
- 在FW_A上配置安全策略允许设备间交互OSPF报文及允许内网用户访问外网。
在FW_A上配置的安全策略会自动备份到FW_B上。
HRP_M[FW_A] security-policy HRP_M[FW_A-policy-security] rule name policy_sec_1 HRP_M[FW_A-policy-security-rule-policy_sec_1] source-zone local trust untrust HRP_M[FW_A-policy-security-rule-policy_sec_1] destination-zone local trust untrust HRP_M[FW_A-policy-security-rule-policy_sec_1] action permit HRP_M[FW_A-policy-security-rule-policy_sec_1] quit HRP_M[FW_A-policy-security] quit
- 配置NAT地址池,并允许端口转换,实现公网地址复用。
在FW_A上配置的地址池会自动备份到FW_B上。
HRP_M[FW_A] nat address-group addressgroup1 HRP_M[FW_A-nat-address-group-addressgroup1] section 0 1.1.1.10 1.1.1.10 HRP_M[FW_A-nat-address-group-addressgroup1] mode pat HRP_M[FW_A-nat-address-group-addressgroup1] route enable HRP_M[FW_A-nat-address-group-addressgroup1] quit
- 配置源NAT策略,使内网用户通过转换后的公网IP地址访问Internet。
在FW_A上配置的NAT策略会自动备份到FW_B上。
HRP_M[FW_A] nat-policy HRP_M[FW_A-policy-nat] rule name policy_nat_1 HRP_M[FW_A-policy-nat-policy_nat_1] source-zone trust HRP_M[FW_A-policy-nat-policy_nat_1] destination-zone untrust HRP_M[FW_A-policy-nat-policy_nat_1] action source-nat address-group addressgroup1 HRP_M[FW_A-policy-nat-policy_nat_1] quit HRP_M[FW_A-policy-nat] quit
- 配置下行设备,使得两台FW都正常运行的情况下,部门A用户发出的流量通过FW_A转发,部门B用户发出的流量通过FW_B转发。
- 在上行路由器上配置接口地址、指向ISP的静态路路由,同时配置OSPF使得FW和路由之间互相学习对方的路由。在下行路由器上配置接口地址,同时配置OSPF使得FW和路由之间互相学习对方的路由。具体配置请参见路由器的产品文档,本举例不作介绍。
结果验证
-
主备设备均正常运行情况下,分别在FW_A和FW_B上执行display hrp state命令,检查HRP的状态信息,显示以下信息表示HRP建立成功。
HRP_M[FW_A] display hrp stateRole: active, peer: active Running priority: 49010, peer: 49010 Backup channel usage: 3% Stable time: 0 days, 5 hours, 1 minutes HRP_S[FW_B] display hrp stateRole: active, peer: active Running priority: 49010, peer: 49010 Backup channel usage: 3% Stable time: 0 days, 5 hours, 1 minutes
- 内网PC可以正常访问Internet表示安全策略配置成功。
- 分别在FW_A和FW_B上执行display nat-policy rule rule-name命令查看源NAT策略的命中次数,命中次数大于等于1即表示有数据流命中NAT策略。
-
分别在FW_A和FW_B上执行display firewall session table命令查询源地址为内网PC的私网地址的表项,查看本次NAT转换的信息。存在该表项,且NAT转换后的IP地址为NAT地址池中的地址,表示NAT策略配置成功。“[]”中的内容为NAT转换后的IP地址和端口。
HRP_M<FW> display firewall session table Current Total Sessions : 1http VPN:public --> public 10.3.2.55:2474[1.1.1.10:3761]-->3.3.3.3:80
-
当FW_A出现故障时,分别在FW_A和FW_B上执行display hrp state命令,检查HRP的状态信息,显示以下信息表示主备切换成功。
HRP_M[FW_A] display hrp stateRole:standby, peer: active (shoule be "active-active") Running priority: 49012, peer: 49010 Backup channel usage: 0% Stable time: 0 days, 0 hours, 0 minutes HRP_S[FW_B] display hrp stateRole: active, peer: standby (shoule be "active-active") Running priority: 49010, peer: 49012 Backup channel usage: 0% Stable time: 0 days, 0 hours, 1 minutes
配置脚本
FW_A | FW_B |
---|---|
#hrp mirror session enablehrp enablehrp interface GigabitEthernet 1/0/7 remote 10.10.0.2 # hrp nat resource primary-group # hrp track interface GigabitEthernet 1/0/1 hrp track interface GigabitEthernet 1/0/3 # interface GigabitEthernet 1/0/7ip address 10.10.0.1 255.255.255.0 # firewall zone trustset priority 85add interface GigabitEthernet 1/0/3 # firewall zone untrustset priority 5add interface GigabitEthernet 1/0/1 # firewall zone dmzset priority 50add interface GigabitEthernet 1/0/7 # ospf 10 import-route unrarea 0.0.0.0network 10.2.0.0 0.0.0.255network 10.3.0.0 0.0.0.255 # nat address-group addressgroup1mode pat route enable section 0 1.1.1.10 1.1.1.10 # security-policy rule name policy_sec_1source-zone localsource-zone trustsource-zone untrustdestination-zone localdestination-zone trust destination-zone untrustaction permit # nat-policy rule name policy_nat_1source-zone trustdestination-zone untrustaction source-nat address-group addressgroup1 | #hrp mirror session enablehrp enablehrp interface GigabitEthernet 1/0/7 remote 10.10.0.1 # hrp nat resource secondary-group # hrp track interface GigabitEthernet 1/0/1 hrp track interface GigabitEthernet 1/0/3 # interface GigabitEthernet 1/0/7ip address 10.10.0.2 255.255.255.0 # firewall zone trustset priority 85add interface GigabitEthernet 1/0/3 # firewall zone untrustset priority 5add interface GigabitEthernet 1/0/1 # firewall zone dmzset priority 50add interface GigabitEthernet 1/0/7 # ospf 10 import-route unrarea 0.0.0.0network 10.2.1.0.0.0.255network 10.3.1.0 0.0.0.255 # nat address-group addressgroup1mode pat route enable section 0 1.1.1.10 1.1.1.10 # security-policy rule name policy_sec_1source-zone localsource-zone trustsource-zone untrustdestination-zone localdestination-zone trust destination-zone untrustaction permit # nat-policy rule name policy_nat_1source-zone trustdestination-zone untrustaction source-nat address-group addressgroup1 |