路由表结构和存储数据 | AI生成和翻译

Home 2026.01

Question: Routing table 的外观是什么样的,其中需要存储哪些信息?具体来说,它是否包含 MAC addresses、IP addresses 以及有关如何进行 packet routing 的信息?

Answer:

Routing table(路由表)是由 router(以及支持 IP 的 host)维护的数据结构,用于根据目标 IP address 决定将 IP packets 转发到何处。

Routing Table 的典型外观

在大多数系统上,可以使用如下命令显示 routing table:

一个(来自 Linux 系统的)示例 routing table 可能如下所示:

default via 192.168.1.1 dev eth0 proto dhcp metric 100 
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100 
10.0.0.0/24 via 10.0.0.254 dev tun0 
172.16.0.0/16 via 192.168.1.50 dev eth0

或者采用传统的 netstat -rn / route 格式:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    100    0        0 eth0
192.168.1.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
10.0.0.0        10.0.0.254      255.255.255.0   UG    0      0        0 tun0

Routing Table 每个条目中存储的关键信息

routing table 中的每个条目通常包含以下字段:

Routing Table 是否包含 MAC Addresses?

不包含。
Routing tables 运行在 OSI 模型的 Layer 3 (IP layer)存储 MAC addresses。MAC addresses 属于 Layer 2 (data link layer) 信息,由 ARP table (Address Resolution Protocol cache) 单独处理。

Routing Table 是否包含 IP Addresses?

是的。

它是否告知“哪个 Packet 路由到哪里”?

是的。
Routing table 的主要目的正是如此:对于 packet 中给定的目标 IP address,对目标条目执行 longest-prefix match(最长前缀匹配)以决定:

总结:

信息 是否存在于 Routing Table 中? 备注
Destination IP network/prefix 核心字段
Netmask / Prefix length 定义网络规模
Next-hop / Gateway IP 是 (如果不是直连) 下一个 router 的 IP address
Output interface 要使用的本地接口
Metric / Priority 用于路由选择
MAC addresses 由 ARP table 处理 (Layer 2)
Source IP (有时) 用于 policy-based routing 或接口分配

References:


Back

x-ai/grok-4.1-fast

Donate