1、bonding介绍
bonding(绑定)是一种linux系统下的网卡绑定技术,可以把服务器上n个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡,能够提升网络吞吐量、实现网络冗余、负载等功能,有很多优势。bonding技术是linux系统内核层面实现的,它是一个内核模块(驱动)。
2、bonding的七种模式
bonding技术提供了七种工作模式,在使用的时候需要指定一种,每种有各自的优缺点。
1. mode=0表示平衡轮询方式,需要交换机的配置,每块网卡轮询发包。
2. mode=1表示主备的方式,不需要交换机配置,默认情况下只有一块网卡工作,另一块做备份。
3. mode=2表示平衡策略,基于源mac的hash做负载均衡。不常用。
4. mode=3表示广播策略,容错模式,每个网卡都传输每个同一份数据包,这个模式提供容错性。不常用。
5. mode=4表示802.3ad动态链接聚合,需要交换机特定配置才支持。
通过LACP协议实现了与交换机的自动协商和动态链路聚合,从而提供了高可用性、高性能和灵活性的网络解决方案。
通过与交换机之间的LACP协议进行协商,自动确定哪些slave接口应该用于聚合,无需手动配置。
根据网络状况和配置,动态地添加或删除slave接口到聚合组中,实现链路的动态调整。当某个slave接口出现故障时,LACP协议会自动将其从聚合组中移除,并将流量转移到其他正常的slave接口上,确保数据的连续传输。
外出流量的slave选举是基于传输hash策略(如源MAC地址 XOR 目标MAC地址)的,可以根据需要改变hash策略,以实现更加灵活的负载均衡。
6. mode=5表示适配器传输负载均衡,根据负载分配流量。但仅实现发送负载均衡,不实现接收负载均衡。
7. mode=6表示在5模式的基础上增加了接收负载均衡。
mode 1、5、6不需要交换机设置
mode 0、2、3、4需要交换机设置
缺省使用mode 0
3、配置bonding
查看UP的网卡口
[root@t71 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp61s0f2: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 08:94:ef:65:3a:9a brd ff:ff:ff:ff:ff:ff
3: enp61s0f3: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 08:94:ef:65:3a:9b brd ff:ff:ff:ff:ff:ff
4: enp175s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether e8:61:1f:13:71:44 brd ff:ff:ff:ff:ff:ff
5: enp175s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether e8:61:1f:13:71:44 brd ff:ff:ff:ff:ff:ff
6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether e8:61:1f:13:71:44 brd ff:ff:ff:ff:ff:ff
inet 192.168.4.71/22 brd 192.168.7.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::ea61:1fff:fe13:7144/64 scope link
valid_lft forever preferred_lft forever
[root@t71 ~]#
这是配置bonding完成之后的情况。
但是在配置之前,也可以看到enp175s0f0和enp175s0f1处于UP状态
修改vi /etc/sysconfig/network-scripts/ifcfg-enp175s0f0 文件
BOOTPROTO=none
DEVICE=enp175s0f0
ONBOOT=yes
MASTER=bond0
SLAVE=yes
修改vi /etc/sysconfig/network-scripts/ifcfg-enp175s0f1 文件
BOOTPROTO=none
DEVICE=enp175s0f1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
创建一个绑定网络口的配置文件
vi /etc/sysconfig/network-scripts/ifcfg-bond0
### 新增内容如下:
TYPE=Ethernet
BOOTPROTO=static
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.4.71
NETMASK=255.255.255.0
GATEWAY=192.168.4.1
配置绑定模型
vi /etc/modprobe.d/bonding.conf
###新增内容如下:
alias bond0 bonding
options bond0 miimon=100 mode=4
在系统启动时将虚拟网卡和两张物理网卡相绑定
vi /etc/rc.local
### 在末尾新增内容如下:
ifenslave bond0 enp175s0f0 enp175s0f1
加载bonding模块
# 加载bonding模块
modprobe bonding
将networkmanager服务关闭,并设置为开机不启动
# 关闭
service NetworkManager stop
# 禁止开机启动
chkconfig NetworkManager off
重启网卡
service network restart
# 或者
systemctl restart network
查看是否成功
# 查看所有 MII Statu 状态是否都为up。如 MII Status: up
cat /proc/net/bonding/bond0
# 查看bond0是否为up状态,并是否绑定ip地址
ip addr