Appearance
题目
某网络在 t0 时刻的网络拓扑与 R1 的路由如下图所示。R1 ~ R4 为路由器,基于链路状态路由算法进行路由计算。S0 ~ S3 为路由器 R1 的接口,链路上的数值为链路开销。若在 t1(t1 > t0)时刻,R1 检测到 R1 与 R2 之间的链路断开,则 R1 重新计算路由并进行充分路由聚合后,路由表中路由条目的数量为( )。
错因
A
聚合过头——把 199.10.20.0/27、.32/27、.64/27、.128/25 四个外部子网全部合并成 199.10.20.0/24 一条,加默认路由 + 直连子网共 3 条。错的根源:忘了 CIDR 聚合的硬约束——只有"下一跳相同 + 前缀连续"两条都满足才能合并。这里 .0/27 和 .32/27 走 R3,但 .64/27 和 .128/25 走 R4,下一跳就分了两支,不能强行合并。
B
只算到了部分聚合,但漏算或错算了一条。常见两种走法:① 漏掉默认路由(认为题面没明示就不算),但题面说 R1 连 Internet(云形子网),必须有一条 0.0.0.0/0 默认路由;② 错把 .64/27 与 .128/25 也聚合(两者下一跳都是 R4)——但 .64 = 0100_0000、.128 = 1000_0000 在 IP 二进制上不连续,CIDR 不能合并,强行合就会把 .96 ~ .127 这段实际不存在的网络也"宣称可达",产生黑洞。
D
完全没做聚合——把 199.10.20.0/27、.32/27、.64/27、.128/25 各算一条 + 默认 + 直连 = 6 条。错的根源:没注意 .0/27 和 .32/27 此时下一跳已经统一为 R3(链路 R1-R2 断后,到 R2 后面那个子网只能绕路走 R1→R3→R2),可以聚合成 .0/26。题面"充分路由聚合后"已经在提示要做聚合。
总解析
第一步:算 t1 时刻 R1 到各外部子网的最短路径(Dijkstra)
链路 R1-R2 断后,R1 直连邻居只剩 R3(cost 6)、R4(cost 3)。各目的子网由谁直连:
| 子网 | 直连路由器 | R1 经过哪条最短路 | 总开销 | 下一跳 |
|---|---|---|---|---|
| 199.10.20.0/27 | R2 | R1 → R3 → R2 | 6 + 5 = 11 | R3 |
| 199.10.20.32/27 | R3 | R1 → R3 | 6 | R3 |
| 199.10.20.64/27 | R4 | R1 → R4 | 3 | R4 |
| 199.10.20.128/25 | R4 | R1 → R4 | 3 | R4 |
验证 R1 → R4 → R3 → R2(3+4+5=12)确实比 R1 → R3 → R2(6+5=11)大,所以走 R3。R1 → R4 → R3(3+4=7)也比 R1 → R3(6)大,所以到 R3 直接走 R1-R3 链路即可。
第二步:CIDR 聚合规则
两条路由能合并必须同时满足:
- 下一跳相同(否则合并后无法决定送往哪边)
- IP 前缀连续可合并(去掉若干位掩码后能覆盖且只覆盖原来的范围)
逐对检查:
.0/27(next R3)+.32/27(next R3)→ 下一跳同;前缀199.10.20.0与199.10.20.32在 /26 下都属于199.10.20.0/26✅ → 合并为199.10.20.0/26 → R3.64/27(next R4)+.128/25(next R4)→ 下一跳同,但.64与.128在二进制位上非相邻区间(中间隔着.96~.127),不能聚合 ❌.0/26(next R3)+.64/27(next R4)→ 下一跳不同 ❌
第三步:清点 t1 时刻 R1 的路由表
上图为 t1 时刻拓扑(已删除断开的 R1-R2 链路)。蓝色高亮的 R1 → R3 → R2 即为 R1 到 199.10.20.0/27 子网的新最短路径。
聚合后 R1 路由表:
| 序号 | 目的网络 | 下一跳 |
|---|---|---|
| 1 | 199.10.20.0/26 | R3(覆盖 .0/27 + .32/27) |
| 2 | 199.10.20.64/27 | R4 |
| 3 | 199.10.20.128/25 | R4 |
| 4 | 0.0.0.0/0(默认) | Internet |
| 5 | R1 直连子网(含 Host) | 直连 |
合计 5 条。
最终答案是 C(5)。
编者注(生僻术语):"充分路由聚合"在 408 题里意思是——所有可以合并的连续前缀都要合(等价于 CIDR Supernetting 用到极致),但绝不能跨下一跳合也绝不能合并不连续前缀。这两条边界考点经常出现在错项里。