注: 华为的高端交换机基本上存在此现象

(1)6506R 下发防病毒ACL生效,但是却没有看到匹配数
现象描述:
6506R 下发防病毒ACL生效,但是用dis acl config all却没有匹配数。
原因分析:
只有那些上层协议配置的报文,例如arp,ospf的hello,bgp等等,可以上cpu处理的报文,被acl匹配后才可以用命令dis acl显示命中的数量。
而防病毒的acl,是接口的芯片直接就处理了的。65为了提高性能,这些接口芯片处理的acl不会统计数量出来。 在接口上加traffic-statistic ip-group acl号码 的命令就可以统计出来acl的匹配数量了。
处理过程:
这里本来就显示不出来,除非在接口上配了traffic-statistic ip-group acl号码。才可以用dis acl config all看到acl的命中的数量。
 

(2)交换机实现原理特性致使在S6503上使用display acl config all命令时发现许多已生效的rule匹配次数为0
现象描述:
组网简图:  用户pc机(192.168.10.9)---S3528G---(192.168.1.3)S6503
用户PC机的网关在S3528G上,S6503与S3528G之间有可达路由。在S6503上配置了acl如下:
  acl number 3000
rule 0 deny icmp source 192.168.10.9 0 destination 192.168.1.3 0
rule 1 permit ip source 192.168.10.0 0 destination 192.168.1.3 0
   并在S6503与S3528相连的接口的入方向引用此ACL,配置完成后,从PC机上ping S6503的接口地址192.168.1.3/24不通,但是可以telnet该地址登录设备,说明ACL配置生效了。
    再使用dis acl config all命令查看,结zizi果如下:
Advanced ACL  3000, 2 rules,
rule 0 deny icmp source 192.168.10.9 0 destination 192.168.1.3 0 (0 times matched)
rule 1 permit ip source 192.168.10.0 0 destination 192.168.1.3 0 (8 times matched)
  从输出的结果可看出,rule 0匹配次数为0,而rule 1匹配次数为8。但是rule 0与rule 1明明都生效了并且经过了验证,为什么有一条无匹配次数,另一条有匹配次数呢?
原因分析:
与交换机的实现原理有关:
   对于通过软件进行ACL匹配的操作,如:telnet,策略路由等,设备能够记录该条rule匹配的次数。(由于配置并引用acl 3000,共从pc机telnet登录S6503 8次,所以rule 1的匹配次数为8次)
   而在进行包过滤的时候,交换机是通过硬件芯片来操作的,由于目前的芯片在做过滤时没有相应的计数器,所以对于此类过滤操作无法记录匹配次数。这就是为什么rule 0的匹配次数为0的原因(对ICMP报文的过滤是通过硬件实现的)。
建议与总结:
使用display  acl  config all查看rule匹配次数时,只有telnet、策略路由等通过软件实现的操作可正确显示,而通过硬件完成的报文过滤等操作是无法显示出来的,在实际应用中需要注意。