2014年(6)
分类: LINUX
2014-03-18 11:21:25
在当前的业务服务器环境中,单网卡的系统并不稳定,当业务流量大或网卡突然出现故障时,容易引起业务中断,这时候,我们需要考虑将多个网卡绑定为一个IP,以提供冗余,避免出现单点故障的情况。广东省Linux公共服务技术支持中心(咨询热线:400-033-0108)在为客户提供服务过程中总结出将网卡绑定操作的经验方法,供同行参考。
以将一台机器上的eth3和eth4两块网卡绑定成trunk0,将eth5和eth6两块网卡绑定为trunk1为例说明网卡绑定操作方法,创建trunk1的步骤请参考本文中的注释完成。本文适用于RHEL5/6和CENTOS5/6等红帽系Linux操作系统。
本文中红色文字表示为可修改部分。
本文中蓝色文字表示是注释性信息,供用户参考。
一、解除ifenslave方式绑定,将系统配置恢复成初始未绑定状态
在开始绑定前需要解除原来可能存在的ifenslave方式的网卡绑定,如果不存在ifenslave方式绑定则可以跳过本节,跳到下面的第二节-手工修改系统脚本。解除步骤如下:
1、删除/etc/modprob.conf文件里面的 alias trunk0 bonding和options trunk0 miimon=100 mode=1 两句话。
<---解除trunk1绑定时,为trunk1
2、删除/etc/rc.d/rc.local中包含的ifenslave trunk0 eth3 eth4的语句;
<---解除trunk1绑定时,为trunk1 eth5 eth6
3、检查/etc/sysconfig/network-scripts目录,如果存在ifcfg-trunk0这个文件,则删除;
<---存在trunk1绑定时,为ifcfg-trunk1
4、检查/etc/sysconfig/network-scripts目录,如果存在ifcfg-eth3、ifcfg-eth4、.ifcfg-eth3.bak、.ifcfg-eth4.bak,则删除这些配置文件;
<--存在trunk1绑定时,为ifcfg-eth5、ifcfg-eth6、.ifcfg-eth5.bak、.ifcfg-eth6.bak四个文件
5、在network-scripts目录下,使用下面格式重现建立配置文件ifcfg-eth3和ifcfg-eth4(使用vim工具),然后请将建立好的ifcfg-eth3和ifcfg-eth4文件拷贝到/etc/sysconfig/network-scripts目录中。:
<---存在trunk1绑定时,为ifcfg-eth5和ifcfg-eth6
ifcfg-ethx文件格式如下:
DEVICE=ethx <---ethx为eth3或者eth4等具体网卡名称
ONBOOT=yes
BOOTPROTO=dhcp
HWADDR=xx:xx:xx:xx:xx:xx <---需要根据每块网卡的具体MAC地址修改
TYPE=Ethernet
6、重启系统,用ifconfig命令检查所有的网卡设备是否全部正常了。
二、手工修改系统脚本ifdown-eth
绑定前,需要修改系统脚本,在/etc/sysconfig/network-scripts/ifdown-eth相应的位置增加蓝色标注的一行代码:
ifconfig ${DEVICE} down
三、备份系统原有的网络配置脚本
稳妥起见,可先将/etc/sysconfig/network-scripts/目录下所有以ifcfg- 开头的文件备份到一个另外的目录,如:/root/eth-bak目录。
四、创建绑定
1、创建绑定配置文件:/etc/sysconfig/network-scripts/ifcfg-trunk0内容如下: <---如果创建trunk1绑定时,为ifcfg-trunk1
如果手动设置IP,ifcfg-trunk0配置文件内容如下: <---如果创建trunk1绑定时,为ifcfg-trunk1
DEVICE=trunk0 <---如果创建trunk1绑定时,为trunk1
IPADDR=10.215.32.67 <---如果创建trunk1绑定时,为trunk1绑定的IP
NETMASK=255.255.240.0 <---如果创建trunk1绑定时,为trunk1绑定的掩码
GATEWAY=10.215.32.65 <---如果创建trunk1绑定时,为trunk1绑定的网关
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
2、修改/etc/sysconfig/network-scripts/ifcfg-eth3为如下内容:
<---如果创建trunk1绑定时,则修改的是ifcfg-eth5文件
DEVICE=eth3 <---如果创建trunk1绑定时,为eth5
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx <---该物理设备的实际MAC地址
MASTER=trunk0 <---如果创建trunk1绑定时,为trunk1
SLAVE=yes
BOOTPROTO=none
USERCTL=no
3、修改/etc/sysconfig/network-scripts/ifcfg-eth4为如下内容: <---如果创建trunk1绑定时,则修改的是ifcfg-eth6
DEVICE=eth4 <---如果创建trunk1绑定时,为eth6
ONBOOT=yes
HWADDR=xx:xx:xx:xx:xx <---该物理设备的实际MAC地址
MASTER=trunk0 <---如果创建trunk1绑定时,为trunk1
SLAVE=yes
BOOTPROTO=none
USERCTL=no
4、在/etc/modprobe.conf里面添加如下语句:
alias trunk0 bonding <---如果创建trunk1绑定时,为trunk1
options trunk0 miimon=100 mode=1 <---如果创建trunk1绑定时,为trunk1
<---mode的值可以为1或者0,分别代表active-backup与balance-rr的方式
5、用下面的命令重启网络服务,绑定即可生效。
service network restart
五、解除绑定的方法
1、删除绑定网卡对应的配置文件
rm –f /etc/sysconfig/network-scripts/ifcfg-trunk0
<---如果已经创建trunk1时,则删除的是ifcfg-trunk1
2、还原原来的配置文件
cp -f /root/eth-bak/ifcfg-eth3 /etc/sysconfig/network-scripts/
<---如果已经创建trunk1时,则拷贝的是ifcfg-eth5
cp -f /root/eth-bak/ifcfg-eth4 /etc/sysconfig/network-scripts/
<---如果已经创建trunk1时,则拷贝的是ifcfg-eth6
3、删除/etc/modprobe.conf里面如下语句:
alias trunk0 bonding <---如果已创建trunk1绑定时,为trunk1
options trunk0 miimon=100 mode=1 <---如果已创建trunk1绑定时,为trunk1
4、按顺序执行下面的命令:
ifconfig eth3 down
<---如果已创建trunk1绑定时,为eth5
echo -eth3 > /sys/class/net/trunk0/bonding/slaves
<---如果已创建trunk1绑定时,为eth5 和trunk1
ifconfig eth4 down
<---如果已创建trunk1绑定时,为eth6
echo -eth4 > /sys/class/net/trunk0/bonding/slaves
<---如果已创建trunk1绑定时,为eth6和trunk1
ifconfig trunk0 down
<---如果已创建trunk1绑定时,为trunk1
echo -trunk0 > /sys/class/net/bonding_masters
<---如果已创建trunk1绑定时,为trunk1
5、重启网络服务,绑定即可解除成功。
service network restart