1:首先要看linux是否支持bonding.(2.4版本大部分发行版都支持)

# modinfo bonding

如果没有,说明内核不支持bonding,需要重新编译内核

编译内核的步骤这里就不多写了,在make menuconfig里面

找到Bonding driver support这样的对话框,选中它.

如果是模块编译,还需要挂载模块.挂载bonding 模块的方法;

[root@localhost#] modprobe bonding

如果/sbin/ifenslave没有,我们还需要把它也单独编译出来

[root@lin:/home/beinan#] cd /usr/src/linux-2.6.20/Documentation/networking

[root@lin:/home/networking#] gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux-2.6.20/include ifenslave.c -o ifenslave

[root@lin:/home/networking#] cp ifenslave /sbin/ifenslave新建/etc/sysconfig/network-scripts/ifcfg-bond0文件
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.128.225
NETMASK=255.255.255.224
GATEWAY=192.168.128.233
USERCTL=no

2.更改/etc/sysconfig/network-scripts/ifcfg-eth0网卡属性
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
USERCTL=no

3.更改/etc/sysconfig/network-scripts/ifcfg-eth1网卡的属性
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
USERCTL=no

4.编辑/etc/modprobe.conf文件,加入以下内容
alias bond0 bonding
options bond0 miimon=100 mode=0

说明:miimon是用来进行链路监测的。比如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;mode的值表示工作模式,他共有0,1,2,3四种模式,常用的为0,1两种。

   mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作。

   mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主备的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份.。


需要说明的是如果想做成负载均衡,仅仅设置这里options bond0 miimon=100 mode=0是不够的,还需要设置交换机的端口.

mode 0下bond所绑定的网卡的IP都被修改成一样的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。

5.加入/etc/rc.d/rc.local启动项
ifenslave bond0 eth0 eth1

6.
启动网卡
ifconfig bond0 192.168.128.225 up
ifenslave bond0 eth0 eth1