創建Bonding

1. 什麼是Bonding

2. Bonding的工作模式

3. Bonding的實現


1. 什麼是Bonding

bonding提供了一種把多塊網卡聚合成一個邏輯網卡的方法(將多塊網卡綁定同一IP地址對外提供服務,多塊物理網卡被修改爲相同的MAC地址)。該邏輯網卡的工作方式取決於工作模式,通常有熱備或負載均衡,此外還可提供鏈路完整性監視。
大部分主流發行版已經將bonding集成爲內核中的一個模塊。
若你安裝的發行版不支持該功能,需自行編譯安裝內核,並在編譯時選擇開啓此功能。


2. Bonding的工作模式

Mode 0 (balance-rr)
輪轉(Round-robin)策略:從頭到尾順序的在每一個slave接口上面發送數據包。本模式提供負載均衡和容錯的能力
Mode 1 (active-backup)
活動-備份(主備)策略:只有一個slave被激活,當且僅當活動的slave接口失敗時纔會激活其他slave。 爲了避免交換機發生混亂此時綁定的MAC地址只有一個外部端口上可見
Mode 3 (broadcast)
廣播策略:在所有的slave接口上傳送所有的報文,提供容錯能力

active-backup、 balance-tlb 和 balance-alb 模式不需要交換機的任何特殊配置。其他綁定模式需要配置交換機以便整合鏈接。如: Cisco 交換機需要在模式 0、 2 和 3 中使用EtherChannel,但在模式4中需要 LACP和 EtherChannel

該功能試驗應在物理機中進行,在虛擬機中進行時,會因爲虛擬機的機制,不能實現自動切換網卡。


3. Bonding的實現(CentOS 6)

創建Bonding

3.1 虛擬機添加兩塊網卡,選擇同一網絡Vmnet 15

3.2 在目錄/etc/sysconfig/network-scripts下添加配置文件如下

ifcfg-bond0

DEVICE=bond0
#mode=運行模式,miimon=NUM 相互之間通訊檢查對方是否存活的時間間隔。
BONDING_OPTS="mode=0 miimon=100"
IPADDR=192.168.25.100
PREFIX=24

ifcfg-eth2

EVICE=eth2
MASTER=bond0
SLAVE=yes

ifcfg-eth3

DEVICE=eth3
MASTER=bond0
SLAVE=yes

miimon:是用來進行鏈路監測的。如果miimon=100,那麼系統每100ms 監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路
MASTER:指定MASTER的設備名
SLAVE:是否工作在SLAVE模式下

3.3 添加完成後重啓網絡服務(需關閉NetworkManager服務)

[root@magedu network-scripts]# cat /proc/net/bonding/bond0      #查看bond0狀態
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth2
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:b5:04:b7
Slave queue ID: 0

Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:b5:04:ad
Slave queue ID: 0

創建Bonding

3.4 測試:

用另一臺虛擬機ping該主機bond0的地址
因虛擬機對bonding支持不好,無法進行進一步測試。

創建Bonding

3.5 刪除bond0

關閉bond0網卡並刪除bonding模塊

[root@magedu ~]# ifdown bond0
[root@magedu ~]# rmmod bonding

刪除bond配置文件(eth2,eth3網卡需重建網卡配置文件)


[root@magedu network-scripts]# rm ifcfg-bond0 ifcfg-eth{2,3}
rm: remove regular file `ifcfg-bond0'? y
rm: remove regular file `ifcfg-eth2'? y
rm: remove regular file `ifcfg-eth3'? y```
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章