上回我们说到,令狐冲发现,NP处理器维护表项的能力不足以支撑防火墙需要的海量表项查找,而DRAM有低廉的成本,容纳大表项不成问题。
但是,怎么样能把表项放进内存条呢?
令狐冲面临两个选择:
令狐冲果断选择了2。
当然,由于令狐冲有个消息灵通的女朋友,他很快得知了,江湖上已经有多核处理器实现的路由器——
令狐冲拿到路由器,进行程序的修改。一番修改以后,基于MIPS多核处理器的防火墙成功诞生了。这款在48个核MIPS处理器上运行的防火墙由于内置了32GB的RAM,可以支持几千万会话,带机量可以达到几十万台。
但是,令狐冲拿着设备,去与师傅师娘汇报的时候,却被浇了一盆冷水——
岳不群问:
徒弟,你说,如果在华山派网络核心的位置上部署了这台防火墙,一旦防火墙故障,引起业务中断,该如何处理?
令狐冲脱口而出:
像交换机一样,双机部署即可!
旁边的劳德诺冷笑一声:
令狐大侠,交换机双机做堆叠的时候,MAC,ARP和FIB表项是不是会同步?
令狐冲答道:
用VRRP方式,做冗余网关如何?
劳德诺白眼看天:
你去测试一下就知道了。
令狐冲一拍脑袋,明白了。
我们看下图:

如图,主机100.1.1.100和200.1.1.100之间部署了防火墙A和防火墙B。
主机100.1.1.100通过端口41316向200.1.1.100的443端口,发起HTTPS访问,中间经过防火墙 FW A,在FW A上也建立了会话:
100.1.1.100:41316 -> 200.1.1.100:443 @TCP
此时,防火墙FW A由于某些原因停止工作,由于防火墙工作在VRRP方式,主机100.1.1.100和200.1.1.100之间的流量会经过防火墙B:

问题来了,由于100.1.1.100:41316和200.1.1.100:443之间的连接已经建立,因此,这两个端口之间后续交互包是不带TCP三次握手标记的。
FW B无法找到这两个端口之间交互的会话
100.1.1.100:41316 -> 200.1.1.100:443 @TCP
而由于这两个端口之间后续交互包没有TCP三次握手标记,FW B也无法重建这一会话,后果是导致二者之间连接中断。
如果,这是网上银行的交易业务,后果不堪设想……
令狐冲回到实验室,开始对防火墙做下一步的改进——
安全双修大法!