思科ACL不连续通配符掩码的计算
access-list 120 permit ip 10.0.0.0 0.0.0.191 any
这条ACL看似简单,却又复杂,因为正常我们见到的通配符掩码都是诸如0.0.0.255(255.255.255.0)/0.0.255.255(255.255.0.0)/0.0.0.127(255.255.255.128)等等,那这个0.0.0.191又是什么鬼?
要知道0.0.0.191匹配到了什么地址,这就要从通配符掩码说起,在ACL语句中,当使用地址作为条件时,地址后面跟的都是通配符掩码,通配符掩码决定了地址中哪些位是需要精确匹配,哪些位不需要匹配。通配符掩码是一个32位数,采用点分十进制方式书写,匹配时,“0”表示检查的位、“1”表示不检查的位。
由此我们可以先进行通配符的二进制转换,由此可以看出这个通配符必须匹配1-24位和26位。
0.0.0.191--》0000 0000.0000 0000.0000 0000.1011 1111
而IP地址由于是10.0.0.0,所以二进制就是:
10.0.0.0---》0000 1010.0000 0000.0000 0000.0000 0000
由此我们可以看出,通配符必须匹配以下标红位数
0000 1010.0000 0000.0000 0000.0000 0000
而不标红位数第一个0可以有两种可能0/1,当第25位为0时,后六位的范围是000000-111111
0000 1010.0000 0000.0000 0000.0000 0000=10.0.0.0
0000 1010.0000 0000.0000 0000.0011 1111=10.0.0.63
当第25位为1时,后六位的范围是000000-111111
0000 1010.0000 0000.0000 0000.1000 0000=10.0.0.128
0000 1010.0000 0000.0000 0000.1011 1111=10.0.0.191
所以,10.0.0.0 0.0.0.191匹配了两个网段的IP地址,分别是10.0.0.0-10.0.0.63和10.0.0.128-10.0.0.191。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本