如何通过划分子网优化ACL的rule的数量

发布时间:  2015-01-07 浏览次数:  314 下载次数:  0
问题描述
某客户因业务的需要,需增加放开以下rule:
a)     rule xx permit ip source 192.168.4.96 0 destination 192.168.52.180~240
b)     rule xx permit ip source 192.168.4.114 0 destination 192.168.52.180~240
c)      rule xx permit ip source 192.168.4.115 0 destination 192.168.52.180~240
d)     rule xx permit ip source 192.168.4.64 0 destination 192.168.52.180~240
e)     rule xx permit ip source 192.168.4.67 0 destination 192.168.52.180~240

其中:192.168.52.180~240的网络号为192.168.52.0/24
现客户要求要精确匹配主机位180~240的每个地址,不允许permit匹配到除该范围内的其它地址。

当然这时我们可以有一个最好笨方法,把180-240每个地址写成目标为host地址的规则:
即:dstination 192.168.52.180-240 0.0.0.0   
这样必能达到需求,但是这样需要配置240-180=60条rule,那么如上需求共需要配置60x5=300条rule。如有更多相似的需求的话可想而知可能需要成千上万条rule,配置麻烦、容易出错,并且影响到匹配效率、消耗设备资源。
   

                               
解决方案
我们试下通过192.168.52.0/24通过划分子网是否可以满足需求:

192.168.52.0/24 即 dstination 192.168.52.0 0.0.0.255  //此规则包含了主机位为0-255范围内的地址,不满足需求。
192.168.52.128/25 即 dstination 192.168.52.128 0.0.0.127  //此规则包含了主机位为:128-255范围内的地址,不满足需求,但是较前一条规则来看,范围精确了些。
192.168.52.192/26 即 dstination 192.168.52.192 0.0.0.63  //此规则包含了主机位为:192-255范围的地址,此时同样不满足需求。

根据上述分析我们试下可不可以把180-240通过划分多个子网来实现?
把192.168.52.180后八位转换为2进制为:192.168.52.10110100     可以划分子网为:192.168.52.180/30  包含主机位为:180-183
把192.168.52.184 后八位转换为2进制为: 192.168.52.10111000   可以划分子网为:192.168.52.184/29    包含主机位为:184-191
把192.168.52.192后八位转为2进制为:192.168.52.11000000        可以划分子网为:192.168.52.192/27       包含主机位为:192-223
(此时如把子网划为:192.168.52.192/26 则包含主机位为192-255超过范围不满足需求。)
192.168.52.224后八位转为2进制为:192.168.52.11100000  可以划分子网为192.168.52.224/28               包含主机位为:224-239
(此时如把子网划为:192.168.52.192/27 则包含主机位为224-255超过范围不满足需求。)
  此时主机位为180-239的都已划分出来,因此最后只需划一条32位子网:192.168.52.240/32                           包含主机位为:240


所以,原来用60条rule规则实现的rule xx permit ip source x.x.x.x 0 destination 192.168.52.180~240可以用如下5条rule即可以实现:
rule xx permit ip source x.x.x.x 0 destination 192.168.52.180 0.0.0.3
rule xx permit ip source x.x.x.x 0 destination 192.168.52.184 0.0.0.7
rule xx permit ip source x.x.x.x 0 destination 192.168.52.192 0.0.0.31
rule xx permit ip source x.x.x.x 0 destination 192.168.52.224 0.0.0.15
rule xx permit ip source x.x.x.x 0 destination 192.168.52.240 0.0.0.0

END