


题目原文
4.2 IPv4
(13)【2009统考真题】网络拓扑图如下图所示,路由器 R1 通过接口 E1、 E2 分别连接局域网 1、局域网 2, 通过接口 L0 连接路由器 R2, 并通过路由器 R2 连接域名服务器与互联网。 R1 的 L0 接口的IP 地址是 202.118.2.1;R2 的 L0 接口的 IP 地址是 202.118.2.2, L1 接口的 IP 地址是 130.11.120.1, E0 接口的 IP 地址是 202.118.3.1; 域名服务器的 IP 地址是 202.118.3.2。
- 将 IP 地址空间 202.118.1.0/24 划分为两个子网,分别分配给局域网 1 和局域网 2,每个局域网需分配的 IP 地址数不少于 120 个。请给出子网划分结果,说明理由或给出必要的计算过程。
- 给出 R1 的路由表, 使其明确包括到局域网 1 的路由、局域网 2 的路由、域名服务器的主机路由和互联网的路由。
- 请采用路由聚合技术, 给出 R2 到局域网 1 和局域网 2 的路由。
综合解析
一、运用了什么知识点?
这道题是IPv4地址规划与路由选择的"全家桶",主要涉及以下几个核心知识点:
-
CIDR 与子网划分 (Subnetting):
- 理解CIDR表示法,如
/24代表网络前缀是24位。 - 掌握如何根据主机数量需求,从一个大的地址块中"借位"划分出多个更小的子网。
- 计算子网的网络地址、子网掩码、可用主机IP范围和广播地址。
- 理解CIDR表示法,如
-
IP路由原理与路由表构建:
- 理解路由器的基本功能:根据路由表进行分组转发。
- 掌握路由表的结构:目的网络地址、子网掩码、下一跳地址、接口。
- 区分不同类型的路由条目:
- 直连路由 (Direct Route): 路由器接口所在的网络,无需下一跳。
- 主机路由 (Host Route) : 指向单个特定主机的路由,子网掩码为
255.255.255.255(/32)。 - 网络路由 (Network Route): 指向一个网络的路由。
- 默认路由 (Default Route) : 当没有其他更具体的路由匹配时使用的"万能"路由,目的地址为
0.0.0.0,用于访问外部网络(如互联网)。
- 理解最长前缀匹配原则:当一个目的IP地址可以匹配多个路由条目时,路由器会选择网络前缀最长(即最具体)的那一条。
-
路由聚合/路由汇总 (Route Aggregation/Summarization):
- 也称为超网 (Supernetting),是子网划分的逆过程。
- 将多个连续的、可以通过相同路径到达的小网络,合并成一个更大的网络地址块来表示。
- 目的是减小路由表的规模,提高路由器的效率和网络的可扩展性。
二、考了什么?为什么这么考?
-
第1问 :考察网络管理员最基本的技能------IP地址规划。在有限的IP地址资源下,如何根据实际需求(主机数量)进行合理的子网划分,这是构建任何网络的第一步。
-
第2问 :考察对路由器工作核心的理解。一个路由器是如何看待整个网络的?它如何知道要把去往不同地方的数据包从哪个"门"(接口)扔给哪个"邻居"(下一跳)?这道题通过构建一个完整的路由表,全面检验你对直连、主机、默认路由的理解和应用。
-
第3问 :考察对网络扩展性和效率的理解。当网络规模变大,成千上万的路由条目会拖垮路由器。路由聚合是解决这个问题的关键技术。这道题通过一个简单的聚合场景,检验你是否理解如何为互联网"减负"。
为什么这么考? 因为这三个问题覆盖了一个网络从内部规划(子网划分) ,到内部通信(路由表建立),再到**与外部网络高效交互(路由聚合)**的全过程。它模拟了一个非常真实的小型网络部署场景,全面衡量了考生对IPv4核心技术的掌握深度和实际应用能力。
三、解题思路与详细分析 (为什么怎么样?)
问题1分析:子网划分
-
目标 :将
202.118.1.0/24分成2个子网,每个子网至少有120个可用IP地址。 -
计算过程:
-
确定所需主机位数 (h):
- 一个子网的可用主机数由主机位决定,公式为
2^h - 2(减去网络地址和广播地址)。 - 我们需要
2^h - 2 ≥ 120,即2^h ≥ 122。 - 我们来试算:
2^6 = 64(不够),2^7 = 128(足够)。 - 因此,每个子网的主机位必须至少为 7位。
- 一个子网的可用主机数由主机位决定,公式为
-
确定新的子网掩码:
- IP地址总共32位。既然主机位占了7位,那么网络位(包括子网位)就是
32 - 7 = 25位。 - 所以新的网络前缀是
/25。 /25对应的子网掩码是255.255.255.128(二进制为11111111.11111111.11111111.10000000)。
- IP地址总共32位。既然主机位占了7位,那么网络位(包括子网位)就是
-
确定子网地址:
- 原来的网络是
/24,主机位有8位。现在新的网络是/25,我们从原来的主机位中借了1位 (25-24=1) 用作子网位。 - 1位子网位可以表示
2¹ = 2个不同的子网,正好满足题目要求。 - 当这一位是 0 时,子网的网络地址是
202.118.1.0。 - 当这一位是 1 时,子网的网络地址是
202.118.1.128(因为第25位是1,其权值为128)。
- 原来的网络是
-
-
结论:
- 子网1 : 网络地址
202.118.1.0,子网掩码255.255.255.128(或/25)。 - 子网2 : 网络地址
202.118.1.128,子网掩码255.255.255.128(或/25)。
- 子网1 : 网络地址
问题2分析:构建R1的路由表
我们现在站在路由器R1的视角来思考,去往不同地方的包应该怎么走。
-
去局域网1 (LAN1):
- 假设我们将子网1 (
202.118.1.0/25) 分配给LAN1。 - 从图上看,R1通过 E1 接口直接连接到LAN1。
- 这是一个直连路由。路由器不需要把包交给别人,直接从E1口发出去就行。所以"下一跳"为空。
- 路由条目1 :
目的网络: 202.118.1.0, 掩码: 255.255.255.128, 下一跳: -, 接口: E1
- 假设我们将子网1 (
-
去局域网2 (LAN2):
- 我们将子网2 (
202.118.1.128/25) 分配给LAN2。 - R1通过 E2 接口直接连接到LAN2。
- 这也是一个直连路由。
- 路由条目2 :
目的网络: 202.118.1.128, 掩码: 255.255.255.128, 下一跳: -, 接口: E2
- 我们将子网2 (
-
去域名服务器 (
202.118.3.2):- 这个地址不属于LAN1或LAN2。
- 从图上看,R1要去任何不直连的地方,都必须先把包扔给路由器R2。
- R2在R1看来,就是它L0接口对面的那个邻居,IP地址是
202.118.2.2。 - 因为这是一个非常具体的目标主机,我们可以为它设置一条主机路由。
- 路由条目3 :
目的网络: 202.118.3.2, 掩码: 255.255.255.255, 下一跳: 202.118.2.2, 接口: L0
-
去互联网 (Internet):
- 互联网包含了无数个网络,我们不可能为每个网络都写一条路由。
- 这时就需要默认路由。它的意思是:"所有在我路由表里找不到明确去处的包,都统一扔给一个地方"。
- 对于R1来说,这个"地方"显然还是R2,因为R2是它通向外界的唯一出口。
- 路由条目4 :
目的网络: 0.0.0.0, 掩码: 0.0.0.0, 下一跳: 202.118.2.2, 接口: L0
- 最终R1路由表 :
| 目的IP地址 | 子网掩码 | 下一跳IP地址 | 接口 |
| :--- | :--- | :--- | :--- |
| 202.118.1.0 | 255.255.255.128 | - | E1 |
| 202.118.1.128 | 255.255.255.128 | - | E2 |
| 202.118.3.2 | 255.255.255.255 | 202.118.2.2 | L0 |
| 0.0.0.0 | 0.0.0.0 | 202.118.2.2 | L0 |
问题3分析:R2的路由聚合
-
目标:R2需要告诉互联网如何到达LAN1和LAN2。为了高效,它不应该通告两条独立的路由,而是将它们聚合成一条。
-
聚合过程:
- 列出要聚合的网络 :
202.118.1.0/25202.118.1.128/25
- 写出它们的二进制形式 (我们只关心第三和第四个八位字节):
... .00000001 . 00000000... .00000001 . 10000000
- 寻找最长共同前缀 :从左到右比较,发现它们的前24位是完全相同的 (
202.118.1)。在第25位开始出现不同(一个是0,一个是1)。 - 得出聚合路由 :
- 共同的前缀长度是 24位。
- 聚合后的网络地址取共同前缀部分,后面全置0,即
202.118.1.0。 - 聚合后的子网掩码就是
/24,即255.255.255.0。
- 列出要聚合的网络 :
-
构建R2的路由条目:
- R2知道,要去往整个
202.118.1.0/24地址块里的任何一个地址,都必须把包发给路由器R1。 - R1的IP地址是
202.118.2.1,并且是通过R2的L0接口连接的。
- R2知道,要去往整个
-
结论 :
| 目的IP地址 | 子网掩码 | 下一跳IP地址 | 接口 |
| :--- | :--- | :--- | :--- |
| 202.118.1.0 | 255.255.255.0 | 202.118.2.1 | L0 |
四、怎么学?怎么掌握?
- 动手算是王道:子网划分和路由聚合必须亲手用笔在纸上进行二进制计算。多做不同需求的练习题,直到形成肌肉记忆。熟练后可以尝试心算。
- 把自己当成路由器:在分析路由表问题时,把自己代入到那台路由器中。问自己:"我有哪些门(接口)?每个门直接通向哪里?我要去一个陌生的地方,应该把信交给哪个邻居?"
- 理解"最长前缀匹配" :这是路由的灵魂。要明白为什么R1收到一个去DNS服务器的包时,会优先匹配主机路由而不是默认路由。因为
/32的前缀比/0长得多。 - 使用模拟器 :使用像Cisco Packet Tracer这样的网络模拟软件,亲手搭建题目中的拓扑图,配置IP地址,设置路由。然后用
ping和tracert命令来验证你的配置是否正确。这是从理论到实践最好的桥梁。
好的,这个问题非常关键,是把理论知识转化为考试分数的"最后一公里"。我们来总结一下,写路由表到底是什么,以及考试时应该如何思考和练习。
路由表的核心思想:我是谁?我的邻居是谁?
写路由表,本质上就是为一台路由器制作一本"地址簿"或"导航地图"。这本地图非常简单,只回答一个问题:
"来了一个要去 [目的地] 的包裹,我应该从我的哪个门(接口)扔出去,交给哪个邻居(下一跳)?"
你必须把自己想象成这台路由器,你的世界只有你直接连接的线路 和线缆另一头的邻居。你对邻居的邻居一无所知。
考试时的"三步思考法" (黄金法则)
拿到一道路由表题,不要慌,严格按照以下三个步骤思考,就能清晰地写出每一行。
第一步:我是谁?------ 确定视角
- 思考:"题目要求我写哪台路由器的路由表?是R1还是R2?"
- 动作 :在草稿纸上,以这台路由器为中心,重新审视网络拓扑图。你是地图的中心点。
第二步:我的"直辖市"有哪些?------ 填写直连路由
- 思考:"我的哪些接口直接连着一个网络(局域网或点对点链路)?"
- 动作 :这是最简单、最先要写的条目,是送分题!
- 目的地址/掩码:写上这个直连网络的网络地址和子网掩码。
- 下一跳地址 :留空(或写'---')。因为包裹已经到达目的地网络,不需要再交给下一个邻居了,你自己就能直接送达。
- 接口 :写上你连接这个网络的自己的接口名(如E1, L0)。
第三步:外面的"省份"怎么去?------ 填写间接路由
- 思考 :"对于所有不和我直接相连的网络(包括整个互联网),我该把包裹交给哪个唯一的、直接相连的邻居?"
- 动作 :这是路由表的核心,也是最容易出错的地方。
- 目的地址/掩码 :根据题目要求,写上目标网络/主机的地址和掩码。
- 如果是去一个特定的远程网络,就写那个网络地址/掩码。
- 如果是去一个特定的远程主机,就写那个主机地址,掩码为
255.255.255.255。 - 如果是去互联网(即所有未知的地方),就写默认路由 :目的地址
0.0.0.0,掩码0.0.0.0。
- 下一跳地址 :这是最关键的一步! 填写你为了到达该目的地,必须经过的下一个路由器的、和你直接相连的那个接口的IP地址 。
- 【常见错误】:千万不能写最终目标路由器的地址,只能写你"邻居"的地址!
- 接口 :写上你为了把包裹发给上面那个"下一跳邻居",需要从你自己的哪个接口发出去。
- 目的地址/掩码 :根据题目要求,写上目标网络/主机的地址和掩码。
考试需要刻意练习和思考什么?
需要刻意练习的技能:
- 快速子网划分与聚合 :这是基本功。给你一个地址块和需求,你要能迅速算出网络地址、掩码。反之,给你几个网络,要能快速找到共同前缀,算出聚合地址和掩码。这个必须练到形成肌肉记忆。
- "下一跳"地址的准确定位:找一道复杂的拓扑图,随机指定一个源路由器和一个目的网络,反复练习只找"下一跳"地址。问自己:"从A到Z,第一步是迈向谁?" 答案永远是B,而不是C、D或Z。
- 区分不同路由类型 :
- 直连:下一跳为空。
- 主机路由 :掩码是
/32。 - 默认路由 :地址和掩码都是
0.0.0.0。 - 网络路由:最常见的形式。
- 聚合路由 :由多个小网络合并而来。
专门找包含这几类路由的综合题来做,强化区分能力。
- 画图能力 :考试时,不要直接在题目给的图上思考。在草稿纸上重新画一个简化的拓扑图,只标出路由器、网络地址和关键的接口IP,这能让你的思路非常清晰。
考试时需要思考的检查点:
- 视角检查:我写的是R1的表还是R2的表?有没有搞混?
- 直连检查:所有和我直接相连的网络,是不是都写进去了?它们的"下一跳"是不是都留空了?
- 下一跳地址合法性检查(最重要!) :检查你填写的所有"下一跳"IP地址 ,问自己:"这个IP地址,是不是我一个邻居路由器的、并且是和我直接相连的那个接口的地址?" 如果不是,那一定错了。你的"下一跳"列表里,只可能出现你邻居的IP。
- 最长前缀匹配原则检查 :如果题目中有一些特殊的路由(比如主机路由),要思考一下它和默认路由的关系。当一个数据包的目的地址同时匹配主机路由和默认路由时,路由器会选择前者,因为它的前缀更长(
/32>/0)。确保你的路由表逻辑上是正确的。
总之,路由表考察的不是记忆,而是严格的逻辑推理能力。 只要牢记"我-邻居-目的地"这个简单模型,并通过"三步思考法"把直连和间接路由分开处理,再通过"下一跳合法性检查"来验证,就一定能攻克这类问题。