Linux服务器多网卡绑定Bond和配置VLAN网络接口

2023-12-14 22:28

本文主要是介绍Linux服务器多网卡绑定Bond和配置VLAN网络接口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、网卡绑定

网卡绑定,也被称作网卡捆绑。就是将两个或多个物理网卡绑定成一个虚拟网卡

网卡绑定的作用:以提供负载均衡或者冗余,增加带宽的作用。当一个网卡坏掉时,服务器的网络不会中断

二、Bond技术

1、bond简介

Bond技术即bonding,是Linux Kernel的一个模块,能够将多块物理网卡绑定到一块虚拟网卡上,并通过修改网口驱动让多块网卡看起来是一个单独的以太网接口设备,对外只提供一个IP,主要用于解决网卡单点故障或网卡负载较高的场景。

2、Bond技术原理

Bond技术需要物理网卡开启混杂模式才能正常工作。在混杂模式下,网卡不只接收目的MAC地址为自身的以太网帧,而是接收网络上所有的数据帧。为了实现多块网卡的协同工作,Bond将自己的MAC地址复制到各个物理网卡上,让所有的网卡共享同一个MAC地址。这个方式就要求所有的网卡都要支持BIOS,这样才能够让操作系统将MAC地址写到网卡上

对于单物理网卡的Bond网卡来说,Bond网卡的MAC地址和物理网卡的物理地址是一致的。而对于多物理网卡的Bond网卡而言,其中一块物理网卡会被设置为 Master,其他的网卡则都是Slave,Bond网卡的MAC地址取自标志为Master的物理网卡,然后再将这个MAC地址复制到其他物理网卡上。所以在安装网卡时,我们需要指定Bond网卡,以及Bond网卡所对应的标志为Master的物理网卡。

3、网卡Bond模式

网卡绑定mode共有七种(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6

常用的有三种

mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。

mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。

mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定

(1)模式0

此模式使用轮询策略,既顺序的在每一个bond的网卡上发送数据包,这种模式提供负载均衡和容错能力。Bond0可以保证bond虚拟网卡和被bond的两张和多张物理网卡拥有相同的MAC地址。其中bond虚拟网卡的MAC地址是其中一张物理网络的MAC地址,而bond虚拟网卡的MAC地址是根据bond自己实现的一个算法来选择的。

在bond0模式下,如果一个连接或者会话的数据包从不同的网口发出,途中再经过不同的链路,则在客户端很有可能会出现数据包无序到达的现象,而无序到达的数据包一般需要重新发送,这样网络的吞吐量就会下降。另外,如果做bond0的两张或多张网卡接到了同一交换机上,还需对交换机配置聚合模式。

(2)模式1

此模式使用主备策略,在所有做bond1的物理网卡中,同一时刻只有一张网卡被激活,当且仅当活动网卡失效时才会激活其他的网卡。这种模式下做bond的两张或多张网卡的MAC地址和Bond虚拟网卡的MAC地址相同,而Bond的MAC地址是Bond创建启动后活动网卡的MAC地址。

这种模式要求主被网卡能快速的切换,即当主网卡出现故障后能迅速地切换至备用网卡。切换过程中,上层的应用几乎不受影响,因为Bond的驱动程序会临时接管上层应用的数据包,存放至数据缓冲区,等待备用网卡启动后再发送出去。但是如果切换时间过长,则会引起缓冲区的溢出,导致丢包。

(3)模式2

此模式的默认选择策略是:选择网卡的序号=(源MAC地址 XOR目标MAC地址)%Slave网卡(从网卡)的数量。其他的传输策略可以通过xmit_hash_policy配置项指定

(4)模式3

模式3使用广播策略,数据包会被广播至所有Slave网卡进行传送。

(5)模式4

模式4使用动态链接聚合策略,启动时会创建一个聚合组,所有Slave网卡共享同样的速率和双工设定,需要交换机支持IEEE 802.3ad动态链路聚合模式。支持使用ethtool工具获取每个slave网卡的速率和双工设定

(6)模式5

模式5基于每个slave网卡的速率选择传输网卡,支持使用ethtool工具获取每个slave网卡的速率。

(7)模式6

模式6包含了bond5模式,同时还支持对IPV4流量接收时的负载均衡策略,而且不需要任何交换机的支持,支持只是用ethtool获取每个Slave的速率,要求底层驱动支持设置某个网卡设备的硬件地址。

介绍完这7种模式之后,我们简单对这7种模式的优缺点进行简单的对比,具体的内容请参考以下图1所示。

4. linux服务器多网卡绑定,服务器网卡绑定

网卡配置步骤及具体命令:

#ubuntu系统
apt install -y fenslave  #### 服务器网卡bond配置
dpkg -l | grep fenslave
modprobe bonding  #加载绑定内核
lsmod | grep bonding  #检查
echo "bonding"  >>/etc/modules   # 添加bonding模块开机启动
cat /etc/network/interfaces  #配置服务器网卡

这篇关于Linux服务器多网卡绑定Bond和配置VLAN网络接口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/494110

相关文章

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H