防火墙高可靠技术(双机热备)
- VRRP:负责的单个接口的故障检测和流量引导。每个VRRP备份组拥有一个虚拟的IP地址,作为网络的网关地址;在VRRP主备倒换时通过发送免费的ARP来刷新对接设备的MAC地址转发表来引导流量。
- VGMP:将系统中所有的VRRP备份组集中管理,控制状态统一切换,保证出现故障时上下行流量能同步切换到备用防火墙。
- HRP:负责双机之间的数据同步(华为专用)
1、VRRP
(1)VRRP状态切换
当Active设备出现接口、链路或整机故障时:
- Active设备接口上的VRRP备份组状态进入initialize
- Standby设备接口上的VRRP备份组状态切换到Active,发送免费ARP
- 交换机上的MAC表刷新,出接口指向备用设备
- PC发出的业务流量被引导到备用设备接口上进行转发
(2)VRRP不足:
- 当防火墙上下行业务的端口上都配置了VRRP备份组时,这两个VRRP备份组是独立运行的,可能出现上下行两个VRRP备份组状态不一致的情况。
- 例如:主用网关防火墙内网侧接口故障,VRRP倒换到备用网关防火墙,因此出去的溜溜从备用网关的防火墙上转发。但是对于外网侧的VRRP,主用网关防火墙上的VRRP依然是主,因此回程流量仍然会送到主用网关的防火墙上,但业务流量无法送回内网,导致业务中断。
附:产生原因
2、VGMP
(1)基本原理:
<1> 由于VRRP封装的VGMP报文是组播报文,不能跨越三层传输设备,因此在双击设备组网时,要求两台设备的心跳线要么是直连的,要么是通过二层交换机进行互联,不能通过三层设备互联。当防火墙上下行设备是路由器时,要求两台防火墙必须有直连的接口作备份通道。为此,USG6000V开发了另一种VGMP的报文封装格式。
<2> 此时VGMP的报文是单播报文。在原有的IP报头上增加了UDP头和VGMP扩展头,VGMP内部报文的格式没有变化。
(2)状态机:
VGMP管理组的主备状态决定了双机热备组网中的防火墙设备的主备状态,因此VGMP管理组的状态也可看做是防火墙设备的状态。
- 主备模式:active -- initialize -- standby
- 负载模式:active -- initialize -- standby -- load balance
(3)状态切换:
两台防火墙之间的VGMP状态主备切换的具体交互过程及动作分为以下三种情况:
- 因接口或链路故障引起的切换
这一类故障发生时,主设备通过VGMP报文将状态信息和本端优先级立即发送到备用设备,备用设备比较报文中的优先级和本地优先级,如果满足切换条件将立即转换,瞬间完成业务流量的切换。
- 因整机或心跳链路故障引起的切换
这种故障发生时,由于主设备无法发送状态通知消息到备用设备,因此只能依靠备机检测到心跳报文(VGMP hello报文)超时才能发现故障,因此切换时间为三个心跳报文周期。
- 抢占流程
故障恢复后的切换流程,由于备用设备处于正常转发状态,等主机故障回复后再切换回去,因此基本上不会影响业务。
(4)状态切换三大原则:
- 每个接口down时,VGMP管理组优先级降低2,计算公式为:VGMP管理组优先级 = VGMP管理组初始优先级 - N*2
- 每台设备的VGMP管理组初始状态由用户指定(Active或Standby),Active优先级为65001,Standby的优先级为65000
- VGMP管理组的状态决定了该设备的主备状态,也决定了VGMP管理组成员(VRRP备份或接口)的状态。
附:VGMP报文封装为什么不用TCP?
- 简单高效:UDP协议不需要建立连接,不需要维护复杂的状态信息,因此在传输效率上比TCP协议高。
- 实时性强:UDP协议不需要等待对端的响应信息,因此在实时性要求高的场景下,UDP协议更为适用。
- 去除不必要的重传和拥塞控制:VGMP是在数据中心内部使用的协议,不涉及跨网络的传输,因此不需要TCP协议的重传机制和拥塞控制机制。
综上所述,VGMP使用UDP协议可以提高传输效率和实时性,并且去除不必要的重传和拥塞控制,适用于数据中心内部的虚拟网关管理。
3、HRP(Huawei Redundancy Protocol)
(1)产生:
- 状态检测防火墙对于每一个会话连接都有一个会话表项与之对应,主用设备处理业务中创建了很多动态会话表项;而备用设备没有流量经过,因此没有创建会话表。如果备用设备切换为主用设备前,会话表项没有备份到备用设备,则会导致先前经过的主用设备的业务流量因为无法匹配会话表而中断。为了实现主用设备和备用设备平滑切换,必须在中用和备用设备间备份关键配置命令和会话表状态信息,为此防火墙引入HRP协议,实现防火墙双机之间动态状态数据和关键配置命令的实时备份
- 双机热备组网中,指定心跳线作为专门的备份通道,用于备份配置命令和状态信息
(2)数据备份范围:
(3)备份通道状态:
当设备两边均对应配置心跳口后,防火墙会判断心跳接口的物理协议状态。
心跳链路一共存在5个状态:
- running:正常运行
- ready:正常运行。此接口为备用备份通道,当前未使用。
- peerdown:本端正常,但是收不到对端的心跳报文。
- invalid:未指定心跳口的ip地址,心跳口工作在二层。
- down:心跳接口的物理状态和协议状态均为down
4、双机热备组网
(1)防火墙双机热备组网必须首先解决两个问题:
- 防火墙必须能够检测到链路和设备故障
-
防火墙检测到故障后能实现流量平滑切换
(2)工作流程:
(3)双击热备组网的建立和运行需解决以下5个关键问题:
- 如何设定设备的主备状态?
- 如何监控并发现接口或设备故障?
- 发现故障后,如何保证设备之间可平滑切换?
- 发生情况和故障后,如何引导流量?
- 如何进行信息同步,保证主备切换后业务不中断?
5、双机热备组网拓扑搭建及配置 --- 主备备份
(1)拓扑图搭建:
(2)配置IP地址:
- PC1:
- SW1:
[SW1]vlan 2
[SW1-vlan2]vlan 3
[SW1-vlan3]q
[SW1]int vlan 2
[SW1-Vlanif2]ip add 10.1.1.1 24
[SW1]int Vlan 3
[SW1-Vlanif3]ip add 10.1.2.1 24
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]port link-type access --- 接口类型为access
[SW1-GigabitEthernet0/0/1]port default vlan 3 --- 接口划入vlan
[SW1]int g0/0/2
[SW1-GigabitEthernet0/0/2]port link-type access
[SW1-GigabitEthernet0/0/2]port default vlan 3
[SW1]ip route-static 0.0.0.0 0 10.1.2.254 --- 配置缺省路由
- PC2:
- SW2:
[SW2]vlan 2
[SW2-vlan2]vlan 3
[SW2]int vlan 2
[SW2-Vlanif2]ip add 100.1.2.1 24
[SW2]int vlan 3
[SW2-Vlanif3]ip add 100.1.1.1 24
[SW2]int g0/0/3
[SW2-GigabitEthernet0/0/3]port link-type access --- 接口类型为access
[SW2-GigabitEthernet0/0/3]port default vlan 2 --- 接口划入vlan
[SW2]int g0/0/1
[SW2-GigabitEthernet0/0/1]port link-type access
[SW2-GigabitEthernet0/0/1]port default vlan 3
[SW2]in g0/0/2
[SW2-GigabitEthernet0/0/2]port link-type a
[SW2-GigabitEthernet0/0/2]port default vlan 3
[SW2-GigabitEthernet0/0/2]q
[SW2]ip route-static 0.0.0.0 0 100.1.1.254 --- 配置缺省路由
(3)配置防火墙的IP地址以及静态路由:
<1> FW1:
- 配置接口IP地址
- 配置静态路由
<2> FW2:
- 配置IP地址
- 配置静态路由
(4)新建安全策略
(5)配置心跳线 --- 将FW1的安全策略同步给FW2
FW1和FW2之间拉一条心跳线
- FW1:
- FW2:
- 将心跳线划入trust区
(6)配置双机热备
- FW1:
- FW2:
(7)同步配置:
测试:查看FW2上是否有了FW1上的安全策略
同步成功
(8)查看路由:
(9)测试:
- ping
- 断开SW1和FW1的连线
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]shutdown
查看链路切换情况:
切换成功
- 恢复SW1的g0/0/1接口
[SW1-GigabitEthernet0/0/1]undo shutdown
6、双机热备组网拓扑搭建及配置 --- 负载分担
(1)拓扑搭建:
(2)配置新接PC端IP地址:
- PC3:
- PC4:
(3)交换机SW1和SW2上进行配置:
- SW1:
[SW1]vlan 4
[SW1-vlan4]q
[SW1]int vlan 4
[SW1-Vlanif4]ip add 10.1.4.1 24
[SW1-Vlanif4]q
[SW1]int g0/0/4
[SW1-GigabitEthernet0/0/4]port link-type access
[SW1-GigabitEthernet0/0/4]port default vlan 4
[SW1]ip route-static 100.1.4.0 24 10.1.2.251 --- 静态路由
- SW2:
[SW2]vlan 4
[SW2-vlan4]q
[SW2]int Vlanif 4
[SW2-Vlanif4]ip add 100.1.4.1 24
[SW2]int g0/0/4
[SW2-GigabitEthernet0/0/4]port link-type access
[SW2-GigabitEthernet0/0/4]port default vlan 4
[SW2]ip route-static 10.1.4.0 24 100.1.1.251 --- 静态路由
(4)在FW1上配置静态路由(上步已经配置双机热备,FW2上直接同步,无需配置)
同步后在FW2上查看:
同步成功
(5)配置两组虚拟网关:
- 将双机热备的运行模式改为负载分担
- FW1:
- FW2:
- 检测负载分担配置情况:
(6)开启ping服务,FW1端开启,另一端自动同步:
(7)增加安全策略(FW1端配置):
(8)测试:
<1> 链路正常
- PC1:
- PC4:
<2> 断开SW1的g0/0/1:
[SW1]int g0/0/1
[SW1-GigabitEthernet0/0/1]shutdown