← 返回题目列表

路由的原理是什么?路由表是怎么工作的?

高频 中等 第 4 / 26 题 更新于 2026/07/28
路由路由表网络层最长前缀匹配

简化版

路由解决「数据包该往哪个方向走下一跳」的问题。每个路由器都有一张路由表,记录「去往某个网段,应该从哪个接口、转发给哪个下一跳」。路由器收到包后,取出目的 IP,在路由表里用最长前缀匹配找到最合适的一条,把包转发到对应的下一跳——如此一跳一跳接力,直到抵达目标网络。找不到匹配就走默认路由(0.0.0.0/0)。

详细版

路由表长什么样(简化):

目的网络子网掩码下一跳出接口
192.168.1.0/24直连eth0
10.0.0.0/810.1.1.1eth1
0.0.0.0/0(默认路由)1.2.3.1eth2

转发过程

  1. 路由器收到一个数据包,取出目的 IP
  2. 拿目的 IP 去和路由表每条记录的「目的网络 + 掩码」比对(IP AND 掩码 == 目的网络?);
  3. 可能匹配多条,选掩码最长(前缀最精确)的那条——这叫最长前缀匹配
  4. 按这条记录,从指定出接口转发给指定下一跳
  5. 下一跳路由器重复这个过程,直到到达目标网络,最后由目标网络内部(ARP + MAC)投递到具体主机。

默认路由0.0.0.0/0):匹配所有目的地,作为「兜底」——路由表里没有更精确匹配时就走它(通常指向上级/运营商网关)。

完整版教学

一、路由的核心思想:分布式的「一跳接力」

互联网如此庞大,没有任何一台设备知道「到某个 IP 的完整路径」。路由采用的是分布式、逐跳决策的方式:

  • 每个路由器只负责一件事——根据目的 IP,决定「下一跳该发给谁」,把包往正确的方向推进一步;
  • 不需要知道完整路径,只要保证「朝目标更近一步」;
  • 一个个路由器接力,数据包就像击鼓传花一样,一跳跳最终到达目标网络。

这就像开车没有全程地图,但每个路口都有路牌告诉你「去某方向往这走」,跟着路牌一个路口一个路口地开,最终就能到目的地。路由表就是路由器的「路牌」

二、最长前缀匹配:为什么要选最精确的

路由表里可能有多条记录都「匹配」同一个目的 IP。比如目的 10.1.2.3

10.0.0.0/8      → 下一跳 A   (匹配,前缀 8 位)
10.1.0.0/16     → 下一跳 B   (也匹配,前缀 16 位,更精确)
10.1.2.0/24     → 下一跳 C   (也匹配,前缀 24 位,最精确)

三条都匹配,该听谁的?答案是最长前缀匹配——选**掩码最长(前缀位数最多)**的那条,即 10.1.2.0/24 → 下一跳 C。

为什么?因为前缀越长,网络范围越具体、越精确/24 精确到一个小网段,/8 是个巨大的范围。「更具体的路由」通常代表「更接近目标的、专门的路径」,应当优先。默认路由 /0 前缀最短、范围最大(匹配一切),所以它永远是最后的兜底选择。

三、路由表从哪来:直连、静态、动态

路由表里的记录有三个来源:

  • 直连路由:路由器接口直接连着的网段,配好接口 IP 就自动生成,优先级最高(就在门口,直接送达);
  • 静态路由:管理员手动配置的路由。简单、可控,但网络变化时要手动改,适合小型或稳定的网络;
  • 动态路由:路由器之间运行路由协议(如 OSPF、BGP、RIP)自动学习和交换路由信息,网络拓扑变化时能自动更新。大型网络(尤其互联网骨干)必须用动态路由(详见「静态路由和动态路由」那道题)。

三者可以并存,路由器按优先级和最长前缀匹配综合选路。

四、路由 vs 交换:网络层 vs 链路层

初学者常混淆「路由」和「交换」,其实是不同层次的「转发」:

  • 路由(路由器,网络层):跨网络转发,看IP 地址,靠路由表选下一跳,连接不同网段;
  • 交换(交换机,链路层):同一局域网内转发,看MAC 地址,靠 MAC 地址表选端口。

一个数据包跨网络传输时,是「路由 + 交换」配合:路由器决定「下一跳是哪个网络/路由器」(IP 层面),而每一段链路内部靠交换机按 MAC 把帧送到下一跳设备(详见「路由器和交换机的区别」那道题)。

五、路由与 ARP、网关如何协同

路由决定「下一跳的 IP」,但实际发送数据帧要用 MAC 地址,这就要 ARP 配合:

  1. 路由器(或主机)用路由表算出「下一跳 IP」;
  2. 如果下一跳不是直连主机而是要出本网段,就把包发给网关(下一跳路由器);
  3. ARP 解析出下一跳的 MAC 地址,封装成帧发出去(详见「ARP 协议」那道题)。

对普通主机而言,「路由表」通常很简单:本网段直连,其余全部走默认网关(详见「默认网关」那道题)。复杂的选路是路由器的活。

六、常见误区

  • ❌ 以为路由器知道完整路径——它只做「下一跳」决策,逐跳接力,不掌握全程。
  • ❌ 匹配多条时随便选一条——用最长前缀匹配,选前缀最精确的那条。
  • ❌ 把路由和交换混为一谈——路由看 IP 跨网段(网络层),交换看 MAC 在局域网内(链路层)。
  • ❌ 以为路由表都靠手动配——大型网络靠动态路由协议(OSPF/BGP)自动学习维护。

六、常见误区与追问

考点正确口径
路由表记录目的网段、下一跳、出口接口和 metric
匹配规则最长前缀匹配优先
路由来源直连、静态、动态路由协议
10.1.2.3 matches:
10.0.0.0/8
10.1.0.0/16
10.1.2.0/24  <- longest prefix wins
0.0.0.0/0

路由选择先看“最具体的网段”,再看优先级和 metric,不是简单选最近的一条。

  • 误区:路由器保存每台主机的路径。 路由表通常按网段聚合,不会为互联网每台主机保存单独路径。
  • 误区:默认路由优先级最高。 默认路由是 0.0.0.0/0,前缀最短,只有无更具体路由时才匹配。
  • 误区:动态路由一定比静态路由好。 动态路由适合复杂网络,静态路由简单可控,场景不同。
  • 追问:最长前缀匹配是什么? 多个路由都匹配目的 IP 时,选择前缀长度最长、范围最小的那条。
  • 追问:metric 有什么作用? 同等匹配条件下,用 metric 表示成本,选择成本更低路径。
  • 追问:路由环路怎么避免? 可通过 TTL、路由协议算法、水平分割、毒性逆转和收敛机制降低风险。

七、加强记忆

路由是分布式的逐跳接力:每个路由器用路由表(目的网络→下一跳/出接口),根据数据包的目的 IP,通过最长前缀匹配选最精确的一条转发到下一跳,直到抵达目标网络,找不到就走默认路由 0.0.0.0/0。路由表来自直连/静态/动态(OSPF、BGP)。路由(网络层看 IP 跨网段)不同于交换(链路层看 MAC 局域网内),实际发送还需 ARP 解析下一跳 MAC。