路由的基本原理#

路由是規劃網路封包傳遞方式與方向的機制。每部主機都維護自己的路由表,用來決定封包該往哪裡送。路由表依據網域大小排序,越精確的路由越優先匹配,最後才是預設路由。

路由表的三種來源#

  1. 網路介面自動產生:主機擁有某個 IP 時,該介面會自動產生一條對應的路由,用來連接同網域設備
  2. 手動或預設路由:管理員使用指令手動增加的路由規則
  3. 動態路由學習:透過路由協定(如 RIP、OSPF)在路由器間自動協商更新

新增的路由必須基於既有的直接可通訊網域。你無法添加一條路由指向自己無法到達的 Gateway。

路由器的核心功能#

路由器的職責是轉遞網路封包:分析封包的目標 IP,透過自身路由表決定下一跳目標,實現不同網域間的通訊。

Linux 作為路由器#

將 Linux 核心的 IP Forward 功能開啟(設定 /proc/sys/net/ipv4/ip_forward 為 1),即可讓 Linux 具備封包轉遞能力。路由器通常具備兩個以上的網路介面,分別連接不同網域。

靜態路由 vs. 動態路由#

靜態路由#

直接以指令或設定檔定義路由規則。簡單明確,但網路拓撲變更時需手動重新設定。適合小型、固定的網路環境。

動態路由#

透過 Quagga 等軟體搭配路由協定(如 RIPv2),路由器自動協商並更新彼此的路由資訊。適合規模較大或拓撲經常變動的環境。

路由的關鍵特性#

路由是雙向的#

送出封包的路由和回程封包的路由必須同時存在且正確。單向路由只能讓封包送出去,但回應無法返回,結果就是連線失敗。

每部主機的路由表獨立#

你只能管理自己主機的路由表,無法直接修改其他主機的路由。因此在多主機環境中,每部主機都需要正確的路由設定。

在同一主機的兩張網卡上設定相同網域的 IP,會造成路由表衝突。封包會優先選擇第一條匹配規則,無法達成負載平衡,甚至可能破壞防火牆規則。

IP Alias#

在單一網卡上綁定多個 IP 的虛擬介面技術。用途包括:

  • 測試環境(如連接不同網段的設備)
  • 無法安裝更多實體網卡時的替代方案
  • 在同一實體網域中模擬多個 IP 網段

虛擬介面依賴實體網卡,實體網卡關閉時虛擬介面也隨之失效。

何時需要路由器#

  • 效能考量:大規模企業透過分層路由器管理不同區域,減少廣播風暴
  • 安全隔離:將敏感部門隔離在獨立網段,搭配防火牆提供安全邊界

ARP Proxy#

當路由器兩端都處於同一 IP 網段時,無法正常進行第三層路由。ARP 代理讓路由器的介面代表其他主機的 IP 接收封包,再透過路由規則轉發至正確的介面,是特殊場景下的解決方案。