2025/1/10
47 阅读

怎样理解掩码、反掩码、通配符

反掩码

反掩码(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中,使用的通配符

 通配符掩码表