Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。
1、修改网卡配置
a、切换目录
cd /etc/sysconfig/network-scripts/ifcfg-bond0
然后新建文件ifcfg-bond0
vim ifcfg-bond0,
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
TYPE=Ethernet
USERCTL=no
IPADDR=192.168.1.55
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
b、修改eth0的文件
vim ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
USERCTL=no
c、修改eth1的文件
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
USERCTL=no
2、加载bonding模块
vi /etc/modprobe.d/dist.conf 在文件的末尾加入
alias bond0 bonding
options bond0 mode=1 miimon=100
参数解释:
miimon是用来进行链路监测的。 比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。
mode的值表示工作模式,常用的工作模式为0,1两种。
mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。
mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份. bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用。
3、将bond0设置为开机自动加载
编写/etc/rc.d/rc.local
在倒数第2行,增加一句
Ifenslave bond0 eth0 eth1
4、重启网卡
执行命令 /etc/init.d/network restart(或者service network restart)这两条命令的意思一样。如不行重启动系统试试reboot或init 6。
5、验证网卡绑定是否成功
输入ifconfig ,查看bond0,eth0,eth1三块网卡的MAC地址是否一样,如果一致,基本可以确定双网卡绑定已生效。
然后,查看/proc/net/bonding/bond0文件,也可以确定网卡绑定是否成功。
以上是正常情况下的双网卡绑定,下面我们分析一种故障。
故障现象,重启网卡时提示:
Device eth0 does not seem to be present, delaying initialization
故障原因及初步诊断:
之前的双网卡绑定出现故障,为了快速回复生产环境,临时拆除双网卡,将其中的eth0文件进行了删除,然后就出现了以上报错。
分析上面的报错,第一直觉就感觉是缺少eth0的网卡配置文件,然后copy一个过来。重启网卡,仍然报相同的错误。
解决方法:
1、cat /etc/udev/rules.d/70-persistent-net.rules,将eth0的MAC地址进行copy。
2、然后rm –f /etc/udev/rules.d/70-persistent-net.rules删除此文件
3、在/etc/sysconfig/network-scripts/中copy另外一个eth1为eth0,然后更改MAC地址为刚才copy的MAC地址
4、重启机器
5、正常执行上述的双网卡绑定程序即可。
更多RedHat相关信息见RedHat 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=10