反向掩码(Wildcard Mask,通配符掩码)
多用于ACL,OSPF,EIGRP等用于匹配IP地址的网络号。思科定义为:
wildcard mask A wildcard mask is a 32-bit quantity used inconjunction with an Internet address to determine which bits in anInternet address should be ignored when comparing that address withanother Internet address. A wildcard mask is specified when settingup access lists.
基本原则:
反向掩码由类似于子网掩码的点分十进制表示方法。由四组2进制数组成,每组8位,共32位。例:0.0.0.255 0.0.1.2550.1.255.255
l 为0的位代表精确匹配
l 为1的位代表不匹配
l 反向掩码可以使用不连续的1
反向掩码典型作用:
state_patrol(config)#ip access-list 101 permit ip 192.168.0.00.0.0.255 any
state_patrol(config-if)#int fa0/0
state_patrol(config-if)#access-group 101 int
第一行中的192.168.0.0 0.0.0.255就使用了反向掩码,为ACL指定源地址,匹配此源地址的所有IP地址发送的数据包都可以被fa0/0接受。
试着用数学方法去分析
基原理是首先用指定的IP网段号与反向掩码进行 逻辑或运算得到A值,再将IP地址与反向掩码进行逻辑或运算得到B值。A=B值即匹配。逻辑或”相当于生活中的“或者”,当两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真”例子:
0 or 0 = 0
1 or 0 = 0
0 or 1 = 1
1 or 1 = 1
192.168.0.0 0.0.0.255 | 192.168.0.1 0.0.0.255 | |
11000000.10101000.00000000.00000000 | IP | 11000000.10101000.00000000.00000001 |
00000000.00000000.00000000.11111111 | 掩码 | 00000000.00000000.00000000.11111111 |
00000000.10101000.00000000.11111111 | 结果 | 00000000.10101000.00000000.11111111 |
注:也许你还记得 为1的位代表不匹配 这一原则。因为在逻辑或运算中0或者1跟1与其结果都为1。
反向掩码可以是不连续的
有六个网段:10.1.1.0/24、10.1.2.0/24、10.1.3.0/24、10.1.16.0/24、10.1.17.0/24、10.1.18.0/24.怎样使用一条将之全通告进去。将之全转化为二进制形式:
00001010.00000001.00000001.00000000 | 10.1.1.1 |
00001010.00000001.00000010.00000000 | 10.1.1.2 |
00001010.00000001.00000011.00000000 | 10.1.1.3 |
00001010.00000001.00010000.00000000 | 10.1.1.16 |
00001010.00000001.00010001.00000000 | 10.1.1.17 |
00001010.00000001.00010010.00000000 | 10.1.1.18 |
00000000.00000000.00010011.00000000 | 0.0.19.0 反向掩码 |
灰色部分为不匹配。 所以掩码为:00000000.00000000.00010011.00000000 即:0.0.19.0,用于匹配网段。0.0.19.255用于匹配IP地址。
那么我们多添加了多少条网段进去?总共通告了2^3=8个网段多添加进8-6=2个网段。
可见反向掩码可以使用不连续的1.
快速计算可匹配的网段
反向掩码和子网掩码相反,通常由1,3,7,15,31,63构成。其包含的网段也是有规则可寻的。
例:192.168.6.0 0.0.3.255反向掩码是3,3的二进数是11这就意识着可以有2^2=4种组合,也就是说可以匹配4个网段。那到底是那4个呢?这就是以192.168.6.0为基准,进行二进制计算,不过这太麻烦。简单的办法是,将反向掩码区块化(如同CIDR区块).
0.0.3.255 a区块化结果为
0 – 3 4 -7 8-11 12-15 …………………
现在可见我们的192.168.6.0在4-7这个块里,所以192.168.6.0 0.0.3.255 能匹配的网段为
192.168.4.0
192.168.5.0
192.168.6.0
192.168.7.0
子网掩码与的向掩码对比:
子网掩码 反向掩码
CDIR | Wildcard-mask |
/30 55.255.255.252 | 0.0.0.3 |
/29 255.255.255.248 | 0.0.0.7 |
/28 255.255.255.240 | 00.0.15 |
/27 255.255.255.224 | 0.0.0.31 |
/26 255.255.255.192 | 0.0.0.63 |
/25 255.255.255.128 | 0.0.0.127 |
/24 255.255.255.0 | 0.0.0.255 |
/23 255.255.254.0 | 0.0.1.255 |
/22 255.255.252.0 | 0.0.3.255 |
/21 255.255.248.0 | 0.0.7.255 |
/20 255.255.240.0 | 0.0.15.255 |
/19 255.255.224.0 | 0.0.31.255 |
/18 255.255.192.0 | 0.0.63.255 |
/17 255.255.128.0 | 0.0.127.255 |
/16 255.255.0.0 | 0.0.255.255 |
/15 255.254.0.0 | 0.1.255.255 |
/14 255.252.0.0 | 0.3.255.255 |
/13 255.248.0.0 | 0.7.255.255 |
/ 255.240.0.0 | 0.15.255.255 |
/11 255.224.0.0 | 0.31.255.255 |
/10 255.192.0.0 | 0.63.255.255 |
/9 255.128.0.0 | 0.127.255.255 |
/8 255.0.0.0 | 0.255.255.255 |
求子网掩码的反向掩码
例:192.168.0.0 255.255.248.0
255.255.255.255去减255.255.248.0=0.0.7.255
CCIE经典LAB:
1.仅允许偶数字网访问
state_patrol(config)#ip access-list 101 permit ip 192.168.0.00.0.254.255 any
state_patrol(config-if)#int fa0/0
state_patrol(config-if)#access-group 101 int
2。仅允许奇数字网访问
state_patrol(config)#ip access-list 101 permit ip 192.168.0.00.0.254.255 any
state_patrol(config-if)#int fa0/0
state_patrol(config-if)#access-group 101 int