ByteTools

子网掩码与 CIDR 详解

更新于 2026-11-04

子网掩码告诉设备 IPv4 地址的哪一部分标识网络,哪一部分标识主机。CIDR 表示法用斜杠加数字来表达同样的信息,例如 /24,表示前 24 位是网络部分。掩码 255.255.255.0 和前缀 /24 是同一件事的两种写法。

二进制下的掩码

IPv4 地址有 32 位。子网掩码由连续的 1 加上连续的 0 组成:1 标记网络部分,0 标记主机部分,前缀长度就是 1 的个数。

/24  11111111.11111111.11111111.00000000  = 255.255.255.0
/26  11111111.11111111.11111111.11000000  = 255.255.255.192
/20  11111111.11111111.11110000.00000000  = 255.255.240.0

掩码的每个八位组只可能取九个值之一:0、128、192、224、240、248、252、254 或 255。它们是从左边开始各位累加的结果:128,128+64=192,192+32=224,依此类推。

主机位的数量是 32 - 前缀长度。一个子网共有 2^(主机位数) 个地址。通常其中有两个不可用:第一个是网络地址,最后一个是广播地址。因此可用主机数为 2^(主机位数) - 2。

计算示例:192.168.10.37/26

求 192.168.10.37/26 的网络地址、广播地址和主机范围。

  1. 掩码是 255.255.255.192,只有最后一个八位组被部分使用。
  2. 块大小为 256 - 192 = 64。最后一个八位组中的子网起点依次为 0、64、128 和 192。
  3. 37 介于 0 和 63 之间,所以子网从 0 开始。
项目值
网络地址192.168.10.0
第一个可用主机192.168.10.1
最后一个可用主机192.168.10.62
广播地址192.168.10.63
地址总数64 (26)
可用主机数62

你可以用按位与运算验证结果:网络地址等于地址与掩码按位 AND。在最后一个八位组中,37 是 00100101,192 是 11000000,按位与的结果是 00000000,即 0。任何示例都可以用子网计算器来验证。

/8 到 /32 的 CIDR 速查表

CIDR子网掩码地址总数可用主机数
/8255.0.0.016,777,21616,777,214
/9255.128.0.08,388,6088,388,606
/10255.192.0.04,194,3044,194,302
/11255.224.0.02,097,1522,097,150
/12255.240.0.01,048,5761,048,574
/13255.248.0.0524,288524,286
/14255.252.0.0262,144262,142
/15255.254.0.0131,072131,070
/16255.255.0.065,53665,534
/17255.255.128.032,76832,766
/18255.255.192.016,38416,382
/19255.255.224.08,1928,190
/20255.255.240.04,0964,094
/21255.255.248.02,0482,046
/22255.255.252.01,0241,022
/23255.255.254.0512510
/24255.255.255.0256254
/25255.255.255.128128126
/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(单个主机)

反掩码(通配符掩码)

反掩码是子网掩码的反码:每一位都取反。子网掩码为 1 的位,反掩码为 0,反之亦然。路由器和防火墙(例如 Cisco 访问控制列表和 OSPF 的 network 语句)使用反掩码,其中 0 位表示「必须匹配」,1 位表示「任意值」。

  • /24,掩码 255.255.255.0,反掩码为 0.0.0.255
  • /26,掩码 255.255.255.192,反掩码为 0.0.0.63
  • /20,掩码 255.255.240.0,反掩码为 0.0.15.255

快速算法:用 255 减去掩码的每个八位组。

把一个 /24 划分成四个 /26 子网

以文档示例网络 198.51.100.0/24 为例。前缀增加两位,得到 22 = 4 个子网,每个有 64 个地址。

子网网络地址可用范围广播地址
1198.51.100.0/26198.51.100.1 – 198.51.100.62198.51.100.63
2198.51.100.64/26198.51.100.65 – 198.51.100.126198.51.100.127
3198.51.100.128/26198.51.100.129 – 198.51.100.190198.51.100.191
4198.51.100.192/26198.51.100.193 – 198.51.100.254198.51.100.255

四个子网合计有 4 × 62 = 248 个可用主机,而单个 /24 有 254 个。相差的六个地址是额外多出的网络地址和广播地址。子网划分可用于隔离不同部门、服务器和访客 Wi-Fi,并减少广播流量。

IPv6 前缀惯例

IPv6 使用同样的斜杠表示法,但规划规则不同。由于地址空间极其庞大,不需要计算主机数量。常见惯例如下:

  • /64 用于每个普通的局域网(LAN)。SLAAC(地址自动配置)等功能要求主机部分为 64 位。普通局域网不要使用更长的前缀。
  • /56 或 /48 分配给一个用户或站点。一个 /48 包含 65,536 个 /64 网络,一个 /56 包含 256 个。
  • /32 是分配给互联网服务提供商的典型大小,2001:db8::/32 是文档示例地址段。
  • /128 表示单个地址,相当于 IPv4 中的 /32。

例如,拥有 2001:db8:abcd::/48 的站点可以用 2001:db8:abcd:1::/64 作为一个 VLAN,用 2001:db8:abcd:2::/64 作为下一个。

想了解地址的基础知识,请阅读 IP 地址是什么。要快速计算任何网络,请使用子网计算器。

相关指南