Skip to content

地址与转发:这一组的产物大多是同一张四列表(专题总纲)

Intro

CN 一年只有一道大题。出题人手上没有第二道题可以用,所以他必然把好几个知识点串在一条数据路径上:一个分组从主机出发,一路问过去——它在不在本网段、该交给谁、下一跳的地址怎么来、出接口装不装得下。

这个专题负责这条路径上最长的一段:分组交给谁

而这一段有个很干脆的特点:不管题面问的是划分子网、路由聚合还是最长前缀匹配,你最后做出来的大多是同一张表。

(少数年份只走到这张表的第一列就转向了——2018 年那道题划完子网就去做 IP 分片,全程没有路由表。但「前缀怎么定」仍然是它的前半问。)

做出来的大多是这张四列表

目的网络掩码 / 前缀下一跳出接口

这一组里每一道题、每一小问,都落在这张表的某个位置上:

  • 划分子网 —— 在决定「前缀这一列怎么写」。给你一段地址和几个部门,你要定出每段前缀多长。
  • 路由聚合 —— 在合并行。两条前缀相邻、且另外两列相同,就能并成一条。
  • 最长前缀匹配 —— 在查这张表。给一个目的 IP,挑掩码最长且仍匹配的那一行。
  • RIP / OSPF / BGP —— 在回答「这张表是怎么填出来的」。
  • TTL —— 在数这张表被查了几次:每过一个路由器减 1。

所以下笔的第一个动作永远一样:先把这张表的框子画出来,再决定每一格填什么。

表里有三种特殊的行,必须认识

它们在真题里反复出现,写不出来就直接丢分:

行的种类目的 / 掩码什么时候用
直连路由本接口所在网络 / 该网络的掩码目的就在我身上挂的网段里,不用再交给别人
主机路由某台主机的 IP / 255.255.255.255(/32)只为一台机器单开一条,掩码全 1
默认路由0.0.0.0 / 0.0.0.0前面全没匹配上,兜底交出去

主机路由和默认路由是同一把刀的两个极端:一个前缀顶到最长(/32,只匹配一台机器),一个短到零(/0,匹配所有人)。中间的每一条,都是这把刀停在某个位置上。 划分子网是把刀往右挪,聚合是往左挪。

怎么填这张表

  1. 一切先转二进制。 子网算术绝不在十进制上做——这是这一类题最大的错误来源。前缀长度定了,网络地址就是主机位全 0、广播地址就是主机位全 1。
  2. 每条路由问三件事:目的是哪一段、交给谁、从哪个口出去。三样凑齐才算一行。
  3. 最后回头合并:能不能少写几条。题面写「路由项尽可能少」时,这一步就是得分点。

聚合有硬前提:下一跳和出接口必须相同

地址相邻不是聚合的充分条件。 2014 年那道题就是靠这一点区分的:192.1.6.0/24192.1.7.0/24 同下一跳、同接口,能并成 192.1.6.0/23;而 192.1.5.0/24 地址明明也挨着,却因为下一跳是另一台路由器不能并进来。

判断顺序是反的——先按下一跳和出接口把路由分堆,再在每一堆内部看地址能不能凑成一段连续的、长度为 2 的幂且边界对齐的块。 反过来先看地址再看下一跳,必错。

必错点:「减 2」不是永远成立

下笔前先在题面上圈出问的是哪个集合,三种问法减的东西完全不同:

题面问的怎么算
这个地址块一共有多少个地址2不减
可分配给主机的地址数22(扣网络地址和广播地址)
还能再接多少台主机在上一行基础上,再逐个扣掉题面已经占掉的:路由器接口、已经配置的主机

⚠️ 第三种要照着题面数,别养成「默认扣掉网关」的习惯——问第二种时扣了网关就是错的。

一道题的答卷长什么样

取 2009 年那道题:R1 通过 E1、E2 接两个局域网,通过 L0 接 R2 再连到互联网; 202.118.1.0/24 要划给这两个局域网,每个局域网需分配的 IP 地址数不少于 120 个 (注意题面说的是「地址数」不是「主机数」)。另外 R1 还要能到达域名服务器 202.118.3.2, 经 L0 的下一跳是 202.118.2.2。写出 R1 的路由表。

第一步,定前缀。 主机位 7 位(272=126120,6 位只有 62 台不够),子网号占 1 位:

202.118.1.0   /25    掩码 255.255.255.128   → 局域网 1(接口 E1)
202.118.1.128 /25    掩码 255.255.255.128   → 局域网 2(接口 E2)

第二步,把表填出来。 四行,一行都不能少:

目的网络掩码下一跳接口这是哪种行
202.118.1.0255.255.255.128—(直接交付)E1直连
202.118.1.128255.255.255.128—(直接交付)E2直连
202.118.3.2255.255.255.255202.118.2.2L0主机路由,掩码全 1
0.0.0.00.0.0.0202.118.2.2L0默认路由,兜底

第三步,聚合。 题目再问 R2 上「去这两个局域网的路由项尽可能少」时,因为它们同下一跳、 同接口,两条 /25 合成一条:

目的网络掩码下一跳接口
202.118.1.0255.255.255.0202.118.2.1L0

这三步就是全部卷面内容。 最容易丢的是第二步里的后两行——直连路由大家都会写, 主机路由(/32)和默认路由(/0)常被忘掉,而它们在这道题里各占 1 分。

真题的两种形态

5 道真题,分成两组。

第一组 · 把表填出来

给一张拓扑图和一段地址,让你划分子网、写出某台路由器的完整路由表,并且通常追加一句「路由项尽可能少」。

这一组的固定动作:划分 → 逐条写行 → 按「同下一跳同接口」分堆合并 → 补上默认路由。 写完自查两件事:有没有漏掉直连路由,有没有漏掉兜底的默认路由。

2014 年那道题在这个套路上加了一层:路由表不是直接给的,要先用 Dijkstra 在拓扑图上算出最短路,再把结果写成表。 但表还是那张表,只是「下一跳」这一列改由最短路算出来。

第二组 · 用这张表回答后面的事

表写好之后,题目会拿它接着问:

  • 查表:某个目的 IP 走哪个接口——最长前缀匹配,挑掩码最长且仍匹配的那行。
  • 数跳数:TTL 初值该设多少、到达时还剩多少。每经过一个路由器减 1,主机不减。
  • 表是怎么来的:域内用 RIP 还是 OSPF(RIP 有 15 跳上限,网络规模可能超过就必须用 OSPF),跨自治系统用 BGP,而 BGP 还要分 eBGP(跨 AS)和 iBGP(同 AS 内部通告)。
  • 出接口装不装得下:目的和接口都定了,还剩最后一关——MTU。装不下就要分片,每片自带 20 B 的 IP 头,除最后一片外载荷必须是 8 B 的整数倍(片偏移以 8 B 为单位)。

交卷前扫一眼

先画四列 · 只在二进制上算 · 聚合先按下一跳分堆 · 圈清楚问的是哪个集合

配套内容

逐题精讲(建设中)——真题作答与 AI 判分入口见站内大题专题

基础没打牢的,先回这几篇:

同一条数据路径上的另一段:分组该交给谁定下来之后,还要知道下一跳的物理地址、以及私网地址怎么出网——那是地址怎么拿到、怎么被改写那个专题的事。

考纲要求、但这一组真题没有正面考过的:

真题练习