C7609之ACL匹配问题

近期在做一个ACL的时候,由于匹配同一段目的地的端口太多,所以就采用了多端口写于同一个ACE的办法。如下:
ip access-list extended fromv20 
10 permit tcp any 1.1.1.0 0.0.0.255 eq 11 22 33 44 55 66 77 88 
20 permit tcp any 1.1.1.0 0.0.0.255 log 
int vlan 20 
ip access-group fromv20 in 
log ip access-list cache in 
end
结果发现很多tcp66端口匹配的log记录,如下。但是10的ACE根本就没有打log,由于log没有输出是匹配的哪条ACE,所以不能明确的确定此记录是匹配的10还是20。不过,我在2960的IOS上做了将多个tcp端口集合写在一条ACE是可以的。 
1469305: Mar 15 21:15:41.098 CST: %AFLSEC-6-OALP: permitted tcp 2.2.2.2(38315) -> 1.1.1.1(66), 1 packet 
1469306: Mar 15 21:15:41.854 CST: %AFLSEC-6-OALP: permitted tcp 2.2.2.2(36761) -> 1.1.1.1(66), 1 packet
将符合条件的多个端口写在一条ACE仅有如下优点: 
1,减少ACE条目便于维护管理; 
2,不能减少TCAM的hash表数,这个已经通过实验证明(查看http://ipneter.blog.51cto.com/341177/283556)。
后续查询cisco的ios bug库,发现如下bug。说明上述情况为IOS的一个bug: 
C7609之ACL匹配问题









本文转自 chris_lee 51CTO博客,原文链接:http://blog.51cto.com/ipneter/299231,如需转载请自行联系原作者

上一篇:手写css按钮组


下一篇:MySQL内核月报 2014.08-TokuDB· 数据结构·Fractal-Trees与LSM-Trees对比