跳到正文
返回博客
·约 1 分钟读完·Subnetic

子网掩码和 CIDR 怎么算?/24 是什么意思(附速查表)

子网掩码到底在做什么、/24 和 255.255.255.0 为什么是同一回事、怎样手算网络地址、广播地址和可用主机数,以及 /8 到 /32 的 CIDR 速查表。

子网掩码用来说明一个 IPv4 地址里,哪一部分表示网络,哪一部分表示设备。比如 192.168.1.20 配上掩码 255.255.255.0,前三段(192.168.1)是网络,最后一段(20)是这台设备。CIDR 写法则是在斜杠后写出网络位的个数:255.255.255.0 换成二进制是 24 个 1,所以写作 /24。

一个 /24 有 256 个地址。第一个(.0)是网络地址,最后一个(.255)是广播地址,所以能分给设备的有 254 个。

关键在二进制位

IPv4 地址是 32 位,写成四个 0 到 255 的数。掩码也是 32 位:前面一串 1,后面全是 0。1 标出网络部分,0 标出主机部分。

地址      192.168.10.77   11000000.10101000.00001010.01001101
掩码      /26             11111111.11111111.11111111.11000000
网络地址  192.168.10.64   11000000.10101000.00001010.01000000

求网络地址,就是掩码为 1 的位保留地址原值、其余位清零(按位与)。这里最后一段 77 是 01001101,只保留前两位得到 01000000,也就是 64。

手算网络地址、广播地址和可用主机

以 192.168.10.77/26 为例:

  1. 块大小。 32 − 26 = 6 个主机位,2⁶ = 每个子网 64 个地址。
  2. 网络地址。 子网在最后一段按 64 的倍数开始:0、64、128、192。77 落在从 64 开始的那块,所以网络地址是 192.168.10.64。
  3. 广播地址。 这块里的最后一个地址:64 + 64 − 1 = 127,即 192.168.10.127。
  4. 可用主机。 两者之间的全部地址:192.168.10.65 到 192.168.10.126,共 62 个。
  5. 掩码。 26 个 1 就是 255.255.255.192(最后一段是 256 − 64)。

边界落在前面某一段时方法一样。10.20.30.0/23 有 9 个主机位、512 个地址,第三段跨两个值:从 10.20.30.0 到 10.20.31.255,最后一个可用地址是 10.20.31.254。

CIDR 速查表

CIDR子网掩码反掩码地址数可用主机
/8255.0.0.00.255.255.25516,777,21616,777,214
/16255.255.0.00.0.255.25565,53665,534
/20255.255.240.00.0.15.2554,0964,094
/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(点对点链路,RFC 3021)
/32255.255.255.2550.0.0.011(单个主机)

可用主机 = 地址数 − 2,因为网络地址和广播地址不能分给设备。表底的两个是例外:/31 用在两台路由器之间的链路上时没有广播地址,两个地址都能用;/32 就是单独一个地址。

反掩码(wildcard)是把掩码每一位取反(每段用 255 去减)。思科的 ACL 和 OSPF 用的是反掩码。

把一个网段划分成子网

前缀每多一位,块就减半。把一个 /24 分成四个 /26:

子网网络地址广播地址可用范围
192.168.10.0/26.0.63.1–.62
192.168.10.64/26.64.127.65–.126
192.168.10.128/26.128.191.129–.190
192.168.10.192/26.192.255.193–.254

确定子网大小时,找能装下"主机数 + 2"的最小块:50 台设备需要 52 个地址,所以用 /26(64 个)。各子网大小不同时,先分配最大的,块才能对齐,这叫 VLSM(可变长子网掩码)。

私有地址段

下面这些地址段(RFC 1918)保留给内网使用,不会在公网上路由:

范围CIDR地址数
10.0.0.0 – 10.255.255.25510.0.0.0/816,777,216
172.16.0.0 – 172.31.255.255172.16.0.0/121,048,576
192.168.0.0 – 192.168.255.255192.168.0.0/1665,536

大多数家用路由器用的是 192.168.0.0/16 里的一个 /24,比如 192.168.1.0/24。

怎么验算

  • 浏览器里:免费的子网计算器可以算出任意 IPv4 或 IPv6 前缀的网络地址、广播地址、掩码和可用范围,还能划分子网、规划 VLSM,不会上传任何内容。
  • iPhone 上:网段尺(Subnetic) 在前缀滑块下面画出网络位和主机位,从 /0 拖到 /32 实时变化。IPv4 计算和二进制视图免费;一次性 Pro 解锁增加子网划分、VLSM 分配和 IPv6。
  • Mac 终端里通常装有 Python:python3 -c "import ipaddress; n=ipaddress.ip_network('192.168.10.77/26', strict=False); print(n, n.broadcast_address, n.num_addresses)" 会输出 192.168.10.64/26 192.168.10.127 64。

常见问题

/24 和 255.255.255.0 是一回事吗? 是。/24 表示前 24 位是网络部分,24 个 1 写成十进制就是 255.255.255.0。

/24 有多少个可用主机? 254 个:256 个地址减去网络地址(.0)和广播地址(.255)。

子网掩码和 CIDR 写法有什么区别? 表达的信息完全一样。掩码把网络位写成四个数(255.255.255.192),CIDR 在斜杠后面数出位数(/26)。

为什么 /30 只有 2 个可用地址? 它一共 4 个地址,其中两个是网络地址和广播地址。/30 曾是两台路由器之间链路的常用大小;/31 用 2 个地址完成同样的事,没有浪费。

反掩码是什么? 把子网掩码每一位取反:255.255.255.0 变成 0.0.0.255。思科 ACL 和 OSPF 用它表示哪些位必须匹配。

作者

独立开发者,在 Obelisk Club 做本地优先的 Mac 与 iOS 效率应用。 关于作者 →