经典防火墙的操作指导书
防火墙最重要的功能之一就是根据访问控制策略来决定是否允许一个数据流通过。借助VRP已有的强大的ACL功能,我们很容易做到这一点。Eudemon上在ACL的配置方面基本同原有的路由器一致,但是ACL的类型同路由器稍有不同。在路由器上,ACL由基本ACL、扩展ACL和接口ACL三种组成,基本ACL和扩展ACL又分为数字型和命名型两种。在防火墙上,接口ACL被取消了,主要原因是颗粒度太粗,而且难以适应在安全域这个概念下应用。
防火墙新添加了一个基于MAC地址进行过滤的ACL策略组,这个模块是随着透明模式引入的。在防火墙上,只有这个类型的规则组在接口下应用的,主要是由于MAC地址同防火墙的接口相关的比较紧密。在接口下应用基于MAC的ACL规则时,inbound/outbound的概念同路由器下保持一致,inbound指报文由接口进入防火墙,outbound指报文由接口离开防火墙。这同防火墙域间的inbound/outbound概念是完全不一致的,需要注意。
2.4.2 ACL加速查找
路由器上的ACL模块,每个组下面只支持128条规则,全部规则的总数为4000条,而且每个方向上只能配置一个ACL规则组。这对于专门用作网络安全屏障的防火墙来说是完全不够的。因此,在Eudemon200上,全部规则的总数扩展为20000条,每个规则组下配置规则的上限也是20000条。在应用中,如果使用原有的线性搜索算法,不要说这么多条规则,就是每个规则组下有1、2000条规则,报文匹配的性能也会大大的下降。由此,在防火墙上,我们引入了ACL快速查找算法,将线性搜索变为固定次数匹配。在规则数量大的情况下,极大地提高了规则匹配速度。
ACL快速查找使用了RFC算法,将ACL规则的查找转化为静态数组查找,通过将报文的特征字转换为数组下标,可以达到查找速度同规则数无关的效果。
ACL加速查找对于使用大量ACL规则的情况下,对于防火墙搜索性能的提升是毋庸置疑的。由于我们设备上面所有需要对流进行分类的地方实际上都使用了ACL功能,因此,一旦启动了加速查找功能,NAT、统计、QoS等等多个模块都将受益。但是,ACL加速查找功能也有其局限性,不能适用于所有场合,这一点需要在配置的时候严格注意。
1. ACL快速查找功能从算法上来讲对内存的消耗是非常大的,尤其是在产生快速查找数
据结构的过程中。算法对内存的消耗有如下特性:对IP地址的变化不敏感,对于端口
协议以及规则组等变化非常敏感。也就是说,如果将所有规则看成一个整体,IP地址
变化频繁或相关性很小,对算法的影响较小,但是如果端口或协议号变化剧烈,那么
算法在加速过程中很可能因为内存耗尽而失败。算法之所以会有这样的特性,主要是
在实际应用中,ACL规则中经常用到的端口号和协议号的范围是有限的,而IP地址的
变化却比较频繁,因此对IP地址的处理使用了定长前缀匹配的方法进行优化,而端口
协议等方面只是单纯的使用RFC算法导致的。不过此功能在真正的应用中耗尽内存失
败的可能性很小,只有在测试的极端环境下出现,还是可以放心使用的。
所谓相关性是指IP地址以及端口号等是否范围互相重叠,重复性越高,我们称之为相