路由器如何在百萬條路徑中選出最優一條?本文從兩大核心動作、演算法分類五維度、度量標準、協定演進四個層面,構建路由器大腦的完整技術畫像。
Destination/Prefix → NextHop/Interface + Metric + Protocol + Admin DistanceISO 術語:ES (End System) 無轉發能力 (主機)、IS (Intermediate System) 有轉發能力 (路由器) → 分域內 IS (Level 1/2)、域間 IS。路由域 = 自治系統 (AS)。
| 目標 | 含義 | 典型實現 | |
|---|---|---|---|
| 最優化 | 依 Metric 權重選最佳路徑 (如 OSPF Cost、EIGRP 複合度量) | OSPF (Cost)、EIGRP (延遲+頻寬+負載+可靠性)、BGP (LocalPref/AS Path/MED) | |
| 簡單低耗 | 最小化 CPU/記憶體/頻寬開銷,適合資源受限設備 | RIPv2、靜態路由、靜態預設路由 | |
| 健壯穩定 | 硬體故障/高負載/實現錯誤下仍正常運作,經時間驗證 | OSPF/IS-IS (SPF 穩定)、BGP (路徑向量防環) | |
| 快速收斂 | 拓撲變化後所有路由器快速達成一致,避免路由環路/黑洞 | OSPF/IS-IS (LSA 泛洪 + SPF)、BGP PIC/ADD-PATH、BFD 輔助 | |
| 靈活適應 | 網段斷線/新增/策略變更時快速切換備用路徑 | 動態路由 + FRR (Fast Reroute) / TI-LFA (拓撲無關備用路徑) |
| 分類 | 類型 | 特徵 | 代表協定 |
|---|---|---|---|
| 配置方式 | 靜態 | 手工配置、不自動變化、簡單可預測 | Static Route、Default Route |
| 動態 | 自動學習拓撲、自適應變化、主流 | RIP/OSPF/IS-IS/EIGRP/BGP | |
| 路徑數量 | 單路徑 | 目的地僅一條最佳路徑 | 早期 RIP/OSPF (無 ECMP) |
| 多路徑 (ECMP) | 多條等價路徑負載分擔、提升吞吐/可靠性 | OSPF/IS-IS/BGP ECMP、EIGRP 不等價負載分擔 | |
| 架構層級 | 平坦 | 所有路由器對等、路由表大、更新廣播 | RIP、早期 OSPF 單區域 |
| 分層 | 核心/骨幹/接入層、彙總路由、減少更新、模擬組織架構 | OSPF 多區域、IS-IS Level1/2、BGP 聯盟/路由反射器 | |
| 決策主體 | 源路由 (主機智慧) | 發送端指定完整路徑、開銷大、彈性高 | IP 選項/源路由、SRv6 (現代源路由復興) |
| 路由器智慧 | 路由器自主計算最佳路徑、折衷開銷與最優 | 所有主流動態路由協定 | |
| 作用域 | 域內 (IGP) | 自治系統內部 | OSPF、IS-IS、RIP、EIGRP |
| 域間 (EGP) | 自治系統之間 | BGP (唯一現役 EGP) | |
| 資訊傳播 | 鏈路狀態 (LS) | 泛洪鏈路狀態、全網同步 LSDB、SPF 計算、收斂快、資源耗大 | OSPF、IS-IS |
| 距離向量 (DV) | 僅與鄰居交換路由表/向量、Bellman-Ford、收斂慢、易環路 | RIP、EIGRP (進階 DV)、BGP (路徑向量) |
管理距離 (Administrative Distance, AD):同一前綴多來源時選擇優先級 (值越小優先):
Connected (0) < Static (1) < EIGRP Summary (5) < External BGP (20) < Internal EIGRP (90) < IGRP (100) < OSPF (110) < IS-IS (115) < RIP (120) < External EIGRP (170) < Internal BGP (200) < Unknown (255)
進程交換 → 快速交換 (路由緩存) → CEF (Cisco Express Forwarding) / FIB + Adjacency
│ │ │
▼ ▼ ▼
CPU 逐包處理 首包 CPU、後續查緩存 控制平面建 FIB/鄰接表 → 資料平面硬體/NP 線速查找轉發
低效、不穩定 緩存失效抖動、不支援負載分擔 支援 ECMP、QoS、MPLS、VPN、NAT 硬體加速
現代高端路由器:分佈式轉發 (DCEF/dCEF) — 線卡本地 FIB/鄰接表、獨立轉發、RP 僅管控;可編程資料平面 (P4/Tofino/eBPF/XDP) — 自定義封包處理管線。
理解這套邏輯,您就掌握了互聯網「導航系統」的核心源碼。