修改三类文件:
/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表示虚拟网卡的数量。