[KJ] 分享 Linux bonding 的實作

kevinj

榮譽會員
已加入
9/18/03
訊息
1,669
互動分數
0
點數
36
以下大部分引述網友的心得,加上自己實作過程)
前言:

為什麼需要將多片網卡虛擬成一片?

有時我們使用samba進行區域網路傳檔的時候,透過XP的"工作管理員",可以看到網路效能曲線圖會不穩定,時快時慢,甚至偶而還會停止。

這是因為samba主機的網路卡負載太重,若可以增加網路卡來分散負載,即可改善這個情況。


OS:Cent OS 4.1
bonding:
將多片網卡虛擬成一片(竄改成同一個IP/MAC),以便達到分散負載。虛擬後所有eth(#)網卡的IP和MAC將會變成完全相同,然後多出一個bond0的虛擬網卡。

這個功能本來是高階網路卡,如Intel、3COM之類才有的硬體功能,有自己的商業名詞,現在在Linux下也能夠用軟體實現,Linux下則是稱作bonding。

bonding 需要核心支援才能使用,因為Fedora的核心,已內建bonding 功能,所以不需要重新編譯核心。

硬體需求:同樣晶片的網路卡至少兩張以上。

例如:市面上常見的 RTL8139D 網路卡(螃蟹卡),一片才1百多元,只要使用bonding,就可以媲美高階網路卡的功能。

======================================================================
假設虛擬網卡(bond0)的IP:192.168.0.1
網段:192.168.0.0 / 255.255.255.0
廣播位址:192.168.0.255


/etc/modprobe.conf (在最後面加入兩行)
---------------------------------
alias bond0 bonding
options bond0 miimon=100 mode=6


/etc/sysconfig/network-scripts/ifcfg-bond0 (建立這個檔)
---------------------------------------------------------
DEVICE=bond0
USERCTL=no
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255

/etc/sysconfig/network-scripts/ifcfg-eth0 (修改內容如下)
---------------------------------------------------------
DEVICE=eth0
USERCTL=no
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
HWADDR=00:20:ED:7C:27:XX

/etc/sysconfig/network-scripts/ifcfg-eth1 (修改內容如下)
----------------------------------------------------------
DEVICE=eth1
USERCTL=no
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
HWADDR=00:20:ED:7D:27:XX
#(這可設也可以不設,如果有好幾張依樣型號的網卡,設定MAC就可以直接指定哪一張網卡要mapping到eth幾了,至於每張網卡的MAC請用直接看卡上有標:p)


設定完成後,Reboot,或是service network restart,都可以 !
======================================================================
說明:
-------------------------------------
miimon=100

miimon 是指多久時間要檢查網路一次,單位是ms(毫秒)

這邊的100,是100ms,即是0.1秒
意思是假設其中有一條網路斷線,會在0.1秒內自動備援

mode 共有七種(0~6)
mode=0:平衡負載模式,有自動備援,但需要"Switch"支援及設定。
mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。
mode=6:平衡負載模式,有自動備援,不需要"Switch"支援及設定。
也就是一般的Switching Hub就可以了!
詳細資訊可以參考/usr/src/linux/Documentation/networking/bonding.txt

05.jpg
 

Grathior

高級會員
已加入
8/2/05
訊息
564
互動分數
0
點數
0
kevinj 說:
以下大部分引述網友的心得,加上自己實作過程)
前言:

為什麼需要將多片網卡虛擬成一片?

有時我們使用samba進行區域網路傳檔的時候,透過XP的"工作管理員",可以看到網路效能曲線圖會不穩定,時快時慢,甚至偶而還會停止。

這是因為samba主機的網路卡負載太重,若可以增加網路卡來分散負載,即可改善這個情況。


OS:Cent OS 4.1
bonding:
將多片網卡虛擬成一片(竄改成同一個IP/MAC),以便達到分散負載。虛擬後所有eth(#)網卡的IP和MAC將會變成完全相同,然後多出一個bond0的虛擬網卡。

這個功能本來是高階網路卡,如Intel、3COM之類才有的硬體功能,有自己的商業名詞,現在在Linux下也能夠用軟體實現,Linux下則是稱作bonding。

bonding 需要核心支援才能使用,因為Fedora的核心,已內建bonding 功能,所以不需要重新編譯核心。

硬體需求:同樣晶片的網路卡至少兩張以上。

例如:市面上常見的 RTL8139D 網路卡(螃蟹卡),一片才1百多元,只要使用bonding,就可以媲美高階網路卡的功能。

======================================================================
假設虛擬網卡(bond0)的IP:192.168.0.1
網段:192.168.0.0 / 255.255.255.0
廣播位址:192.168.0.255


/etc/modprobe.conf (在最後面加入兩行)
---------------------------------
alias bond0 bonding
options bond0 miimon=100 mode=6


/etc/sysconfig/network-scripts/ifcfg-bond0 (建立這個檔)
---------------------------------------------------------
DEVICE=bond0
USERCTL=no
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255

/etc/sysconfig/network-scripts/ifcfg-eth0 (修改內容如下)
---------------------------------------------------------
DEVICE=eth0
USERCTL=no
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
HWADDR=00:20:ED:7C:27:XX

/etc/sysconfig/network-scripts/ifcfg-eth1 (修改內容如下)
----------------------------------------------------------
DEVICE=eth1
USERCTL=no
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
HWADDR=00:20:ED:7D:27:XX
#(這可設也可以不設,如果有好幾張依樣型號的網卡,設定MAC就可以直接指定哪一張網卡要mapping到eth幾了,至於每張網卡的MAC請用直接看卡上有標:p)


設定完成後,Reboot,或是service network restart,都可以 !
======================================================================
說明:
-------------------------------------
miimon=100

miimon 是指多久時間要檢查網路一次,單位是ms(毫秒)

這邊的100,是100ms,即是0.1秒
意思是假設其中有一條網路斷線,會在0.1秒內自動備援

mode 共有七種(0~6)
mode=0:平衡負載模式,有自動備援,但需要"Switch"支援及設定。
mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。
mode=6:平衡負載模式,有自動備援,不需要"Switch"支援及設定。
也就是一般的Switching Hub就可以了!
詳細資訊可以參考/usr/src/linux/Documentation/networking/bonding.txt

05.jpg

好文..Kevin 大寫了一篇...
;cheer2; 那我也來寫一篇NLB With Microsoft Cluster Service 好了 ;em03;
 

kevinj

榮譽會員
已加入
9/18/03
訊息
1,669
互動分數
0
點數
36
Grathior 說:
好文..Kevin 大寫了一篇...
;cheer2; 那我也來寫一篇NLB With Microsoft Cluster Service 好了 ;em03;

跟你比..我差多了..
等你..快寫阿... ;face0;
 

poppop

一般般會員
已加入
9/29/03
訊息
122
互動分數
0
點數
16
這個實用喔!K大
推推!
PS.請問K大,你上述的網卡使用兩張,卡號設定時,必須要設不同的吧!
使用MODE6,兩張網路卡都要網路線接到SWITCH HUB才能達到此效果
還是只要連接其中一張即可,內部會自動分配負載
抱歉!問了各蠢問題!
 

kevinj

榮譽會員
已加入
9/18/03
訊息
1,669
互動分數
0
點數
36
poppop 說:
這個實用喔!K大
推推!
PS.請問K大,你上述的網卡使用兩張,卡號設定時,必須要設不同的吧!
使用MODE6,兩張網路卡都要網路線接到SWITCH HUB才能達到此效果
還是只要連接其中一張即可,內部會自動分配負載
抱歉!問了各蠢問題!

卡號設定時...在/etc/modprobe.conf 設定...
兩張卡都要接到..SWITCH HUB

實作看看..用Mrtg 監控一下就知道... ;em03;
 
最後編輯:

ming0407

初級會員
已加入
10/22/03
訊息
43
互動分數
0
點數
0
應該是 modprobe.conf 吧..這個模式好像是以輪流改 MAC Address 的方式來弄的。
 

cobure

榮譽會員
已加入
6/13/04
訊息
1,383
互動分數
0
點數
36
年齡
44
請問一下喔Mrtg是個套件嗎?
apt-get install mrtg 怎麼沒有反應阿?
 

fuu0115

一般般會員
已加入
1/22/05
訊息
74
互動分數
0
點數
0
年齡
41
網站
造訪網站
cobure 說:
請問一下喔Mrtg是個套件嗎?
apt-get install mrtg 怎麼沒有反應阿?

man mrtg看看吧
應該裝系統時有一起安裝了
 
▌延伸閱讀