網路卡繫結與交換機埠聚合配置(CentOS6.2)

leon830216發表於2015-06-25
網路卡繫結技術在不同的平臺下的叫法不同,在Linux下叫bonding,IBM稱為etherchanel,broadcom叫team,但效果都是將兩塊或更多的網路卡當做一塊網路卡使用,在增加頻寬的同時也可以提高冗餘性。一般使用較多的就是來提高冗餘,分別和不同交換機相連,提高可靠性,但有時伺服器頻寬不夠了也可以增加頻寬。
雙網路卡繫結就是使用兩塊網路卡虛擬成為一塊網路卡,這個聚合起來的裝置看起來是一個單獨的乙太網介面裝置,通俗點講就是兩塊網路卡具有相同的IP地址而並行連結聚合成一個邏輯鏈路工作。其實這項技術在Sun和Cisco中早已存在,被稱為Trunking和Etherchannel技術,在 Linux的2.4.x的核心中也採用這這種技術,被稱為bonding。bonding技術的最早應用是在叢集——beowulf上,為了提高叢集節點間的資料傳輸而設計的。下面我們討論一下bonding 的原理,什麼是bonding需要從網路卡的混雜(promisc)模式說起。在正常情況下,網路卡只接收目的硬體地址(MAC Address)是自身Mac的乙太網幀,對於別的資料幀都濾掉,以減輕驅動程式的負擔。但是網路卡也支援另外一種被稱為混雜promisc的模式,可以接 收網路上所有的幀,比如說tcpdump,就是執行在這個模式下。bonding也執行在這個模式下,而且修改了驅動程式中的mac地址,將兩塊網路卡的Mac地址改成相同,可以接收特定mac的資料幀。然後把相應的資料幀傳送給bond驅動程式處理。


一、伺服器雙網路卡繫結
檢視Linux是否支援bonding,RHEL4已經預設支援了。
# modinfo bonding

1、建立/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
IPADDR=192.168.0.254
BROADCAST=192.168.0.255
NETMASK=255.255.255.0
NETWORK=192.168.0.0
GATEWAY=192.168.0.1
USERCTL=no
ONBOOT=yes
TYPE=Ethernet
注意:建議不要指定MAC地址

2、修改/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
注意:建議不要指定MAC地址

3、修改/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
注意:建議不要指定MAC地址

4、修改/etc/modprobe.d/dist.conf
alias bond0 bonding
options bond0 miimon=100 mode=0

(mode=0,表示平衡負載雙網路卡工作,RR演算法,mode=1,自動主備,其中一塊工作)
(miimon=100,miimon是指多久時間要檢查網路一次,單位是ms(毫秒) ,意思是假設其中有一條網路斷線,會在0.1秒內自動備援)

5、配置完成,重啟OS,就可以看到有一張bond0的新網路卡。

6、檢視bond0當前狀態:
# cat /proc/net/bonding/bond0

思科交換機相應埠配置埠聚合
R1#conf t
R1(config)#int range g0/1 - 2 
R1(config-int-range)#channel-group 1 mode on
將交換機g0/1-2與伺服器相應埠相連,經測試頻寬明顯增加。
如果不接伺服器兩埠分別接不同交換機則不需要做交換機埠聚合。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22558114/viewspace-1712209/,如需轉載,請註明出處,否則將追究法律責任。

相關文章