前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >网络设备硬核技术内幕 防火墙与安全网关篇 (六) 安全双修大法 下

网络设备硬核技术内幕 防火墙与安全网关篇 (六) 安全双修大法 下

作者头像
用户8289326
发布2022-07-27 21:28:31
6610
发布2022-07-27 21:28:31
举报

上回说到,令狐冲开发完成了防火墙的HA (High Availability) 功能,实现了防火墙的会话同步,这样能够在一台防火墙故障时,另一台防火墙无缝接管所有流量,只丢失少量的数据包。

可是,在测试防火墙新建连接性能时,令狐冲却发现,测试结果与关闭HA功能时相差甚远。

原来,令狐冲忘记了一个重要的问题。

防火墙在同步会话时,需要携带下面这些信息:

五元组 (源IP,目的IP,源端口,目的端口,协议类型);

NAT后的五元组;

VRF——由于不同VRF的地址可以重叠,避免混淆;

以及会话其他处理字段。

这样一来,算上每个会话数据包的包头开销,会话同步的网络本身就成为了限制会话同步的瓶颈……

解决之道也很简单,令狐冲修改了驱动代码,让会话同步可以通过聚合的以太网进行就搞定了。

然而,一波未平一波又起。

令狐冲测试了一下防火墙二层组网,发现一个新的问题:

如图,防火墙工作在二层模式,本身接口上没有IP地址,对外呈现一个具有状态检测防火墙功能的网桥。

由于FW A,FW B,SW X和SW Y构成了环路,因此,需要使用STP协议阻断环路冗余的接口构成生成树:

当然,这种组网有着交换机生成树同样的弊病:收敛时间长,接口带宽至少浪费一半。

令狐冲把交换机堆叠功能相关的代码移植到防火墙上,让两台防火墙能够实现堆叠,控制平面虚拟化为一台,但是,令狐冲发现,连基本的会话建立功能都无法正常工作……

原来,问题出在这里:

由于SW X和SW Y都是交换机,它们到两台防火墙的线路使用端口聚合方式配置。交换机在端口聚合情况下,数据包的分流是基于IP的——那么,这有可能造成TCP SYN和TCP SYN-ACK被送到堆叠组的两台不同的防火墙上。

假设防火墙A收到了TCP SYN包,并且建立了会话,而回程的TCP SYN-ACK却无法保证送到防火墙A。如果SYN-ACK被送到防火墙B,它将被丢弃,导致这条会话将永远无法建立。

因此,在防火墙使用堆叠模式(又称为Active-Active模式)实现双机热备的时候,非对称会话建立是一个非常必要的功能。

它可以让两台防火墙同步会话状态机信息,而不是简单地同步会话的增删。这样,令人羡慕的交换机堆叠功能也可以在防火墙上实现了。

令狐冲搞定了防火墙的双机热备功能,非常开心,很快,新型的防火墙在华山派的网络出口和网络核心都部署了,岳不群非常开心。

然而,随着华山派的发展壮大,新的挑战又来临了——

敬请期待下期。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅云霓的技术小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档