当前位置: 首页 > web >正文

Linux网络:bond简介与配置

bond简介

Bond是Linux内核提供的一种网络驱动,它可以将多个网络接口聚合为一个逻辑接口,从而提高网络带宽、实现负载均衡和故障转移。

bond模式介绍

模式名称模式编号描述交换机支持要求常用性
Balance-RR(轮询模式)0数据包依次发送到所有网络接口上,实现负载均衡。需要配置静态链路聚合 mode on常用
Active-Backup(主备模式)1只有一个接口处于活动状态,其他作为备份,活动接口故障时自动切换。不需要交换机做配置,仅需要划分对应的vlan非常常用
Balance-XOR(平衡异或模式)2根据源MAC地址和目的MAC地址的异或值来选择发送数据的接口。需要配置静态链路聚合 mode on ,同时需要设置对应的balance较少使用
Broadcast(广播模式)3所有接口都发送相同的数据包,适用于广播或多播场景。需要配置静态链路聚合 mode on很少使用
802.3ad(LACP模式)4遵循LACP协议,通过LACP协商实现链路聚合。需要配置lacp动态链路聚合 mode active常用
Balance-TLB(自适应传输负载均衡模式)5根据每个接口的负载情况动态调整数据包发送。不需要较少使用
Balance-ALB(自适应负载均衡模式)6Bond5模式的扩展,同时实现发送和接收的负载均衡。不需要较少使用

常用的模式:

模式简介
Active-Backup(主备模式)因其简单和可靠性,通常用于需要高可用性的场景。
Balance-RR(轮询模式)因其简单实现负载均衡,适用于需要提高带宽的场景。
802.3ad(LACP模式)在需要遵循标准协议且交换机支持LACP的环境中广泛使用。

bond7种模式详细介绍

1. Mode 0 - Balance-RR(轮询模式)

模式编号:0

轮流发送数据包,实现负载均衡

不需要交换机支持

2. Mode 1 - Active-Backup(主备模式)

模式编号:1

提高网络可靠性

只有一个网络接口处于活动状态,其他接口作为备份

需要交换机支持链路聚合

3. Mode 2 - Balance-XOR(平衡异或模式)

模式编号:2

根据源目MAC地址进行负载均衡

需要交换机支持链路聚合

4. Mode 3 - Broadcast(广播模式)

模式编号:3

所有接口都发送相同的数据包

适用于需要广播或多播的应用场景

5. Mode 4 - 802.3ad(LACP模式)(常用)

模式编号:4

遵循LACP协议,实现链路聚合

需要交换机支持LACP

6. Mode 5 - Balance-TLB(自适应传输负载均衡模式)

模式编号:5
动态调整数据包发送,实现负载均衡
使用ARP协商来决定哪个接口用于发送数据包。
当需要发送数据包时,bonding驱动会检查哪个接口的负载最低,并将数据包发送到该接口。
如果目标主机发送了ARP回复,bonding驱动会记录这个接口用于将来的数据包发送。
不需要交换机支持

7. Mode 6 - Balance-ALB(自适应负载均衡模式)

模式编号:6
同时实现发送和接收负载均衡
对于发送(TX)负载均衡,Bond6使用类似于Bond5的方法,通过ARP协商来确定发送接口。
对于接收(RX)负载均衡,bonding驱动通过修改MAC地址哈希来分配接口,使得不同接口可以接收来自不同源的数据包。
Bond6还支持将多播和广播流量分散到不同的接口上。
不需要交换机支持

bond配置测试

1. 配置Mode 0 - Balance-RR(轮询模式)

背景:我这里使用ens36、ens37网卡进行实验。

1)、启动NetworkManager。

systemctl start NetworkManager

2)、创建bond。

1#创建bond网卡:[root@lsq ~]# nmcli connection add type bond ifname bond0 mode 0
Connection 'bond-bond0' (8a9f4d37-ce62-4016-aa23-ddb7c6fc5f27) successfully added.
[root@lsq network-scripts]#创建2张从卡:
[root@lsq ~]# nmcli connection add type bond-slave ifname ens36 master bond0
Connection 'bond-slave-ens33' (49e4db4f-a846-4919-85b9-daa27dac5a51) successfully
[root@lsq network-scripts]#[root@lsq ~]# nmcli connection add type bond-slave ifname ens37 master bond0
Connection 'bond-slave-ens36' (4a211e67-e219-42c3-8a75-bae9e2517a68) successfully added.
[root@lsq network-scripts]#

3)、查看bond。

#可以看到已经有了bond的配置文件
[root@lsq network-scripts]# ls -l /etc/sysconfig/network-scripts/
total 264
-rw-r--r--  1 root root   329 May  4 14:18 ifcfg-bond-bond0
-rw-r--r--  1 root root   125 May  4 14:19 ifcfg-bond-slave-ens36
-rw-r--r--  1 root root   125 May  4 14:19 ifcfg-bond-slave-ens37[root@lsq network-scripts]# cd /etc/sysconfig/network-scripts/
[root@lsq network-scripts]# cat ifcfg-bond-slave-ens36
TYPE=Ethernet
NAME=bond-slave-ens36
UUID=086d97c1-9668-4ab7-90b4-2d094bf65be1
DEVICE=ens36
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@lsq network-scripts]#

4)、修改bond配置文件:ifcfg-bond-bond0。

设置bond0
[root@lsq network-scripts]# cat ifcfg-bond-bond0
BONDING_OPTS=mode="balance-rr miimon=100"
#BONDING_OPTS="mode=0 miimon=100"  #这两种写法一致,选其一即可
TYPE=Bond
BONDING_MASTER=yes
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none  #修改1 
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=bond-bond0
UUID=7113370c-23b6-4a51-b094-5a127090c546
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.222.199  #修改2
NETMASK=255.255.255.0   #修改3
GATEWAY=192.168.0.2     #修改4
DNS1=192.168.0.2        #修改5,可以设置,可以不设置
[root@lsq network-scripts]#

5)、查看bond生效情况。

#重启网络
[root@lsq network-scripts]# service network restart
Restarting network (via systemctl):                        [  OK  ]
[root@lsq network-scripts]##查看bond是否生效
[root@lsq network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)Bonding Mode: load balancing (round-robin)  #生效
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:85:21:dc
Slave queue ID: 0Slave Interface: ens36
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:85:21:d2
Slave queue ID: 0
[root@lsq network-scripts]#
2. Mode 1 - Active-Backup(主备模式)

在上面配置的Mode 0 - Balance-RR(轮询模式)基础上直接操作。

1)、修改bond配置文件。

[root@lsq network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-bond-bond0
BONDING_OPTS=mode="active-backup miimon=100"   #修改的地方1
#BONDING_OPTS="mode=1 miimon=100" #与上面配置一样,选其一即可。
TYPE=Bond
BONDING_MASTER=yes
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=bond-bond0
UUID=7113370c-23b6-4a51-b094-5a127090c546
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.222.199
NETMASK=255.255.255.0
GATEWAY=192.168.0.2
[root@lsq network-scripts]#

2)、生效配置。

#重启网卡
[root@lsq network-scripts]# service network restart
Restarting network (via systemctl):                        [  OK  ]#查看配置是否生效
[root@lsq network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)Bonding Mode: fault-tolerance (active-backup)    #生效
Primary Slave: None
Currently Active Slave: ens37   #可以看到目前使用的ens37
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:85:21:dc
Slave queue ID: 0Slave Interface: ens36
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:85:21:d2
Slave queue ID: 0
[root@lsq network-scripts]#

3)、down掉ens37网卡。

[root@lsq network-scripts]# ifconfig ens37 down

4、查看已经切换到了ens36网卡,且ens37状态为down。

[root@lsq network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens36    #使用了ens36
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0Slave Interface: ens37
MII Status: down
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 00:0c:29:85:21:dc
Slave queue ID: 0Slave Interface: ens36
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:85:21:d2
Slave queue ID: 0
[root@lsq network-scripts]#

5、启用ens37,可以看到ens37为up状态。

[root@lsq network-scripts]# ifconfig ens37 up
[root@lsq network-scripts]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens36
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0Slave Interface: ens37
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 00:0c:29:85:21:dc
Slave queue ID: 0Slave Interface: ens36
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:85:21:d2
Slave queue ID: 0
[root@lsq network-scripts]#

以上就是关于bond的介绍。

http://www.xdnf.cn/news/3914.html

相关文章:

  • AVL树(2):
  • 0.1 数学错题---基础
  • 嵌入式按键原理、中断过程与中断程序设计(键盘扫描程序)
  • chrome 浏览器怎么不自动提示是否翻译网站
  • C++ STL简介:构建高效程序的基石
  • SwinTransformer 改进:与PSConv结合的创新设计
  • 管理配置信息和敏感信息
  • 前端开发,文件在镜像服务器上不存在问题:Downloading binary from...Cannot download...
  • 在JSP写入Text文件方法指南
  • 【IP101】边缘检测技术全解析:从Sobel到Canny的进阶之路
  • 2023年第十四届蓝桥杯省赛B组Java题解【 简洁易懂】
  • Spark,Idea中编写Spark程序 2
  • 题解:AT_abc245_e [ABC245E] Wrapping Chocolate
  • Go语言中的无锁数据结构与并发效率优化
  • Circular Plot系列(三):【视频教程】复现NCS图表之高大上的单细胞UMAP环形图
  • process terminated with status -1073741515
  • 永久免费的Google Colab 入门指南
  • C语言——寻找子串
  • 动态规划--回文串问题
  • 【深度学习-Day 5】Python 快速入门:深度学习的“瑞士军刀”实战指南
  • Vue常用优化
  • d3_v7绘制折线图
  • 启发式算法-遗传算法
  • C++ - 类和对象 #类的默认成员函数 #构造函数 #析构函数 #拷贝构造函数 #运算符重载函数 #赋值运算符重载函数
  • AI 入门:关键概念
  • 高等数学同步测试卷 同济7版 试卷部分 上 做题记录 第四章 不定积分同步测试卷 B卷
  • n8n 快速入门1:构建一个简单的工作流
  • 强化学习机器人模拟器——GridWorld:一个用于强化学习的 Python 环境
  • unorder_map/set的底层实现---C++
  • ESP32S3 多固件烧录方法、合并多个固件为单一固件方法