萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux PC 實現路由轉發實戰:三節點拓撲與 ARP 代理原理解析

利用 Linux 核心轉發功能,配合正確路由配置,將普通 PC 變身路由器。本文通過三節點實驗對比錯誤/正確配置,深度解析 ARP 請求無法跨網段的根因與解決方案。

實驗拓撲

  • 節點 ① (10.0.1.0/24) ←eth1→ 節點 ④ (雙網卡:eth1 10.0.1.2、eth4 10.0.4.2) ←eth1→ 節點 ⑦ (10.0.4.0/24)
  • 目標:① ping ⑦,④ 作為路由轉發

錯誤配置:直接指定出介面

# ① 節點
route add -net 10.0.4.0/24 dev eth1

# ⑦ 節點
route add -net 10.0.1.0/24 dev eth1

# ④ 節點開啟轉發
echo 1 > /proc/sys/net/ipv4/ip_forward

結果

① 發送 ARP 請求 who-has 10.0.4.3,但 ④ 不轉發 ARP 廣播 → ① 無法解析 MAC → ping 失敗

正確配置:指定網關

# ① 節點
route add -net 10.0.4.0/24 gw 10.0.1.2

# ⑦ 節點
route add -net 10.0.1.0/24 gw 10.0.4.2

封包追蹤驗證

④ 節點 eth1 (10.0.1.0/24 側)

00:16:ec:af:cb:cb → 40:61:86:32:8f:0b  ICMP echo request 10.0.1.3 → 10.0.4.3
40:61:86:32:8f:0b → 00:16:ec:af:cb:cb  ICMP echo reply   10.0.4.3 → 10.0.1.3

④ 節點 eth4 (10.0.4.0/24 側)

40:61:86:32:8f:0e → 00:25:90:93:40:79  ICMP echo request 10.0.1.3 → 10.0.4.3
00:25:90:93:40:79 → 40:61:86:32:8f:0e  ICMP echo reply   10.0.4.3 → 10.0.1.3

關鍵觀察

  • MAC 地址重寫:④ 以自身介面 MAC 作為來源/目的轉發
  • IP 地址保持不變:封包層級端到端
  • ARP 僅在本地網段解析,路由器不轉發 ARP 廣播

核心原理總結

  1. 啟用核心轉發:net.ipv4.ip_forward=1
  2. 端點路由指向下一跳 IP(網關),而非出介面
  3. 路由器介面需配置對應網段 IP
  4. ARP 隔離:各網段獨立解析 MAC,路由器代理轉發 IP 封包
copyright © 萬盛學電腦網 all rights reserved