所謂ECMP指的是Equal-cost multi-path routing
這個是Fortigate OS 4.x版開始啟用的聯外多線路功能
因此,按字面描述當聯外有多筆方向為0.0.0.0的路由時
只要距離值相同,就會自動啟用ECMP功能
但是會按輪巡的方式,將來源IP分配給各個連外線路
後來為了解決各條連外線路頻寬大小不一
進階提供了ECMP負載平衡方法
有以下四種:
實際來說,這些功能是很陽春
並植基於所謂的靜態路由 (但不能指定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才看到指定來源路由的曙光
可以說說4種ECMP大致上的差異嗎?
政策雖好用,但是常常內部封包就開始大亂,路徑被改得很嚴重
我用過同距離 不同優先,主要連外是真的有解決
不過新版又出現會把ping回應封包丟到錯誤的優先介面問題
然後用wan1距離低於wan2,wan2設優先,流量卻又回到wan1去了,反而解了ping的問題
但是我還是不太理解 距離跟優先的選擇邏輯
到底哪種會比較優先
所以WLLB現在改叫SD-WAN了?
看了一下這功能覺得有前景
指定來源路由可以做到什麼?