子网计算器
输入任意 IPv4 地址和前缀,得出网络地址、广播地址、主机范围与掩码。
也接受 192.168.1.130 255.255.255.192,或只写一个地址,按 /32 处理。
网络
192.168.1.128/26
该地址块共 64 个地址,可用 62 个。
● 私有 — 192.168.0.0/16(RFC 1918)—— 家用路由器所用的地址段。
子网掩码
255.255.255.192
通配符掩码
0.0.0.63
思科 ACL 和部分防火墙所要求的形式 —— 掩码取反。
前缀
/26
网络地址
192.168.1.128
用于标识该地址块,不能分配给主机。
广播地址
192.168.1.191
可到达网段内的每一台主机,不能分配。
可用主机范围
192.168.1.129 – 192.168.1.190
地址总数
64
可用主机数
62
传统类别
C
有类地址早在 1993 年就被 CIDR 取代。这里之所以列出,是因为考题和旧文档仍在使用;它对路由没有任何影响。
二进制形式
青色是前缀固定下来的网络部分,灰色是可以变化的主机部分。前缀的含义,就是有多少位是青色的。
- 地址
11000000.10101000.00000001.10000010
- 网络
11000000.10101000.00000001.10000000
- 掩码
11111111.11111111.11111111.11000000
- 广播
11000000.10101000.00000001.10111111
网络地址的十六进制:0xC0A80180 · 整数形式:3,232,235,904
划分这个地址块
把 /26 划分成大小相同的子网。前缀每加长一位,规模减半、数量加倍。
前缀、掩码与主机数对照表
| 前缀 | 掩码 | 地址数 | 可用主机数 |
|---|---|---|---|
| /8 | 255.0.0.0 | 16,777,216 | 16,777,214 |
| /9 | 255.128.0.0 | 8,388,608 | 8,388,606 |
| /10 | 255.192.0.0 | 4,194,304 | 4,194,302 |
| /11 | 255.224.0.0 | 2,097,152 | 2,097,150 |
| /12 | 255.240.0.0 | 1,048,576 | 1,048,574 |
| /13 | 255.248.0.0 | 524,288 | 524,286 |
| /14 | 255.252.0.0 | 262,144 | 262,142 |
| /15 | 255.254.0.0 | 131,072 | 131,070 |
| /16 | 255.255.0.0 | 65,536 | 65,534 |
| /17 | 255.255.128.0 | 32,768 | 32,766 |
| /18 | 255.255.192.0 | 16,384 | 16,382 |
| /19 | 255.255.224.0 | 8,192 | 8,190 |
| /20 | 255.255.240.0 | 4,096 | 4,094 |
| /21 | 255.255.248.0 | 2,048 | 2,046 |
| /22 | 255.255.252.0 | 1,024 | 1,022 |
| /23 | 255.255.254.0 | 512 | 510 |
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /29 | 255.255.255.248 | 8 | 6 |
| /30 | 255.255.255.252 | 4 | 2 |
| /31 | 255.255.255.254 | 2 | 2 |
| /32 | 255.255.255.255 | 1 | 1 |
前缀实际做的是什么
一个 IPv4 地址是三十二位。前缀说明从左往右数,其中有多少位标识网络;其后的一切属于主机。整个想法就这些,而上面那个二进制视图值得看一眼,因为它让这套算术不言自明:青色的数字在块内不能变,灰色的那些则把这个块枚举出来。
所以一个 /24 固定二十四位,留八位可变,也就是 2⁸ = 256 个地址。一个 /26 多固定两位,只剩六位:64 个地址。你每往前缀上加一位,块就减半。
把所有主机位都置零,得到的就是网络地址;把所有主机位都置一,得到的是广播地址。两者都不能分配,「减二」就是从这里来的。
让人栽跟头的那条边界
一个块总是从它自身大小的整数倍处开始。192.168.1.64/26 是有效的;192.168.1.100/26 不是一个网络地址,因为 100 不是 64 的倍数——计算器会告诉你,它实际上住在从 64 开始的那个块里。
这也是为什么对任何短于 /24 的前缀,第三个八位组会动。在一个 /22 里,块是 1,024 个地址,所以边界落在 10.0.0.0、10.0.4.0、10.0.8.0 等等——每隔四个 /24 一次。出于同样的道理,10.0.6.0/22 不是一个有效的网络地址。
给一个网络定尺寸
数一数你的主机,留出成长空间,向上取到 2 的下一个幂,然后减二。
| 你需要 | 使用 | 得到 | 常见于 |
|---|---|---|---|
| 2 台主机 | /31 | 2 个可用 | 路由器之间的链路 |
| 最多 6 台 | /29 | 6 个可用 | 一小块公网地址 |
| 最多 30 台 | /27 | 30 个可用 | 一个机架,或者一个小办公室 VLAN |
| 最多 62 台 | /26 | 62 个可用 | 一个部门 |
| 最多 254 台 | /24 | 254 个可用 | 几乎到处都是的默认值 |
| 最多 1,022 台 | /22 | 1,022 个可用 | 一层楼,或者一个园区网段 |
「刚好够用」的本能值得抵抗。一个正在运行的网络因为地址用满而重新编址,代价是实打实的停机时间,而 RFC 1918 的地址空间是免费的——把 10.0.0.0/8 用得多高效并不会给你发奖。相反方向的错误比它该有的频率更常见:把整个站点塞进一个扁平的 /16,意味着广播流量会到达成千上万台主机,而任何攻破一台机器的东西都能够到其余所有机器。
私有、公有,以及为什么你的服务器连不上
计算器会标出你的地址落在哪一类里,因为它回答的正是人们常常带着却没意识到的那个问题。有三个范围被 RFC 1918 保留作私有用途,从不会在互联网上被路由:
10.0.0.0/8——1,670 万个地址172.16.0.0/12——注意这个范围是 172.16 到 172.31,不是整个 172192.168.0.0/16——家用路由器的那一段
如果 10.0.0.5 上的某个服务从外面连不上,那不是一个要去调试的防火墙问题。这个地址不可路由,你机器上的任何配置都改不了这一点。
另外两个也值得认出来。169.254.0.0/16 是链路本地地址——DHCP 失败时机器会给自己分配一个,所以看到它通常意味着「没有 DHCP 服务器应答」。而 100.64.0.0/10 是运营商级 NAT:如果你的路由器把其中一个报告为它的 WAN 地址,说明你的 ISP 把你放在了他们自己的 NAT 后面,这就是为什么无论你怎么配置,端口转发都不起作用。
相关
要反过来走——把一段地址范围转成覆盖它的那些块——CIDR 计算器干的正是这件事,而且不向上取整。如果只是要做前缀到掩码的查表,有一个更专的小工具,带完整对照表。而如果你想知道的是一个公网地址归谁所有,而不是它怎么细分,IP 查询覆盖了那一块。
子网划分相关问题
为什么可用主机数比地址数少两个?
一个地址块里的第一个地址标识网络本身,最后一个是广播地址,它能触达该网段上的每一台主机。这两个都不能分配给机器,所以一个有 256 个地址的 /24 给你 254 个可用地址。例外是 /31 和 /32,它们根本没有网络地址和广播地址。
/31 真的能用吗?
能,用在点对点链路上,而且那是标准做法。RFC 3021 在 2000 年定义它,正是因为旧规则浪费掉了每一次点对点分配的一半:一个 /30 给四个地址,其中两个可用,于是连接两台路由器要吃掉四个地址才用上两个。/31 没有网络地址也没有广播地址,两个地址都是主机,而且现在的每一个路由器平台都支持它。那些对 /31 报告「0 个可用主机」的计算器,描述的是一条二十六年前就已作废的规则。
通配符掩码是什么?我什么时候需要它?
它是子网掩码逐位取反的结果,所以 /24 变成 0.0.0.255 而不是 255.255.255.0。Cisco 的访问控制列表和某些路由协议语句要求这种形式。它之所以存在,是因为通配符掩码不必连续——你可以匹配「最后一个八位组为偶数的任意地址」——尽管实际上你会写的几乎每一个通配符掩码,都只是取反的子网掩码。
新建网络时前缀长度该怎么选?
从主机数量出发,加上余量,再向上取到 2 的幂。四十台设备,在扣除网络地址和广播地址之后需要 42 个可用地址,也就是给你 62 个的 /26。不要卡着尺寸算:因为地址用尽而重新编址,要比多分配一个稍大的块痛苦得多,何况私有地址空间并不稀缺。反方向上常见的错误是把所有东西都塞进一个 /16,那会让广播流量和横向移动这两件事都比本来更糟。
A 类、B 类、C 类去哪儿了?
CIDR 在 1993 年取代了它们。在分类编址下,地址开头的几位就决定了掩码,这意味着一个需要 500 个地址的机构,只能拿一个含 65,534 个地址的 B 类,然后把其余的浪费掉。CIDR 让前缀变成显式且独立的,这就是今天每一个地址都带斜杠书写的原因。这些类别只活在考题里,以及「一个 C 类网络」这种指代 /24 的说法里——计算器把类别显示出来正是因为这个,但它对任何东西如何路由都毫无影响。
计算器会把我的地址发到什么地方吗?
不会。全部都是在你浏览器里跑的整数运算——没有什么可发的,而且完全断网这个页面照样能用。对这样一件工具来说,这一点比听上去更要紧,因为人们粘进子网计算器的地址,往往就是他们自己的内网拓扑。
最后审校于 。发现有内容过时了? 告诉我们.
