Fortinet FortiGate 實戰課程

階段三:架構設計與維運 (Level 3)

單元 11. 路由控制 (Advanced Routing)

1 靜態路由與 ECMP (Static Route & Load Balancing)

核心概念 (Concept)

一句話定義:

管理者手動告訴防火牆「去哪裡該走哪條路」,若有多條路則可同時使用。

生活化比喻:指路牌與多線道

靜態路由 (Static Route) 就像路邊的「指路牌」,上面寫著「往台北車站請直走」。如果不設路牌,車子(封包)就不知道怎麼去,只能被丟棄。

ECMP (Equal Cost Multi-Path) 就像一條馬路有「多個車道」。當前往同一目的地的兩條路距離相等(Cost 相同)時,車流可以分散在兩個車道上行駛,避免單一車道塞車。

運作原理 (Mechanism)
  • Administrative Distance (AD):路徑的可信度。數值越小越優先 (Connected=0, Static=10, OSPF=110, BGP=20)。
  • Priority:當 AD 值相同時,比較 Priority (數值越小越優先)。
  • ECMP 觸發條件:當多條路由的 Destination、AD 值、Priority 皆相同時,FortiGate 會將這些路由同時放入 Routing Table 進行負載平衡。
ECMP 演算法 (v4.0+):
  • Source IP (預設):相同來源 IP 的封包走同一條線路 (除錯容易,常用)。
  • Source-Destination IP:來源+目的地的雜湊值決定路徑。
  • Weighted:依照權重比例分配 (如 WAN1=60%, WAN2=40%)。
架構視覺化 (Visuals)
雙 ISP 負載平衡架構圖
%%{init: {'themeVariables': {'fontSize': '21px'}}}%% flowchart TD LAN_User["內網使用者
192.168.1.0/24"] -->|Traffic| FG["FortiGate Firewall"] subgraph ECMP_Group ["ECMP Load Balancing"] direction TB FG -->|"Route 1 (AD=10)"| WAN1["ISP 1 - 中華電信
GW: 1.1.1.1"] FG -->|"Route 2 (AD=10)"| WAN2["ISP 2 - 遠傳電信
GW: 2.2.2.2"] end WAN1 --> Internet(("Internet")) WAN2 --> Internet
實務應用場景 (Use Case)

情境:企業雙線路備援與分流

公司申請了兩條 1G 光纖,希望平時兩條線路一起用 (Active-Active),任一條斷線時自動切換到另一條。

設定範例 (Configuration Example)
# 設定第一條靜態路由 (WAN1) config router static edit 1 set dst 0.0.0.0 0.0.0.0 // 預設路由 set gateway 1.1.1.1 // ISP 1 Gateway set device "wan1" set distance 10 set comment "ISP1-Primary" next # 設定第二條靜態路由 (WAN2) - 關鍵:Distance 相同 edit 2 set dst 0.0.0.0 0.0.0.0 set gateway 2.2.2.2 // ISP 2 Gateway set device "wan2" set distance 10 // 與 WAN1 相同,觸發 ECMP set comment "ISP2-Primary" next end # 調整 ECMP 演算法 (依需求) config system settings set v4-ecmp-mode source-ip-based end

2 策略路由 (Policy Based Routing, PBR)

核心概念 (Concept)

一句話定義:

打破「只看目的地」的傳統導航,根據「你是誰 (來源 IP)」或「做什麼 (Service/Port)」來決定走哪條路。

生活化比喻:VIP 專用道

一般的路由表像「公車」,不管乘客是誰,只要去台北車站都走同一條路線。
策略路由 (PBR) 就像「機場 VIP 通關」,雖然目的地也是出國,但如果你是 VIP (特定來源 IP) 或者你是機組人員 (特定 Protocol),警衛就會引導你走專屬通道,不跟一般人擠。

運作原理 (Mechanism)

PBR 的優先權高於一般路由表 (Static/Dynamic)。當封包進入 FortiGate 時,會先檢查是否匹配 PBR 規則,若匹配則強制導向指定介面或 Gateway;若不匹配,才去查 Routing Table。

  • 匹配條件:Source IP, Destination IP, Protocol (TCP/UDP), Port, Application (ISDB)。
  • 動作:Forward Traffic (強制走某介面), Stop Policy Routing (回歸一般路由表)。
架構視覺化 (Visuals)
封包路由決策流程 (Life of a Packet - Routing Decision)
%%{init: {'themeVariables': {'fontSize': '20px'}}}%% flowchart TD Start["封包進入 Ingress Interface"] --> CheckPBR{"是否匹配
Policy Route?"} CheckPBR -- Yes --> PBR_Action["執行 PBR 動作
強制指定 Outgoing Interface/Gateway"] PBR_Action --> PolicyCheck["Firewall Policy 檢查"] CheckPBR -- No --> LookRT{"查詢 Routing Table
FIB Lookup"} LookRT -- "有路由" --> PolicyCheck LookRT -- "無路由" --> Drop["丟棄封包 Drop"] PolicyCheck -- Accept --> Egress["轉發至 Egress Interface"] PolicyCheck -- Deny --> Drop
實務應用場景 (Use Case)

情境:部門分流 (財務部走專線,訪客走廉價線路)

財務部 (10.0.1.0/24) 需要高穩定性,必須走 WAN1 (MPLS/專線);
訪客 Wi-Fi (192.168.99.0/24) 只需要能上網,強制走 WAN2 (一般 ADSL) 以節省成本。

設定範例 (Configuration Example)
config router policy # 規則 1: 財務部走 WAN1 edit 1 set input-device "port1-LAN" // 入口介面 set src "10.0.1.0/255.255.255.0" set dst "0.0.0.0/0.0.0.0" // 任何目的地 set output-device "wan1" // 強制出口 set gateway 1.1.1.1 // 強制 Gateway next # 規則 2: 訪客走 WAN2 edit 2 set input-device "port1-LAN" set src "192.168.99.0/255.255.255.0" set dst "0.0.0.0/0.0.0.0" set output-device "wan2" set gateway 2.2.2.2 next end

3 動態路由基礎 (Dynamic Routing - OSPF)

核心概念 (Concept)

一句話定義:

路由器之間互相「八卦 (Gossip)」,自動交換彼此知道的路徑資訊,即時應對網路變化。

生活化比喻:Google Maps 導航

靜態路由像「紙本地圖」,路斷了你也不會知道,還是會開過去然後卡住。
動態路由 (如 OSPF) 就像 Google Maps。當前方發生事故 (線路中斷),所有車輛 (路由器) 會互相通報,導航會自動幫你計算出一條新的最快路徑,完全不需要人工介入。

運作原理 (Mechanism)
  • Hello Packet:用來發現並維持鄰居關係 (Neighbor)。
  • LSA (Link State Advertisement):交換路徑資訊的封包。
  • Area 0 (Backbone):OSPF 的核心區域,所有其他區域必須連接到 Area 0 以防止路由迴圈。
  • Cost:路徑成本,通常基於頻寬計算 (100Mbps Cost > 1Gbps Cost)。
架構視覺化 (Visuals)
Hub-and-Spoke VPN OSPF 架構
%%{init: {'themeVariables': {'fontSize': '18px'}}}%% flowchart TD HO["總公司 HQ - Hub
Area 0"] ---|IPsec VPN| B1["分公司 Branch 1
Area 1"] HO ---|IPsec VPN| B2["分公司 Branch 2
Area 1"] subgraph "Routing Updates" direction TB B1 -.->|"LSA Updates"| HO B2 -.->|"LSA Updates"| HO HO -.->|"Redistribute"| B1 end style HO fill:#fca5a5,stroke:#991b1b style B1 fill:#bfdbfe,stroke:#1e40af style B2 fill:#bfdbfe,stroke:#1e40af
實務應用場景 (Use Case)

情境:多站點 VPN 自動路由學習

企業有 50 個外點透過 VPN 連回總部。若用靜態路由,每新增一個分公司,總部就要加一條路由,維護困難。使用 OSPF,分公司上線後自動將自己的網段宣告給總部。

設定範例 (Configuration Example - Head Office)
config router ospf set router-id 1.1.1.1 // 設定獨一無二的 ID config area edit 0.0.0.0 // 定義 Backbone Area next config network edit 1 set prefix 192.168.10.0/24 // 宣告總公司內網 set area 0.0.0.0 next edit 2 set prefix 10.10.10.0/24 // 宣告 VPN Tunnel 網段 set area 0.0.0.0 next end # 將連接的靜態路由重分配給 OSPF (選用) config redistribute "static" set status enable end end

隨堂測驗 (Quiz)