首页 > 代码库 > 网卡绑定
网卡绑定
下面来看一下Linux Redhat 5.4 下的一个绑定测试。 把2个网卡绑定成bond0。
1. 在/etc/sysconfig/network-scripts/下创建虚拟网卡bond0的配置文件ifcfg-bond0
【RHEL5】
[root@singledb doc]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
BROADCAST=192.168.6.255
IPADDR=192.168.6.200
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.6.254
USERCTL=no
IPV6INIT=no
PEERDNS=yes
【RHEL6】
DEVICE=bond0
BOOTPROTO=none
BROADCAST=192.168.4.255
IPADDR=192.168.4.56
NETMASK=255.255.255.0
ONBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.4.1
USERCTL=no
IPV6INIT=no
PEERDNS=yes
参数说明:
DEVICE=物理设备名
IPADDR=IP地址
NETMASK=掩码值
NETWORK=网络地址
BROADCAST=广播地址
GATEWAY=网关地址
ONBOOT=[yes|no](引导时是否激活设备)
USERCTL=[yes|no](非root用户是否可以控制该设备)
BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议)
HWADDR = 你的MAC地址
2. 分别修改原来网卡配置文件的信息,删除其中的IP 地址、子网掩码等信息
[root@singledb doc]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=none
master=bond0
slave=yes
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
[root@singledb doc]# cat /etc/sysconfig/network-scripts/ifcfg-eth1
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth1
BOOTPROTO=none
master=bond0
slave=yes
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
3. 配置 驱动模块参数:
【RHEL5】
在/etc/modules.conf文件中添加如下内容:
[root@singledb doc]# cat /etc/modprobe.conf
alias eth0 pcnet32
alias eth1 pcnet32
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
alias scsi_hostadapter2 ata_piix
alias peth0 pcnet32
alias bond0 bonding
options bond0 miimon=100 mode=0
【RHEL6】
在 /etc/modprobe.d/bonding.conf文件中添加如下内容
[root@rhel1 ~]# cat /etc/modprobe.d/bonding.conf
alias bond0 bonding
BONDING_OPTS="MODE=0 MIIMON=100
说明:
(1)、miimon 是链路监测的时间间隔单位是毫秒,miimon=100的意思就是,每100毫秒检测网卡和交换机之间是否连通,如不通则使用另外的链路。
(2)、mode=0 表示负载均衡方式,两块网卡都工作,需要交换机作支持
mode=1 表示冗余方式,网卡只有一个工作,一个出问题启用另外的
mode=6 表示负载均衡方式,两块网卡都工作,不需要交换机作支持
看了一个网友的测试,在mode=6 下有丢包现在。 选择mode =0 就可以了。
Linux 双网卡绑定测试
http://www.cnblogs.com/killkill/archive/2009/02/15/1390717.html
4. 设置开机绑定
先在Linux 的Terminal里执行一下命令:
ifenslave bond0 eth1 eth0
将虚拟网卡进行绑定,然后将该参数添加到/etc/rc.local中,让开机自动绑定:
[root@singledb doc]# cat /etc/rc.local
#!/bin/sh
touch /var/lock/subsys/local
ifenslave bond0 eth0 eth1
5. 重新网络
[root@singledb ~]# service network restart
绑定网卡的启动与关闭:
# ifdown bond0
#ifup bond0
现在我们可以做测试,比如拔掉某个网卡的网线,或者ifdown。 bond0还是可以正常工作的。
我是在虚拟机上做的测试。
(1)#ifdown eth0
此时bond0还可以正常连接。
(2)#ifdown eth1
此时bond0 的连接也中断。
(3)#ifup eth0
bond0 又恢复正常。
这里只是对Redhat 5.4 Linux 下的一个测试,Unix 下方法又不一样,等以后有环境了,在测试一下。
1. 安装完成Centos 6.3 , 配置网卡后发现 eth1内网的配置不能生效,restart 只有eth0相关信息;
2. 使用setup 命令设置eth1 的IP后, 目录/etc/sysconfig/network-scripts下面没有ifcfg-eth1配置;
3. 手动创建ifcfg-eth1文件,重启报下面错误
Rhel6 问题解决:
[root@hexuweb102 ~]$ /etc/init.d/network restart
Shutting down interface eth0: Device state: 3 (disconnected)
[ OK ]
Shutting down interface eth1: Error: Device ‘eth1‘ (/org/freedesktop/NetworkManager/Devices/0) disconnecting failed: This device is not active
[FAILED]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Active connection state: activated
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/17
[ OK ]
Bringing up interface eth1: Active connection state: activated
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/18
经过Google找到答案,解决方法如下:
[root@hexuweb102 ~]$ service NetworkManager stop
## 永久性关闭此服务
[root@hexuweb102 ~]$ chkconfig NetworkManager off
更多参考:
Centos 6.3 与 Centos 5.x 对比可以发现多了一行:
## NM_CONTROLLED 实际上是network mamager的参数,而且实时生效。也就是说你改完它保存,不需要重启,它立刻生效。
NM_CONTROLLED=yes
使用下面命令检查NetworkManager服务的启动情况:
[root@hexuweb102 ~]$ chkconfig --list | grep on
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
如何习惯了使用network来管理,那就把 NetworkManager 关闭吧,有网友说好像 network 与 NetworkManger有冲突,目前我也不太清楚。
## 执行下面命令即可
[root@hexuweb102 ~]$ chkconfig NetworkManager off
网卡绑定