所謂ECMP指的是Equal-cost multi-path routing
這個是Fortigate OS 4.x版開始啟用的聯外多線路功能
因此,按字面描述當聯外有多筆方向為0.0.0.0的路由時
只要距離值相同,就會自動啟用ECMP功能
但是會按輪巡的方式,將來源IP分配給各個連外線路
後來為了解決各條連外線路頻寬大小不一
進階提供了ECMP負載平衡方法
有以下四種:
- 根據來源IP:Source IP based
- 權重負載平衡:Weighted Load Balance
- 溢出:Spillover
- 基於來源-目的IP:Source-Destination IP based
並一直支援GUI畫面到OS 5.2.13,OS5.4以後須用到CLI做設定
實際來說,這些功能是很陽春
並植基於所謂的靜態路由 (但不能指定source)
因此並不如專業的線路負載平衡設備,如FortiWAN
可是如果需要針對來源去指派連外線路時
一旦啟用政策路由(route policy)
又會破壞其原本內定的路由規則,即
介面直接連接(包含VIP) > ECMP > 靜態路由
規則會不存在
常見的解決方法,是啟用路由優先權,指定流量優先線路
此舉雖會破壞ECMP的平衡
但卻能夠將目的為特定方向的流量導引去指定線路
而又保有線路備援存在的需要
特別適用於許多高中職國中小
可將主要流量用於一般電信線路,如Hinet
而將教網中心或政府公用系統之流量導給Tanet
如果Hinet斷網,則可以自動流量導回Tanet
話說回來,Fortigate在這方面的功能到了OS5.2
就開啟了WLLB新功能(Wan Link LoadBalance)
猜想是解決防火牆政策困擾
因為ECMP仍然要針對每一條連外線路設政策
但實際使用性並不是太好
(以小弟而言,當OS版本解決Zone的Bug後,多半外線負載平衡會改用Zone命名)
況且仍然不能解決指定來源的路由老問題
本以為OS5.4改命名為SD-WAN會改變 (software defined WAN)
沒想到只加了網際網路應用程式的路由
OS5.6持續無太多變化
直到現今FortiOS 6.0才看到指定來源路由的曙光
转载请注明:XAMPP中文组官网 » FortiGate使用ECMP做多線路路由之心得分享