计算机网络知识:怎样理解掩码、反掩码、通配符
怎样理解掩码、反掩码、通配符
反掩码
反掩码(Wildcard-mask)是 IP 地址掩码的反码,是直接把 IP 地址的掩码数字取反操作。 0 变 1 ,1 变 0
1 表示忽略 IP 地址中对应的位,0 表示必须保留此位。
例如:子网掩码 255.0.0.0,该掩码的反码为 0.255.255.255。
典型使用:在宣告 OSPF 区域所包含的网段时会使用反掩码
通配符
通配符(Wildcard)以点分十进制表示,并以二进制的 0 表示“匹配”,1 表示“不匹配”,这与子网掩码恰好相反。
其实就是更为严格的反掩码
例如:子网掩码 255.255.255.0,对应的通配符掩码就是 0.0.0.255。
通配符掩码中的 0 或 1 可以是不连续的,这样可以更加灵活地进行匹配,
例如:0.255.0.255 就是一个合法的通配符掩码
典型使用:在配置 ACL 访问控制列表的时候会使用通配符
应用场景不同:
通配符掩码常用于路由选择、防火墙规则等。
反掩码通常用于计算子网的广播地址或在某些特殊的网络计算中。
在这里,我们把反掩码定义为更加严格的通配符掩码,为什么这么说呢?
掩码(mask):
掩码是由 1 和 0 组成,而且 1 和 0 都是连续的。左边的”1“表示网络位,右边的”0“表示主机位。
如果 1 和 0 不是连续的,就是错误的网络掩码,无法正确识别网络子网。
例如:255.0.255.0和255.170.0.0
反掩码(wildcard-mask):
反掩码的写法是将掩码中的每一位取反(当然,反掩码的 1 和 0 也是连续的),其中"0"表示网络位,"1"表示主机位。
例如,如果有一个子网掩码为255.255.255.0,则将其转换为反掩码时,需要将每一位取反:
子网掩码:255.255.255.0
二进制表示:11111111.11111111.11111111.00000000
将每一位取反,得到反掩码:0.0.0.255
二进制表示:00000000.00000000.00000000.11111111
通配符掩码:
通配符,格式跟网络掩码一样,要跟 IP 地址结合使用,也是由 0 和 1 组成,0 和 1 可以任意组合,不一定要连续的。0 是需要匹配,1 就不需要匹配。(这里也可以应用到反掩码上,0是需要匹配,1是不需要匹配)
应用场景
掩码
IP地址配置
ip address 192.168.1.1 255.255.255.0或192.168.1.1 24
DHCP配置
network 192.168.1.0 mask 255.255.255.0或network 192.168.1.0 mask 24
BGP配置
network 192.168.1.0 255.255.255.0
配置安全策略
destination-zone dmz
destination-address 192.168.2.0 255.255.255.0
反掩码
OSPF路由协议
在配置OSPF路由协议的时侯使用的是反掩码:
route ospf 100 network 192.168.1.0 0.0.0.255 network 192.168.2.0 0.0.0.255
通配符掩码
过滤ACL
在配置ACL的时候可以使用不连续的1,只需对应的位置匹配即可。
access-list 1 permit 198.78.46.0 0.0.11.255
补充
RIP路由宣告不需要掩码或者反掩码,宣告主类网络(ABC类主类IP地址掩码分别为/8 /16 /24)
network 10.0.0.0
network 172.16.0.0
network 192.168.1.0
配置NAT server功能,把内网Web服务器映射到公网地址
nat server policy_web protocol tcp global 100.1.1.100 80 inside 192.168.2.100 80
通配符的计算
原则:0表示需要匹配,1表示不需要匹配,即遇见0不能变化,遇见1可以变化
例如:(标黄表示对应位置不能动)
192.168.0.0 0.0.254.255
通配符:0.0.1111 1110.1111 1111 (前面0简写了)
192.168.0.0 ---- 1100 0000.1010 1000.0000 0000.0000 0000
可以匹配的是
1100 0000.1010 1000.0000 0000.0000 0000 ---- 1100 0000.1010 1000.1111 1110.1111 1111
即:
1100 0000.1010 1000.0000 0000.0000 0000 ---- 1100 0000.1010 1000.0000 0000.1111 1111
192.168.0.0 ---- 192.168.0.255
1100 0000.1010 1000.0000 0000.0000 0000 ---- 1100 0000.1010 1000.0000 0010.1111 1111
192.168.2.0 ---- 192.168.2.255
1100 0000.1010 1000.0000 0000.0000 0000 ---- 1100 0000.1010 1000.0000 0100.1111 1111
192.168.4.0 ---- 192.168.4.255
1100 0000.1010 1000.0000 0000.0000 0000 ---- 1100 0000.1010 1000.0000 1000.1111 1111
192.168.6.0 ---- 192.168.6.255
可以看到匹配的是第三位网络位为偶数的路由信息
另一种是192.168.1.0 0.0.254.255,按照以上规则匹配:
可以看到匹配的是第三位网络位为奇数的路由信息
反掩码、掩码和通配符的区别
一、掩码 在掩码中,1表示精确匹配,0表示随机
1和0,永远不交叉;
1永远在左边,0永远在右边;
在配置IP地址以及路由的时候,会使用掩码;
二、反掩码 在反掩码中,1表示随机,0表示精确匹配
0和1,永远不交叉;
0永远在左边,1永远在右边;
在路由协议的配置中,通过network命令进行网段宣告时,会使用
三、通配符 在统配符中,1表示随机,0表示精确匹配
0和1的位置,没有任何的固定限制
可以连续,可以交叉
在ACL中,使用的通配符
通配符掩码表