一:實驗環境vim
①兩臺centos虛擬機,一臺作試驗機,一臺作測試機centos
②兩個網卡eth0、eth1網絡
二:實驗目的負載均衡
在生產環境中,當多名用戶同時訪問一個IP時將會增大網卡負荷和風險,這時咱們能夠經過將多塊網卡綁定同一IP地址對外提供服務,從而實現高可用和負載均衡ide
※三:經常使用Bonding工做模式:測試
Mode 0 ( balance-rr )輪轉模式centos7
輪轉(Round-robin)策略: 從頭至尾順序的在每個slave 接口上面發送數據包,當一個slave中止工做時,會出現丟包,但程序並不會死掉。本模式提供負載均衡和容錯的能力spa
Mode 1 (active-backup) 活動備份策略3d
工做模式: 只有一個slave被激活,當且僅當活動 的slave接口失敗時纔會激活其餘slave。爲了不交換機發生混亂此時綁定的MAC地址只有一個外部端口上可見rest
Mode 3 (broadcast) 廣播策略
工做模式:在全部的slave接口上傳送全部的報文,提供容錯能力
四:實驗步驟
方法一:配置文件法
①建立bond0設備的配置文件並寫入以下內容
vim /etc/sysconfig/network-scripts/ifcfg-bond1
DEVICE=bond0
BOOTPROTO=none
IPADDR=172.17.252.166
BONDING_OPTS= 「miimon=100 mode=1」
知識點解釋:
miimon=100 設置網卡間相互檢測對方狀態的間隔時間(ms),用來靈活的切換網卡。
mode=1 設置bond模式爲 active-backup
②修改網卡配置文件
在eth0與eth1配置文件中添加以下幾行:
SLAVE=yes //設置爲奴隸USERCTL=no MASTER=bond0 //指定主bond設備 USERCTL=no //不容許非root用戶控制該設備
注意:
③重啓network服務,使配置文件生效
注意啦,若是重啓服務後沒有出現bond1的接口信息,且經反覆檢查後配置文件並無錯誤,請相信我,你的NetworkManager服務必定沒關,關閉它就行了
systemctl status NetworkManager #查看服務狀態 systemctl stop NetworkManager #centos 7 中用此命令
④查看bond0的詳細狀態
cat /proc/net/bonding/bond0
[root@localhost ~]# cat /proc/net/bonding/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: eth0 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:2e:e8:4e Slave queue ID: 0 Slave Interface: eth1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:0c:29:2e:e8:58 Slave queue ID: 0
⑤測試環節
1.用centos6來ping centos7的bond0,如圖一,一切正常,沒有出現丟包現象
圖一
2. 接下來讓咱們停用eth1網卡,來測試bond0是否出現丟包
圖二
由圖二可得,序號爲534的IICMP包丟失,但整體上來講,丟包率很低O(∩_∩)O,bond0穩定性仍是有目共睹的。
⑤取消綁定可採起下列步驟
1)ifconfig bond0 down
2)刪除ifcfg-bond0
3)恢復eth0和eth1配置文件到修改前狀態
4)刪除bondin模塊
lsmod |grep bond 查看已有的模塊,發現模塊還沒刪除
刪除綁定模塊:rmmod bonding
5)重啓網絡服務 service network restart
方法二:nmcli命令法
實驗準備:務必確保已開啓NetworkManager服務
(1)添加bonding接口mybond0,模式爲active-backup(MODE 1)
nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup
命令執行後,系統會自動生成ifcfg-mybond0文件
(2)添加從屬接口eth0與eth1
nmcli con add type bond-slave ifname eth0 master mybond0
nmcli con add type bond-slave ifname eth1 master mybond0
(3) 要啓動綁定,則必須首先啓動從屬接口
nmcli con up bond-slave-eth0
nmcli con up bond-slave-eth1
此時,系統會自動生成ifcfg-bond-slave-eth0,ifcfg-bond-slave-eth1兩個配置文件
(4)啓動綁定
nmcli con up mybond0
(5)取消綁定
nmcli con down mybond0
五:實驗總結
這次實驗難度不大,須要注意的細節就是NetworkManager這個服務的開啓狀態。其次,本菜鳥推薦你們在centos 7上儘可能使用方法二,雖然命令較長,但無需修改配置文件,這對於之後自動腳本的編寫仍是很是有用的。