在了解访问控制的概念时,我发现 ACL 使用反向掩码这一事实。但是在浏览思科网站上关于控制列表的解释时,我注意到在他们所有的解释中,他们将反掩码转换为原始掩码,然后执行必要的操作。
如果是这样的话,我们为什么还需要反向掩码呢?根据我的理解,反掩码只有在与 IP 地址进行位或运算时才有用。但我怀疑情况是否如此。那么使用反向掩码的真正原因是什么?
在了解访问控制的概念时,我发现 ACL 使用反向掩码这一事实。但是在浏览思科网站上关于控制列表的解释时,我注意到在他们所有的解释中,他们将反掩码转换为原始掩码,然后执行必要的操作。
如果是这样的话,我们为什么还需要反向掩码呢?根据我的理解,反掩码只有在与 IP 地址进行位或运算时才有用。但我怀疑情况是否如此。那么使用反向掩码的真正原因是什么?
反向位掩码比仅使用网络掩码更灵活。绝大多数应用程序只是将网络掩码反转为反向掩码,如下所示:
本质上,acl 101 会根据 /32 网络掩码阻止数据包。一种更简洁的表达方式是
ACL 102 只是表达第一个 ACL 的一种更紧凑的方式。
在 Cisco IOS 仅根据 CPU 功率切换所有流量并且没有内置内部 acl 模式优化的时代,由于 ACL 101 中的条目数量,ACL 101 会比 ACL 102 慢得多。现在,Cisco IOS 包括模式匹配引擎和高端平台中的一些重要优化甚至使用 ASIC 进行过滤……因此,将 ACL 表示为 102 更方便。
请记住,您的 IOS 配置仅与您的员工在凌晨 3 点出现故障时的状态一样好;因此,如果您尽可能巧妙地编写 ACL,那么在清晨危机期间您可能需要更多时间来调试。