NetCalcLab

IPv4 子网计算器

输入 CIDR 记法的 IPv4 地址,即可得到网络地址、广播地址、子网掩码、通配符掩码、可用主机范围、块大小与完整二进制表示 —— 并正确处理多数计算器会算错的 /31 与 /32 边界情况。

可以填 192.168.1.10/24,也可以只填地址、在下面选择前缀长度。

在此设置会覆盖地址栏里写的前缀。

示例:

子网是怎么算出来的

每个 IPv4 地址都是 32 位,通常写成用点分隔的四个十进制字节。CIDR 前缀长度说明其中多少位用来标识网络,其余位用来标识网络内的主机。

真正的计算只有三次位运算:把地址与子网掩码做 AND,主机位全部清零,得到网络地址;把通配符掩码与网络地址做 OR,主机位全部置一,得到广播地址。

三次运算
子网掩码   = 前 /prefix 位为 1,其余为 0
网络地址   = IP 地址 AND 子网掩码
广播地址   = 网络地址 OR 通配符掩码
通配符掩码 = NOT 子网掩码(按位取反)

以 192.168.1.10/24 为例完整推算一遍:

推算示例
IP 地址     11000000.10101000.00000001.00001010   192.168.1.10
子网掩码    11111111.11111111.11111111.00000000   255.255.255.0
           ─────────────────────────────────────  AND
网络地址    11000000.10101000.00000001.00000000   192.168.1.0

通配符掩码  00000000.00000000.00000000.11111111   0.0.0.255
           ─────────────────────────────────────  OR
广播地址    11000000.10101000.00000001.11111111   192.168.1.255

首个主机    192.168.1.1      (网络地址 + 1)
最后主机    192.168.1.254    (广播地址 − 1)
地址总数    256 个            可用主机 254 个

子网从哪里开始:块大小与关键字节

块大小就是一个子网内的地址数量。/25 到 /32 的块大小都是落在单个字节内的 2 的幂,于是就有了最快的手算方法:先找出前缀落在哪个字节,再把地址向下取整到该字节中块大小的整数倍。

示例:192.168.1.100/27

/27 有 32 个地址,所以块大小是 32。前缀落在第四个字节,第四个字节就是关键字节。不大于 100 的 32 的最大倍数是 96。

网络地址 192.168.1.96 → 广播地址 192.168.1.127 → 可用主机 .97 到 .126

下一个同样大小的子网从 192.168.1.128 开始,接着是 192.168.1.160、192.168.1.192 与 192.168.1.224 —— 也就是 /24 里有 8 个 /27。

边界情况:/0、/30、/31 与 /32

有四个前缀的行为与通用规则不同,而它们恰恰是算错就会引发真实故障的地方。

  • /0 —— 默认路由。它覆盖整个 IPv4 空间,所以“网络地址”是 0.0.0.0,广播地址是 255.255.255.255,不存在有意义的主机范围。这里的地址数量必须用 64 位运算,因为 232 会超出有符号 32 位整数。
  • /30 —— 四个地址、两个可用。这是经典的广域网互联链路尺寸,也是多数点对点路由配置默认预期的大小。
  • /31 —— 两个地址,没有网络地址和广播地址。RFC 3021 允许在点对点链路上把两个地址都分配给两端路由器,因此 /31 的可用地址数与 /30 相同,却只占一半的地址空间。
  • /32 —— 单个主机路由,用于环回地址、任播地址以及指向某台设备的静态路由。

计算器同时给出传统算法下的可用主机数和 RFC 3021 的口径,方便你按自己设计遵循的约定取值。

示例:为一个需要 100 台主机的部门 VLAN 选大小

从主机需求倒推。至少需要 102 个地址(100 台主机加网络地址和广播地址)。2 的幂依次是 ……64、128、256,第一个够用的是 128,所以主机位需要 7 位,前缀就是 /25。

/25 提供 126 个可用主机 —— 留出 26 个用于扩展。

/26 只能提供 62 个可用主机,偏小。这正是 VLSM 规划器会替你在一整份需求清单上自动完成的计算。

这个计算器帮你避开的常见错误

  • 以为网络地址总是 /24。如果地址是 10.1.2.3/8,网络地址是 10.0.0.0,而不是 10.1.2.0。
  • 把通配符掩码当成子网掩码的另一种写法。两者互为取反,在 ACL 里写反会把匹配条件完全反过来。
  • 忘记网关也要占用一个可用地址。一个 /29 有 6 个可用主机,若路由器占用第一个,留给设备的只剩 5 个。

常用子网尺寸

最常见的几种前缀,附对应掩码与可用主机数。

常用 CIDR 前缀及其掩码与主机数
前缀子网掩码地址总数可用主机典型用途
/8255.0.0.016,777,21616,777,214超大型私有或运营商地址块
/16255.255.0.065,53665,534大型园区或企业地址块
/20255.255.240.04,0964,094大型站点或运营商客户
/22255.255.252.01,0241,022分支机构或 VPN 地址池
/23255.255.254.0512510两个 VLAN 合并
/24255.255.255.0256254标准 LAN 或 VLAN
/25255.255.255.128128126半个 /24
/26255.255.255.1926462小型部门
/27255.255.255.2243230小团队或设备组
/28255.255.255.2401614小型网段
/29255.255.255.24886小型链路段
/30255.255.255.25242广域网点对点链路
/31255.255.255.25422(RFC 3021)点对点链路,无广播地址
/32255.255.255.25511主机路由或环回地址

/24 的块大小是 256,通配符掩码是 0.0.0.255 —— 这与在 Cisco ACL 中匹配整个子网时使用的值一致。

常见问题

如何从一个 IP 地址算出子网?

把地址拆成 32 个二进制位,再按前缀长度一分为二。以 192.168.1.10/24 为例,前 24 位是网络部分,后 8 位是主机部分。网络地址是 192.168.1.0(主机位全 0),广播地址是 192.168.1.255(主机位全 1),可用主机为 192.168.1.1 到 192.168.1.254。

/24 有多少个可用主机?

/24 共有 256 个地址。按传统子网划分,其中两个被保留 —— 网络地址和广播地址 —— 因此剩下 254 个可用主机地址。/24 是单个 VLAN 最常用的子网尺寸。

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

子网掩码在网络部分为 1、主机部分为 0,所以 /24 是 255.255.255.0。通配符掩码正好相反,同一个 /24 是 0.0.0.255。通配符掩码用于 Cisco ACL 与 OSPF network 语句,其中 0 表示“必须匹配”,1 表示“忽略”。

为什么 /31 的可用主机显示为 0?

传统规则要减去网络地址和广播地址两个,而 /31 总共只有两个地址。RFC 3021 改变了这一点:在点对点链路上,/31 的两个地址可以分别分配给两端的路由器,使同一地址块内能容纳的广域网链路数量翻倍。计算器会把两种口径都列出来。

不转成二进制怎么求网络地址?

先求块大小 —— 即子网内的地址数量。/27 的块大小是 32。然后找出不大于地址关键字节的、块大小的最大倍数。对于 192.168.1.100/27,关键字节是第四个字节:32 × 3 = 96,所以网络地址是 192.168.1.96,广播地址是 192.168.1.127。

172.16.0.0 是私有地址还是公网地址?

172.16.0.0/12 是 RFC 1918 定义的三个私有地址段之一,覆盖 172.16.0.0 到 172.31.255.255。计算器会把它标注为私有地址并显示匹配的地址段,方便你在写进路由器配置前先确认。