1. 程式人生 > >因項目需要做——ubuntu16.04 雙網卡綁定

因項目需要做——ubuntu16.04 雙網卡綁定

ubuntu16 雙網卡綁定

官方文檔:https://help.ubuntu.com/community/UbuntuBonding


綁定,也稱為端口聚合或鏈路聚合,意味著將多個網絡接口(NIC)組合到單個鏈路,從而提供高可用性,負載平衡,最大吞吐量或這些組合。 詳情請參閱維基百科。


1、安裝

sudo apt-get install ifenslave


2、確保內核支持

在Ubuntu可以將網卡配置為NIC綁定之前,您需要確保存在正確的內核模塊綁定,並在引導時加載。


編輯你的/ etc / modules配置:

sudo vim /etc/modules


確保bonding模塊已加載

# /etc/modules: kernel modules to load at boot time.

#

# This file contains the names of kernel modules that should be loaded

# at boot time, one per line. Lines beginning with "#" are ignored.

loop

lp

rtc

bonding


註意:從Ubuntu 9.04開始,如果您使用ifup / ifdown配置綁定,則此步驟是可選的。 在這種情況下,綁定界面被提起時,綁定模塊會自動加載。


3、配置網絡接口

確保您的網絡已關閉:

/etc/init.d/networking stop


然後加載綁定內核模塊:

sudo modprobe bonding


現在您已準備好配置您的NIC。

一般指導原則是:

1、選擇哪些可用的NIC將成為bond的一部分。

2、像往常一樣配置所有其他網卡

3、 配置所有綁定的NIC:

1、 要手動配置

2、加入指定的 bond-master

4、配置綁定網卡就好像它是一個正常的網卡

5、按如下所示向綁定NIC添加綁定特定參數。


編輯你的接口配置:

sudo vi /etc/network/interfaces


例如,要使用簡單的活動備份設置將eth0和eth1作為 active-backup 到bonding接口bond0,並將eth0作為主接口:

技術分享圖片技術分享圖片



以太網綁定可以使用不同的模式。 您可以在/ etc / network / interfaces中指定您的綁定接口的模式。 例如:

bond-mode 1


bonding一共有7種工作模式

  0:(balance-rr) Round-robin policy: (平衡輪詢策略):傳輸數據包順序是依次傳輸,直到最後一個傳輸完畢, 此模式提供負載平衡和容錯能力。

  1:(active-backup) Active-backup policy:(活動備份策略):只有一個設備處於活動狀態。 一個宕掉另一個馬上由備份轉換為主設備。mac地址是外部可見得。 此模式提供了容錯能力。

  2:(balance-xor) XOR policy:(平衡策略):傳輸根據[(源MAC地址xor目標MAC地址)mod 設備數量]的布爾值選擇傳輸設備。 此模式提供負載平衡和容錯能力。

  3:(broadcast) Broadcast policy:(廣播策略):將所有數據包傳輸給所有設備。 此模式提供了容錯能力。

  4:(802.3ad) IEEE 802.3ad Dynamic link aggregation. IEEE 802.3ad 動態鏈接聚合:創建共享相同的速度和雙工設置的聚合組。此模式提供了容錯能力。每個設備需要基於驅動的重新獲取速度和全雙工支持;如果使用交換機,交換機也需啟用 802.3ad 模式。

  5:(balance-tlb) Adaptive transmit load balancing(適配器傳輸負載均衡):通道綁定不需要專用的交換機支持。發出的流量根據當前負載分給每一個設備。由當前設備處理接收,如果接受的設備傳不通就用另一個設備接管當前設備正在處理的mac地址。

  6:(balance-alb) Adaptive load balancing: (適配器負載均衡):包括mode5,由 ARP 協商完成接收的負載。bonding驅動程序截獲 ARP 在本地系統發送出的請求,用其中之一的硬件地址覆蓋從屬設備的原地址。就像是在服務器上不同的人使用不同的硬件地址一樣。


如果是多個bond?(經過測試,無需這一步也是可行)

如果是多個bond,如:

eth0 和 eth1 做一個bond0

eth1 和 eth2 做一個bond1

那麽需要將 /etc/modules 中的內容改為:

bonding mode=1 miimon=100 max_bonds=2

也就是在原有基礎上加一個 max_bonds=2 。

網卡配置部分與bond0 的相同,只不過將配置中的eth0和eth1改為 eth2和eth3.

完。


故障測試結果:

情況1:eth0 作為主,eth1作為備, eth0斷掉,會自動切換到eth1,如eth0恢復後,接線順序為:先拔掉eth1,再馬上插上eth0,接著將eth1接回去


測試環境配置文件:

root@node1:~# cat /etc/network/interfaces

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).


source /etc/network/interfaces.d/*


# The loopback network interface

auto lo

iface lo inet loopback


# The primary network interface

auto ens33

iface ens33 inet manual

bond-master bond0

bond-primary ens33


auto ens34

iface ens34 inet manual

bond-master bond0



auto ens35

iface ens35 inet manual

bond-master bond1

bond-primary ens35


auto ens36

iface ens36 inet manual

bond-master bond1


auto bond0

iface bond0 inet static

address 192.168.89.160

gateway 192.168.89.2

netmask 255.255.255.0

bond-mode active-backup

bond-miimon 100

bond-slaves none


auto bond1

iface bond1 inet static

address 192.168.68.144

netmask 255.255.255.0

bond-mode active-backup

bond-miimon 100

bond-slaves none





因項目需要做——ubuntu16.04 雙網卡綁定