出口链路一根都不敢动?华为防火墙旁挂双机热备静态路由引流入检测
很多企业的数据中心已经跑了多年,核心交换机上下行稳定,忽然要做安全加固——按合规要求把流量过一遍防火墙的入侵检测和攻击防范。麻烦来了:把防火墙串接进原有链路,意味着割接窗口、意味着断网风险,业务部门一票否决。于是旁挂部署成了常见选择:防火墙不串在链路里,挂在核心交换机旁边,靠路由把流量"引"过去检测。
但旁挂有一个著名的坑:核心交换机与上行路由器、下行汇聚交换机之间跑着 OSPF,即便你在交换机上配了静态路由、下一跳指向旁挂的防火墙,流量到了核心交换机还是会按 OSPF 直接转发到上、下行设备,根本不进防火墙。检测策略配得再细,一滴流量都收不到。
华为官方的解法是把核心交换机虚拟化:配置 VRF 功能,将一台交换机虚拟成连接上行的根交换机(Public)和连接下行的虚拟交换机(VRF)。虚拟出的两个交换机完全隔离,流量才会被送到旁挂的 DeviceA 和 DeviceB 上。再把两台防火墙配成双机热备主备备份,正常时流量走 DeviceA,DeviceA 故障时自动切到 DeviceB,业务不中断。
防火墙侧配置(Web 界面)
先配接口。选择"网络 > 接口",DeviceA 上三个口依次配置:GE0/0/1 安全区域 untrust、IP 地址 10.1.0.1/24;GE0/0/3 安全区域 trust、IP 地址 10.0.0.1/24;GE0/0/7 安全区域 dmz、IP 地址 10.10.0.1/24——GE0/0/7 是双机热备的心跳口。DeviceB 按同样步骤配置,三个口的地址分别为 10.1.0.2/24、10.0.0.2/24、10.10.0.2/24。
再配静态路由,DeviceA 与 DeviceB 完全相同。选择"网络 > 路由 > 静态路由",新建两条:上行缺省路由,目的地址 0.0.0.0、掩码 0.0.0.0、下一跳 10.1.0.6(VRRP 备份组 4 的地址);下行路由,目的地址 192.168.0.0、掩码 255.255.0.0、下一跳 10.0.0.6(VRRP 备份组 3 的地址)。下一跳指向的是交换机侧 VRRP 虚拟地址,防火墙不用关心对端是哪台交换机。
然后开双机热备。选择"系统 > 高可靠性 > 双机热备",单击"配置",开启"双机热备",心跳口选 GE0/0/7,DeviceA 和 DeviceB 各配一次。
最后在 DeviceA 上配安全策略——允许外网用户访问数据中心服务器区(网段 192.168.0.0/16,端口 80)。选择"策略 > 安全策略 > 安全策略",单击"新建安全策略",名称 policy_sec1,源安全区域 untrust,目的安全区域 trust,目的地址 192.168.0.0/16,服务 http,动作允许。双机热备状态建立后,这条策略会自动备份到 DeviceB,不用配两遍。
核心交换机侧配置(命令行)
交换机只给与防火墙对接相关的配置。SwitchA 上创建 VRF、划分 VLAN、配 VRRP 备份组、引流量:
[SwitchA] ip vpn-instance VRF //创建VRF
[SwitchA-vpn-instance-VRF] ipv4-family
[SwitchA-vpn-instance-VRF-af-ipv4] route-distinguisher 100:1
[SwitchA-vpn-instance-VRF-af-ipv4] vpn-target 111:1 both
[SwitchA-vpn-instance-VRF-af-ipv4] quit
[SwitchA-vpn-instance-VRF] quit
[SwitchA] vlan 2
[SwitchA-vlan2] port gigabitethernet 1/0/3 to 1/0/4 //将接口加入VLAN2
[SwitchA-vlan2] quit
[SwitchA] interface Vlanif 2
[SwitchA-Vlanif2] ip binding vpn-instance VRF //将VLANIF2绑定至VRF
[SwitchA-Vlanif2] ip address 10.0.0.4 24
[SwitchA-Vlanif2] vrrp vrid 3 virtual-ip 10.0.0.6 //配置VRRP备份组3
[SwitchA-Vlanif2] vrrp vrid 3 priority 120 //配置优先级为120,优先级高的为主用
[SwitchA-Vlanif2] quit
[SwitchA] vlan 3
[SwitchA-vlan3] port gigabitethernet 1/0/1 to 1/0/2 //将接口加入VLAN3
[SwitchA-vlan3] quit
[SwitchA] interface Vlanif 3
[SwitchA-Vlanif3] ip address 10.1.0.4 24
[SwitchA-Vlanif3] vrrp vrid 4 virtual-ip 10.1.0.6 //配置VRRP备份组4
[SwitchA-Vlanif3] vrrp vrid 4 priority 120 //配置优先级为120,优先级高的为主用
[SwitchA-Vlanif3] quit
[SwitchA] ip route-static vpn-instance VRF 0.0.0.0 0.0.0.0 10.0.0.3 //在VRF中配置缺省路由,下一跳为VRRP备份组1的虚拟地址
[SwitchA] ip route-static 192.168.0.0 255.255.0.0 10.1.0.3 //在根交换机Public中配置静态路由,下一跳为VRRP备份组2的虚拟地址
SwitchB 的配置与 SwitchA 逐行相同,只有 VRRP 优先级改成备用侧取值,例如:
[SwitchB-Vlanif2] vrrp vrid 3 priority 100 //配置优先级为100,优先级低的为备用
看懂这两条静态路由的位置,就懂了引流的全部逻辑:VRF 实例里的缺省路由把下行来的流量推给防火墙的 VRRP 备份组 1;Public 根交换机里的 192.168.0.0/16 路由把要进服务器区的流量推给防火墙的 VRRP 备份组 2。防火墙处理后按自己那条下一跳指向交换机 VRRP 组 3、组 4 的静态路由送回去,一进一出,检测就闭环了。
防火墙侧最终生成的配置脚本(DeviceA)如下,DeviceB 仅心跳口对端地址与 VRRP 角色不同:
#
sysname DeviceA
#
hrp enable
hrp interface GE0/0/7 remote 10.10.0.2
hrp authentication-key %+%##!!!!!!!!!"!!!!"!!!!*!!!!J6+;U#>V\!_e1NY[iGLXjT%k=rKkg,Z)CI0!!!!!!!!!!!!!!!:!!!!Ec&0;Y9kF~"+*IM>Io(Sm{&9' 5y$6'L:2@-!!!!!%+%#
#
interface GE0/0/1
ip address 10.1.0.1 255.255.255.0
vrrp vrid 2 virtual-ip 10.1.0.3 active
#
interface GE0/0/3
ip address 10.0.0.1 255.255.255.0
vrrp vrid 1 virtual-ip 10.0.0.3 active
#
interface GE0/0/7
ip address 10.10.0.1 255.255.255.0
#
firewall zone trust
set priority 85
add interface GE0/0/3
#
firewall zone dmz
set priority 50
add interface GE0/0/7
#
firewall zone untrust
set priority 5
add interface GE0/0/1
#
ip route-static 0.0.0.0 0.0.0.0 10.1.0.6
ip route-static 192.168.0.0 255.255.0.0 10.0.0.6
#
security-policy
rule name policy_sec1
source-zone untrust
destination-zone trust
destination-address 192.168.0.0 mask 255.255.0.0
service http
action permit
#
return
DeviceB 上对应的接口角色则分别是:
vrrp vrid 2 virtual-ip 10.1.0.3 standby
vrrp vrid 1 virtual-ip 10.0.0.3 standby
验证
选择"系统 > 高可靠性 > 双机热备",查看双机热备的运行情况。正常情况下,DeviceA 的"当前运行模式"为"主备备份"、“当前运行角色"为"主用”,DeviceB 为"备用",说明流量经 DeviceA 转发;把 DeviceA 断电模拟故障,再进同一页面,DeviceB 的角色应已切换为"主用",业务访问不中断。之后再观察一段 OSPF 邻居与服务器区访问日志,确认引流路径稳定。
旁挂改造最怕的就是引流配了却不生效、流量绕开了检测。贵州诚鑫致达科技在做这类安全加固项目时,会先把流量路径画清楚再动手配置,割接前逐项演练验证。如果你的机房也计划上旁挂检测,欢迎留言聊聊你的组网情况。