一、什么是网卡bond
  所谓bond,就是把多个物理网卡绑定成一个逻辑上的网卡,使用同一个IP工作,在增加带宽的同时也可以提高冗余性,一般使用较多的就是来提高冗余,分别和不同交换机相连,提高可靠性,但有时服务器带宽不够了也可以用作增加带宽。

二、网卡bond的模式
bond 0 负载均衡 轮询方式往每条链路发送报文,增加带宽和容错能力。容易出现数据包无序到达的问题,数据包重发后吞吐量下降,性能增长不理想。
bond 1 主备策略 主备策略为两个网卡中只有一个在工作就行,另一个完全待机。
bond 2 平衡策略 通过算法聚和端口,增加带宽,提高容错率,当一条有问题会由另一条接管。适合本地网络配置,如果通过单个路由器或只有一个网关算法将无意义。
bond 3 广播策略 该策略bond端口会复制报文往下端口分别传输。该方案由较好的容错机制,适合金融行业,不容易出问题。
bond 4 动态链路聚合 该协议需要上线链路支持LACP(链路汇聚控制协议)协议,端口状态通过该协议自动维护。可以增加带宽,由容错能力,链路出问题会切换到正常的端口,但是增加了LACP协议 所以该协议会发送LACPDU报文来维护链路聚合状态,保证链路质量。
bond 5 适配器传输负载均衡 balance-tlb 在每个物理接口上根据当前的负载(根据速度计算)分配外出流量。如果正在接收数据的物理接口出故障了,另一个物理接口接管该故障物理口的MAC地址。
bond 6 适配器适应性负载均衡 balance-alb 支持负载均衡,也不需要交换机支持,负载均衡通过ARP协商实现。bonding驱动截获本机发送的ARP应答,并把源硬件地址改为bond中某个物理接口的唯一硬件,从而是的不同的对端使用不同的硬件地址进行通讯。 6和0的区别是 0是平均分配,6是一个满了换下一个。

常用的模式为0,1,3,6

mode 1、5、6 不需要交换设置
mode 0、2、3、4需要交换机设置

三、更改要bond网卡的配置文件

1.环境信息如下图

bond0网卡做keepalived 单网卡做bond_vim

bond0网卡做keepalived 单网卡做bond_链路_02

通过ifconfig命令看到ens192和ens224两张网卡。

2.具体配置如下:

bond0网卡做keepalived 单网卡做bond_vim_03

ens192,ens224为bond前的网卡名称,bond0为bond后的网卡名称,我们需要对这三个配置文件做更改。

ens192:

vim /etc/sysconfig/network-scripts/ifcfg-ens192

bond0网卡做keepalived 单网卡做bond_负载均衡_04

NAME=ens192  #虚拟网卡名称
DEVICE=ens192  
BOOTPROTO=none  #启动时不使用任何协议
MASTER=bond0
SLAVE=yes  #可以没有此字段,就需要开机执行ifenslave ens192 eens224命令了
ONBOOT=yes  #系统启动时自动启用该设备

ens224:
vim /etc/sysconfig/network-scripts/ifcfg-ens224

bond0网卡做keepalived 单网卡做bond_vim_05

NAME=ens224
DEVICE=ens224
BOOTPROTO=none
MASTER=bond0
SLAVVE=yes
ONBOOT=yes

bond0:
vim /etc/sysconfig/network-scripts/ifcfg-bond0

bond0网卡做keepalived 单网卡做bond_链路_06

NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.10.6   #IP地址
PREFIX=24  #子网掩码
GATEWAY=192.168.10.251  #网关
BONDING_OPTS="mode=0 miimon=100 fail_over_mac=1"  #虚拟机需加参数,实体机不需要

四、配置模式为bond0

1.配置相关文件

vim /etc/modprobe.d/bonding.conf  #不存在的话,手动创建
在最后添加下面2行

alias bond0 bonding  #定义模块别名
options bonding mode=0 miimon=200  #设置为负载均衡模式。mode=0表示load balancing (round-robin)为负载均衡方式,两块网卡都工作;选项 millmon 是指定隔多长时间来进行链路监测,单位是ms

bond0网卡做keepalived 单网卡做bond_bond0网卡做keepalived_07

2.加载模块

modprobe bonding

3.确认模块是否加载成功

lsmod |grep bonding

4.修改/etc/rc.local,负责在系统启动时将虚拟网卡和两张物理网卡相绑定,增加以下内容:

ifenslave bond0 ens224 ens192

五、重启网卡并查看情况

1.添加开机启动并关闭NetworkManager的开机启动
chkconfig NetworkManager off
chkconfig network on

原因:在CentOS系统上,目前有NetworkManager和network两种网络管理工具。如果两种都配置会引起冲突,而且NetworkManager在网络断开的时候,会清理路由,如果一些自定义的路由,没有加入到NetworkManager的配置文件中,路由就被清理掉,网络连接后需要自定义添加上去。

2.重启网络

service network restart 或者 systemctl restart network

3.查看bond是否已经生效

nmcli connection show
cat /proc/net/bonding/bond0

bond0网卡做keepalived 单网卡做bond_链路_08