> CentOS > CentOS运维 >

CentOS网卡绑定方法

修改三类文件:

/etc/sysconfig/network-scripts/下的ifcfg-*文件

/etc/modprobe.conf文件

/etc/init.d/rc.local文件


设置方法:

1. 环境:windows xp+vmware, centos 5.3, 4块网卡,做两组绑定。

当前网卡:eth0-3

绑定后虚拟网卡:bond0-1

eth0、eth2绑定为bond0,eth1、eth3绑定为bond1,不同网段。


2. 修改ifcfg-*文件

增加ifcfg-bond0、ifcfg-bond1两个文件:

文件内容:
[root@localhost network-scripts]# cat ifcfg-bond0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.100.101
NETMASK=255.255.255.0
NETWORK=192.168.100.0
ONBOOT=yes
USERCTL=no
TYPE=Ethernet
GATEWAY=192.168.100.101


[root@localhost network-scripts]# cat ifcfg-bond1
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=bond1
BOOTPROTO=none
IPADDR=172.16.0.1
NETMASK=255.255.255.0
NETWORK=172.16.0.0
ONBOOT=yes
USERCTL=no
#TYPE=Ethernet
TYPE=Ethernet


修改ifcfg-eth0、ifcfg-eth1、ifcfg-eth2、ifcfg-eth3四个网卡配置文件:

内容:

[root@localhost network-scripts]# cat ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
TYPE=Ethernet

[root@localhost network-scripts]# cat ifcfg-eth1
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond1
SLAVE=yes
TYPE=Ethernet

[root@localhost network-scripts]# cat ifcfg-eth2
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth2
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond0
SLAVE=yes
TYPE=Ethernet

[root@localhost network-scripts]# cat ifcfg-eth3
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth3
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
MASTER=bond1
SLAVE=yes
TYPE=Ethernet

3. 修改/etc/modprobe.conf文件

[root@localhost network-scripts]# cat /etc/modprobe.conf
alias eth0 pcnet32
alias eth1 pcnet32
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
alias scsi_hostadapter2 ata_piix
alias eth2 pcnet32
alias eth3 pcnet32
alias bond0 bonding
options bond0 miimon=100 mode=0
alias bond1 bonding
options bond1 miimon=100 mode=0

4. 修改/etc/rc.d/rc.local文件
[root@localhost network-scripts]# cat /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
modprobe bonding miimon=100 mode=0


5. 测试

方法1:检查网络配置是否正常,是否可启动
/etc/init.d/network restart

方法2:检查系统启动时虚拟网卡是否正常启动
reboot

方法3:检查绑定网卡是负载均衡模式,还是主备冗余模式
cat /proc/net/bonding/bond0
cat /proc/net/bonding/bond1


6. 说明

如果是主备冗余模式,需将
options bond0 miimon=100 mode=0中

mode改为1

其它改为
options bond0 miimon=100 mode=1 primary=eth0

primary=eth0表示当前主网卡为eth0

其它在/etc/rc.d/rc.local中也修改
modprobe bonding miimon=100 mode=1


注1:经过测试,一直没试通一组网卡配置成负载均衡,一组配置成主备冗余的效果,两组网卡“必须”同一种模式,不知道能不能设,和应该怎么设。

注2:如果在5.3中使用/etc/modules.conf代替/etc/modprobe.conf文件,会在系统出现如下错误:


bonding device bond0 does not seem to be present,delaying initialization.


这可能是因为5.3版本后,modprobe.conf取代了modules.conf文件的缘故,modules.conf文件虽仍可用,或在某些linux系统中可用,但在centos 5.3中不推荐使用。


注3:如果非要使用modules.conf文件,可以添加如下参数解决启动信息报错问题。


options bond0 miimon=100 mode=1 primary=eth0 max_bonds=2


max_bonds=2中的2表示虚拟网卡的数量。 


(责任编辑:IT)