bond模式: Mode=0(balance-rr) 表示負載分擔round-robin,和交換機的聚合強制不協商的方式配合Mode=1(active-backup) 表示主備模式,只有一塊網卡是active,另外一塊是備的standbyMode=2(balance-xor) 表示XOR Hash負 ...
bond模式:
Mode=0(balance-rr) 表示負載分擔round-robin,和交換機的聚合強制不協商的方式配合
Mode=1(active-backup) 表示主備模式,只有一塊網卡是active,另外一塊是備的standby
Mode=2(balance-xor) 表示XOR Hash負載分擔,和交換機的聚合強制不協商方式配合。(需要xmit_hash_policy)
Mode=3(broadcast) 表示所有包從所有interface發出,這個不均衡,只有冗餘機制和交換機的聚合強制不協商方式配合
Mode=4(802.3ad) 表示支持802.3ad協議,和交換機的聚合LACP方式配合(需要xmit_hash_policy)
Mode=5(balance-tlb) 是根據每個slave的負載情況選擇slave進行發送,接收時使用當前輪到的slave
Mode=6(balance-alb) 在5的tlb基礎上增加了rlb。
5和6不需要交換機端的設置,網卡能自動聚合。4需要支持802.3ad。0,2和3理論上需要靜態聚合方式
但實測中0可以通過mac地址欺騙的方式在交換機不設置的情況下不太均衡地進行接收。
常用的有三種
mode=0:平衡負載模式,有自動備援,但需要”Switch”支援及設定。
mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。
mode=6:平衡負載模式,有自動備援,不必”Switch”支援及設定。
需要說明的是如果想做成mode 0的負載均衡,僅僅設置這裡options bond0 miimon=100 mode=0是不夠的,與網卡相連的交換機必須做特殊配置(這兩個埠應該採取聚合方式),因為做bonding的這兩塊網卡是使用同一個MAC地址.從 原理分析一下(bond運行在mode 0下):
mode 0下bond所綁定的網卡的IP都被修改成相同的mac地址,如果這些網卡都被接在同一個交換機,那麼交換機的arp表裡這個mac地址對應的埠就有 多 個,那麼交換機接受到發往這個mac地址的包應該往哪個埠轉發呢?正常情況下mac地址是全球唯一的,一個mac地址對應多個埠肯定使交換機迷惑 了。所以 mode0下的bond如果連接到交換機,交換機這幾個埠應該採取聚合方式(cisco稱 為 ethernetchannel,foundry稱為portgroup),因為交換機做了聚合後,聚合下的幾個埠也被捆綁成一個mac地址。解決辦法是:兩個網卡接入不同的交換機即可。
mode6模式下無需配置交換機,因為做bonding的這兩塊網卡是使用不同的MAC地址。