子网与CIDR基础(含计算实例的完整版)
子网是共享同一网络前缀的一段IP地址空间。描述它的现代方式是 CIDR表示法(如 192.168.1.0/24):/前缀 表示开头多少位构成网络部分,其余为主机部分。
前缀长度与主机数
主机部分为 32 − 前缀 位,2的该次方即网段内地址总数。在IPv4中有两个被保留(网络地址和广播地址),因此 可用主机数 = 总数 − 2。
| CIDR | 子网掩码 | 总数 | 可用主机 |
|---|---|---|---|
/24 |
255.255.255.0 |
256 | 254 |
/25 |
255.255.255.128 |
128 | 126 |
/26 |
255.255.255.192 |
64 | 62 |
/27 |
255.255.255.224 |
32 | 30 |
/28 |
255.255.255.240 |
16 | 14 |
/30 |
255.255.255.252 |
4 | 2 |
一个好记的心智模型:前缀每加1,网段就减半。 /24 是256个地址;/25 是两个128;/26 是四个64,依此类推。
掩码究竟如何工作
子网掩码就是把网络位设为 1、主机位设为 0 的地址。求网络地址时,将IP与掩码做按位与(AND)。以 192.168.1.0/24 为例:
IP 11000000.10101000.00000001.00000000 192.168.1.0
掩码 /24 11111111.11111111.11111111.00000000 255.255.255.0
AND 11000000.10101000.00000001.00000000 = 网络 192.168.1.0
由此,对 192.168.1.0/24:
- 网络地址:
192.168.1.0(主机位全0) - 广播地址:
192.168.1.255(主机位全1) - 第一个可用主机:
192.168.1.1 - 最后一个可用主机:
192.168.1.254
手算很快就会变繁琐——把任意CIDR粘贴进 子网计算器,即可立即得到网络、广播、主机范围与数量(支持IPv4与IPv6)。
拆分网段(VLSM)
你常常需要把一个网段切分成大小相等或不等的更小子网(可变长子网掩码,VLSM)。把 192.168.1.0/24 拆成四个 /26:
| 子网 | 范围 | 可用 |
|---|---|---|
192.168.1.0/26 |
.0–.63 |
.1–.62 |
192.168.1.64/26 |
.64–.127 |
.65–.126 |
192.168.1.128/26 |
.128–.191 |
.129–.190 |
192.168.1.192/26 |
.192–.255 |
.193–.254 |
CIDR工具 可自动拆分网段,并判断某地址是否落在给定范围内。云端网络设计见 为AWS VPC规划CIDR。
两个特例
/31—— 用于点对点链路的2地址网段(RFC 3021)。两个地址都可用,没有广播。/32—— 单个主机(一个地址),常见于路由、白名单和回环。
IPv6前缀截然不同
IPv6没有广播地址,且使用大得多的网段。常见分配是位于半字节边界上的整齐的2的幂:
| 前缀 | 典型用途 |
|---|---|
/48 |
一个站点 |
/56 |
一个家庭/客户 |
/64 |
一个子网(标准LAN大小) |
主机数量是天文数字,所以IPv6的思路是 前缀规划,而非挤压主机。见 IPv6 与 IPv4 与 IPv6地址类型。子网计算器 同样接受IPv6 CIDR。
备注: "我需要多少主机"决定前缀。需要约50台?
/26(62个可用)能从容容纳,/27(30个)则不够。永远往大了选——给运行中的网络重新编址非常痛苦。