何爲bonding?
將多塊網卡虛擬成爲一塊網卡,使其具有相同的ip地址,來實現提升主機的網絡吞吐量或者是提高可用性,這種技術被稱作bonding。
Bonding的原理:在正常情況下,網卡只接收目的硬件地址(MAC Address)是自身MAC的以太網幀,過濾別的數據幀,以減輕驅動程序的負擔;但是網卡也支持另外一種被稱爲混雜promisc的模式,可以接收網絡上所有的幀,bonding就運行在這種模式下,而且修改了驅動程序中的mac地址,將兩塊網卡的MAC地址改成相同,可以接收特定MAC的數據幀。然後把相應的數據幀傳送給bond驅動程序處理。
下面簡單介紹下實驗環境
rhel6.4 操作系統 實驗要求是兩塊網絡提供冗餘/熱備。
實驗開始
1:編輯該配置文件 vi/etc/modprobe.d/dist.conf
加入以下參數
alias bond0 bonding
2:創建bonding網絡配置文件
vi/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static/dhcp
TYPE=Ethernet
ONBOOT=yes
IPADDR= 根據實際情況配置
NETMASK=
GATEWAY=
BONDING_OPTS="mode=1 miimon=200" 該參數也可 步驟 1 中進行添加。步驟 1 爲:
alias bond0 bonding
options bond0 mode=1 miimon=100
3:編輯實際網卡配置文件
vi/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
4:編輯實際網卡配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
安裝以上配置完成後,重啓網絡服務即可。
/etc/init.d/network restart
ifconfig -a 進行查看
cat /proc/net/bonding/bond0
如上圖,現在兩塊網卡 都是 UP狀態。
測試結果
拔下一根網線
eth0 down掉了
ping 依然正常
丟包處,拔掉網線,網卡切換時造成。
現在 還原,拔掉另外一個網線
eth1 down掉了
ping 依然正常
現在來講解下詳細的配置文件參數
MASTER:
MASTER=<bond-interface>
bond-interface的值是以太網卡連接到的通道綁定接口的名稱,如:bond0、bond1
master這個指令與 SLAVE 指令配合使用。
SLAVE:
SLAVE=yes/no
yes : 表示此設備可以由MASTER 指令中配置的通道綁定接口進行控制。
no : 表示此設備不能由 MASTER 指令中配置的通道綁定接口進行控制。
Bonding工作模式
bonding的模式一共有7種:
即 mode=0/1
round-robin(balance-rr) 0 負載均衡及冗餘模式
active-backup 1 冗餘模式
balance-xor 2 需要交換機支持
broadcast 3 廣播模式
ieee802.3ad 4 動態鏈路聚合模式,需要交換機支持
mode-tlb 5 自適應模式
mode-alb 6 網卡虛擬化方式
miimon=100ms
miimon是用來進行鏈路監測的,其原理是檢測網上的鏈路狀態,一般將miimon值設爲100,表示系統每100ms監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線路。
以上幾種模式只是給大家做一個簡單的介紹,一般來說最常用的事 0 和 1 兩種模式。還有就是,模式0只是實現了簡單的負載均衡及冗餘。如果要實現高效的負載均衡,提高網絡流量,需設置成模式4,而這需要交換機的支持,牽涉到交換機的鏈路聚合(LACP)功能。
最後再補充一條命令,可以動態查看雙網卡切換的動作。
tail -f /var/log/message