何为bonding?

将多块网卡虚拟成为一块网卡,使其具有相同的ip地址,来实现提升主机的网络吞吐量或者是提高可用性,这种技术被称作bonding。


Bonding的原理:在正常情况下,网卡只接收目的硬件地址(MAC Address)是自身MAC的以太网帧,过滤别的数据帧,以减轻驱动程序的负担;但是网卡也支持另外一种被称为混杂promisc的模式,可以接收网络上所有的帧,bonding就运行在这种模式下,而且修改了驱动程序中的mac地址,将两块网卡的MAC地址改成相同,可以接收特定MAC的数据帧。然后把相应的数据帧传送给bond驱动程序处理。


下面简单介绍下实验环境


rhel6.4 操作系统 实验要求是两块网络提供冗余/热备。


实验开始


1:编辑该配置文件 vi/etc/modprobe.d/dist.conf

   加入以下参数

   alias bond0 bonding


2:创建bonding网络配置文件

   vi/etc/sysconfig/network-scripts/ifcfg-bond0

   DEVICE=bond0

   BOOTPROTO=static/dhcp

   TYPE=Ethernet

   ONBOOT=yes

   IPADDR= 根据实际情况配置

   NETMASK=

   GATEWAY=

   BONDING_OPTS="mode=1 miimon=200" 该参数也可 步骤 1 中进行添加。步骤 1 为:

       alias bond0 bonding

       options bond0 mode=1 miimon=100

RHEL6.4 bonding 技术学习


3:编辑实际网卡配置文件

   vi/etc/sysconfig/network-scripts/ifcfg-eth0

   DEVICE=eth0

   BOOTPROTO=none

   ONBOOT=yes

   MASTER=bond0

   SLAVE=yes

RHEL6.4 bonding 技术学习



4:编辑实际网卡配置文件

   vi /etc/sysconfig/network-scripts/ifcfg-eth1

   DEVICE=eth1

   BOOTPROTO=none

   ONBOOT=yes

   MASTER=bond0

   SLAVE=yes

RHEL6.4 bonding 技术学习

        


安装以上配置完成后,重启网络服务即可。

/etc/init.d/network restart

ifconfig -a  进行查看

RHEL6.4 bonding 技术学习



cat /proc/net/bonding/bond0

RHEL6.4 bonding 技术学习


如上图,现在两块网卡 都是 UP状态。

测试结果

拔下一根网线

RHEL6.4 bonding 技术学习



eth0 down掉了

ping 依然正常

RHEL6.4 bonding 技术学习


丢包处,拔掉网线,网卡切换时造成。

现在 还原,拔掉另外一个网线

RHEL6.4 bonding 技术学习


eth1 down掉了

ping 依然正常                                      

RHEL6.4 bonding 技术学习

                


现在来讲解下详细的配置文件参数


MASTER:

MASTER=<bond-interface>

bond-interface的值是以太网卡连接到的通道绑定接口的名称,如:bond0、bond1

master这个指令与 SLAVE 指令配合使用。


SLAVE:

SLAVE=yes/no

yes : 表示此设备可以由MASTER 指令中配置的通道绑定接口进行控制。

no  :  表示此设备不能由 MASTER 指令中配置的通道绑定接口进行控制。


Bonding工作模式

 

bonding的模式一共有7种:

即 mode=0/1

round-robin(balance-rr)  0       负载均衡及冗余模式

active-backup            1       冗余模式

balance-xor              2       需要交换机支持

broadcast                3       广播模式

ieee802.3ad              4       动态链路聚合模式,需要交换机支持

mode-tlb                 5       自适应模式

mode-alb                 6       网卡虚拟化方式


miimon=100ms 

miimon是用来进行链路监测的,其原理是检测网上的链路状态,一般将miimon值设为100,表示系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。


以上几种模式只是给大家做一个简单的介绍,一般来说最常用的事 0 和 1 两种模式。还有就是,模式0只是实现了简单的负载均衡及冗余。如果要实现高效的负载均衡,提高网络流量,需设置成模式4,而这需要交换机的支持,牵涉到交换机的链路聚合(LACP)功能。



最后再补充一条命令,可以动态查看双网卡切换的动作。

tail -f /var/log/message



                        


转载于:https://blog.51cto.com/skyking116/1542457

相关文章: