一、题目
在SNMP中应用如下ACL:则下列说法错误的是?
acl number 2000
rule 5 permit source 192.168.1.2 0
rule 10 permit source 192.168.1.3 0
rule 15 permit source 192.168.1.4 0
#
A. IP地址为192.168.1.5的设备可以使用SNMP服务
B. IP地址为192.168.1.3的设备可以使用SNMP服务
C. IP地址为192.168.1.4的设备可以使用SNMP服务
D. IP地址为192.168.1.2的设备可以使用SNMP服务
二、答案
A
三、解析
A选项错误:192.168.1.5这个地址没有ACL 2000中的规则5、10、15所匹配,所以会被ACL2000的隐藏规则所配置,而隐藏规则会拒绝所有。所以该设备无法使用SNMP服务
B选项正确:192.168.1.3设备会被ACL 2000的规则10所匹配
C选项正确:192.168.1.4设备会被ACL 2000的规则15所匹配
D选项正确:192.168.1.2设备会被ACL 2000的规则5所匹配
四、扩展–ACL匹配机制
ACL在匹配报文时遵循“命中即止”的原则。当然,ACL匹配过程中,还存在很多细节。比如,ACL不存在系统会怎么处理?ACL存在但规则不存在系统会怎么处理?为了对整个ACL匹配过程展开详细的介绍,本书作者梳理了一张ACL匹配流程图4-12,让大家理解ACL匹配机制。
从整个ACL匹配流程可以看出,报文与ACL规则匹配后,会产生 “匹配”或者“不匹配”两个结果。
匹配(命中规则):指存在ACL,且在ACL中查找到了符合匹配条件的规则。不论匹配的动作是“permit”还是“deny”,都称为“匹配”,而不是只是匹配上permit规则才算“匹配”。
不匹配(未命中规则):指不存在ACL,或ACL中无规则,再或者在ACL中遍历了所有规则都没有找到符合匹配条件的规则。切记以上三种情况,都叫做“不匹配”。
从上面的ACL匹配报文流程图中,可以看到,只要报文未命中规则且仍剩余规则,系统会一直从剩余规则中选择下一条与报文进行匹配。系统是根据什么样的顺序来选择规则进行报文匹配的呢?在回答这个问题之前我们先来看个例子。假设我们先后执行了以下两条命令进行配置:
#表示拒绝目的IP地址为1.1.0.0网段的报文通过 rule deny ip destination 1.1.0.0 0.0.255.255 #表示允许目的IP地址为1.1.1.0网段的报文通过,该网段地址范围小于1.1.0.0网段范围 rule permit ip destination 1.1.1.0 0.0.0.255 |
这条permit规则与deny规则是相互矛盾的。对于目的IP=1.1.1.1的报文,如果系统先将deny规则与其匹配,则该报文会被禁止通过。相反,如果系统先将permit规则与其匹配,则该报文会得到允许通过。
因此,对于规则之间存在重复或矛盾的情形,报文的匹配结果与ACL规则匹配顺序是息息相关的。下面就为大家介绍ACL定义的两种规则匹配顺序:配置顺序(config)和自动排序(auto)。
- 配置顺序
按照ACL规则编号从小到大的顺序进行报文匹配,编号越小越容易被匹配。后插入的规则,如果你指定的规则编号更小,那么这条规则可能会被先匹配上。
- 自动排序
是指系统使用“深度优先”的原则,将规则按照精确度从高到底进行排序,系统按照精确度从高到低的顺序进行报文匹配。
注:在自动排序的ACL中配置规则,不允许自行指定规则编号。系统能自动识别出该规则在这条ACL中对应的优先级,并为其分配一个适当的规则编号。
例如,在自动排序模式下的ACL 3010中,存在以下两条规则。
acl number 3010 match-order auto rule 5 permit ip destination 10.1.1.0 0.0.0.255 rule 10 deny ip destination 10.1.1.0 0.0.255.255 |
如果在ACL 3010中插入rule deny ip destination 10.1.1.1 0.0.0.0(目的IP地址是主机地址,优先级高于上图中的两条规则),系统将按照规则的优先级关系,重新为各规则分配编号。插入新规则后,新的排序如下。
acl number 3010 match-order auto rule 5 deny ip destination 10.1.1.1 0.0.0.0 rule 10 permit ip destination 10.1.1.0 0.0.0.255 rule 15 deny ip destination 10.1.0.0 0.0.255.255 |
可以看到,rule deny ip destination 10.1.1.1 0的优先级最高,排列最靠前