FAQ-什么是MA5200G的ACL顺序排序和自动排序

发布时间:  2012-07-26 浏览次数:  138 下载次数:  0
问题描述
什么是MA5200G的ACL顺序排序和自动排序?
告警信息

处理过程
1、 顺序匹配
配置顺序顾名思义就是先配置的规则在前面,后配置的规则在后面。配置顺序的ACL的规则在手工指明规格编号时,按照编号大小由小到大进行排序。编号小的靠前面且被优先被命中。不指定编号时根据步长由系统从小到大自动生成规则编号。如果输入rule编号与已有的rule相同,新配置的rule会替代原编好相同的rule。使用display acl命令就可以看出是哪条规则首先被命中。显示时,无论是哪种排序,列在前面的规则首先生效。
例子:
[MA5200G-acl-basic-2030]rule 5 deny source 10.10.0.0 0.0.0.255
[MA5200G-acl-basic-2030]rule 3 deny source 10.10.0.0 0.0.255.255
以上是在ACL视图下,先配置rule 5,后配置rule 3但是由于3比5小,所以display acl时,rule 3的还是排在前面比rule 5优先被命中。
[MA5200G-acl-basic-2030]display acl 2030                                        
Basic ACL  2030, 2 rules                                                        
Acl's step is 5                                                                 
 rule 3 deny source 10.10.0.0 0.0.255.255 (0 times matched)                     
 rule 5 deny source 10.10.0.0 0.0.0.255 (0 times matched)       
2、自动排序匹配
自动排序的原则是按深度优先进行排序匹配的。什么叫深度优先?说的简单点就是:范围越精确(越小)的规则,优先级越高,排在前面(对照FIB)。由于自动排序时是不容许输入rule的编号的,所以看到的ACL的编号是系统自动排序后根据步长自动生成的,注意这一点与上面的顺序匹配不一样。
具个例子,在ACL 3060视图中输入如下两条命令:
[MA5200G-acl-adv-3060]rule deny ip source 10.0.0.0 0.0.255.255 destination any
[MA5200G-acl-adv-3060]rule deny ip source 10.0.0.0 0.0.0.255 destination any
根据自动排序匹配原则,在网段匹配更精确所以排在前面,有点象路由表的最长匹配原理。反码中的0越多,匹配越精确。优先级就越高。这个例子中虽然第一个先输入,但是由于其是个B网段,精确显然没有第二个输入的C网段精度高,所以系统生成顺序时就排在了后面,如下所示。当然如果两个规则不具有可比性,则按配置顺序。
[MA5200G-acl-adv-3060]display acl 3060                                          
Advanced ACL  3060, 2 rules, match-order is auto                                
Acl's step is 5                                                                 
 rule 0 deny ip source 10.0.0.0 0.0.0.255 (0 times matched)                     
 rule 5 deny ip source 10.0.0.0 0.0.255.255 (0 times matched)                   
还要注意的是,上述例子的协议号都是IP。当自动匹配,并使用advanced ACL时,优先匹配协议号,具体协议号(如TCP、UDP协议)优先于IP协议,其次才是按照是范围越精确(越小)的规则。上述两个都相同后,按照配置顺序(各个具体协议号之间无优先次序)。具个例子:
在advanced ACL中输入两条命令:
[MA5200G-acl-adv-3060]rule deny ip source 10.0.0.0 0.0.0.255 destination any
[MA5200G-acl-adv-3060]rule deny tcp source 10.0.0.0 0.0.0.255 destination any
第一条输入的协议号是IP,第二条协议号是TCP。通过下面的display acl看出:有TCP协议的命令排在前面,有IP命令的排在后面。 
[MA5200G-acl-adv-3060]display acl 3060                                          
Advanced ACL  3060, 2 rules, match-order is auto                                
Acl's step is 5  
 rule 0 deny tcp source 10.0.0.0 0.0.255.255 (0 times matched)                  
 rule 5 deny ip source 10.0.0.0 0.0.255.255 (0 times matched)                   
自动匹配时,如果协议是TCP或UDP。具体端口优先于没有指定端口,各个具体端口号之间无优先次序。
根因

END