防火墙双击热备的工作模式详解
一、防火墙工作在路由模式1 区分的技术背景双机热备的唯一目标让上下行设备“无感知”地把流量发给当前工作的防火墙。无论你用什么技术最终要解决的就是一个问题当主防火墙故障时备用防火墙接管但上下行设备交换机或路由器必须自动把流量发给新主设备不能人工改配置。这个目标看起来简单但上下行设备是两种完全不同的“动物”设备类型转发依据它怎么识别“该发给谁”它懂什么协议二层交换机MAC地址表它只看目的MAC。谁响应了网关的ARP它就发给谁。只懂ARP、MAC、VLAN不懂IP路由三层路由器IP路由表它根据路由表下一跳IP。谁的IP作为下一跳它就发给谁。懂IP、OSPF、BGP等可识别路由Cost因此要骗过交换机和路由器必须用不同的“骗术”骗交换机让主备防火墙使用相同的虚拟MAC主设备响应ARP备设备沉默切换时新主主动发免费ARP刷交换机的MAC表。 → 这就是VRRP。骗路由器让路由器认为“去往内网/外网的最佳路径应该经过当前主防火墙”。 → 通过动态路由协议调整Cost或静态路由BFD来改变路由器的选路。所以双机热备的技术方案不是固定的而是由邻居设备类型决定的。2 为什么分为三种组网—— 因为防火墙有两个“邻居”下行和上行防火墙有两个方向下行接内网和上行接外网。每个方向上的邻居可能是交换机也可能是路由器。排列组合就会出现多种情况。场景下行邻居上行邻居对双机热备的要求技术组合① 上下接交换机交换机交换机两边都需要用同一种“骗术”虚拟MAC VRRP全部用VRRP② 下交换、上路由交换机路由器下行骗交换机VRRP上行骗路由器路由协议/BFDVRRP 路由/BFD③ 上下接路由器路由器路由器两边都骗路由器路由协议VRRP根本用不着纯动态路由为什么没有“下路由、上交换”因为内网如果已经用了三层路由器作为网关通常不会在它后面再串一台防火墙做二层接入拓扑不合理可以存在但极少见老师一般不讲。3 这三种组网在“双机热备”中的本质区别你现在应该已经看出来了分类的本质是“防火墙与邻居之间的接口类型和协议栈”——它直接决定了双机热备中你必须启用哪些功能、禁用哪些功能。对比项组网① 上下交换组网② 下交换上路由组网③ 上下路由下行接口模式三层子接口带VLAN三层子接口带VLAN三层物理口无VLAN下行冗余机制VRRP必须VRRP必须无VRRP靠OSPF Cost上行接口模式三层子接口或物理口三层物理口点对点IP三层物理口点对点IP上行冗余机制VRRP必须BFD静态路由 或 OSPFOSPF/BGPCost调优VGMP的作用统一控制所有VRRP组同左 可联动BFD/IP-Link仅整机主备不控制VRRPHRP同步内容会话表、Server-map同左同左关键点组网②中上行不能配VRRP因为路由器不认虚拟IP所以必须用其他方式让路由器感知主备切换。这正是很多人学双机热备时最容易忽略的。4 具体配置4.1 组网①上下都接二层交换机拓扑描述两台防火墙FW1、FW2的G1/0/1口分别连接到内网二层交换机。两台防火墙的G1/0/2口分别连接到外网二层交换机。防火墙之间用G1/0/3直连作为心跳口内网有多个VLAN如VLAN10、VLAN20防火墙作为这些VLAN的网关。外网交换机上行接出口路由器路由器可能只配一个接口IP。为什么这样组网内网交换机是二层设备它不认识IP路由只认识MAC地址。为了让交换机把流量正确地发给主防火墙防火墙必须提供一个“不变的虚拟网关IP虚拟MAC”。这就是VRRP的作用。外网交换机同样是二层所以也需要VRRP来提供虚拟网关给出口路由器路由器虽然三层但因为中间隔着交换机路由器看到的是防火墙的虚拟IP所以VRRP仍然有效。因此上下行都需要VRRP。关键配置以FW1为例FW2配置完全一样只是心跳IP不同# 内网子接口VLAN10网关 interface GigabitEthernet1/0/1.10 vlan-type dot1q 10 ip address 192.168.10.2 24 vrrp vrid 10 virtual-ip 192.168.10.1 # 外网子接口假设VLAN100接外网 interface GigabitEthernet1/0/2.100 vlan-type dot1q 100 ip address 200.1.1.2 24 vrrp vrid 100 virtual-ip 200.1.1.1 # 心跳口 interface GigabitEthernet1/0/3 ip address 172.16.0.1 24 hrp enable双机热备如何工作VGMP通过心跳协商决定FW1为ActiveFW2为Standby。VGMP强制控制所有VRRP组FW1上所有VRRP组为MasterFW2上所有VRRP组为Backup。内网交换机的MAC表里虚拟MAC对应FW1的端口外网同样。当FW1故障VGMP切换FW2成为ActiveFW2发送免费ARP更新交换机的MAC表流量切换到FW2。HRP实时将FW1的会话表同步给FW2保证切换后连接不断。4.2 组网②下接交换机上接路由器拓扑描述下行内网侧同组网①防火墙通过子接口接二层交换机使用VRRP。上行外网侧不再经过二层交换机防火墙的G1/0/2口直接与一台三层路由器如运营商CE用网线直连。直连链路使用一个30位掩码的互联IP段例如FW1用100.1.1.2/30路由器用100.1.1.1/30。为什么这样组网下行仍是二层交换机所以必须用VRRP。上行是三层路由器路由器本身运行IP路由它不需要VRRP虚拟IP它只需要知道“去往内网的下一跳应该指向哪台防火墙”。但是如果两台防火墙都接在同一台路由器上路由器两个接口分别接FW1和FW2路由器需要一种机制来感知哪台防火墙是主。VRRP不可行路由器不参与VRRP所以必须用动态路由协议如OSPF或BFD静态路由来让路由器自动选择主防火墙。关键配置下行同组网①上行增加# 上行物理口不做子接口 interface GigabitEthernet1/0/2 ip address 100.1.1.2 30 # 静态路由指向路由器下一跳100.1.1.1并绑定BFD检测 bfd ip-link 1 destination 100.1.1.1 interface GigabitEthernet1/0/2 ip route-static 0.0.0.0 0.0.0.0 100.1.1.1 track ip-link 1 # 告诉VGMP当ip-link检测失败时降低优先级 hrp track ip-link 1或者使用OSPF更推荐ospf 1 area 0 network 100.1.1.0 0.0.0.3 default-route-advertise cost 10 # 在备墙上通过 hrp ospf-cost increase 65500 让备墙宣告的路由cost极大双机热备如何工作下行VRRP仍然由VGMP统一控制。上行主设备BFD检测正常静态路由有效备设备的上行口虽然也配IP但VGMP Standby状态下HRP不会在备墙上激活上行路由或cost极高。当主设备上行链路故障接口仍UP但路由器不可达BFD快速检测到触发VGMP降低优先级备设备切换为Active。备设备激活自己的上行路由路由器通过动态路由收敛或ARP更新将流量切到新主。HRP同样同步会话表。4.3 组网③上下都接路由器全三层拓扑描述防火墙不再作为内网网关。内网核心路由器负责所有VLAN间路由。防火墙的上行接外网路由器下行接内网核心路由器。所有接口都是三层物理口点对点IP。两台防火墙的下行分别接内网路由器的不同接口或同一交换机但三层口上行类似。为什么这样组网防火墙不需要提供虚拟网关所以完全不用VRRP。冗余切换依靠动态路由协议。通过调整路由协议的metric如OSPF cost让内网和外网路由器优先选择主防火墙主故障时自动切换到备防火墙。这样避免了VRRP带来的额外虚拟IP更适合大型网络。关键配置# 下行接口接内网核心路由器 interface GigabitEthernet1/0/1 ip address 192.168.1.2 30 # 上行接口接外网路由器 interface GigabitEthernet1/0/2 ip address 200.1.1.2 30 # 运行OSPF ospf 1 area 0 network 192.168.1.0 0.0.0.3 network 200.1.1.0 0.0.0.3 default-route-advertise always cost 10 # 主墙宣告默认路由cost10 # 备墙上使用 ospf 1 hrp ospf-cost increase 65500 # 备墙所有接口cost自动增加双机热备如何工作VGMP仍然选举Active和Standby但不对VRRP做任何控制因为没有VRRP。主墙正常宣告低cost路由备墙宣告高cost路由。内网和外网路由器根据SPF算法选择主墙路径。当主墙故障OSPF邻居中断路由器重新计算路径切换到备墙备墙的cost虽然高但唯一可用。HRP仍然需要同步会话表保证TCP连接不中断。此模式要求防火墙与路由器之间必须运行动态路由协议且备墙必须预先建立邻居但邻居状态可能非Full实际上备墙OSPF邻居也是Full只是它宣告的路由cost高不被优选。主备的配置前置基础VGMP 与 VRRP 的默认关系在华为双机热备中VGMP 组设备级默认强制所有 VRRP 备份组接口级的状态与 VGMP 状态一致VGMP Active → 本机所有 VRRP 组都是 MasterVGMP Standby → 本机所有 VRRP 组都是 Backup如果要实现负载分担不同 VLAN 走不同防火墙就必须打破这个默认行为。打破的方法就是在 VRRP 配置中显式加上active或standby关键字这会让该 VRRP 组的状态与 VGMP 状态相反或独立。负载分担的核心思想是通过在不同 VRRP 组中手动指定active或standby让不同的 VLAN 或业务段的虚拟网关主备角色分布在两台防火墙上从而实现流量分流。主备模式则不需要手动指定active/standby完全由 VGMP 统一控制。注意active和standby关键字是 VRRP 配置中的参数用于指定该 VRRP 组希望成为 Master 还是 Backup它会覆盖 VGMP 的强制统一。核心分清两个概念主备模式一台转发所有流量另一台冷备。VRRP 配置可以不加active/standby让 VGMP 自动决定也可以手动指定但最终只有一台是 Master。负载分担模式两台都转发流量。VRRP 配置必须至少两个 VRRP 组例如不同 VLANFW1 在其中一组 active、另一组 standbyFW2 相反。第一条上下接交换机负载分担需要两组 VRRP例如 VLAN10 和 VLAN20或上行组和下行组。FW1 在组 A active组 B standbyFW2 在组 A standby组 B active。两台设备的接口 VRRP 配置中都出现了 active 和 standby因为每个设备上既有 active 的组也有 standby 的组。这就是老师说的“FW1和FW2的接口VRRP的配置都要出现active和standby”。主备模式只需要一组 VRRPFW1 active、FW2 standby或者都不加参数。老师后半句“FW1的接口的VRRP配置出现activeFW2的接口的VRRP配置出现standby”就是描述主备模式下 VRRP 的一种配置方式。第二条上接交换机下接路由器负载分担下行接交换机需要多个 VRRP 组配置同第一条的负载分担。上行接路由器不需要 VRRP靠 OSPF 的 ECMP 自动分担。老师那句话仍然是指下行 VRRP 的 active/standby 错开配置上行不适用。主备模式下行 VRRP 一组FW1 active、FW2 standby上行 OSPF 通过 cost 控制备墙 cost 调大。第三条上下接路由器负载分担默认就是负载分担ECMP。不需要任何 VRRP也不配置 active/standby。主备模式在备墙上配置hrp standby-device强制为备同时配置hrp ospf-cost increase 65500使其路由 cost 极大保证路由器不选它。