前言
何謂 Bonding , 簡單而言就是將兩張以上的網路介面捆綁一起使用 .根據 Linux Ethernet Bonding Driver HOWTO 上的說明, 有以下幾種模式 :
- Active-Backup 或稱備援模式 (mode 1), 在此模式下僅有一條連結可以可以使用 , 當其中一條介面異常時 , 會將流量切換至另外一條送出 .
- balance-rr 或稱輪替模式 (mode 0), 此模式下每條線路都會送出 , 不過此模式不被大部分的交換機支援 , 多用於非網管型交換機跟 Hub , 部份設備可以使用 EtherChannel .
- balance-xor 或稱傳統鏈路聚合模式 (mode 2) , 此模式下會透過 MAC 的 Hash (Source XOR Destination) , 在交換機部份被稱為 EtherChannel (Cisco) , Link AGgregation (Juniper and others) , 不會偵測兩邊是否正常收發 .
- Broadcast (mode 3) , 此時會將流量同時從多的介面廣播出去 .
- 802.3ad , LACP , Dynamic LAG (mode 4) , 動態鏈路聚合模式 , 此模式下會透過 LACPDU 封包偵測 , 使得兩邊交握完成後才會開始傳輸 , 再透過 Hash 將流量導入不同介面 . 用此功能時需注意 , 介面的速率與多工模式需相同 , 上限最多為 8 個介面 .
- balance-tlb (mode 5) , 將對外流量透過不同的 MAC 和介面送出 , 而進來的介面宣告為其中一固定介面 , 用於保障資料送出 .
- balance-alb (mode 6) , 透過 MAC 與 ARP 的複寫將進出流量導至不同介面.
Hash (xmit_hash_policy) 的方法有以下幾種 :
- Layer2 : Source MAC XOR Destination MAC XOR Packet type ID slave number
- Layer2+3 : 做完 Layer2 Hash 之後再 XOR Source IP XOR Destination IP
- Layer3+4 : Source Port OR Destination Port , 再 XOR Source IP XOR Destination IP
- Encap2+3 & Encap3+4 : 類似之前兩種但是提供給有額外封裝使用.
早期 2.6.3 僅支援 Layer2 Hash , 但要到 3.2.2 以後版本才能提供 layer2+3 .
LACP 則建議要到 3.4 以後版本再使用, 在之前有 RX Drop 的 Bug .
沒有留言:
張貼留言