思科ACL不连续通配符掩码的计算 (转)
2015-12-30 10:08
225 查看
转载的~~~
前天在帮客户梳理nat转换时,发现一个有趣的配置,发上来供大家学习。
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。
前天在帮客户梳理nat转换时,发现一个有趣的配置,发上来供大家学习。
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。
相关文章推荐
- PowerShell中使用通配符匹配文件路径的例子
- PowerShell中使用Like运算符配合通配符查找字符串例子
- css 通配符用法总结
- mysql binlog二进制日志详解
- c语言实现的带通配符匹配算法
- 详解C++编程中对二进制文件的读写操作
- 整理C# 二进制,十进制,十六进制 互转
- ren 命令在使用通配符时需要注意的地方
- c#二进制逆序方法详解
- JS幻想 读取二进制文件第1/2页
- 使用jscript实现二进制读写脚本代码
- 配置Grunt的Task时通配符支持和动态生成文件名问题
- C#二进制序列化实例分析
- JavaScript前端开发之实现二进制读写操作
- PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
- javascript 二进制运算技巧解析
- 如何判断一个整数的二进制中有多少个1
- MSSQL 将截断字符串或二进制数据问题的解决方法
- 二进制中1的个数
- C++ 十进制转换为二进制的实例代码