故障转移
在网络设计中对于防火墙这样的设备一般会做冗余,即网络中同时连接两台(或更多)防火墙,其中一台正常工作,另一台处于待机模式,以便在工作的防火墙抽风时及时顶上(Active/Standby模式)。待机设备接替故障设备工作的行为称为故障转移(Failover)。这两台防火墙的规则设置当然应该是一模一样的。
什么是Stateful Failover
字面意思是“带状态的故障转移”。问题在于:
- 什么是“状态”?
- Stateful Failover工作原理
- 为什么需要Stateful Failover?
状态
正常工作中的防火墙(Active)在转发包的过程中会在内存中储存会话信息,包括TCP/UDP会话、NAT表、ARP表等。“状态”指的便是这些信息。
Stateful Failover工作原理
※ 插图引用元:https://www.infraexpert.com/study/security25.html
在拥有Stateful Failover功能的一组防火墙设备之间,Active设备会一边工作一边实时向Standby设备同步“状态”信息。Active和Standby设备之间一般有专门独立的线路用于同步这些信息,以及相互监视状态(死活監視)。
当Active设备挂掉的时候,检测到这一情况的Standby设备会继承挂掉的Active设备的IP和MAC地址,摇身一变成为Active设备;同时由于同步了挂掉设备的“状态”,新世界的卡密新的Active设备得以在不切断连接的情况下继续原先Active设备挂掉时的会话。
为什么需要Stateful Failover?
为了用户体验吧。虽说断一下无伤大雅(也不一定。想象一下正在通过SSH给服务器升级内核的时候断了。。),但既然能实现这种丝滑的切换为什么不这么做呢?当然要是你用的防火墙没这个功能那就当我什么都没说……