CentOS 7配置Bonding网卡绑定

正文共:1666 字 16 图,预估阅读时间:2 分钟

在网络中,日常为了提高可靠性,一般会配置链路聚合(Link Aggregation) ,同样的,在服务器上也有**网卡绑定(bonding)**的技术,将两个或多个物理网卡通过bonding技术绑定在一起,从而创建一个虚拟的、逻辑上的网络接口,实现网络接口的聚合。

做了网卡绑定之后,就可以提高网络冗余,实现高可用,如果其中一个网卡发生故障,服务能够无缝切换到其他正常工作的网卡上,确保网络连接不间断;结合不同的工作模式,还可以实现负载分担或增加网络带宽的效果,优化资源利用的同时,提高网络容量。

那Linux服务器该如何配置**网卡绑定(Bonding)**呢?我们以CentOS 7.9.2009来演示一下。

首先为服务器配置2个以上的网卡,比如就用图中的ens224和ens256来进行演示。

然后我们使用以下命令在系统中加载bonding模块。

nginx 复制代码
modprobe bonding

可以看到,配置之后,系统中出现了一个bond0网卡,说明bonding模块加载成功。

如果想使配置一直生效,则需要在Linux系统中创建一个配置文件,使系统在启动时自动加载bonding模块。

javascript 复制代码
echo "bonding" > /etc/modules-load.d/bonding.conf

在正式开始配置之前,我们先简单测试一下网络性能。

以142为服务端、141为客户端,使用iperf2进行测试,最大瞬时带宽为29.2 Gbps,综合带宽为27.6 Gbps。

将服务端和客户端对调一下。

同样使用iperf2进行测试,测得最大瞬时带宽为28.9 Gbps,综合带宽为28.4 Gbps,相差不大。

因为我们现在的操作基本都是通过直接编辑网络脚本进行静态配置**(** CentOS7多网卡配置(最小化安装),为避免影响,我们将NetworkManager服务关闭并禁用。

properties 复制代码
systemctl stop NetworkManager
systemctl disable NetworkManager

然后我们进入到网卡配置文件路径/etc/sysconfig/network-scripts/目录下,可以看到,现在只有ens192和ens224的配置文件,其中ens224的配置文件也是我们手工创建的。

对应的,我们现在还缺少网卡ens256和bond0的配置文件。现在,我们首先修改ens224的配置文件,相比于正常的配置,我们需要移除IP地址相关配置,并添加网卡绑定的配置。

其中,MASTER=bond0表示该物理网卡是作为bonding主设备(bond0)的一个从属接口,将被加入到聚合网络接口bond0中,并按照bonding设定的模式参与工作;SLAVE=yes与前一配置相对应,表示该网卡是一个从属设备,作为一个slave加入到一个bonding组中,在系统启动时会自动将此网卡与对应的master(bond0)进行绑定。

然后我们将ens224的配置文件复制一份并做简单调整,即可得到ens256的配置文件。

现在,网卡ens224和ens256都已经被配置为bond0聚合接口的一部分,然后我们就可以配置bond0聚合接口了。在Linux bonding驱动中,主要通过TYPE=Bonding来指定接口为聚合接口,通过BONDING_OPTS来指定网卡绑定的工作模式,共有7种不同的工作模式,通过指定mode参数的值来进行确定。

1、mode=0:轮询均衡策略(Round Robin Policy,balance-rr),通过轮询的方式将数据包均匀分配到所有slave接口上,提供负载均衡但不保证连续的数据包会走同一条链路。

2、mode=1:主备模式(active-backup),只有一张网卡处于活动状态,另一张作为备份。当活动网卡出现故障时,备份网卡立即接管网络连接。

3、mode=2:XOR哈希策略(balance-xor),根据源MAC地址和目标MAC地址的XOR运算结果进行哈希,然后选择相应的接口发送数据包,可以实现负载均衡。

4、mode=3:广播模式(broadcast),所有的流量都会同时通过所有slave接口发送,主要用于某些需要复制数据流的特殊应用环境。

5、mode=4:IEEE 802.3ad协议(802.3ad,Link Aggregation Control Protocol,LACP),根据LACP协议与交换机协商形成聚合链路,支持动态链路聚合,通常用于带宽增加并提供高可用性。

6、mode=5:传输层感知负载均衡(Transmit Load Balancing,balance-tlb),不需要任何特定配置的交换机,但只能在从服务器向客户端单向发送数据时进行负载均衡。

7、mode=6:带接收负载均衡的传输层感知负载均衡(Adaptive Load Balancing,balance-alb),这是TLB模式的一个增强版,在TLB的基础上增加了基于ARP响应的接收负载均衡功能。

所以,我们在和交换机对接时,一般需要配置为mode=4,而我们现在是主机之间的互联,则可以使用mode=0进行轮询负载。新建一份bond0的配置文件ifcfg-bond0,写入以下内容:

ini 复制代码
TYPE="Bonding"
BOOTPROTO="none"
DEFROUTE="no"
IPV4_FAILURE_FATAL="no"
NAME="bond0"
DEVICE="bond0"
ONBOOT="yes"
BONDING_OPTS="mode=0 miimon=100"
IPADDR="11.1.1.141"
PREFIX="24"

BONDING_OPTS中还有一项配置,miimon是链路监测间隔,miimon=100表示每100毫秒检查一次链路状态。

最后,重启网络服务来使变更生效。

nginx 复制代码
systemctl restart network

同理,我们完成142主机的配置。

测试一下业务联通性。

小测一下转发性能。

应该是虚拟化的原因,转发性能不升反降,从27.6 Gbps降到了24.3 Gbps。将服务端和客户端对调一下。

结果为23.4 Gbps,差别不大。

然后我们打1分钟,中间断开其中一条链路,看看业务会不会断。

因为虚拟化的原因,我先断开的141的ens224接口,此时142感知不到状态变化,所以传输接近中断;在断开142的ens224接口之后,此时流量负载到ens256接口,传输恢复,所以链路备份还是有效果的。

结论,虚拟化环境可以配置bonding接口绑定,可以展示链路备份的效果,但是无法体现传输性能的提升。

长按二维码

关注我们吧


<>

PVE8.0-2安装使用快速指导
<> <>

借PVE8.0的Debian 12系统配置一下NFS服务器
<> <>

不想用了PVE了怎么办?那就迁移到VMware呗!
<> <>

准备搞OpenStack了,先装一台最新的Ubuntu 23.10
<> <>

如何在Ubuntu 23.10部署KVM并创建虚拟机?
<> <>

Ubuntu部署OpenStack踩坑指南:还要看系统版本?
<> <>

在线文档频繁故障不稳定,其实可以自己搭一个Etherpad在线文档
<> <>

如何手工获取并更新ESXi中macOS的VMware Tools版本
<> <>

如何在最新版的HCL 5.10.0中导入NFV镜像?
<> <>

手撸一个自动搭建openVPN服务器的SHELL脚本
<> <>

ESXi的超线程状态为"已禁用",是谁动了我的服务器?
<> <>

添加E1000网卡进行测试,只有VMXNET3性能的四分之一
<> <>

TensorFlow识别GPU难道就这么难吗?还是我的GPU有问题?
<> <>

同一个问题,Gemini、ChatGPT、Copilot、通义千问和文心一言会怎么答?
<>

相关推荐
小鹿( ﹡ˆoˆ﹡ )1 小时前
探索IP协议的神秘面纱:Python中的网络通信
python·tcp/ip·php
韩楚风2 小时前
【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化
linux·服务器·性能优化·架构·gnu
陈苏同学2 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
Ambition_LAO2 小时前
解决:进入 WSL(Windows Subsystem for Linux)以及将 PyCharm 2024 连接到 WSL
linux·pycharm
Pythonliu72 小时前
茴香豆 + Qwen-7B-Chat-Int8
linux·运维·服务器
你疯了抱抱我2 小时前
【RockyLinux 9.4】安装 NVIDIA 驱动,改变分辨率,避坑版本。(CentOS 系列也能用)
linux·运维·centos
追风赶月、2 小时前
【Linux】进程地址空间(初步了解)
linux
栎栎学编程2 小时前
Linux中环境变量
linux
XKSYA(小巢校长)2 小时前
NatGo我的世界联机篇
开发语言·php
我是哈哈hh2 小时前
专题十_穷举vs暴搜vs深搜vs回溯vs剪枝_二叉树的深度优先搜索_算法专题详细总结
服务器·数据结构·c++·算法·机器学习·深度优先·剪枝