linux bond0 簡易綁定篇

網卡bond是通過把多張網卡綁定爲一個邏輯網卡,實現本地網卡的冗餘,帶寬擴容和負載均衡。在應用部署中是一種常用的技術,我們公司基本所有的項目相關服務器都做了bond,這裏總結整理,以便待查。

bond模式:

  1. Mode=0(balance-rr) 表示負載分擔round-robin,和交換機的聚合強制不協商的方式配合。
  2. Mode=1(active-backup) 表示主備模式,只有一塊網卡是active,另外一塊是備的standby,這時如果交換機配的是捆綁,將不能正常工作,因爲交換機往兩塊網卡發包,有一半包是丟棄的。
  3. Mode=2(balance-xor) 表示XOR Hash負載分擔,和交換機的聚合強制不協商方式配合。(需要xmit_hash_policy)
  4. Mode=3(broadcast) 表示所有包從所有interface發出,這個不均衡,只有冗餘機制...和交換機的聚合強制不協商方式配合。
  5. Mode=4(802.3ad) 表示支持802.3ad協議,和交換機的聚合LACP方式配合(需要xmit_hash_policy)
  6. Mode=5(balance-tlb) 是根據每個slave的負載情況選擇slave進行發送,接收時使用當前輪到的slave
  7. Mode=6(balance-alb) 在5的tlb基礎上增加了rlb。

5和6不需要交換機端的設置,網卡能自動聚合。4需要支持802.3ad。0,2和3理論上需要靜態聚合方式
但實測中0可以通過mac地址欺騙的方式在交換機不設置的情況下不太均衡地進行接收。

以上信息來自網絡,不是所有的都明白。目前我們常用的主要是1(主備冗餘)和6(與交換機無關的負載均衡)

本文以小本上虛擬機安裝的兩臺REDHAT AS 5爲環境進行說明。

 

1.創建bond0配置文件

 

Bash代碼 複製代碼 收藏代碼
  1. # vi /etc/sysconfig/network-scripts/ifcfg-bond0  
# vi /etc/sysconfig/network-scripts/ifcfg-bond0

 添加內容

Python代碼 複製代碼 收藏代碼
  1. DEVICE=bond0   
  2. IPADDR=10.10.10.11  
  3. NETWORK=10.10.10.0  
  4. NETMASK=255.255.255.0  
  5. USERCTL=no   
  6. BOOTPROTO=none   
  7. ONBOOT=yes  
DEVICE=bond0IPADDR=10.10.10.11NETWORK=10.10.10.0NETMASK=255.255.255.0USERCTL=noBOOTPROTO=noneONBOOT=yes

 你需要修改上面的IPADDR,NETWORK,NETMASK爲你自己的環境配置

 

2.修改eth0和eth1配置文件
注意:這裏是虛擬機上配置,所以可以很方便的添加多塊網卡。

使用vi修改eth0配置文件

 

Python代碼 複製代碼 收藏代碼
  1. # vi /etc/sysconfig/network-scripts/ifcfg-eth0  
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

 

添加或替換內容:

 

Python代碼 複製代碼 收藏代碼
  1. DEVICE=eth0   
  2. USERCTL=no   
  3. ONBOOT=yes   
  4. MASTER=bond0   
  5. SLAVE=yes   
  6. BOOTPROTO=none  
DEVICE=eth0USERCTL=noONBOOT=yesMASTER=bond0SLAVE=yesBOOTPROTO=none

 

使用vi修改eth1配置文件

Python代碼 複製代碼 收藏代碼
  1. # vi /etc/sysconfig/network-scripts/ifcfg-eth1  
# vi /etc/sysconfig/network-scripts/ifcfg-eth1 

添加或替換內容:

 

Python代碼 複製代碼 收藏代碼
  1. DEVICE=eth1   
  2. USERCTL=no   
  3. ONBOOT=yes   
  4. MASTER=bond0   
  5. SLAVE=yes   
  6. BOOTPROTO=none  
DEVICE=eth1USERCTL=noONBOOT=yesMASTER=bond0SLAVE=yesBOOTPROTO=none

 

保存並退出

3.加載bond驅動
通過修改內核模塊配置文件modprobe.conf加載bond驅動。

 

Python代碼 複製代碼 收藏代碼
  1. # vi /etc/modprobe.conf  
# vi /etc/modprobe.conf

 

添加下面的兩行內容:

 

Python代碼 複製代碼 收藏代碼
  1. alias bond0 bonding   
  2. options bond0 mode=6 miimon=100  
alias bond0 bondingoptions bond0 mode=6 miimon=100

 

注意:這裏使用的是模式6,負載均衡模式;網卡檢查時間100ms

4.測試配置
首先,加載bond module:

 

Python代碼 複製代碼 收藏代碼
  1. # modprobe bonding  
# modprobe bonding

 

然後,重新啓動網絡服務

 

Python代碼 複製代碼 收藏代碼
  1. # service network restart  
# service network restart

 

查看內核中bond狀態

 

Python代碼 複製代碼 收藏代碼
  1. cat /proc/net/bonding/bond0  
cat /proc/net/bonding/bond0

 

我機器的輸出樣例:

 

Python代碼 複製代碼 收藏代碼
  1. Ethernet Channel Bonding Driver: v3.0.3 (March 232006)   
  2.   
  3. Bonding Mode: load balancing (round-robin)   
  4. MII Status: up   
  5. MII Polling Interval (ms): 0  
  6. Up Delay (ms): 0  
  7. Down Delay (ms): 0  
  8.   
  9. Slave Interface: eth0   
  10. MII Status: up   
  11. Link Failure Count: 0  
  12. Permanent HW addr: 00:0c:29:e7:21:13  
  13.   
  14. Slave Interface: eth1   
  15. MII Status: up   
  16. Link Failure Count: 0  
  17. Permanent HW addr: 00:0c:29:e7:21:09  
Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)Bonding Mode: load balancing (round-robin)MII Status: upMII Polling Interval (ms): 0Up Delay (ms): 0Down Delay (ms): 0Slave Interface: eth0MII Status: upLink Failure Count: 0Permanent HW addr: 00:0c:29:e7:21:13Slave Interface: eth1MII Status: upLink Failure Count: 0Permanent HW addr: 00:0c:29:e7:21:09

 

查看所有網絡配置

 

Python代碼 複製代碼 收藏代碼
  1. # ifconfig  
# ifconfig

 

bond0     Link encap:Ethernet  HWaddr 00:0C:29:E7:21:13    
  1.           inet addr:10.10.10.11  Bcast:10.10.10.255  Mask:255.255.255.0  
  2.           inet6 addr: fe80::20c:29ff:fee7:2113/64 Scope:Link   
  3.           UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1  
  4.           RX packets:2155 errors:0 dropped:0 overruns:0 frame:0  
  5.           TX packets:685 errors:0 dropped:0 overruns:0 carrier:0  
  6.           collisions:0 txqueuelen:0  
  7.           RX bytes:507558 (495.6 KiB)  TX bytes:83759 (81.7 KiB)   
  8.   
  9. eth0      Link encap:Ethernet  HWaddr 00:0C:29:E7:21:13    
  10.           inet6 addr: fe80::20c:29ff:fee7:2113/64 Scope:Link   
  11.           UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1  
  12.           RX packets:889 errors:0 dropped:0 overruns:0 frame:0  
  13.           TX packets:563 errors:0 dropped:0 overruns:0 carrier:0  
  14.           collisions:0 txqueuelen:1000  
  15.           RX bytes:238996 (233.3 KiB)  TX bytes:59080 (57.6 KiB)   
  16.           Interrupt:67 Base address:0x20a4  
  17.   
  18. eth1      Link encap:Ethernet  HWaddr 00:0C:29:E7:21:13    
  19.           inet6 addr: fe80::20c:29ff:fee7:2113/64 Scope:Link   
  20.           UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1  
  21.           RX packets:1266 errors:0 dropped:0 overruns:0 frame:0  
  22.           TX packets:122 errors:0 dropped:0 overruns:0 carrier:0  
  23.           collisions:0 txqueuelen:1000  
  24.           RX bytes:268562 (262.2 KiB)  TX bytes:24679 (24.1 KiB)   
  25.           Interrupt:67 Base address:0x2024   
bond0 Link encap:Ethernet HWaddr 00:0C:29:E7:21:13 inet addr:10.10.10.11 Bcast:10.10.10.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fee7:2113/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:2155 errors:0 dropped:0 overruns:0 frame:0 TX packets:685 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:507558 (495.6 KiB) TX bytes:83759 (81.7 KiB)eth0 Link encap:Ethernet HWaddr 00:0C:29:E7:21:13 inet6 addr: fe80::20c:29ff:fee7:2113/64 Scope:Link UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:889 errors:0 dropped:0 overruns:0 frame:0 TX packets:563 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:238996 (233.3 KiB) TX bytes:59080 (57.6 KiB) Interrupt:67 Base address:0x20a4eth1 Link encap:Ethernet HWaddr 00:0C:29:E7:21:13 inet6 addr: fe80::20c:29ff:fee7:2113/64 Scope:Link UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:1266 errors:0 dropped:0 overruns:0 frame:0 TX packets:122 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:268562 (262.2 KiB) TX bytes:24679 (24.1 KiB) Interrupt:67 Base address:0x2024  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章