CIDR 表示法与子网计算
理解 /24 的含义,快速判断地址块大小,以及开发者应该记住的几个常见网段。
斜杠后的数字是什么意思
CIDR(无类别域间路由)用地址加前缀长度表示一个 IP 范围,例如 10.0.0.0/24。斜杠后的数字表示 32 个比特中有多少位固定为网络部分,其余位在主机之间变化。/24 固定前 24 位,也就是前三个八位组,剩下 8 位可以表示 256 个地址。
公式始终相同:网段地址数为 2^(32 − 前缀长度)。/24 是 256 个地址,/16 是 65,536 个地址,/28 是 16 个地址。前缀长度每增加 1,网段大小减半;每减少 1,网段大小翻倍。
值得记住的地址块
- /32——恰好一个地址,可用于单台机器的主机路由或防火墙规则。
- /24——256 个地址,最常见的局域网大小;192.168.1.0/24 覆盖 192.168.1.0–255。
- /16——65,536 个地址,完整的 192.168.x.x 私有范围是 192.168.0.0/16。
- /8——1670 万个地址,10.0.0.0/8 是最大的私有地址块之一。
- /28 和 /30——分别有 16 个和 4 个地址,常见于云子网和点到点链路。
网络地址、广播地址和可用主机
在传统子网中,第一个地址表示网络本身,最后一个地址是广播地址,所以 /24 有 254 个可用主机,而不是 256 个。/31 和 /32 的规则不同:/31 是有两个可用地址、没有广播地址的点到点链路(RFC 3021),/32 则表示单个主机。
云环境还会保留更多地址:AWS 会保留每个子网的前四个地址和最后一个地址,因此 AWS 中的 /28 只有 11 个可用 IP,而不是 14 个。规划子网大小前,一定要检查目标平台的保留规则。
对齐:为什么 10.0.0.5/24 不是网络地址
CIDR 网段必须从与自身大小对齐的地址开始:/24 的最后一个八位组应为 0,/25 可以是 0 或 128,/28 则必须是 16 的倍数。写成 10.0.0.5/24 并不会围绕 .5 创建更小的网络,主机位会直接被屏蔽,网络仍然是 10.0.0.0/24。大多数工具接受带有主机位的输入并显示屏蔽后的结果;理解这一点,可以避免排查防火墙规则时产生“明明应该匹配”的困惑。
私有范围以及 CIDR 的应用场景
三段 RFC 1918 私有范围——10.0.0.0/8、172.16.0.0/12、192.168.0.0/16——以及 127.0.0.0/8 回环地址和 169.254.0.0/16 链路本地地址,都可以在自己的网络内部自由使用。VPC 子网、Kubernetes pod 和 service CIDR、安全组、防火墙规则以及反向代理允许列表都会用到 CIDR。无论场景如何,核心方法都一样:读懂前缀,知道大小,检查对齐。
参考资料
相关工具
- CIDR / 子网计算器根据 CIDR 表示法计算网络范围、广播地址和主机数量。
- IP 范围计算器计算 IP 范围的网络地址、广播地址和可用主机。