路由表
100%

路由 · 第 2 课

路由表

学习如何读取 Linux 路由,并检查为某个目标选择的路由。

Linux 路由状态决定对于某个 IP 目标,哪些下一跳、接口和源地址符合条件。旧式 route -n 视图仍然可见,但 ip route 能更直接地公开现代内核路由概念。

阅读 IPv4 路由

示例输出如下:

$ ip -4 route show
default via 192.168.224.2 dev eth0 proto dhcp src 192.168.224.10 metric 100
192.168.224.0/24 dev eth0 proto kernel scope link src 192.168.224.10 metric 100

直连 /24 路由会将匹配的目标直接通过 eth0 发送。默认路由使用下一跳网关 192.168.224.2proto 描述路由的安装方式,src 是匹配流量的首选源地址,度量值则帮助排列其他方面可比的路由。

via 192.168.224.2 表示什么?

直连路由与默认路由

带有 scope link 且没有 via 下一跳的路由,会把该前缀视为可通过接口直接到达。默认路由匹配每个地址,但任何符合条件且更具体的路由都会优先于它。

直连的 scope link 目标通常如何到达?

前缀长度与度量值

路由选择会考虑策略规则,并选择最长的合格前缀。度量值用于排列适当的可比路由;低度量值默认路由不会仅凭数字较小就覆盖匹配的 /24

哪条路由通常对 192.168.224.50 匹配得更具体?

策略规则与多张路由表

Linux 可以按照 ip rule 策略,根据源地址、标记、接口或其他选择条件查询多张路由表。因此,只查看主路由表可能会遗漏实际路径:

$ ip rule show
$ ip route show table all

网络命名空间和 VRF 也可以拥有独立状态。检查时应使用与受影响进程相同的上下文。

为什么仅运行 ip route show 可能无法解释应用程序路径?

查询生效路由

让内核评估目标和可选源地址:

$ ip route get 203.0.113.10
$ ip route get 203.0.113.10 from 192.168.224.10

结果预测当前时刻的本地查找。它不会发送探测,也不能证明邻居、下游、防火墙或应用程序可达。

ip route get 不会做什么?

课程已完成

你已完成 路由表

现在,你可以读取 Linux 路由条目并查询实际生效的本地决策。

  • 区分直连路由与经由网关的路由。

  • 阅读前缀、接口、协议、源地址和度量值字段。

  • 在比较相关度量值前应用最长前缀匹配。

  • 考虑策略路由表、命名空间和 VRF。

  • ip route get 视为查找,而不是可达性测试。

保存学习进度

创建免费账户即可保存本课进度,并在任意设备上继续学习。

创建免费账户
下一节
返回 路由