linux bond 脚本,Linux--网卡聚合简单脚本(bond0)

#!/bin/bash

#by:cai

#修改系统语言包,将zh_CN.UTF-8 改成 zh_CN.GB18030

#输入命令:如vi  /etc/sysconfig/i18n (注意改好之后必须重启一下系统才行)

sed -i -e 's/^/#/g' -e 1i\LANG="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 <

#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/a\ONBOOT=yes $DIR_NIC/ifcfg-$NIC_true

sed -i -e "/^NM_CONTROLLED/"d -e /^DEVICE/a\NM_CONTROLLED=no $DIR_NIC/ifcfg-$NIC_true

sed -i -e "/^BOOTPROTO/"d -e /^DEVICE/a\BOOTPROTO=none $DIR_NIC/ifcfg-$NIC_true

fi

done

rm -rf .tmp.txt

# cat >>$DIR_NIC/ifcfg-$BOND<

#

#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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 步骤1:编辑/etc/network/interfaces文件,添加以下内容:auto bond0 iface bond0 inet static address 192.168.0.2 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 bond-slaves eth0 eth1 bond-mode balance-xor bond-miimon 100 bond-downdelay 200 bond-updelay 200步骤2:重新启动网络:sudo /etc/init.d/networking restart ### 回答2: 网络绑定(bonding)是在Linux主机中将多个物理网卡绑定成为一个逻辑接口的过程,以提高网络的可靠性和性能。在进行网络绑定时,我们需要编写一个脚本来配置网络绑定。 以下是一个简单Linux主机网卡绑定脚本: ```bash #!/bin/bash # 网络绑定接口名称 BOND_IFACE=bond0 # 物理网口列表 PHYSICAL_INTERFACES=(eth0 eth1) # 配置网络绑定模式 BOND_MODE=active-backup # 载入bonding内核模块 modprobe bonding mode=${BOND_MODE} # 创建网络绑定接口 ifconfig ${BOND_IFACE} down ifenslave -d ${BOND_IFACE} ${PHYSICAL_INTERFACES[*]} ifconfig ${BOND_IFACE} up # 配置网络绑定属性 echo "+${BOND_MODE}" > /sys/class/net/${BOND_IFACE}/bonding/mode echo "miimon=100" > /sys/class/net/${BOND_IFACE}/bonding/miimon echo "updelay=200" > /sys/class/net/${BOND_IFACE}/bonding/updelay echo "downdelay=200" > /sys/class/net/${BOND_IFACE}/bonding/downdelay echo "fail_over_mac=active" > /sys/class/net/${BOND_IFACE}/bonding/fail_over_mac # 激活网络绑定接口 ifconfig ${BOND_IFACE} ${BOND_IP} netmask ${BOND_NETMASK} ``` 在这个脚本中,我们首先指定了网卡绑定接口的名称`BOND_IFACE`,然后将要绑定的物理网口列表`PHYSICAL_INTERFACES`设定为`eth0`和`eth1`。接下来,我们设置绑定模式为`active-backup`。然后,我们使用`modprobe`命令载入`bonding`内核模块。 接下来,我们关闭网卡绑定接口,释放已经绑定的物理网口并重新启用网卡绑定接口。然后,我们通过`echo`命令将网络绑定的模式、属性以及其他相关配置写入相关的文件。 最后,我们通过`ifconfig`命令激活网络绑定接口并分配IP地址。 使用这个脚本,我们可以方便地配置Linux主机的网络绑定,并根据实际需求进行自定义设置。 ### 回答3: 以下是一个简单Linux主机网卡bonding脚本示例: #!/bin/bash # 检查脚本是否以root权限运行 if [[ $EUID -ne 0 ]]; then echo "请使用root权限运行该脚本" exit 1 fi # 设置网卡名称 interface1="eth0" interface2="eth1" bond_interface="bond0" # 安装ifenslave命令 apt-get install ifenslave -y # 加载Bonding内核模块 modprobe bonding # 创建bond0接口配置文件 echo -e "DEVICE=$bond_interface TYPE=Bond IPADDR=192.168.1.100 NETMASK=255.255.255.0" > /etc/sysconfig/network-scripts/ifcfg-$bond_interface # 启用ARP请求代理 echo 1 > /proc/sys/net/ipv4/conf/$bond_interface/proxy_arp # 添加两个子接口到bond0 echo -e "MASTER=$bond_interface SLAVE=yes" > /etc/sysconfig/network-scripts/ifcfg-$interface1 echo -e "MASTER=$bond_interface SLAVE=yes" > /etc/sysconfig/network-scripts/ifcfg-$interface2 # 设置bond0的工作模式为负载平衡(L4) echo -e "BONDING_OPTS=\"mode=4 miimon=100\"" >> /etc/sysconfig/network-scripts/ifcfg-$bond_interface # 重启网络服务 systemctl restart network echo "网卡bonding脚本执行完毕。" 以上脚本的功能是创建一个名为bond0网卡接口,并且将eth0和eth1两个接口绑定到bond0上。其中,bond0的IP地址设置为192.168.1.100,子网掩码为255.255.255.0。脚本会自动安装ifenslave工具和加载bonding内核模块,然后创建相关的网卡配置文件,配置bond0的工作模式为负载平衡(L4)。 重启网络服务后,系统将使用bond0接口进行网络通信。请根据实际情况修改脚本中的接口名称和IP地址等参数,然后执行脚本即可实现网卡bonding。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值