路由表内部原理
读取路由器用来选择下一跳的条目
路由表内部原理 是 CoddyKit 上的免费 Network+ Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Network+ Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Network+ Academy 课程共包含 4 节课。
路由器如何做出决定
路由器的工作是将每个数据包转发到其目的地。为此,它会查询路由表,其中列出了已知网络以及到达这些网络的方法。每个到达的数据包都会与此表进行比对,以选择下一步。 本课将介绍路由表,并解释路由器用于做出转发决定的条目。
条目包含哪些内容
每个路由表条目都会将目标网络映射到下一跳和出接口。目标通常写成网络和前缀,例如 10.0.0.0/8。下一跳是路径上下一台路由器的地址,接口则是用于发送数据包的端口。有些条目还会列出度量值和路由来源。
Destination Next Hop Interface Metric
0.0.0.0/0 203.0.113.1 eth0 1
192.168.1.0/24 connected eth1 0
10.0.0.0/8 10.1.1.2 eth2 20直连路由
最简单的条目是直连路由。当您为路由器接口配置一个网络地址时,路由器会自动知道该网络与自己直接相连。它不需要下一跳,而是通过该接口将数据包在本地交付。直连路由始终值得信任,因为路由器可以通过自己的端口看到该网络。
下一跳
对于非直接连接的网络,条目会指定一个下一跳,即距离目标更近一跳的相邻路由器的 IP 地址。路由器不需要知道完整路径,只需知道应将数据包交给哪一台下一跳路由器。沿途的每台路由器都会重复这一过程,逐跳转发,直到数据包到达目标网络。
最长前缀匹配
一个数据包的目标地址可能与多个条目匹配。路由器使用最长前缀匹配:选择最具体的路由,也就是匹配前缀最长的路由。例如,发往 10.1.1.5 的数据包同时匹配 10.0.0.0/8 和 10.1.1.0/24 时,会遵循 /24,因为它更具体。默认路由 0.0.0.0/0 的具体性最低,只有在没有其他匹配项时才会使用。
度量值
如果同一种路由方法中存在到同一网络的两条路由,路由器会优先选择度量值较低的那条。度量值用于衡量路径的优劣,例如跳数,或根据带宽计算出的成本。数值越低越好。度量值帮助路由器在具体性相同的选项中选择效率最高的路由。
管理距离
当到同一网络的路由来自不同来源时,路由器会使用管理距离(AD)来决定信任哪一条。AD 会对路由来源进行排序:直连路由和静态路由比学习到的路由更受信任。例如,到同一网络的静态路由(AD 较低)会优先于通过 OSPF 学习到的路由。AD 决定来源;在同一来源内出现平局时,再由度量值做出选择。
默认路由
条目 0.0.0.0/0 就是默认路由,当没有更具体的条目匹配时,它会作为兜底路由使用。在边缘路由器上,它通常指向互联网服务提供商。没有默认路由时,路由器会丢弃发往未知网络的数据包。有了默认路由,任何不熟悉的目标都会被转发到更广阔的互联网方向,这正是小型网络所需要的。
读取真实路由表
您可以在路由器上使用类似 show ip route 的命令查看路由表,也可以在主机上使用 route print 或 ip route 工具。字母通常用于标记每个条目的来源:C 表示直连,S 表示静态,O 表示 OSPF,依此类推。学会读取这些输出是一项重要技能,因为它会准确告诉您路由器将如何转发任意给定的数据包。
show ip route
C 192.168.1.0/24 is directly connected, eth1
S 172.16.0.0/16 [1/0] via 192.168.1.2
O 10.0.0.0/8 [110/20] via 10.1.1.2快速了解路由来源
每个表条目都来自某个来源。直连路由表示位于路由器自身接口上的网络。静态路由由管理员输入。动态路由(例如 OSPF 产生的路由)则由路由协议自动学习。路由器会用代码字母显示来源,并通过管理距离在来源重叠时决定信任哪一个。了解来源有助于解释某条特定路由为何出现在表中。
为什么这很重要
路由表是转发功能的大脑。每个条目都将目标网络与下一跳和接口配对。路由器应用最长前缀匹配来选择最具体的路由,使用管理距离在不同来源之间做出选择,并使用度量值解决平局。理解这些规则后,您就能准确预测流量如何流动并排查相关问题,这是 Network+ 的核心技能。
快速检查
测试您对路由表的了解。
回顾
路由表将每个目标网络映射到下一跳和接口。直连路由表示直接连接的网络。路由器通过最长前缀匹配选择路径(具体性最高者优先),使用管理距离在不同路由来源之间进行选择,并使用度量值解决同一来源内的平局。默认路由 0.0.0.0/0 会接收所有未匹配的目标。读取路由表可以准确显示路由器如何转发每个数据包。
常见问题解答
「路由表内部原理」课时是免费的吗?
是的 — 「路由表内部原理」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Network+ Academy 课程的其余内容,请升级到 CoddyKit PRO。 Network+ Academy 课程共包含 4 节课。
「路由表内部原理」这节课中我会学到什么?
读取路由器用来选择下一跳的条目 你通过在浏览器中直接运行的动手代码来练习 Network+ Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Network+ Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Network+ Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「路由表内部原理」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Network+ Academy 课中编写并运行代码吗?
能。每节 Network+ Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。