掩码、反掩码、通配符掩码,这三种分别使用在什么场景,我们来详细说明下。
三者的核心区别
| 名称 |
英文术语 |
特点/规则 |
应用场景 |
| 子网掩码 |
subnet mask |
- 左边连续的 1 表示网络位 - 右边连续的 0 表示主机位 - 必须连续,不能断开 |
用于划分网络、计算网络地址和广播地址 |
| 反掩码 |
inverse mask |
- 是子网掩码的逐位取反 - 左边连续的 0,右边连续的 1 - 关注掩码中 0 的部分 |
OSPF 等协议中,用来指定网络范围 |
| 通配符掩码 |
wildcard mask |
- 0 表示必须精确匹配 - 1 表示不关心(可匹配任意) - 可以不连续,灵活匹配 |
ACL、路由过滤、策略匹配 |
掩码类型对照表
| 项目 |
子网掩码(Netmask) |
反掩码(Inverse Mask) |
通配符掩码(Wildcard Mask) |
| 英文术语 |
Netmask |
Inverse Mask |
Wildcard Mask |
| 匹配逻辑 |
连续的 1 表示网络位,0 表示主机位 |
掩码取反,0 表示网络位,1 表示主机位 |
0 表示必须匹配,1 表示可忽略 |
| 是否必须连续 |
是,1 和 0 都必须连续 |
是,0 和 1 都必须连续 |
否,可不连续,灵活匹配 |
| 示例(十进制) |
255.255.255.0 |
0.0.0.255 |
0.0.255.255 |
| 示例(二进制) |
11111111.11111111.11111111.00000000 |
00000000.00000000.00000000.11111111 |
00000000.00000000.11111111.11111111 |
| 应用场景 |
网络划分、广播地址计算 |
OSPF 网络匹配 |
ACL、策略匹配、路由过滤 |
| 关注的位 |
掩码中 1 所在位 |
掩码中 0 所在位 |
通配符中 0 所在位 |
逻辑说明与匹配原则
- 子网掩码:用于定义网络边界,必须连续,常用于 IP 地址规划。
- 反掩码:是子网掩码的逐位取反,OSPF 中用于匹配网络范围。
- 通配符掩码:ACL 中使用,0 表示必须匹配,1 表示可忽略,支持不连续匹配。
二进制位对照图(以 192.168.0.0 为例)
| 项目 |
二进制表示 |
说明 |
| IP 地址 |
11000000.10101000.00000000.00000000 |
即 192.168.0.0 |
| 子网掩码 |
11111111.11111111.11111111.00000000 |
/24 网络位 |
| 反掩码 |
00000000.00000000.00000000.11111111 |
OSPF 中匹配主机范围 |
| 通配符掩码 |
00000000.00000000.11111111.11111111 |
ACL 中匹配 192.168.0.0~192.168.255.255 |
OSPF 配置示例(使用反掩码)
router ospf 1
network 192.168.0.0 0.0.0.255 area 0
network 10.0.0.0 0.0.0.255 area 0
network 172.16.0.0 0.0.15.255 area 1
network 命令中使用的是 反掩码,即子网掩码的逐位取反。
0.0.0.255 表示匹配 192.168.0.0/24 网段。
ACL 配置示例(使用通配符掩码)
acl number 3000
rule 5 deny ip destination 172.16.0.0 0.15.255.255
rule 10 deny ip destination 10.0.0.0 0.255.255.255
rule 15 deny ip destination 192.168.0.0 0.0.255.255
rule 20 permit ip
rule 5 匹配 172.16.0.0 ~ 172.31.255.255
rule 10 匹配 10.0.0.0 ~ 10.255.255.255
rule 15 匹配 192.168.0.0 ~ 192.168.255.255
rule 20 是默认允许其他流量
验证与排错
- 使用
display acl 3000 或 show access-list 查看匹配情况
- 使用
debug ip packet 或 packet capture 验证 ACL 是否生效
- OSPF 匹配失败时,检查反掩码是否与实际网段对齐
- ACL 匹配异常时,确认通配符掩码是否覆盖目标范围