网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术。
生产环境服务器为:DELL
网卡为:光纤
bond需要修改涉及的网卡配置文件
/etc/network-scripts/ifcfg-em1 /etc/network-scripts/ifcfg-em2
需要新增配置文件
/etc/network-scripts/ifcfg-bond0
为了方便快速配置,我将配置文件放到了U盘(U盘中需要四个文件,配置好的ifcfg-em1,ifcfg-em2,ifcfg-bond0,脚本cfg.sh)中,通过脚本形式快速配置。
ifcfg-em1内容如下
DEVICE=em1 NAME=em1 HWADDR=80:18:44:ea:8b:b0 TYPE=Ethernet ONBOOT=yes MASTER=bond0 SLAVE=yes NM_CONTROLLED=no BOOTPROTO=none USERCTL=no
ifcfg-em2内容如下
DEVICE=em2 NAME=em2 HWADDR=80:18:44:EA:8B:B1 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none USERCTL=no MASTER=bond0 SLAVE=yes
ifcfg-bond0内容如下
DEVICE=bond0 TYPE=Bond NAME=bond0 BOOTPROTO=none ONBOOT=yes IPADDR=10.16.28.216 PREFIX=24 USERCTL=no BONDING_MASTER=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no BONDING_OPTS="mode=4 miimon=100 downdelay=200 updelay=200 lacp_rate=1 xmit_hash_policy=2" BONDING_SLAVE_0=em1 BONDING_SLAVE_1=em2 NM_CONTROLLED=no GATEWAY=10.16.28.4
cfg.sh脚本内容如下
#脚本需要两个参数,本机需要配置的IP地址,本机的网关地址 ip=$1 gw=$2 #判断是否给定参数,执行脚本时没有给定参数,脚本退出 if [ $ip = ‘‘ -o $gw = ‘‘ ] then echo ‘ip or gateway wrong‘ exit fi #备份设备上原来的网卡信息,我的网卡名称为em1和em2 cp /etc/sysconfig/network-scripts/ifcfg-em1 /etc/sysconfig/network-scripts/ifcfg-em1.bak cp /etc/sysconfig/network-scripts/ifcfg-em2 /etc/sysconfig/network-scripts/ifcfg-em2.bak #将准备好的网卡配置文件拷贝到指定目录 cp /media/OMSA71-CENT/boot/ifcfg-* /etc/sysconfig/network-scripts/ #将原网卡hwaddr信息恢复到配置文件 cd /etc/sysconfig/network-scripts/ sed -i s/`grep HWADDR ifcfg-em1`/`grep HWADDR ifcfg-em1.bak`/ ifcfg-em1 sed -i s/`grep HWADDR ifcfg-em2`/`grep HWADDR ifcfg-em2.bak`/ ifcfg-em2 #替换配置文件中ip地址信息为本机ip地址 sed -i s/10.16.28.216/$ip/ ifcfg-bond0 #替换配置文件中网关地址信息为本机网关地址 sed -i s/10.16.28.4/$gw/ ifcfg-bond0 #查看更改后的配置信息 grep 10.16.28 ifcfg-bond0 #修改服务器启动方式为命令行方式,而不是图形界面形式 sed -i s/id:5:/id:3:/ /etc/inittab sleep 5 #关闭iptables和selinux servcie iptables stop chkconfig iptables --level 12345 off setenforce 0 sed -i s/SELINUX=enforcing/SELINUX=disabled/ /etc/selinux/config #人工重启设备,使配置生效[init 6]
脚本执行示例
#配置ip地址为10.16.28.200,配置网关地址为10.16.28.5 sh -x cfg.sh 10.16.28.200 10.16.28.5