Linux虚拟化网络之链路聚合

news2024/9/21 12:24:13

一、bond链路聚合技术

网卡bond是通过多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡,在生产场景中是一种常用的技术。

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

常用的有三种:

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

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

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

说明:

需要说明的是如果想做成mode 0的负载均衡,仅仅设置这里optionsbond0 miimon=100 mode=0是不够的,与网卡相连的交换机必须做特殊配置(这两个端口应该采取聚合方式),因为做bonding的这两块网卡是使用同一个MAC地址。

从原理分析一下(bond运行在mode0下):

mode 0下bond所绑定的网卡的IP都被修改成相同的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多 个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。所以 mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为 ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址.我们的解 决办法是,两个网卡接入不同的交换机即可。

mode6模式下无需配置交换机,因为做bonding的这两块网卡是使用不同的MAC地址。

七种bond模式说明:

第一种模式:mod=0 ,即:(balance-rr) Round-robin policy(平衡抡循环策略)

特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。

第二种模式:mod=1,即: (active-backup) Active-backup policy(主-备份策略)

特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。

第三种模式:mod=2,即:(balance-xor) XOR policy(平衡策略)

特点:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址)% slave数量。其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能力。

第四种模式:mod=3,即:broadcast(广播策略)

特点:在每个slave接口上传输每个数据包,此模式提供了容错能力

第五种模式:mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE802.3ad 动态链接聚合)

特点:创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。需要注意的 是,并不是所有的传输策略都是802.3ad适应的,尤其考虑到在802.3ad标准43.2.4章节提及的包乱序问题。不同的实现可能会有不同的适应性。

必要条件:

条件1:ethtool支持获取每个slave的速率和双工设定。

条件2:switch(交换机)支持IEEE802.3ad Dynamic link aggregation。

条件3:大多数switch(交换机)需要经过特定配置才能支持802.3ad模式。

第六种模式:mod=5,即:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡)

特点:不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。

该模式的必要条件:ethtool支持获取每个slave的速率。

第七种模式:mod=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡)

特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receiveload balance, rlb),而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。

来自服务器端的接收流量也会被均衡。当本机发送ARP请求时,bonding驱动把对端的IP信息从ARP包中复制并保存下来。当ARP应答从对端到达时,bonding驱动把它的硬件地址提取出来,并发起一个ARP应答给bond中的某个slave。使用ARP协商进行负载均衡的一个问题是:每次广播 ARP请求时都会使用bond的硬件地址,因此对端学习到这个硬件地址后,接收流量将会全部流向当前的slave。

这个问题可以通过给所有的对端发送更新(ARP应答)来解决,应答中包含他们独一无二的硬件地址,从而导致流量重新分布。当新的slave加入到bond中时,或者某个未激活的slave重新 激活时,接收流量也要重新分布。接收的负载被顺序地分布(roundrobin)在bond中最高速的slave上当某个链路被重新接上,或者一个新的slave加入到bond中,接收流量在所有当前激活的slave中全部重新分配,通过使用指定的MAC地址给每个 client发起ARP应答。下面介绍的updelay参数必须被设置为某个大于等于switch(交换机)转发延时的值,从而保证发往对端的ARP应答 不会被switch(交换机)阻截。

必要条件:

条件1:ethtool支持获取每个slave的速率;

条件2:底层驱动支持设置某个设备的硬件地址,从而使得总是有个slave(curr_active_slave)使用bond的硬件地址,同时保证每个 bond 中的slave都有一个唯一的硬件地址。

如果curr_active_slave出故障,它的硬件地址将会被新选出来的 curr_active_slave接管。

其实mod=6与mod=0的区别:mod=6先把eth0流量占满,再占eth1,….ethX;而mod=0的话,会发现2个口的流量都很稳定,基本一样的带宽。而mod=6,会发现第一个口流量很高,第2个口只占了小部分流量。

二、链路聚合案例

通过网口绑定(bond)技术,可以很容易实现网口冗余,负载均衡,从而达到高可用高可靠的目的。

网络拓扑如下:

要求将eth1和eth2两个网卡进行绑定。

 

bond配置: 

多了一个bond0的网卡配置文件,操作这一个虚拟网卡,相当于操作两个物理网卡。

把物理网卡加入到bond0虚拟网卡中:

设置bond0的IPV4地址:

bond0拉起来后, master起来后自然会把两个slave物理网卡带起来。

查看bond网卡绑定状态:

配置交换机的SVI接口:

CentOS访问1.1.1.10:

 

 active Slave是 ens4,模拟接口故障,切换主备。

 

active Slave是 ens5。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/64482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JNI技术解析

一、JNI是什么? JNI是Java Native Interface的缩写,译为Java本地调用。JNI是一种技术。 二、JNI技术的用途? Java程序中的函数调用Native程序中的函数。Native一般指使用C/C++编写的函数。Native程序中的函数调用Java程序中的函数。三、注册JNI函数 静态注册Java层函数通过…

window和linux的nacos安装

Nacos注册中心 Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高 Nacos的下载 在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: …

【计算机视觉】图像预处理

图像预处理 线性滤波与卷积 线性滤波 线性滤波使用的加权模式通常称为滤波的核,使用滤波的过程称为卷积。 卷积 对称性高斯模型 处理模糊问题的较好模型是对称性高斯模型 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4QyrgiTg-16…

19-29-k8s-基本命令-yaml-kubectl

19-k8s-基本命令-yaml-kubectl: Kubernetes 集群的命令行工具kubectl 1、kubectl 命令格式: kubectl [command] [type] [name] [flags] 参数: command:指定要对资源执行的操作,例如create、get、describe、delete t…

ARM异常处理(2):中断的输入和挂起的6种情况分析

本节将描述中断输入和挂起的分析,这也同样适用于NMI输入,NMI在大多数情况下都将立即执行,除非:已经在执行NMI中断处理程序、由调试器暂停或由于一些严重的系统错误导致芯片锁定。 1、 当一个中断输入时,它将被挂起&…

Process.Start() 报错:系统找不到指定文件

今天在工作中遇到调用浏览器打开页面,代码报错:System.ComponentModel.Win32Exception:“系统找不到指定的文件。” 代码如下: ProcessStartInfo info new ProcessStartInfo("chrome.exe");// 打开一个新的chrome独立窗体启动info…

TI DSP的中断

F28069的中断数是96个,分为12组 The PIE block can support 96 individual interrupts that are grouped into blocks of eight.Each group is fed into one of 12 core interrupt lines (INT1 to INT12) 比如常用的的CPU0定时器这个中断就是在第一组的第7个&#x…

Java项目:SSM新闻网站管理系统

作者主页:源码空间站2022 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 管理员角色包含以下功能: 管理员登录,新闻管理,类别管理,用户管理,管理员管理,广告管理等功能。 用户角色包含以下功能:…

水溶性,非反应性,含有游离羧酸功能----cy染料 近红外荧光亲水CY7 COOH;Sulfo-CY5/CY7 COOH

近红外荧光亲水染料Sulfo-Cyanine7 carboxylic acid Sulfo-Cyanine7 carboxylic acid;SSulfo-Cyanine7 COOH;Sulfo-CY7 COOH;磺酸基-Cy7羧酸;磺化Cy7羧酸 产品名称:磺酸基-Cy3 羧酸 英文名称:Sulfo-Cyanine7 carboxylic acid 其他名称&#…

数据趣事:豪掷2200亿美元举办的世界杯有多精彩!世界杯趣事你知道哪些

2022卡塔尔世界杯正如火如荼的进行着,此次的卡塔尔世界杯也是中东和阿拉伯地区首次举办,为此卡塔尔更是豪掷2200亿美元,远超历届主办国。 本届世界杯共有32支来自不同国家的队伍,他们都有一个共同的奋斗目标——捧起大力神杯&…

[附源码]计算机毕业设计通用病例管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java网上私厨到家服务平台dp28s

做毕业设计一定要选好题目。毕设想简单,其实很简单。这里给几点建议: 1:首先,学会收集整理,年年专业都一样,岁岁毕业人不同。很多人在做毕业设计的时候,都犯了一个错误,那就是不借鉴…

消息队列的持久化、分发策略、高可用和高可靠

原文:消息队列 一、什么是消息的持久化? 简单来说就是将数据存入磁盘,而不是存在内存中随服务器重启断开而消失,使数据能够永久保存。 常见的持久化方式 二、消息队列的分发策略 MQ消息队列有如下几个角色 1:生产…

CNCC技术论坛|分布式数据库HTAP的探索与实践

本文转载自微信公众号“中国计算机学会” 编者按 12月8-10日,中国计算机协会即将全线上举办CNCC2022,大会覆盖118个计算行业、人工智能、云计算、教育、安全等30个热门专业领域的技术论坛,700余位专家将着力探讨计算技术与未来宏观发展趋势&a…

多通道LMMSE图像超分辨复原方法研究-附Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、多通道LMMSE复原算法✳️ 三、实验验证✳️ 四、参考文献✳️ 五、Matlab程序获取与验证✳️ 一、引言 数字图像处理又称为计算机图像处理,是指运用计算机处理平台及相关理论知识,将图像信号转化为数字信号&#…

G120变频器输入输出端子功能定义配置方法及示例

G120变频器输入输出端子功能定义配置方法及示例 1. 数字量输入功能(适用机型:CU240B-2(DP)/CU240E-2(DP/PN)/CU250S-2(DP/PN)) CU240B-2提供4路数字量输入,CU240E-2提供6路数字量输入,CU250S-2提供11路数字量输入和4路可作为输入/输出的数字量端子。在有必要时,也可以将模…

Splunk UBA 导入IDS - firesight 数据

1: 先看一下Splunk IDS 文档: Splunk UBA category to Splunk CIM field mapping reference - Splunk Documentation 里面清楚的记录着哪些是必须字段: 2: 下面开始配这些字段SPL: 发现就是报如下的错: 3: 最后把tag 的字段增加:attack_ids 就可以了,真是奇怪: index…

leecode#查找重复的电子邮箱#从不订购的客户#颠倒二进制数#位1的个数

题目描述: 编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。 分析: 所有电子邮箱都是小写字母 重复的电子邮箱存在多次。要计算每封电子邮件的存在次数,我们可以使用以下代码 代码: select Email from (s…

操作系统内存分配(隔离,分段和分页)

内存分配问题 进程的总体目标是希望每个进程从逻辑上来看都可以独占计算机的资源。操作系统的多任务功能使得CPU能够在多个进程之间很好地共享,从进程的角度看好像是它独占了CPU而不用考虑与其他进程分享CPU的事情。操作系统的I/O抽象模型也很好地实现了IO设备的共…

【增长的本质】-

关于作者 塞萨尔伊达尔戈,出生在智利,现在是美国麻省理工学院媒体实验室宏观联系研究团队的主管。他是一位著名的跨界物理学家,最擅长的就是利用物理概念来分析和解释经济、文化领域的大问题。他还长期致力于研究促进经济增长和繁荣的因素&a…