分类: LINUX
2012-09-21 16:19:19
一:在机其上安装两块网卡,并修改相应的网络配置文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
MASTER=bond0
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
MASTER=bond0
vim /etc/sysconfig/network-scripts/ ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=static
IPADDR=IP地址
NETMASK=子网掩码
Modprobe bonding
二.vim /etc/modprobe.conf 加载相关的网卡驱动
alias bond0 bonding
options bond0 miimon=100 mode=0
说明:
miimon=100
miimon是指多久时间要检查网路一次,单位是ms(毫秒)
这边的100,是100ms,即是0.1秒
意思是假设其中有一条网路断线,会在0.1秒内自动备援
mode共有七种(0~6)
mode=0:平衡负载模式,有自动备援,但需要"Switch"支援及设定。
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6:平衡负载模式,有自动备援,不必"Switch"支援及设定。
需要说明的是如果想做成mode 0的负载均衡,仅仅设置这里options bond0 miimon=100 mode=0是不够的,与网卡相连的交换机必须做特殊配置(这两个端口应该采取聚合方式),因为做bonding的这两块网卡是使用同一个MAC地址.
从原理分析一下(bond运行在mode 0下):
mode 0下bond所绑定的网卡的IP都被修改成相同的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多 个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。
所以mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为 ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址.我们的解 决办法是,两个网卡接入不同的交换机即可。
mode6模式下无需配置交换机,因为做bonding的这两块网卡是使用不同的MAC地址。
开机脚本
三:vim /etc/rc.d/rc.local 增加一行
sleep 5
ifenslave bond0 eth2 eth3
某些情况下不会生效,需要手动执行
四
查看状态 cat /proc/net/bonding/bond0并进行测试
[root@client204 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 2008)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth2
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:15:17:b5:b9:94
Slave Interface: eth3
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:15:17:b5:b9:95
[root@client204 ~]# ifconfig bond0 Link encap:Ethernet HWaddr 00:15:17:B5:B9:94 inet addr:10.4.0.204 Bcast:10.4.255.255 Mask:255.255.0.0 inet6 addr: fe80::215:17ff:feb5:b994/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:39178 errors:0 dropped:0 overruns:0 frame:0 TX packets:416 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2610912 (2.4 MiB) TX bytes:41315 (40.3 KiB)