666编程网

当前位置:主页首页 > 电脑教程 > >

ACL深入学习之ACL 的匹配过程

来源::未知 | 作者:admin | 本文已影响 人

什么叫“匹配”

匹配:指存在ACL,且ACL中有符合条件的规则。不论匹配的动作是“允许”或“拒绝”,都是匹配的。

不匹配:指不存在ACL,或ACL中无规则,或查找了ACL下所有规则都不符合匹配条件。

ACL 匹配顺序

ACL深入学习之ACL 的匹配过程

?

ACL 匹配顺序

首先查找用户是否配置了该ACL(因为有些业务可能允许引用不存在的ACL,例如QoS和OSPF)。

如果ACL存在,则从ACL中ID最小的规则开始查找,当找到一条符合匹配条件的规则时,结束查找。即规则ID越小越容易被匹配。

说明:规则通过规则ID来标识,规则ID可以由用户进行配置,也可以由系统自动根据步长生成。一个ACL中所有规则均按照规则ID从小到大排序。

如果规则ID由系统自动生成,规则ID之间会留下一定的空间,具体空间大小由“ACL的步长”来设定。例如步长设定为5, ACL规则ID分配是按照5、 10、 15……这样来分配的。如果步长值是2,自动生成的规则ID从2开始。这样做是为了便于用户在第一条规则前面插入新规则。配置文件中,规则按照规则ID的顺序排序的,并不是按规则配置顺序

规则排序模式

规则排序有两种模式:?Config模式和Auto模式。默认采用config模式。

1、如果是config模式,用户可以手工指定规则ID,也可以由设备根据步长自动分配。如果用户配置规则时指定了规则ID,则规则ID的大小决定该规则的插入位置。例如设备已有ID为5、10、 15的3条规则。 如果新建一条ID为3的规则,则这4条规则的显示顺序为: 3、5、10、15,相当于在规则5之前插入了一条规则。

如果用户配置规则时未指定规则ID, 则设备根据步长按用户配置的先后顺序自动分配规则ID。例如, 步长设定为5, 则设备按照5、 10、 15……来分配规则ID。如果步长是2, 自动生成的规则ID从2开始。 步长可以方便用户进行规则维护, 方便插入新规则。例如:默认步长为5,当用户不输入规则ID时,设备自动生成的第一条规则的ID就是5,当用户想在规则5前面插入新规则时,只需要输入比5小的规则ID即可,这样新规则就成了第一条规则。

因此,在config模式下,设备按照规则ID由小到大进行匹配,后插入的规则有可能先执行。

2、如果是auto模式,由设备自动分配规则ID,按照“深度优先”规则把精度最高的规则排在最前面。 可以通过比较地址的通配符来实现,通配符越小, 则指定的范围就越小。

比如129.102.1.1 0.0.0.0指定了一台主机:129.102.1.1,而129.102.1.1 0.0.0.255则指定了一个网段: 129.102.1.1~129.102.1.255,显然前者指定的主机范围小,在访问控制规则中排在前面。

具体标准如下:

– 对于基本ACL,直接比较源地址通配符,通配符相同的则按配置顺序;

– 对于高级ACL,首先比较协议范围,再比较源地址通配符,相同时再比较目的

地址通配符,仍相同时则比较源端口号的范围,仍相同则再比较目的端口号的范围,范围小的排在前面,如果目的端口号范围也相同则按配置顺序。

例子:
用户先后执行了下面两条命令行配置,
rule deny ip dscp 30 destination 1.1.0.0 0.0.255.255
rule permit ip dscp 30 destination 1.1.1.0 0.0.0.255
如果是config模式,则在ACL中看到的是:
acl 3000
rule 5 deny ip dscp 30 destination 1.1.0.0 0.0.255.255
rule 10 permit ip dscp 30 destination 1.1.1.0 0.0.0.255
如果是auto模式,则在ACL中看到的是:
acl 3000
rule 1 permit ip dscp 30 destination 1.1.1.0 0.0.0.255
rule 2 deny ip dscp 30 destination 1.1.0.0 0.0.255.255
假设收到一个报文, DSCP=30,目的IP=1.1.1.1,如果配置的ACL是config模式,该报文
会被丢弃;如果配置的是auto模式,该报文会正常通过。

ACL 匹配原则总结

  • 按照规则ID由小到大的顺序处理列表中的rule语句。
  • 处理时,不匹配规则就一直向下查找,一旦找到匹配的语句就不再继续向下执行。
  • 所以,相同的规则,顺序不同,结果可能不同。
  • lRule语句有两种动作:要么是拒绝(deny),要么是允许(permit)。
  • ACL有两种匹配结果:要么是匹配(match),要么是不匹配(miss)
  • 不匹配规则(miss)包括三种情况
  • – ACL中存在rule,但未匹配任何rule
  • – ACL中没有任何rule
  • – ACL不存在

分享到: 更多

热榜阅读TOP

本周TOP10

WIN7系统下如何连接友讯路由器详解

WIN7系统下如何连接友讯路由器详解

今天的主题是Win 7系统如何连接D-LINK路由器,XP系统想必很多人都知道如何操作,但Win 7系统对于电脑知识...