Skip to content

2014年 408 计算机网络 第 43 题

计算机网络2014年综合题0分

题目

某网络由 4 台路由器 R1~R4 互联构成(拓扑及链路 metric 见下图),每台路由器都连接一个 /24 子网,且都运行 OSPF 协议。R1 所维护的 4 台路由器的链路状态信息(LSI)如下表。

关联题目:本题与 ds-2014-42 共用同一网络拓扑——那道是数据结构视角(图抽象 + 邻接表 + Dijkstra),本题是网络层视角(路由表设计 + 路由聚合 + TTL + 默认路由)。两道题串起来看就把"OSPF 链路状态协议"在 DS 和 CN 学科里的考法闭环了。

R1 所维护的 LSI 表

R1 的 LSIR2 的 LSIR3 的 LSIR4 的 LSI备注
Router ID10.1.1.110.1.1.210.1.1.510.1.1.6标识路由器的 IP 地址
Link1 ID10.1.1.210.1.1.110.1.1.610.1.1.5所连路由器的 Router ID
Link1 IP10.1.1.110.1.1.210.1.1.510.1.1.6Link1 的本地 IP 地址
Link1 Metric3366Link1 费用
Link2 ID10.1.1.510.1.1.610.1.1.110.1.1.2所连路由器的 Router ID
Link2 IP10.1.1.910.1.1.1310.1.1.1010.1.1.14Link2 的本地 IP 地址
Link2 Metric2424Link2 费用
Net1 Prefix192.1.1.0/24192.1.6.0/24192.1.5.0/24192.1.7.0/24直达网络 Net1 的网络前缀
Net1 Metric1111到达网络 Net1 的费用

网络拓扑(边权为链路费用):

13124161192.1.1.0/24R110.1.1.1R210.1.1.2192.1.6.0/24192.1.5.0/24R310.1.1.5R410.1.1.6192.1.7.0/24

R1 接 192.1.1.0/24 的接口名为 E0;R1 接 R2 的接口名为 L0(IP 10.1.1.1);R1 接 R3 的接口名为 L1(IP 10.1.1.9)。

请回答下列问题:

(1) 假设路由表结构如下表所示,请给出 R1 的路由表,要求包括到达图中子网 192.1.x.x 的路由,且路由表中的路由项尽可能少。

目的网络下一跳接口

(2) 当主机 192.1.1.130 向主机 192.1.7.211 发送一个 TTL = 64 的 IP 分组时,R1 通过哪个接口转发该 IP 分组?主机 192.1.7.211 收到的 IP 分组 TTL 是多少?

(3) 若 R1 增加一条 Metric 为 10 的链路连接 Internet,则 R1 的 LSI 需要增加哪些信息?

解析

总思路:本题要先用 Dijkstra 算出 R1 到各子网的最短路径(与 ds-2014-42 的 (3) 完全一致),然后做三件 CN 特有的事——路由聚合 / TTL 计算 / 默认路由配置

(1) R1 的路由表(最少路由项)— 6 分

第一步:先用 Dijkstra 算 R1 到各子网的最短路径(详细推导参见 ds-2014-42 的 (3)):

目的子网最短路径总 metricR1 出接口下一跳
192.1.1.0/24(直连)1E0
192.1.5.0/24R1→R3→192.1.5.0/243L110.1.1.10(R3)
192.1.6.0/24R1→R2→192.1.6.0/244L010.1.1.2(R2)
192.1.7.0/24R1→R2→R4→192.1.7.0/248L010.1.1.2(R2)

注意 192.1.7.0/24 走 R2 还是 R3:

  • 经 R3:2 + 6 + 1 = 9
  • 经 R2:3 + 4 + 1 = 8 ← 更短

第二步:尝试路由聚合

题目要求"路由表中的路由项尽可能少"——这是聚合(route aggregation / supernetting)的强提示。

把 4 个目的子网的前缀写成二进制看哪些位连续:

子网第三个字节(关键位)
192.1.1.0/2400000001
192.1.5.0/2400000101
192.1.6.0/2400000110
192.1.7.0/2400000111

观察 192.1.6.0/24 和 192.1.7.0/24:

  • 第三字节分别是 0000011000000111
  • 前 7 位(0000011)相同,最后 1 位不同
  • 合起来覆盖范围是 00000110 ~ 00000111 = 6.0/24 ∪ 7.0/24
  • → 可用 192.1.6.0/23(掩码 23 位 = 前 23 位匹配)表达

关键约束:聚合后的两个子网必须下一跳相同 + 出接口相同——

  • 192.1.6.0/24:下一跳 R2,接口 L0 ✓
  • 192.1.7.0/24:下一跳 R2,接口 L0 ✓ → 满足,可聚合

192.1.5.0/24 不能加入聚合

  • 第三字节 00000101,与 6/7 的 0000011x 前 7 位不同(前 6 位 000001 才相同 = /22 = 5/6/7 都进,但还有 4.0/24 也会被卷入)
  • 即使 /22 在位上勉强能合(强行包含 4/5/6/7),192.1.5.0/24 的下一跳是 R3 而 6/7 的下一跳是 R2,方向不同,绝对不能聚合

最终 R1 的路由表(只有 3 项):

目的网络下一跳接口
192.1.1.0/24E0
192.1.5.0/2410.1.1.10L1
192.1.6.0/2310.1.1.2L0

路由项数从 4 条减到 3 条——这是 OSPF/CIDR 协议层面"最长前缀匹配 + 路由聚合"机制的核心收益。如果不聚合写 4 条也算对(按"路由项不完全正确"酌情给分),但失分。

(2) TTL 计算 — 2 分

第一步:R1 查路由表确定出接口

  • 目的 IP:192.1.7.211
  • R1 路由表 3 条,逐项做最长前缀匹配:
    • 192.1.1.0/24 → 不匹配(第三字节 1 ≠ 7)
    • 192.1.5.0/24 → 不匹配(第三字节 5 ≠ 7)
    • 192.1.6.0/23(覆盖 6.0~7.255)→ 匹配
  • 命中第 3 条 → R1 通过 L0 接口 转发,下一跳 10.1.1.2(即 R2)

第二步:数路径上路由器跳数

H_src (192.1.1.130)


      [R1]  ← 跳 1(TTL:64 → 63)


      [R2]  ← 跳 2(TTL:63 → 62)


      [R4]  ← 跳 3(TTL:62 → 61)


H_dst (192.1.7.211) 收到 TTL = 61

TTL 减 1 的硬规则

  • IP 分组每经过一个路由器,TTL 减 1
  • 主机(无论源还是目的)不减 TTL
  • 路由器之间的链路不消耗 TTL——只有"被路由器转发"的动作消耗一次

R1 → R2 → R4 共经过 3 个路由器,所以目的主机收到时 TTL = 64 − 3 = 61

不少考生会把"经过几跳"误算成"经过几条链路"或"包含主机数"——记住:TTL 减 1 的次数 = 路径中路由器数(不含主机)

(3) R1 增加 Internet 链路后的 LSI 变化 — 1 分

新增链路是 R1 直连 Internet 的出口,OSPF LSI 中用"直连网络 (Prefix, Metric)"形式表达。但 Internet 不是一个具体子网,要写一条默认路由式的特殊条目:

字段
Prefix0.0.0.0/0
Metric10

为什么用 0.0.0.0/0

  • 0.0.0.0/0 = 掩码全 0 = 匹配任何 IP 地址
  • 在最长前缀匹配规则下,它的优先级最低(前缀位数最少)——只有当其它路由项都不匹配时才命中
  • 这正是"默认路由"的语义:已知子网走具体路由,未知目的全部走出网链路

这条 LSI 经 OSPF 泛洪到 AS 内其它路由器后,R2/R3/R4 的路由表里都会出现一条经 R1 出网的默认路由——AS 整体获得了访问外网的能力。

编者注(生僻术语)

  • LSI = Link State Information(链路状态信息),是教材的简化叫法,对应 OSPF 标准里的 LSA(Link State Advertisement,类型 1 Router-LSA)
  • 路由聚合 / 路由聚集 = supernetting / route summarization,CIDR 反向操作(CIDR 是 IP 分配粒度,supernetting 是路由表层面合并多条路由)
  • 0.0.0.0/0 在 Cisco / Linux 命令行里写作 default,本质就是"所有未知目的"的兜底路由

关联题型对照(OSPF / 路由表系列):

  • 2014-42(DS):图抽象 + 邻接表设计 + Dijkstra 求最短路(数据结构层)
  • 本题(CN):基于 Dijkstra 结果做路由聚合 + TTL 计算 + 默认路由配置(网络层应用)

两道题串起来 = 一次"OSPF 协议 → 链路状态算最短路 → 写进路由表 → 聚合优化 → 处理外网"的完整闭环。复试或工作面试问到 OSPF 协议时,这两道真题的解题思路就是答题模板。

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题