为什么IP转发中的访问控制列表使用反掩码?

当我正在通过访问控制的概念时,我遇到了ACL使用反掩码的事实。 但是在经历cisco网站上有关控制列表的解释的同时,我注意到在所有的解释中,他们将逆掩码转换为原始掩码,然后做必要的。

如果是这样,为什么我们需要反面罩? 根据我的理解,反掩码只有在与IP地址进行“或”操作时才有用。 但是我怀疑是这样的。 那么使用反掩模的真正原因是什么?

反位掩码允许您更灵活地使用networking掩码。 绝大多数应用程序只是将一个networking掩码转换为一个反向掩码,如下所示:

! Deny tcp/25 traffic from all sources going to addresses ! in the seqence matching [172.16.0.4, 172.16.1.4, 172.16.2.4, etc...] ip access-list 101 deny tcp any 172.16.0.4 0.0.0.0 eq 25 ip access-list 101 deny tcp any 172.16.1.4 0.0.0.0 eq 25 ip access-list 101 deny tcp any 172.16.2.4 0.0.0.0 eq 25 ip access-list 101 deny tcp any 172.16.3.4 0.0.0.0 eq 25 ip access-list 101 deny tcp any 172.16.4.4 0.0.0.0 eq 25 ip access-list 101 deny tcp any 172.16.5.4 0.0.0.0 eq 25 ! keep repeating the pattern all the way to 172.16.255.4 

基本上,acl 101根据/ 32掩码阻止数据包。 expression同样的更紧凑的方式是

 ! 255 in the third octet of the wildcard mask matches from 0-255 ip access-list 102 deny any 172.16.0.4 0.0.255.0 eq 25 

ACL 102仅仅是expression第一个ACL的更简洁的方式。

在Cisco IOS仅根据CPU电源切换所有stream量并且没有内置的内部acl模式优化的时代,由于ACL 101中的条目数目,ACL 101将比ACL 102慢得多。现在,Cisco IOS包括在模式匹配引擎和高端平台甚至使用ASIC进行过滤时,一些显着的优化…所以将ACL表示为102更方便。

请记住,你的IOSconfiguration和早上凌晨3点一样好, 所以如果你尽可能聪明地写ACL,那么在凌晨的危机中你可能需要更多的时间去debugging。