今日在QQ群里面讨论了一个 acl 通配符问题
access-list 100 deny ip any 200.1.2.10 0.0.0.1
问那个0.0.0.1 是怎么得来的
我们知道反掩码一般如下:
0.0.0.0
0.0.0.1
0.0.0.3
0.0.0.7
0.0.0.15
0.0.0.31
0.0.0.63
0.0.0.127
0.0.0.255
0.0.0.0
0.0.0.1
0.0.0.3
0.0.0.7
0.0.0.15
0.0.0.31
0.0.0.63
0.0.0.127
0.0.0.255
等等
但是对于 0.0.0.1,按照正掩码搞出来是255.255.255.254,但是是不存在这样的掩码。
然而这样的值的确是可以存在的。
然而这样的值的确是可以存在的。
追根求源,通配符是匹配0而忽视1,我们用0.0.0.254来说。
0.0.0.254
00000000.00000000.00000000.11111110
那么在搭配一个网络地址来说
192.168.0.0
11000000.10101000.00000000.00000000
我们把他们和在一起
11000000.10101000.00000000.00000000 网络号码
00000000.00000000.00000000.11111110 反掩码
根据匹配0而忽视1的原则,也就是说第4节的前7位可以任意变化,但是最后一位必须是0,
11000000.10101000.00000000.00000010 192.168.0.2
11000000.10101000.00000000.00000100 192.168.0.4
11000000.10101000.00000000.00000110 192.168.0.6
11000000.10101000.00000000.00001000 192.168.0.8
.
.
.
11000000.10101000.00000000.11111110 192.168.0.254
这样192.168.0.0 0.0.0.254就是所有偶数位,那么奇数就是192.168.0.1 0.0.0.254
那么192.168.0.0 0.0.0.253呢,是2位全循环,0-1,4-5,8-9,...
192.168.0.0 0.0.0.252呢,是4位单循环,0,4,8,12,16
192.168.0.0 0.0.0.251呢,是4位全循环,0-3;8-11;16-19,.....
依此类推
192.168.0.0 0.0.0.247 是8位全循环 0-7,16-23,...
192.168.0.0 0.0.0.239 是16位全循环 0-15,32-47,...
192.168.0.0 0.0.0.223 是32位全循环 0-31,64-95,128-159,192-223
192.168.0.0 0.0.0.191 是64位全循环 0-63,128-191
注:以上某些是从网上转载而来!

转载于:https://blog.51cto.com/steve/56172