实现将两块网卡虚拟成为一块网卡,这样两块网卡具有相同的IP地址而聚合成一个逻辑链路。bonding运行在混杂promisc模式,即接收网络上所有的帧。它修改了驱动程序中的mac地址,将两块网卡的Mac地址改成相同的,网卡接收到特定mac帧后,把相应的数据帧传送给bond驱动程序处理。
一、查看内核是否支持 bonding:
首先安装vconfig
$ yum install vconfig
$ dmesg | grep -i 802
$ modprobe 8021q (载入模块)
$ lsmod | grep 8021q (确认模組是否已经载入到核心內)
二、创建虚拟网络接口配置文件ifcfg-bond0,并配置好
$ cd /etc/sysconfig/network-scripts/
$ vi ifcfg-bond0
或直接复制一份# cp ifcfg-eth0 ifcfg-bond0
ifcfg-bond0文件做类似如下修改:
DEVICE=bond0
BOOTPROTO=static
IPADDR=[IP]
NETMASK=[MASK]
BROADCAST=[BROADCAST]
GATEWAY=[GATEWAY]
ONBOOT=yes
TYPE=Ethernet
如果配置bond4,则文件配置信息为:
参考1(没设定vlan):
三、修改物理网卡配置文件
修改ifcfg-eth0如下:
DEVICE=eth0
NAME=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0 #如果不写,则必须做第四步
SLAVE=yes #如果不写,则必须做第四步
USERCTL=yes
类似地修ifcfg-eth1如下:
DEVICE=eth1
NAME=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0 #如果不写,则必须做第四步
SLAVE=yes #如果不写,则必须做第四步
USERCTL=yes
四、修改/etc/modprobe.conf 这个配置文档添加两行
alias bond0 bonding
options bond0 miimon=100 mode=1
基中的mode工作模式说明如下mode=0 表示 load balancing (round-robin)为负载均衡方式,两块网卡都工作。
mode=1 表示 fault-tolerance (active-backup)提供冗余功能,工作方式是主 从的工作方式,也就是说默认情况下只有一块网卡工作,另一块做备份。
mode=2 表示 XOR policy 为平衡策略。此模式提供负载平衡和容错能力
mode=3 表示 broadcast 为广播策略。此模式提供了容错能力
mode=4 表示 IEEE 802.3ad Dynamic link aggregation 为 IEEE 802.3ad 为 动态链接聚合。该策略可以通过 xmit_hash_policy 选项从缺省的 XOR 策略改变到其他策略。
mode=5 表示 Adaptive transmit load balancing 为适配器传输负载均衡。该 模式的必要条件:ethtool 支持获取每个 slave 的速率
mode=6 表示 Adaptive load balancing 为适配器适应性负载均衡。该模式包含 了 balance-tlb 模式,同时加上针对 IPV4 流量的接收负载均衡(receive load balance, rlb),而且不需要任何 switch(交换机)的支持。
五、/etc/rc.local里加上开机自启动项,然后重启网络服务
/proc/net/vlan/config可查看所有设定的vlan,不过这样的設定下次重新开机就会失效,所以需要將设定语句写到/etc/rc.local
1.没有设定vlan的情况下
ifenslave bond0 eth0 eth1
2.有vlan情况下
modprobe 8021q
vconfig add eth0 192
ifup eth0.192
$ service network restart
cat /proc/net/bonding/bond0 查看bonding信息