两条运营商线配两台防火墙?华为Web双机负载分担按部门各走各线

双出口双设备的组网,很多公司的配置停在「主备」:一台防火墙干活,另一台纯粹站着等故障,两条运营商线也往往只主用一条,资源浪费一半。华为防火墙支持负载分担模式的双机热备,两台设备同时转发流量,上下行再各自连到两家 ISP,部门流量还能按源地址分线走。这篇是官方 Web 举例,双出口网关场景全程在 Web 界面点出来,组网是 DeviceA 和 DeviceB 业务口三层直路部署,上行两台交换机分别接 ISP1 和 ISP2,ISP1 给企业分了 1.1.1.1~1.1.1.3,ISP2 分了 2.2.2.1~2.2.2.3。目标很明确:部门 A(10.3.0.51~10.3.0.100)走 ISP1,部门 B(10.3.0.101~10.3.0.150)走 ISP2,一台设备故障时另一台兜住全部业务。

配置步骤

第一步配接口和自建安全区域。两台设备各有四个业务口:GE0/0/1 加入自建区域 isp1(DeviceA 为 1.1.1.1/24,DeviceB 为 1.1.1.2/24),GE0/0/2 加入自建区域 isp2(DeviceA 为 2.2.2.1/24,DeviceB 为 2.2.2.2/24),GE0/0/3 加入 trust(10.3.0.1/24 与 10.3.0.2/24),GE0/0/7 加入 dmz 作心跳口(10.10.0.1/24 与 10.10.0.2/24)。isp1、isp2 是预先创建好的安全区域,Web 上「网络 > 接口」逐口填写,两台八口一个不落。同一条运营商线两台设备各占一个地址,公网侧地址连续、内网侧地址紧挨,这是后面 VRRP 虚拟地址能成立的前提。

第二步配智能选路的策略路由,让两个部门各走各的线。选择「网络 > 路由 > 智能选路」,在「智能选路策略」页签新建:策略 route_policy_isp1,类型按源安全区域,源安全区域 trust,源地址 10.3.0.51-10.3.0.100,动作转发,出接口类型单出口,下一跳 1.1.1.254;再照抄一条 route_policy_isp2,源地址换成 10.3.0.101-10.3.0.150,下一跳 2.2.2.254。脚本里对应的就是这两条:

policy-based-route
 rule name route_policy_isp1
  source-zone trust
  source-address range 10.3.0.51 10.3.0.100
  action pbr next-hop 1.1.1.254
 rule name route_policy_isp2
  source-zone trust
  source-address range 10.3.0.101 10.3.0.150
  action pbr next-hop 2.2.2.254

第三步开双机热备。选择「系统 > 高可靠性 > 双机热备」,单击「配置」,选中「启用」,DeviceA 和 DeviceB 各配一次。心跳与同步由 HRP 协议完成,脚本开头这几行就是它的骨架:

hrp enable
hrp interface GE0/0/7 remote 10.10.0.2
hrp mirror session enable
hrp authentication-key %+%##!!!!!!!!!"!!!!"!!!!*!!!!J6+;U#>V\!_e1NY[iGLXjT%k=rKkg,Z)CI0!!!!!!!!!!!!!!!:!!!!Ec&0;Y9kF~"+*IM>Io(Sm{&9' 5y$6'L:2@-!!!!!%+%#

DeviceB 上把 remote 后面换成 10.10.0.1。负载分担的关键在 VRRP 备份组的交叉设置,看 DeviceA 的脚本最直观:

interface GE0/0/1
 ip address 1.1.1.1 255.255.255.0
 vrrp vrid 1 virtual-ip 1.1.1.3 active
#
interface GE0/0/2
 ip address 2.2.2.1 255.255.255.0
 vrrp vrid 2 virtual-ip 2.2.2.3 standby
#
interface GE0/0/3
 ip address 10.3.0.1 255.255.255.0
 vrrp vrid 3 virtual-ip 10.3.0.3 active
 vrrp vrid 4 virtual-ip 10.3.0.4 standby

DeviceA 在 ISP1 侧的 vrid 1 和内网 vrid 3 当主用,在 ISP2 侧的 vrid 2 和内网 vrid 4 当备用;DeviceB 全部反过来。公网侧虚拟地址 1.1.1.3 对应 vrid 1、2.2.2.3 对应 vrid 2,内网侧两个网关虚拟地址 10.3.0.3、10.3.0.4 对应 vrid 3、4。这样两台设备各扛一半流量,坏一台另一台全接。HRP 的会话镜像把两台的会话表实时同步,切换时正在跑的业务不掉线。

第四步在 DeviceA 上配安全策略和 NAT 策略,配好会自动备份到 DeviceB。安全策略 policy_sec:源安全区域 trust,目的安全区域 isp1,isp2,动作允许。NAT 侧先建两个源转换地址池:池 1 为 1.1.1.3-1.1.1.3,池 2 为 2.2.2.3-2.2.2.3;再建两条 NAT 策略:policy_nat_1 源区域 trust、目的区域 isp1、仅转换源地址、源转换地址池 1,policy_nat_2 目的区域换成 isp2、地址池 2。脚本对应:

nat-policy
 rule name policy_nat_1
   source-zone trust
   destination-zone isp1
   action source-nat address-group 1
 rule name policy_nat_2
   source-zone trust
   destination-zone isp2
   action source-nat address-group 2

走哪条线就用哪家给的公网地址出去。最后在内网设备上配缺省路由,部门 A 下一跳指向 VRRP 备份组 3 的虚拟 IP 10.3.0.3,部门 B 指向备份组 4 的 10.3.0.4——两个部门两个网关虚拟地址,进机房的第一跳就分了家。

验证

选择「系统 > 高可靠性 > 双机热备」查看运行情况。正常时 DeviceA 与 DeviceB 的「当前运行模式」都应是「负载分担」,角色一「主用」一「备用」,说明两台共同转发。把 DeviceA 下电做一次故障演练,「当前运行模式」会变为「主备备份」,DeviceA 角色变「备用」、DeviceB 变「主用」,部门 A 和部门 B 的业务全部由 DeviceB 转发——两个 ISP 出口、两台设备,任何一台退场业务都不断,这就是双机兜底的实证。演练完上电,模式回到「负载分担」,流量重新两台分摊。

两台设备两条线都跑起来,出口投入才算物尽其用。贵州诚鑫致达科技做双出口交付时,负载分担的验证截图是验收材料里的固定一项。你们机房那台备机,现在是每天都在干活,还是还在白吃电?