近期在做一个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表数,这个已经通过实验证明(查看 )。
后续查询cisco的ios bug库,发现如下bug。说明上述情况为IOS的一个bug:
本文转自 chris_lee 51CTO博客,原文链接:http://blog.51cto.com/ipneter/299231,如需转载请自行联系原作者