Linux的高級路由和流量控制:多網卡的負載均衡

來源:互聯網
上載者:User
關鍵字 Linux 負載均衡 流量控制 多網卡 高級路由

有多種手段實現這個功能。 最簡單、最直接的方法之一就是「TEQL」——真(或「普通的」)鏈路均衡。 就象用佇列實現的大多數事情一樣,HTTP://www.aliyun.com/zixun/aggregation/13996.html">負載均衡也需要雙向實現。 鏈路的兩端都要參與,才有完整的效果。

想像下列情況:

A和B是路由器,我們當然假定它們全是Linux機器。 如果從網路1發往網路2的流量需要A路由器同時使用兩條鏈路發給B路由器。 B路由器需要進行配置以便適應這種情況。 反向傳輸時也一樣,當資料包從網路2發往網路1時,B路由器同時使用eth1和eth2。

分配的功能是用「TEQL」設備實現的,象這樣(沒有比這更簡單的了):

# tc qdisc add dev eth1 root teql0
# tc qdisc add dev eth2 root teql0
# ip link set dev teql0 up

別忘了「ip link set up」命令!

這在兩台機器上都要做。 teql0設備基本上是在eth1和eth2之間進行輪轉發幀。 用源也不會有資料從teql設備上進來,只是出現在原來的eth1和eth2上。

我們現在有了網路設備,還需要有合適的路由。 方法之一就是給兩個鏈路分配一個/31的網路,teql0也一樣:

在A路由器上:

# ip addr add dev eth1 10.0.0.0/31
# ip addr add dev eth2 10.0.0.2/31
# ip addr add dev teql0 10.0.0.4/31

在B路由器上:

# ip addr add dev eth1 10.0.0.1/31
# ip addr add dev eth2 10.0.0.3/31
# ip addr add dev teql0 10.0.0.5/31

A路由器現在應該能夠通過2個真實鏈路和一個均衡網卡ping通10.0.0.1、10.0.0.3和10.0.0.5。 B路由器應該能夠ping通10.0.0.0、10.0.0.2和10.0.0.4。

如果成功的話,A路由器應該把10.0.0.5作為到達網路2的路由,B路由器應該把10.0.0.4作為去往網路1的路由。 在網路1是你家裡的網路,而網路2是Internet這種特定場合下,A路由器的缺省閘道應該設為10.0.0.5。

告誡

事情永遠不會是表面看上去那樣簡單。 A路由器和B路由器上的eth1和eth2需要關閉「返回路徑過濾」,否則它們會丟棄那些返回位址不同于其源位址的資料包:

# echo 0 > /proc/sys/net/ipv4/conf/eth1/rp_filter
# echo 0 > /proc/sys/net/ipv4/conf/eth2/rp_filter

包的亂序也是一個大問題。 比如,有6個數據包需要從A發到B,eth1可能分到第1、3、5個包,而eth2分到第2、4、6個。 在理想情況下,B路由器會按順序收到第1、2、3、4、5、6號包。 但實際上B路由器的內核很可能按照類似2、1、4、3、6、5這樣的隨機順序收到包。 這個問題會把TCP/IP搞糊塗。 雖然在鏈路上承載不同的TCP/IP會話並沒有問題,但你無法通過捆綁多個鏈路來增加一個ftp檔的下載速度,除非兩端的作業系統都是Linux,因為Linux的TCP/IP協定棧不那麼容易被這種簡單的亂序問題所蒙蔽。

當然,對於大多數應用系統來說,鏈路的負載均衡是一個好主意。

其它可能性

William Stearns已經利用高級隧道來達到捆綁多重Internet連接的效果。 可以在他的隧道網頁找到。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.