cidr用“ip/前缀长度”替代子网掩码,按需分配地址(如/27供30台设备),通过前缀长度判断网络部分是否相同以确定是否同网段,并支持路由聚合(如192.168.4.0/24–7.0/24聚为192.168.4.0/22)。

CIDR 不是新概念,而是现代网络配置的默认方式。它用“IP/前缀长度”替代传统子网掩码写法,让地址分配更贴合实际需求——比如一个只有 30 台设备的部门,不再硬塞进一个 /24(254 可用地址)的网段,而是用 /27(30 可用地址)刚刚好。
CIDR 的本质:前缀长度决定网络边界
所谓“无类别”,就是彻底丢掉 A/B/C 类的固定规则。判断两台机器是否同属一个网段,只看它们的 IP 地址在指定前缀长度下是否具有完全相同的网络部分。
- 192.168.1.10/24 和 192.168.1.200/24:前 24 位相同(192.168.1),属于同一网段,可直接通信
- 192.168.1.10/26 和 192.168.1.100/26:前 26 位不同(前者落在 192.168.1.0–63,后者在 192.168.1.64–127),不属于同一网段,需经网关
- Linux 中用 ip addr show 查看接口时,显示的 inet 192.168.5.10/26 就是标准 CIDR 表示,无需再换算成 255.255.255.192
子网掩码与前缀长度的快速互换
前缀长度 /N 对应的子网掩码,本质是 N 个连续的 1 后接 (32−N) 个 0 的 32 位二进制数,转为点分十进制即可。
- /24 → 11111111.11111111.11111111.00000000 → 255.255.255.0
- /27 → 前 27 位为 1 → 255.255.255.224(因为最后 8 位中前 3 位是 1:11100000 = 224)
- 常见速查:/24=255.255.255.0,/25=255.255.255.128,/26=255.255.255.192,/27=255.255.255.224,/28=255.255.255.240
合并多个子网:CIDR 路由聚合实战
当需要把几个相邻子网统一通告给上联路由器时,CIDR 聚合能大幅简化路由表。关键在于找出所有子网 IP 的最长共同前缀。
- 要聚合 192.168.4.0/24、192.168.5.0/24、192.168.6.0/24、192.168.7.0/24
- 它们的二进制前 22 位完全一致(192.168.0100… 至 192.168.0111… 的公共高位是 192.168.01)
- 因此可聚合成 192.168.4.0/22,覆盖从 192.168.4.0 到 192.168.7.255 的全部地址
- 在 Linux 上可通过 ip route add 192.168.4.0/22 via 10.0.0.1 添加聚合路由
Linux 配置中的典型应用
日常运维中,CIDR 写法已全面取代点分十进制掩码,尤其在脚本和自动化部署中更简洁可靠。
- 添加临时地址:ip addr add 172.16.30.5/28 dev eth0
- 配置静态路由:ip route add 10.20.0.0/16 via 192.168.1.1
- 查看当前网段范围:ip route show | grep eth0,输出如 192.168.10.0/25 dev eth0 proto kernel scope link src 192.168.10.10
- 注意:/32 是单主机路由(如用于 loopback 或策略路由),/31 用于点对点链路(RFC 3021),Linux 内核 2.6.31+ 原生支持











