通配符掩码计算器 — 子网掩码 ⇄ 通配符,生成 ACL 与 OSPF 语句

在前缀/子网掩码与通配符掩码之间互相转换,查看不连续通配符实际匹配的地址,并生成 Cisco ACL / OSPF network 语句以及 YAMAHA RTX ip filter 与 iptables 的等效写法。

🔒 全部在你的浏览器中运行。输入和输出都不会发送到服务器或被保存,十分安全。

通配符掩码
—

ACL 语句生成

常用掩码

点击某一行即可填入。

前缀子网掩码通配符地址数
/8255.0.0.00.255.255.25516,777,216
/12255.240.0.00.15.255.2551,048,576
/16255.255.0.00.0.255.25565,536
/17255.255.128.00.0.127.25532,768
/18255.255.192.00.0.63.25516,384
/19255.255.224.00.0.31.2558,192
/20255.255.240.00.0.15.2554,096
/21255.255.248.00.0.7.2552,048
/22255.255.252.00.0.3.2551,024
/23255.255.254.00.0.1.255512
/24255.255.255.00.0.0.255256
/25255.255.255.1280.0.0.127128
/26255.255.255.1920.0.0.6364
/27255.255.255.2240.0.0.3132
/28255.255.255.2400.0.0.1516
/29255.255.255.2480.0.0.78
/30255.255.255.2520.0.0.34
/31255.255.255.2540.0.0.12
/32255.255.255.2550.0.0.01

通配符掩码是子网掩码按位取反:0 位必须匹配,1 位忽略。0.0.0.0 表示单台主机(关键字 host),255.255.255.255 表示 any。Cisco ACL 与 OSPF/EIGRP 的 network 命令使用通配符;路由与接口使用子网掩码。

这个工具有用吗?点一下表达心情

关于此工具

这款通配符掩码计算器可在前缀长度、子网掩码与通配符(反)掩码之间互相转换,并准确显示一个通配符会匹配哪些地址——包括普通子网计算器无法解释的不连续通配符。输入地址后,它会像路由器一样对条目进行规范化,在主机位被置位时给出警告,并生成可直接粘贴的 Cisco IOS 标准、扩展与命名 ACL 以及 OSPF network 语句,同时给出等效的 YAMAHA RTX ip filter 与 Linux iptables 规则。全部在浏览器中完成。

常见问题

什么是通配符掩码?它和子网掩码有什么区别?

通配符掩码告诉路由器要比较地址中的哪些位:0 位必须匹配,1 位忽略。这与子网掩码正好相反——子网掩码中 1 位表示网络部分。因此 /24 作为子网掩码是 255.255.255.0,作为通配符则是 0.0.0.255。子网掩码描述“网络本身”(接口、路由),通配符描述“规则要匹配什么”,所以 Cisco ACL 以及 OSPF、EIGRP 的 network 命令都使用通配符。

如何心算把子网掩码换成通配符掩码?

用 255 减去每个八位组即可。255.255.255.224 变为 0.0.0.31,255.255.240.0 变为 0.0.15.255,255.255.255.252 变为 0.0.0.3。对于连续掩码,通配符最后一个非零八位组总是“块大小 − 1”(32 − 1 = 31),匹配的地址数为 2 的(通配符中 1 位个数)次方。工具中的速查表列出了常用前缀的两种写法。

通配符掩码可以不连续吗?那会匹配什么?

可以。Cisco ACL 对每一位独立判断,因此接受任意位模式。192.168.1.0 0.0.0.254 匹配 192.168.1.0/24 中最低位为 0 的地址,即 128 个偶数地址;10.0.0.5 0.255.0.0 则匹配每个 10.x.0.0 网络中的主机 .0.5。这种写法功能强大但难以阅读,而且 YAMAHA RTX 过滤器、iptables、prefix-list 与路由掩码都无法表达,所以本工具会列出匹配示例,并在需要拆分为连续地址块时给出提示。

为什么路由器改掉了我 ACL 条目里的地址?

因为地址在通配符忽略的位上有置位。如果输入 permit 192.168.10.5 0.0.0.255,最后一个八位组与匹配无关,Cisco IOS 会将其保存为 192.168.10.0 0.0.0.255,规则匹配整个 /24,而不是你可能想要的单台主机。本计算器会显示规范化后的网络,并在这种情况下发出警告。若只想匹配一台主机,请使用通配符 0.0.0.0,IOS 会写成 host 192.168.10.5。

OSPF network 语句中的通配符到底起什么作用?

它选择的是接口,而不是要通告的前缀。主 IP 地址与该地址和通配符匹配的每个接口都会启用 OSPF,随后该接口的直连子网以其真实掩码通告。network 10.0.0.0 0.255.255.255 area 0 会在所有 10.x 接口上启用 OSPF;network 10.1.1.1 0.0.0.0 area 0 只在拥有该 IP 的接口上启用,这是最精确、也最常被推荐的写法。在接口下使用 ip ospf 1 area 0 则完全不需要通配符。