题干与思路
题目:把 192.168.16.0/24 到 192.168.19.0/24 四条连续路由合并成一条。思路是数块数:19 − 16 + 1 = 4,4 = 2^2,说明要向前吃掉 2 位,汇总前缀 = 24 − 2 = 22;再验证起点对齐,16 是 4 的倍数,因此汇总为 192.168.16.0/22,覆盖 192.168.16.0 到 192.168.19.255。反向验算:/22 内包含 2^(24−22) = 4 个 /24,与明细条数一致。
基本信息
| 连续块数 | 4 条 /24(16 到 19) |
|---|---|
| 指数换算 | 4 = 2^2,向前 2 位 |
| 汇总前缀 | 24 − 2 = /22 |
| 汇总结果 | 192.168.16.0/22,掩码 255.255.252.0 |
| 覆盖范围 | 192.168.16.0 到 192.168.19.255,共 1024 个地址 |
| 起点对齐 | 16 ÷ 4 = 4,对齐成立 |
解题步骤
解题步骤
① 数连续块数:19 - 16 + 1 = 4
② 取 2 的幂:4 = 2^2 → 汇总前缀 = 24 - 2 = /22
③ 验证起点对齐:16 mod 4 = 0 ✓
④ 输出汇总:192.168.16.0/22
⑤ 反向验算:/22 覆盖 4 个 /24,与明细条数一致程序与工具验算
程序与工具验算
python -c "import ipaddress as ip; nets=[ip.ip_network('192.168.{}.0/24'.format(x)) for x in range(16,20)]; print(list(ip.collapse_addresses(nets)))"
# [IPv4Network('192.168.16.0/22')]
ipcalc 192.168.16.0/22 | grep -E 'Network|Broadcast'
# Network: 192.168.16.0/22
# Broadcast: 192.168.19.255常见汇总对照
| 块数 | 汇总前缀 | 示例 |
|---|---|---|
| 2 个 /24 | /23 | 172.16.4.0/23 覆盖 4.0 - 5.255 |
| 4 个 /24 | /22 | 192.168.16.0/22 覆盖 16.0 - 19.255 |
| 8 个 /24 | /21 | 192.168.8.0/21 覆盖 8.0 - 15.255 |
| 16 个 /24 | /20 | 10.10.16.0/20 覆盖 16.0 - 31.255 |
典型使用场景
- 四个部门各占一个 /24,对外只通告一条 /22,边界设备的会话与表项压力明显下降
- 分支互联:同一城市多个办公点的 /24 汇总后经一条链路返回总部
- 招标与验收:按 4 的倍数规划连续段,验收时能出示整齐的汇总依据
- 运维文档:把明细与汇总的对应关系写清,交接时能快速理解结构
- 考试题:4 个 /24 汇总是最常见的入门题型,考察 2 的幂换算与对齐判断
落地建议
- 汇总前确认四条路由全部真实可用,缺号会导致未分配地址被引流到本区
- 汇总与明细同时部署:对外通告汇总,内部保留明细,避免单链路抖动影响整块
- 规划阶段按 4 的倍数预留连续块,避免日后四个部门凑不出整齐汇总
- 与其他既存汇总核对范围是否重叠,重叠会造成最长匹配下的路径差异
- 变更后核对路由表条目数是否减少,用数据确认汇总生效
192.168.16.0/22 与 192.168.20.0/22 互为相邻汇总块:划分时按 4 的倍数分区,相邻的四个 /24 自然形成一个汇总单元。
汇总前后可用地址数不变:四条 /24 各 254 个可用,汇总为 /22 后仍是 4 × 254 个可用,只是路由条数从四条变成一条。