上回说到,令狐冲被劳德诺激吻诘问一番,灰头土脸地回到实验室继续钻研防火墙。
令狐冲想到,交换机可以堆叠,防火墙其实也可以——
原来,多台交换机堆叠时,在没有跨设备流量的情况下,堆叠通道实际上只传输三类信息:
一、管理平面。在每个堆叠组中有一台“拐子”(master),“拐子”管理的马仔(slave)需要从“拐子”同步配置,这些信息通过堆叠接口同步;
二、信令平面。堆叠组中马仔们需要向“拐子”定期上报是否活着,这叫做心跳信令;
三、转发平面。堆叠组中任意一个成员学习到MAC,ARP和FIB表项,都需要在堆叠组内同步;
那么,对于防火墙而言,除了同步这三类信息,还有最重要的信息——转发表项。
古巴比伦哲学家克鲁巴枯宁指出:转发表项是网络设备的灵魂,而会话表则是防火墙的灵魂,离开灵魂,肉体便是一具腐朽的躯壳……
因此,防火墙做双机或多机集群时,最重要的就是会话表项的同步。
由于防火墙会话的建立采取的是基于TCP三次握手包,UDP两次往返学习的机制,是一个动态建立和删除的过程(TCP四次挥手拆除会话,UDP超时拆除会话),会话表项的建立和拆除,也需要在集群内同步。
也就是说,在防火墙建立和拆除会话的流程中,需要增加一步——把会话信息同步到集群内其他成员。
除此之外,如果有一台成员重启,那么,它应当从主成员获取到所有的会话信息——主成员需要把所有的会话信息打包传递给它。
很快,令狐冲修改了防火墙代码,开始测试。
首先,把防火墙A和防火墙B通过以太网接口直接连接,在防火墙A上建立会话:
http://100.1.1.100:41316 -> 200.1.1.100:443 @tcp
防火墙A将会话同步到防火墙B。
此时,将防火墙A关闭:
由于防火墙B上也有了会话
http://100.1.1.100:41316 -> 200.1.1.100:443 @tcp
主机100.1.1.100:41316到200.1.1.100:443的数据传输可以照常进行,当然不可避免的是VRRP切换或跨设备LCAP切换时的少量丢包。
令狐冲很开心,再对防火墙进行新建连接性能的压力测试,组网如下图:
但是,令狐冲发现,新建连接速率却大大低于单机测试的新建连接速率。
这是为什么呢?
请看下回分解。