子网划分与 CIDR 计算:/24 /26 /28 到底怎么算(含速查表)

子网划分被讲复杂了,本质上就是三件事:斜杠后面的数字是多少位 1、剩下几位是主机位、可用主机数 = 2^主机位 - 2。剩下的全是算术。

一、结论先给:一张表背下来

CIDR 子网掩码 主机位 可用 IP 数 常用场景
/24 255.255.255.0 8 254 最常见的部门网段
/25 255.255.255.128 7 126 对半切
/26 255.255.255.192 6 62 小团队 / 一个机柜
/27 255.255.255.224 5 30 小业务段
/28 255.255.255.240 4 14 一组服务器
/29 255.255.255.248 3 6 云厂商常见最小段
/30 255.255.255.252 2 2 点对点链路(路由器互联)
/32 255.255.255.255 0 1 单个主机(安全组、回环)
/16 255.255.0.0 16 65534 大内网总段
/8 255.0.0.0 24 16777214 A 类

可用 IP 数 = 2^主机位 - 2,减 2 是去掉网络号和广播号。现代网络里有些场景(/31、/32)不减,见第五节。

二、斜杠后面那个数字到底是什么

IP 是 32 位二进制,/26 的意思是前 26 位是网络位,后 6 位是主机位。

/26   =  11111111.11111111.11111111.11000000
         └──────── 26 个 1 ────────┘└─ 6 个 0 ─┘
       =  255.255.255.192

掩码每个字节只有 9 种可能,记住这张对照表就能心算:

字节里的 1 的个数 0 1 2 3 4 5 6 7 8
十进制值 0 128 192 224 240 248 252 254 255

所以 /26 = 第四个字节 2 个 1 → 192;/28 = 4 个 1 → 240。不用背 255.255.255.240 这种串,只需记位数。

三、算一个具体网段:192.168.1.0/26

步骤:

  1. 掩码 /26 → 255.255.255.192
  2. 每个子网的大小 = 256 - 192 = 64(这一步是关键,叫"块大小")
  3. 于是子网从 0 开始每 64 一个:.0、.64、.128、.192
  4. 第一个子网:网络号 192.168.1.0,广播号 192.168.1.63,可用 192.168.1.1 ~ .62
子网 网络号 可用范围 广播号
1 192.168.1.0 .1 – .62 .63
2 192.168.1.64 .65 – .126 .127
3 192.168.1.128 .129 – .190 .191
4 192.168.1.192 .193 – .254 .255

再记一个大块换算:/24 能切成 2 个 /25、4 个 /26、8 个 /27、16 个 /28。每多借 1 位,子网数翻倍、每个子网的主机数减半。

四、反过来:一个地址属于哪个网段

给 10.20.37.129/25 找网络号:

  1. /25 → 掩码 255.255.255.128 → 块大小 256 - 128 = 128
  2. 看最后一个字节 129 落在哪个 128 的块里:0–127 或 128–255 → 落在第二个
  3. 网络号 10.20.37.128,可用 .129 – .254,广播 .255

法门就一句:用块大小整除最后一个字节。129 ÷ 128 = 1 余 1 → 第 1 块起点是 128。

五、五个最容易算错的地方

1. /31 和 /32 不减 2

RFC 3021 规定 /31(2 个地址)专门用于点对点链路,两个地址都能用,没有网络号和广播号的浪费。所以:

/30 = 4 个地址,可用 2(普通用法)
/31 = 2 个地址,可用 2(点对点专用)

路由器互联现在首选 /31,比 /30 省一半地址。云厂商的 VPC 路由表、专线对接经常用。

2. 私有地址范围别记错

段 范围 常见用途
10.0.0.0/8 10.0.0.0 – 10.255.255.255 大内网、K8s Pod / Service CIDR
172.16.0.0/12 172.16.0.0 – 172.31.255.255 注意是 16–31,不是整个 172
192.168.0.0/16 192.168.0.0 – 192.168.255.255 家庭/办公室

3. 云厂商会扣掉 5 个地址不是 2 个

AWS VPC / 阿里云 VPC 每个子网保留 5 个:网络号、VPC 路由器、DNS、未来预留、广播号。所以 AWS 里 /28 实际能用 11 个 不是 14 个。规划容量时按这个算,否则扩容时发现不够。

4. K8s 的 Pod 网段别和 VPC 撞

# 集群初始化时指定(别用默认值撞上内网)
kubeadm init --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12

Pod CIDR 和 Service CIDR 不能重叠、也不能和现有内网重叠,一旦定了改不了,只能重建集群。这是 K8s 部署里最贵的一个决策错误。

5. 聚合路由算的是"共同前缀"

把 192.168.0.0/24 ~ 192.168.3.0/24 四个段聚合成一条:192.168.0.0/22(4 × 256 = 1024 个地址)。聚合的前提是连续且对齐,从 .1.0 开始的 4 个 /24 不能聚成 /22。

六、实际规划一个案例

公司有 4 个部门:研发 100 人、测试 40 人、运维 20 人、办公无线 200 人,给 172.16.0.0/22(1024 个地址)做 VLSM 规划。

规则:从大到小分,避免碎片。

部门 需要 选的段 网段 可用范围
办公无线 200 /24(254) 172.16.0.0/24 .0.1 – .0.254
研发 100 /25(126) 172.16.1.0/25 .1.1 – .1.126
测试 40 /26(62) 172.16.1.128/26 .1.129 – .1.190
运维 20 /27(30) 172.16.1.192/27 .1.193 – .1.222
预留 — 剩余 172.16.1.224/27 + 172.16.2.0/23 留作扩容

要点:

  • 先分大的,大的段对地址边界要求严(/24 必须从 0 或 256 的倍数开始)
  • 每个部门留 30%~50% 余量,人不是唯一要连网的(打印机、摄像头、服务器)
  • 预留连续空间给未来,否则一年后只能重新规划

七、命令行怎么验

ip addr show                    # 看本机网段
ip route                        # 看路由表
ipcalc 192.168.1.0/26           # 装 ipcalc,直接出网络号/广播/可用范围
# 没装 ipcalc 用 python 一行
python3 -c "import ipaddress;n=ipaddress.ip_network('192.168.1.0/26');print(n.network_address, n.broadcast_address, n.num_addresss if 0 else n.num_addresses, list(n.hosts())[:3])"

ipcalc 输出里 HostMin/HostMax/Hosts/Net 就是本文手算的四个值,拿它验证手算结果最快。

不想装工具也不想心算,直接用 子网划分计算 输入 192.168.1.0/26,网络号、广播号、可用范围、可切几个子网一次出来;查某个 IP 归属用 IP 查询,掩码与二进制互转用 进制转换。

八、小结

问题 算法
掩码是多少 数前几位是 1,查第二节对照表
块大小 256 - 掩码最后一个字节
可用主机数 2^(32-前缀) - 2(/31、/32 除外)
网络号 用块大小整除最后一个字节,向下取整到块起点
广播号 下一个网络号 - 1
/24 能切几份 2^(新前缀-24)

真正要背的只有两个数:块大小 = 256 - 掩码末字节,可用数 = 2^主机位 - 2。剩下都是这两个的变形。


相关工具:子网划分计算 · IP 查询 · 进制转换

延伸阅读:K8s kubectl 常用命令速查与排障 · Docker 常用命令速查与磁盘急救

还有 65 个免费在线工具

纯前端实现,不用注册,数据不上传服务器。

浏览全部工具