在Linux中,可以使用以太網通道綁定將兩個或多個物理網絡接口(NIC)組合在一起以創建虛擬接口。
IP地址將在此虛擬接口上配置。如果基礎物理適配器之一發生故障,則另一個物理適配器將用於處理通信流量。
以下是不同類型的以太通道綁定模式:
Mode 0-(balance-rr)輪詢模式,所綁定的網卡會針對訪問以輪詢算法進行平分。 第一個請求來了發送給第一塊網卡處理,第二個請求來了,就發往第二塊網卡進行處理,以此提供負載均衡能力。 但此模式沒有容錯能力,即只要有一塊網卡不能正常工作,則會出錯。 Mode 1-(active-backup)高可用模式,運行時只使用一個網卡,其余網卡作為備份, 在負載不超過單塊網卡帶寬或壓力時建議使用。只有當正在工作的網卡出故障時備用網卡才會被激活, 並及時替換壞了的網卡進行工作,可見這個模式並不能提升數據處理性能,但是有容錯能力, 因此常運用在實際生產環境中。 Mode 3-廣播模式,所有被綁定的網卡都將得到相同的數據, 一般用於十分特殊的網絡需求,如需要對兩個互相沒有連接的交換機發送相同的數據。 Mode 4-802.3ab負載均衡模式,要求交換機也支持802.3ab模式,理論上服務器及交換機都支持此模式時, 網卡帶寬最高可以翻倍(如從1Gbps翻到2Gbps) Mode 5-適配器輸出負載均衡模式,輸出的數據會通過所有被綁定的網卡輸出,接收數據時則只選定其中一塊網卡。 如果正在用於接收數據的網卡發生故障,則由其他網卡接管,要求所用的網卡及網卡驅動可通過ethtool命令得到speed信息。 Mode 6-適配器輸入/輸出負載均衡模式,在”模式5″的基礎上,在接收數據的同時實現負載均衡, 除要求ethtool命令可得到speed信息外,還要求支持對網卡MAC地址的動態修改功能。
1、在Redhat或CentOS中配置綁定
注意:The active-backup, balance-tlb and balance-alb 模式不需要任何特定的交換機配置。其他綁定模式需要配置交換機以聚合鏈接。
例如,對於模式0、2和3,Cisco交換機需要EtherChannel,但對於模式4,則需要LACP和EtherChannel。
所有網絡配置腳本都位於RHEL中的/etc/sysconfig/network-scripts下。使用命令“ ethtool”驗證接口的鏈接狀態
創建一個具有以下值的文件ifcfg-bond0,並使用正確的IP,NETMASK和適當的綁定模式(模式0、1、2,…)替換,如下所示。
#cd /etc/sysconfig/network-scripts/ 進入網絡配置路徑
1.創建ifcfg-bond0文件/配置IP地址以及子網掩碼
#touch ifcfg-bond0
#vi ifcfg-bond0
DEVICE=bond0 IPADDR=10.60.129.110 NETMASK=255.255.255.0 GATEWAY=10.60.129.254 ONBOOT=yes BOOTPROTO=static USERCTL=no TYPE=BOND BONDING_OPTS="mode=1 miimon=100"
2.修改ifcfg-eth0和ifcfg-eth1文件
編輯eth0和eth1的網絡接口文件,以反映類似於以下內容的條目。確保已定義了MASTER和SLAVE參數,如下所示。
# cat ifcfg-eth0
DEVICE=eth0 TYPE=Ethernet MASTER=bond0 SLAVE=yes ONBOOT=yes BOOTPROTO=none
# cat ifcfg-eth1
DEVICE=eth1 TYPE=Ethernet MASTER=bond0 SLAVE=yes ONBOOT=yes BOOTPROTO=none
3.創建bonding.conf文件
創建具有以下內容的bonding.conf文件。編輯模塊載入配置文件,讓系統支持bonding。 #vi /etc/modprobe.d/bonding.conf alias bond0 bonding options bond0 miimon=100 mode=1
注意:如果您已經將選項包括在/etc/sysconfig/network/ifcfg-bond0文件中,則可以選擇忽略這些選項。
4.重新啟動網絡服務並驗證綁定
重新啟動網絡服務:
#service network restart
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: Slave queue ID: 0 Slave Interface: eth1 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: Slave queue ID: 0
您可以通過關閉一個接口來執行測試,查看另一個接口是否處於活動狀態,反之亦然。
此外您可以配置別名接口以處理多個IP地址,如下所示。
創建“ ifcfg-bond0:1”和“ ifcfg-bond0:2”文件
#cd /etc/sysconfig/network-scripts/
#cat ifcfg-bond0:1
DEVICE=bond0:1 IPADDR=10.60.129.111 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no BONDING_OPTS="mode=1 miimon=100"
#cat ifcfg-bond0:2
DEVICE=bond0:2 IPADDR=10.60.129.112 NETMASK=255.255.255.0 ONBOOT=yes BOOTPROTO=none USERCTL=no BONDING_OPTS="mode=1 miimon=100"
2、在SuSE Linux上配置綁定
要在最新版本的SuSE上配置綁定,可以使用YaST,也可以如下所示修改系統文件:
使用以下命令驗證活動接口:
ethtool eth0 | egrep "Speed|Duplex|Link"
如果“速度,雙工和鏈接”狀態未知,則接口可能處於關閉狀態。
嘗試使用“ ifconfig eth0 up”調出界面。如果仍然看不到鏈接,則說明該接口未連接到交換機。
1.創建ifcfg-bond0文件
使用控制台登錄到計算機。在/etc/sysconfig/network下創建ifcfg-bond0並定義IP地址和可以使用的從屬接口。
在下面的示例中,我使用了活動備份模式進行綁定,這意味着只有活動接口才能處理通信流量和備份接口開始工作的故障。
# cd /etc/sysconfig/network
# cat ifcfg-bond0
BONDING_MASTER=yes BONDING_MODULE_OPTS='mode=active-backup miimon=100' BONDING_SLAVE0='eth0' BONDING_SLAVE1='eth1' BOOTPROTO='static' IPADDR='192.168.1.85/24' BROADCAST='' STARTMODE='auto'
在下面的示例中,我使用了活動備份模式進行綁定,這意味着只有活動接口才能處理通信流量和備份接口開始工作的故障。
2.修改ifcfg-eth0和ifcfg-eth1文件
修改從屬接口,使其沒有IP地址Netmask。輸出應類似於以下內容:
# cat ifcfg-eth0
DEVICE='eth0' BOOTPROTO='none' STARTMODE='onboot' NAME='82545EM Gigabit Ethernet Controller (Copper)'
# cat ifcfg-eth1
DEVICE='eth1' BOOTPROTO='none' STARTMODE='onboot' NAME='82545EM Gigabit Ethernet Controller (Copper)'
3.編輯modprobe.conf文件
編輯文件/etc/modprobe.conf並添加以下兩行,以將bonding driver和選項包括在內。
alias bond0 bonding options bond0 miimon=100 mode=1
注意:如果您已經將選項包括在/etc/sysconfig/network/ifcfg-bond0文件中,則可以選擇忽略這些選項。
4.重新啟動網絡服務並驗證綁定
設置綁定后,重新啟動網絡服務:
rcnetwork restart
# ifconfig bond0
bond0 Link encap:Ethernet HWaddr 00:50:56:8E:00:26 inet addr:192.168.1.85 Bcast:192.168.1.1 Mask:255.255.255.0 UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:28420409 errors:0 dropped:0 overruns:0 frame:0 TX packets:151985 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2362560309 (2253.1 Mb) TX bytes:17330542 (16.5 Mb)
要測試綁定接口是否正常工作,請登錄控制台並使用“ ifconfig eth0 down”關閉活動接口。確認您仍然能夠使用相同的IP或主機名登錄計算機。
您可以在以下文件中驗證活動接口的狀態,如下所示,eth0處於關閉狀態,但由於我們已設置綁定,因此與機器的網絡連接仍未丟失,並且eth1接口仍然處於打開狀態。
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.5.0 (November 4, 2008) Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: eth1 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: eth0 MII Status: down Link Failure Count: 1 Permanent HW addr: 00:50:56:8e:00:26 Slave Interface: eth1 MII Status: up Link Failure Count: 0 Permanent HW addr: 00:50:56:8e:7e:20