子网掩码与前缀转换

在 /24 与 255.255.255.0 之间双向转换,并附完整对照表。

/24

拖动滑块,或在右侧输入掩码。

相当于 /24。

/24 是

255.255.255.0

24 位网络位,8 位主机位 —— 共 256 个地址,其中 254 个可分配给主机。

11111111.11111111.11111111.00000000

前缀

/24

子网掩码

255.255.255.0

通配符掩码

0.0.0.255

掩码的反码,也是思科 ACL 所要求的形式。

地址总数

256

可用主机数

254

比总数少两个 —— 网络地址和广播地址。

一个 /24 中的块数

1

全部前缀

当前选择已高亮。注意第四个字节的掩码值 —— 128、192、224、240、248、252、254、255 —— 任何一个字节中合法的只有这八个数,所以无效掩码一眼就能看出来。

前缀掩码通配符地址数可用
/00.0.0.0255.255.255.2554,294,967,2964,294,967,294
/1128.0.0.0127.255.255.2552,147,483,6482,147,483,646
/2192.0.0.063.255.255.2551,073,741,8241,073,741,822
/3224.0.0.031.255.255.255536,870,912536,870,910
/4240.0.0.015.255.255.255268,435,456268,435,454
/5248.0.0.07.255.255.255134,217,728134,217,726
/6252.0.0.03.255.255.25567,108,86467,108,862
/7254.0.0.01.255.255.25533,554,43233,554,430
/8255.0.0.00.255.255.25516,777,21616,777,214
/9255.128.0.00.127.255.2558,388,6088,388,606
/10255.192.0.00.63.255.2554,194,3044,194,302
/11255.224.0.00.31.255.2552,097,1522,097,150
/12255.240.0.00.15.255.2551,048,5761,048,574
/13255.248.0.00.7.255.255524,288524,286
/14255.252.0.00.3.255.255262,144262,142
/15255.254.0.00.1.255.255131,072131,070
/16255.255.0.00.0.255.25565,53665,534
/17255.255.128.00.0.127.25532,76832,766
/18255.255.192.00.0.63.25516,38416,382
/19255.255.224.00.0.31.2558,1928,190
/20255.255.240.00.0.15.2554,0964,094
/21255.255.248.00.0.7.2552,0482,046
/22255.255.252.00.0.3.2551,0241,022
/23255.255.254.00.0.1.255512510
/24255.255.255.00.0.0.255256254
/25255.255.255.1280.0.0.127128126
/26255.255.255.1920.0.0.636462
/27255.255.255.2240.0.0.313230
/28255.255.255.2400.0.0.151614
/29255.255.255.2480.0.0.786
/30255.255.255.2520.0.0.342
/31255.255.255.2540.0.0.122
/32255.255.255.2550.0.0.011

两种记法,同一串位

子网掩码和前缀长度说的完全是同一件事,只是用了不同的字母表。两者描述的都是:一个地址的三十二位里,有多少位被网络固定了下来。

掩码把它写成点分十进制的三十二位,网络部分为 1,主机部分为 0。255.255.255.0 就是二十四个 1 后面跟着八个 0。前缀则只报个数:/24。同样的位,更少的字符。

前缀记法赢了,所有现代工具都用它。点分十进制掩码之所以还在,是因为 Cisco IOS 的接口配置、Windows 的网络设置,以及大量既有文档都是那样写的——这也是为什么在这种记法被取代多年之后,这个转换仍然不断被用到。

为什么一个八位组里只有九个数字是合法的

掩码里的 1 必须从左边起连续排列。在一个八位组内,这只允许九种取值,别无其他:

置位数二进制十进制
0000000000
110000000128
211000000192
311100000224
411110000240
511111000248
611111100252
711111110254
811111111255

把那一列背下来,基本上就是所谓「手算子网很在行」的全部内容。它还能让你一眼做完有效性检查:掩码里任何一个不属于那九个数字的八位组都是错的,而任何位于非 255 的八位组之后的八位组都必须是 0。

三个不断出现的掩码

255.255.255.0(/24)几乎是所有消费级路由器的默认值。255.255.255.252(/30)曾是传统的点对点链路掩码——四个地址、两个可用——如今大多已被 255.255.255.254(/31)取代,后者把两个地址都给了主机。而 255.255.0.0(/16)是 Windows 在靠猜的时候给出的,通常远远大于任何人想要的。

在脑子里算

诀窍在于:任何时候都只有一个八位组是值得关心的。它左边的全是 255,右边的全是 0,而前缀会告诉你是哪一个、以及深入到它的第几位。

把前缀除以 8。商是有多少个 255;余数是下一个八位组里置了多少位。以 /26 为例:26 ÷ 8 是 3 余 2,所以是三个 255,然后两位——上面那张表说那是 192。于是 255.255.255.192

块大小也从同一个余数里掉出来:256 减去那个关键八位组。256 − 192 = 64,所以 /26 的块是 64 个地址,起点在 .0、.64、.128 和 .192。

相关

要把掩码套到一个真实地址上,得出网络地址、广播地址和主机范围,子网计算器会做完整的分解。要在块和地址范围之间双向转换,请用 CIDR 计算器

掩码相关问题

255.255.255.0 是什么?

就是 /24。它固定了前 24 位——也就是前三个八位组——留下最后 8 位自由,共 256 个地址,其中 254 个可用。它几乎是所有家用路由器的默认值,也是现存最常见的掩码。

为什么掩码里只能出现 0、128、192、224、240、248、252、254 和 255?

因为子网掩码里的 1 必须从左边起连续排列,中间不能断。在任何一个八位组内,这样只剩下九种可能:一位都不置、置一位、置两位,直到八位全置。写成十进制就是 0、128、192、224、240、248、252、254 和 255。其他任何值——比如 255.255.0.255,或者任一八位组里出现 100——都在这串 1 中留了缺口,不是有效掩码。上面的转换器会直接拒绝,而不去猜你想写什么。

255.255.255.0 在任何场合都等同于 /24 吗?

作为子网掩码,是的——它们是同样 32 位的两种写法。差别在于谁接受哪一种:Cisco IOS 的接口命令要点分十进制,Linux 的 ip 命令和多数云控制台要前缀写法,而访问控制列表要的是通配符形式。这正是这个转换如此常被用到的全部原因。

通配符掩码是干什么用的?

它是子网掩码取反的结果,所以 /24 会变成 0.0.0.255。Cisco 的访问控制列表和 OSPF 的 network 语句都要求这种形式。它之所以是一个独立概念,是因为通配符掩码不必连续——你可以表达「匹配最后一个八位组为偶数的任意地址」——虽然实际写出来的几乎每一个,都只是子网掩码的取反。

50 台设备该用哪个掩码?

用 /26,也就是 255.255.255.192。它给出 64 个地址,扣除网络地址和广播地址后有 62 个可用。/27 只有 30 个可用,装不下。给自己留点余量:一个网络用满之后重新编址,要比一开始就多要一档痛苦得多。

最后审校于 。发现有内容过时了? 告诉我们.