2021-05-12 14:32:11
Linux網絡卡聚合簡單指令碼(bond0)
Linux網絡卡聚合簡單指令碼(bond0)
#!/bin/bash
#by:cai
#修改系統語言套件,將zh_CN.UTF-8 改成 zh_CN.GB18030
#輸入命令:如vi /etc/sysconfig/i18n (注意改好之後必須重新啟動一下系統才行)
sed -i -e 's/^/#/g' -e 1iLANG="zh_CN.GB18030" /etc/sysconfig/i18n
source /etc/sysconfig/i18n
echo "##########################################################"
echo "注意:如果在輸入的過程中輸錯,請按ctrl+backspace鍵刪除。"
echo "##########################################################"
bond_explain () {
echo "#########################################################################"
echo "
mode=0表示load balancing (round-robin)為負載均衡方式,兩塊網絡卡都工作。
mode=1表示fault-tolerance (active-backup)提供冗餘功能,工作方式是主備的工作方式,也就是說預設情況下只有一塊網絡卡工作,另一塊做備份.
mode=2表示balance-x,提供負載均衡和冗餘功能。
mode=3表示broadcast,這個模式提供容錯性。
mode=4表示802.3ad,提供了ethtool的迅速,以及使用了802.3ad模式
mode=5表示balance-tlb,自動適應負載均衡,自動切換故障。在此基礎上Ethtool支援驅動。
mode=6表示在5模式的基礎上優化了arp的廣播資訊。"
echo "###########################################################################"
read -p "請你輸入一種你要的聚合方式(mode=1):" MODE
read -p "請問你要建立聚合的名稱(bond0):" BOND
read -p "請輸入你要設定的ip(192.168.0.10):" IP
read -p "請輸入你要設定的netmask(255.255.255.0):" NETMASK
read -p " 請輸入你要設定的gateway(192.168.0.1):" GATEWAY
}
bond_explain
network_explain () {
echo "###############################################"
echo "您現階段可以用的網絡卡,如下:"
# echo `ifconfig -a | grep -i link | awk '{print $1}' `
echo `ifconfig -a | grep -i "Link encap" | awk '{print $1}' `
echo "################################################"
read -p "麻煩你選擇你要的網絡卡做聚合(eth0 eth1):" NIC
echo $NIC >> .tmp.txt
NIC_num=`awk '{print NF }' .tmp.txt`
for i in `seq $NIC_num`
do
NIC_true=`awk -v a=$i '{ print $a }' .tmp.txt`
DIR_NIC=/etc/sysconfig/network-scripts
if [ $NIC_true == $NIC_true ];then
cp $DIR_NIC/ifcfg-$NIC_true $DIR_NIC/ifcfg-$NIC_true.bak
# cat /dev/null > $DIR_NIC/ifcfg-$NIC_true
# cat >> $DIR_NIC/ifcfg-$NIC_true <<EOF
# BOOTPROTO=none
# TYPE=Ethernet
# DEVICE=$NIC_true
# ONBOOT=yes
# MASTER=$BOND
# SLAVE=yes
#EOF
#### 或者
echo "DEVICE=$NIC_true
MASTER=$BOND
SLAVE=yes" >> $DIR_NIC/ifcfg-$NIC_true
#
sed -i -e "/^ONBOOT/"d -e /^DEVICE/aONBOOT=yes $DIR_NIC/ifcfg-$NIC_true
sed -i -e "/^NM_CONTROLLED/"d -e /^DEVICE/aNM_CONTROLLED=no $DIR_NIC/ifcfg-$NIC_true
sed -i -e "/^BOOTPROTO/"d -e /^DEVICE/aBOOTPROTO=none $DIR_NIC/ifcfg-$NIC_true
fi
done
rm -rf .tmp.txt
# cat >>$DIR_NIC/ifcfg-$BOND<<EOF
#
# DEVICE=$BOND
# ONBOOT=yes
# NM_CONTROLLED=no
# BOOTPROTO=static
# IPADDR=$IP
# NETMASK=$NETMASK
# GATEWAY=$GATEWAY
#EOF
#或者
echo "DEVICE=$BOND
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=$IP
NETMASK=$NETMASK
GATEWAY=$GATEWAY" >> $DIR_NIC/ifcfg-$BOND
#
echo " modify modprobe.d/bond.conf"
echo "##### for bond configure ######" >> /etc/modprobe.d/bond.conf
echo "alias ${BOND} bonding" >> /etc/modprobe.d/bond.conf
echo "options ${BOND} miimon=100 ${MODE}" >> /etc/modprobe.d/bond.conf
}
network_explain
echo "全部設定完成,等待重新啟動網絡卡中。(ok)"
sleep 3
service network restart
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-05/144040.htm
相關文章