如何搭建bond0及遇到重啓網卡失敗後如何自動恢復連接

Linux 多網卡綁定

網卡綁定mode共有七種(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6

常用的有三種

mode=0:平衡負載模式,有自動備援,但需要”Switch”支援及設定。

mode=1:自動備援模式,其中一條線若斷線,其他線路將會自動備援。

mode=6:平衡負載模式,有自動備援,不必”Switch”支援及設定。
mode 0下bond所綁定的網卡的IP都被修改成相同的mac地址,如果這些網卡都被接在同一個交換機,那麼交換機的arp表裏這個mac地址對應的端口就有多 個,那麼交換機接受到發往這個mac地址的包應該往哪個端口轉發呢?正常情況下mac地址是全球唯一的,一個mac地址對應多個端口肯定使交換機迷惑了。所以 mode0下的bond如果連接到交換機,交換機這幾個端口應該採取聚合方式(cisco稱爲 ethernetchannel,foundry稱爲portgroup),因爲交換機做了聚合後,聚合下的幾個端口也被捆綁成一個mac地址.我們的解 決辦法是,兩個網卡接入不同的交換機即可。
第一種模式:mod=0 ,即:(balance-rr) Round-robin policy(平衡掄循環策略)

特點:傳輸數據包順序是依次傳輸(即:第1個包走eth0,下一個包就走eth1….一直循環下去,直到最後一個傳輸完畢),此模式提供負載平衡和容錯能力;但是我們知道如果一個連接或者會話的數據包從不同的接口發出的話,中途再經過不同的鏈路,在客戶端很有可能會出現數據包無序到達的問題,而無序到達的數據包需要重新要求被髮送,這樣網絡的吞吐量就會下降

第二種模式:mod=1,即: (active-backup) Active-backup policy(主-備份策略)

特點:只有一個設備處於活動狀態,當一個宕掉另一個馬上由備份轉換爲主設備。mac地址是外部可見得,從外面看來,bond的MAC地址是唯一的,以避免switch(交換機)發生混亂。此模式只提供了容錯能力;由此可見此算法的優點是可以提供高網絡連接的可用性,但是它的資源利用率較低,只有一個接口處於工作狀態,在有 N 個網絡接口的情況下,資源利用率爲1/N
mode6模式下無需配置交換機,因爲做bonding的這兩塊網卡是使用不同的MAC地址
其實mod=6與mod=0的區別:mod=6,先把eth0流量佔滿,再佔eth1,….ethX;而mod=0的話,會發現2個口的流量都很穩定,基本一樣的帶寬。而mod=6,會發現第一個口流量很高,第2個口只佔了小部分流量
ls /sys/class/net 看網卡設備
cat /sys/class/net/bond0/bonding/mode 查看bond 模式
balance-alb 6

ls /sys/class/net

bond0 bond1 bonding_masters eth0 eth1 lo
直接刪除bond0,會提示無權限。
可以通過bonding_masters文件刪除bond設備:

cat bonding_masters

bond0 bond1
直接編輯bonding_masters文件會提示權限問題

echo -bond0 >/sys/class/net/bonding_masters

刪除bond0

生產環境部署步驟
cd /etc/sysconfig/network-scripts
1.mv eth0 eth1 /tmp 移除網卡(具體看自己的網卡名稱)
2.nmcli con add type bond ifname bond0 mode 6 #(balance-alb 6)
3.nmcli con add type bond-slave ifname eth0 master bond0 (捆綁網卡1)
4.nmcli con add type bond-slave ifname eth1 master bond0(捆綁網卡2)
5.vim ifcfg-bond-bond0 根據自己上網方式配置網絡
把下邊關於ipv6的刪掉
[root@localhost network-scripts]# cat ifcfg-bond-bond0
DEVICE=bond0
BONDING_OPTS=mode=balance-alb
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
NAME=bond-bond0
UUID=30330f45-4c44-4c0f-81de-510586e9addb
ONBOOT=yes
IPADDR=192.168.43.216
GATEWAY=192.168.43.1
NETMASK=255.255.255.0
DNS1=192.168.43.1

systemctl restart network 重啓網卡

注意下邊要生成三個ifcfg-*

可以根據網卡更改後重啓網卡之前寫一個恢復腳本
用計劃任務crontab

腳本
#/bin/bash
if [ -f /opt/文件名 ];then
Cd /etc/sysconfig/network-scripts/
Mv /etc/sysconfig/network-scripts/ifcfg-* /tmp
Mv /opt/ifcfg-* /etc/sysconfig/network-scripts/
Fi
systemctl restart network

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章