什么是通配符掩码?如何计算它?

什么是通配符掩码?
通配符掩码是一串数字,用于简化私有网络子网内的数据包路由。它也被称为反向掩码。与此不同的是…… 子网掩码其中二进制 1 表示匹配,二进制 0 表示不匹配,通配符掩码则反转了这种逻辑。
通配符掩码长度为 32 位。使用通配符掩码时,零位表示对应的位位置必须与目标位置完全匹配。 IP地址而 1 位表示相应位置不必匹配。
通配符掩码使用以下规则来匹配二进制 1 和 0:
- 如果通配符掩码位为 0,则与地址中的位值匹配。
- 如果通配符掩码位为 1,则忽略地址中对应的位值。
单个主机的通配符掩码始终为 0.0.0.0。
通配符掩码与子网掩码
通配符掩码和子网掩码看起来很相似,但用途却截然相反。子网掩码将地址的网络部分与主机部分分隔开来,而通配符掩码则告诉设备哪些地址位需要匹配,哪些需要忽略。下表对两者进行了比较:
| 基地 | 子网掩码 | 通配符掩码 |
|---|---|---|
| 二进制1 | 识别网络位 | 忽略这部分(不用在意) |
| 二进制0 | 识别主机位 | 必须与此部分完全匹配 |
| 目的 | 定义子网边界 | 过滤 ACL 和路由语句中的地址 |
| /24 示例 | 255.255.255.0 | 0.0.0.255 |
| 位必须是连续的 | 是 | 不——口罩可以是不连续的。 |
通配符掩码如何工作?
以下示例有助于您理解通配符掩码的概念。该图显示了一个包含三台主机和一个路由器的网络,该路由器直接连接到三个子网:
假设您只想通告 10.0.1.0/24 子网。您可以在以下网络命令中使用通配符掩码 0.0.0.255:
R1(config-router)#network 10.0.1.0 0.0.0.255
为什么通配符掩码是 0.0.0.255?
首先,转换 Cisco 将通配符掩码和 IP 地址转换为二进制:
10.0.1.0 = 00001010.00000000.00000001.00000000 0.0.0.255 = 00000000.00000000.00000000.11111111
通配符掩码的零位必须与网络命令中包含的 IP 地址中的相同位置匹配:
00001010.00000000.00000001.00000000 00000000.00000000.00000000.11111111
在上面的例子中,最后一个八位字节不需要匹配,因为通配符位全部为 1。前 24 位必须匹配,因为通配符掩码位全部为 0。
此处,通配符掩码匹配所有以 10.0.1.x 开头的 IP 地址(10.0.1.0 到 10.0.1.255)。在本例中,仅匹配到一个网络:10.0.1.0/24。
如果您想同时包含 10.0.0.0/24 和 10.0.1.0/24 子网,该怎么办?
您需要使用通配符掩码 0.0.1.255,如下所示:
10.0.0.0 = 00001010.00000000.00000000.00000000 10.0.1.0 = 00001010.00000000.00000001.00000000 0.0.1.255 = 00000000.00000000.00000001.11111111
使用通配符掩码 0.0.1.255,只需匹配 23 位即可。这意味着 10.0.0.0 到 10.0.1.255 范围内的所有地址都匹配,因此两个子网都得到了覆盖。
如何计算通配符掩码?
手动计算通配符掩码可能是一项具有挑战性的任务。一个简单的快捷方法是使用代入函数。trac从 255.255.255.255 中提取子网掩码。结果即为通配符掩码。
例如:
1) 255.255.255.255 - 255.255.255.255 = 0.0.0.0 (wildcard mask) 2) 255.255.255.255 - 255.255.255.128 = 0.0.0.127 (wildcard mask) 3) 255.255.255.255 - 192.0.0.0 = 63.255.255.255 (wildcard mask)
常用通配符掩码值
下表列出了常用的 CIDR 前缀及其对应的子网掩码和通配符掩码,方便您查找值,而无需每次都进行计算:
| CIDR | 子网掩码 | 通配符掩码 | 地址匹配 |
|---|---|---|---|
| /8 | 255.0.0.0 | 0.255.255.255 | 16,777,216 |
| / 16 | 255.255.0.0 | 0.0.255.255 | 65,536 |
| / 24 | 255.255.255.0 | 0.0.0.255 | 256 |
| / 25 | 255.255.255.128 | 0.0.0.127 | 128 |
| / 26 | 255.255.255.192 | 0.0.0.63 | 64 |
| / 27 | 255.255.255.224 | 0.0.0.31 | 32 |
| / 28 | 255.255.255.240 | 0.0.0.15 | 16 |
| / 30 | 255.255.255.252 | 0.0.0.3 | 4 |
通配符掩码关键字:host 和 any
Cisco iOS 提供了两个简写关键字,因此您无需在访问控制列表中输入常用的通配符掩码:
- 主持人 — 替换通配符掩码 0.0.0.0,并匹配一个精确的 IP 地址。例如, 主机10.0.1.5 是相同的 10.0.1.5 0.0.0.0.
- 任何 — 替换通配符掩码 255.255.255.255,并匹配所有 IP 地址。例如: 任何 是相同的 0.0.0.0 255.255.255.255.
这些关键词使 ACL 语句更短更易读,并降低了出错的几率。ping 面具出错了。
通配符掩码可以在哪里使用?
通配符掩码用于访问控制列表 (ACL)。当您拥有大型网络并需要控制多个路由器和 LAN 网段之间的流量时,它们非常有用。当您管理一个包含多个路由器的大型网络时,您很可能会遇到以下情况: Cisco 通配符面具。
通配符掩码也出现在动态中 路由 诸如 OSPF 和 EIGRP 之类的协议,其网络语句会使用通配符掩码来选择参与路由的接口。您需要仔细设置通配符掩码,以确保只有预期的流量才能通过您的路由器。

