萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 網路安全 >  >> 路由器知識 >> 路由器基礎

路由器工作原理圖解:從封包轉發到路由表建立的核心邏輯

路由器如何在毫秒間決定封包走哪條路?本文用三個場景、四個核心步驟、一張路由表,帶您看懂路由器的大腦運作邏輯。

核心四步驟:每個封包的「人生旅程」

  1. 接收與解封裝:物理層接收比特流 → 資料鏈路層檢查 FCS、去除幀頭尾 → 提取 IP 封包
  2. 查閱路由表 (FIB 查找):取出目的 IP → 最長前綴匹配 (Longest Prefix Match, LPM) → 找到出介面 + 下一跳 IP
  3. 封裝與轉發:依出介面類型封裝新幀頭 (乙太網 MAC、PPP、GRE 等) → 將下一跳 MAC 填入目的 MAC → 推送至輸出佇列
  4. 更新統計/QoS/安全檢查:計數器+1、DSCP 重標記、ACL 匹配、NAT 轉換 (若為邊界路由器)

場景一:同網段直接轉發 (L2 轉發,路由器僅作閘道)

拓撲:PC-A (192.168.1.10/24) ── [SW] ── Router-GW (192.168.1.1/24, eth0)
                              │
                              └── PC-B (192.168.1.20/24)
  1. PC-A 要傳資料給 PC-B,發現同網段 (AND 運算:IP & Mask = Network ID 相同)
  2. PC-A 發送 ARP Request 查詢 PC-B MAC
  3. PC-B 回應 ARP Reply,PC-A 學到 MAC-B
  4. PC-A 封裝幀:Src MAC-A, Dst MAC-B, Payload=IP Pkt (Src IP-A, Dst IP-B)
  5. 交換機依 MAC 表轉發至 PC-B 埠口,**路由器完全不參與轉發** (僅作為預設閘道存在)

結論:同網段通訊不經路由器轉發,交換機線速搞定。

場景二:跨網段路由轉發 (單跳路由)

拓撲:Net-A (192.168.1.0/24) ── Router-A (eth0: 192.168.1.1, eth1: 10.0.0.1) ── Net-B (10.0.0.0/24)
      PC-A (192.168.1.10)                                                    PC-B (10.0.0.10)
  1. PC-A 要傳給 PC-B,發現不同網段 → 封裝幀發送給預設閘道 Router-A eth0 (MAC-GW)
  2. Router-A eth0 收到幀 → 解封裝得 IP 封包 (Dst=10.0.0.10)
  3. 查路由表 (FIB):
    Destination     Gateway         Genmask         Flags  Iface
    10.0.0.0/24     0.0.0.0         255.255.255.0   U      eth1   (直連)
    192.168.1.0/24  0.0.0.0         255.255.255.0   U      eth0   (直連)
    0.0.0.0/0       203.0.113.1     0.0.0.0         UG     eth2   (預設路由)
    
  4. 匹配 10.0.0.0/24 → 出介面 eth1、下一跳 0.0.0.0 (直連)
  5. Router-A 發送 ARP 查詢 10.0.0.10 MAC (若無快取)
  6. 封裝新幀:Src MAC-Router-eth1, Dst MAC-PC-B, Payload=原 IP 封包 (Src IP 不變!)
  7. PC-B 收到,解封裝得原始 IP 封包,上層協定處理

關鍵觀察:IP 封包源/目的 IP 全程不變 (除非 NAT),只有幀層 MAC 地址每跳重寫。TTL -1,檢查和重算。

場景三:多跳路由與最佳路徑選擇

拓撲:Net-A (R1) ── 100M ── (R2) ── 1G ── (R3) ── Net-C
              │                    │
              └── 10M ── (R4) ─────┘

R1 到 Net-C 有三條路徑。路由協定 (OSPF/BGP) 計算度量值:

  • OSPF Cost = 10^8 / Bandwidth(bps) → 100M=1, 1G=0.1(取1), 10M=10
  • 路徑 1 (R1-R2-R3):Cost = 1+1=2
  • 路徑 2 (R1-R4-R3):Cost = 10+1=11

R1 選擇 Cost 最低的路徑 1,將 Net-C/24 → NextHop R2 寫入 FIB。若 R2-R3 斷裂,OSPF 收斂 < 1 秒,R1 更新 FIB 指向 R4。

路由表 (RIB) vs 轉發表 (FIB)

現代路由器加速技術

  • CEF (Cisco Express Forwarding):FIB + 邻接表,硬體/軟體加速
  • NP/NPU (Network Processor):可編程封包處理引擎,載入微代碼實現封裝/NAT/QoS/加密
  • P4 可編程資料平面:定義自訂封包處理管線,部署至 Tofino/BMv2 交換晶片
  • DPDK/VPP:用戶態高速封包處理框架,通用 x86 也能跑百萬 pps

總結:路由器的一天

每秒處理百萬封包,每個封包經歷:收 → 查 (LPM) → 改 (MAC/TTL/Checksum/NAT) → 送。控制平面 (OSPF/BGP/管理) 維護 RIB,資料平面 (FIB/NP/ASIC) 執行轉發。兩者分離、協同,構建了互聯網的骨幹神經系統。

copyright © 萬盛學電腦網 all rights reserved
特性路由資訊庫 (RIB)轉發資訊庫 (FIB)
用途控制平面:路由協定計算、策略決策資料平面:高速封包轉發查找
結構樹狀/資料庫、支援多路徑、屬性豐富壓扁後的前綴樹/雜湊表、優化 LPM
更新頻率拓撲變更觸發RIB 變更後同步下發 (硬體/NP)
大小完整互聯網路由表 > 90 萬條硬體 TCAM/ SRAM 容量限制 (萬~百萬級)