路由表原理与最长前缀匹配
High Contrast
Dark Mode
Light Mode
Sepia
Forest
1 min read282 words

路由表原理与最长前缀匹配

路由器是互联网的"GPS"——收到每个 IP 包,查路由表,决定从哪个接口转发出去。理解最长前缀匹配(Longest Prefix Match)是理解路由决策、排查路由故障的核心。


路由表结构

# Linux 查看路由表
ip route show
# 输出示例:
default via 192.168.1.1 dev eth0 proto dhcp metric 100
10.0.0.0/8 via 10.100.0.1 dev eth1 proto static
10.0.10.0/24 dev eth1 proto kernel scope link src 10.0.10.100
172.16.0.0/12 via 10.100.0.1 dev eth1 proto static
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100

路由表字段解读

目标网络        下一跳         接口    来源       度量值
──────────────────────────────────────────────────────────────
default         via 192.168.1.1  eth0  dhcp      100      ← 默认路由(0.0.0.0/0)
10.0.10.0/24    (直连)           eth1  kernel    —        ← 直连路由
10.0.0.0/8      via 10.100.0.1   eth1  static    —        ← 静态路由

最长前缀匹配(LPM)

路由器对每个目标 IP,选择前缀长度最长(最具体)的路由条目:

路由表:
A: 0.0.0.0/0    → 默认路由(via 192.168.1.1)
B: 10.0.0.0/8   → via 10.100.0.1
C: 10.0.10.0/24 → via 10.0.10.1(直连)
D: 10.0.10.0/26 → via 10.0.10.5(更具体)
目标 IP:10.0.10.50
匹配计算:
A: 0.0.0.0/0   → 匹配(所有IP都匹配,/0最短)
B: 10.0.0.0/8  → 匹配(/8)
C: 10.0.10.0/24 → 匹配(/24)
D: 10.0.10.0/26 → 匹配(.50在.0-.63范围内,/26)
选择 D(/26,最长前缀)→ 发往 10.0.10.5
直觉理解:精确地图优先于模糊地图
/32 = 精确到单台主机
/0  = 默认路由(兜底)

路由条目来源

来源标识    含义                    管理距离(AD)
──────────────────────────────────────────────────────
C / kernel  直连网络(接口本身)     0
S / static  手动配置的静态路由       1
D / EIGRP   EIGRP 动态路由          90 (内部) / 170 (外部)
O / OSPF    OSPF 动态路由           110
R / RIP     RIP 动态路由            120
B / BGP     BGP 路由               20 (eBGP) / 200 (iBGP)
dhcp        DHCP 分配               —
管理距离(Administrative Distance):值越小优先级越高
同一目标有多种来源时,选管理距离最小的

路由决策流程

flowchart TD A[收到 IP 包\n目标: 10.0.10.50] --> B{查路由表\n最长前缀匹配} B -->|找到具体路由| C{是否有下一跳?} B -->|只匹配默认路由| D[转发到默认网关] B -->|无匹配路由| E[丢弃包\n返回 ICMP 不可达] C -->|有下一跳 IP| F[ARP 解析下一跳 MAC] C -->|直连网络| G[ARP 解析目标 MAC] F --> H[封装新以太网帧\n转发到下一跳] G --> H

关键概念:TTL 与路由环路

IP 头中的 TTL(Time To Live):
- 每经过一个路由器(L3 跳),TTL 减 1
- TTL 减到 0 时,路由器丢弃包,发送 ICMP Time Exceeded
- 防止包在路由环路中无限循环
常见初始 TTL 值:
Linux/Mac: 64
Windows:   128
网络设备:  255
利用 TTL 进行路由追踪(traceroute 原理):
发送 TTL=1 的包 → 第1跳路由器返回 ICMP Time Exceeded
发送 TTL=2 的包 → 第2跳路由器返回 ICMP Time Exceeded
依次增加 TTL → 逐步揭示路径上每一跳

CCNA 对应考点

考纲位置:Domain 3.1 — Interpret the components of routing table

高频考题: - 最长前缀匹配规则(给定路由表和目标IP,选择哪条路由) - 管理距离数值(直连=0, 静态=1, OSPF=110, RIP=120) - 路由表中 O, S, C 等标识的含义


下一节静态路由配置实战——理解了路由表原理,下一步动手配置:如何手动添加静态路由,解决两个网段不通的问题。