Linux

Linux 防火牆、ADSL 綁定、兩條預設路由

  • January 10, 2015

我正在嘗試設置 Linux 防火牆(ubuntu 14.04)以使用兩條綁定的 ADSL 線路進行負載平衡。我通過搜尋論壇連結發現:http: //lartc.org/howto/lartc.rpdb.multiple-links.html但在我的情況下它不起作用,因為我沒有兩個物理介面來分隔 ADSL連接。

我的設置是現在

WAN1 - ADSLrouter1 (192.168.1.1) \
                                 - 192.168.1.3 Firewall - private IP LAN 
WAN2 - ADSLrouter2 (192.168.1.2) / 

我添加了兩個權重為 1 的預設路由以進行負載平衡。從防火牆到網際網路一切正常。但是,FW 也需要進行偽裝。從內部 LAN 中的主機,ping 到外部世界工作正常。我剛剛添加

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

其中 eth0 的 IP 地址為 192.168.1.3。TCP 連接不能很好地工作;我只是通過對等消息重置連接。我知道問題出在兩條路線上,就好像我刪除了一條路線一樣,一切正常。

我認為問題在於偽裝,當 tcp 流被路由到不同的路由時,事情就會出錯。我可以以某種方式解決此問題,還是需要另一個 NIC 才能按照我找到的說明進行操作?

你在正確的軌道上。您需要兩個 NIC,主要是因為您的 Linux 防火牆在選擇路由時以循環方式發送出站數據包,因為它們都具有相同的度量標準。

擁有兩個 NIC 只會對每個 NIC 而不是每個路由進行循環,從而將每個 TCP 連接保持在同一個 NIC 上。

請記住,這仍然可能會給您一些應用程序帶來麻煩,例如網上銀行。只要你有一個有效的 cookie,大多數 Web 應用程序都會保持一個有效的會話,但是銀行業務通常也將它與源 IP 聯繫起來,你可能已經知道,HTTP 使用多個 TCP 連接來獲取網站上的所有資源。一旦這些 TCP 連接之一從不同的 NIC(即不同的 ADSL 提供商因此不同的源 IP)發送,您的 cookie 將變為無效並且銀行會話結束。

如果你能以某種方式實現一些關聯(使用者 UA 去站點 SA 使用連結 LA),你就不會遇到這個問題,只要你在合理的時間內使這些條目過期,你的 Linux 防火牆上也不會出現 RAM 問題。

也許您更喜歡基於源來分析您的網路使用情況,並添加一些基於策略的路由(也稱為源路由)來靜態平衡可用連結之間的服務。

引用自:https://serverfault.com/questions/658578