Web服务器群集:链路聚合与桥接

news2024/12/22 19:44:01

目录

一、理论

1.链路聚合

2.bond模式

3.team模式

4.bond和team区别

二、实验

1.实现bond网络接口

2.实现team网络接口

三、总结


一、理论

1.链路聚合

(1)概念

链路聚合(Link Aggregation),它是一个计算机网络术语,指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端口负荷分担策略决定网络封包从哪个成员端口发送到对端的交换机。当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口。链路聚合在增加链路带宽、实现链路传输弹性和工程冗余等方面是一项很重要的技术。

(2)原理

 多个物理的端口绑定在一起当成一个逻辑端口来使用,提高带宽,实现负载平衡或高可用的功能
(3)应用场景: 网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏时,其余网卡仍工作,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度,其余网卡作为替补,防患于未然.

(3)配置模式
网卡的链路聚合常用的有 bond 和 team 两种模式,bond模式最多可以添加两块网卡,team模式最多可以添加八块网卡。

2.bond模式

(1)概念

将2块网卡虚拟成为一块网卡,使其具有相同的ip地址,来实现提升主机的网络吞吐量或者是提高可用性,这种技术被称作bonding。

(2)聚合方式:

表1 bond聚合方式

服务器网卡绑定模式交换机对接方式说明
mod=0(balance-rr) Round-robin policy(轮询)配置手工模式链路聚合路聚合与之对接。服务器所绑定的网卡被修改成相同的MAC地址,需要交换机通过手工模式链路聚合与之对接。
mod=1(active-backup) Active-backup policy(主-备份策略)配置对接接口在同一个VLAN服务器采用双网卡时, 一个处于主状态, 一个处于从状态,所有数据都通过主状态的端口传输。当主状态端口对应链路出现故障时,数据通过从状态端口传输。因此交换机对应的两个端口建议配置在同一个VLAN。
mod=2(balance-xor) XOR policy(平衡策略)配置手工模式链路聚合服务器的多网卡基于指定的HASH策略传输数据包,需要交换机配置手工模式链路聚合与之对接。
mod=3broadcast(广播策略)采用两台交换机对接且配置在不同VLAN服务器的多网卡对于同一份报文会复制两份分别从两个端口传输,建议使用式链路聚合与之对接。
mod=4(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 动态链接聚合)配置LACP链路聚合服务器的多网卡采用L ACP模式绑定,对应交换机应采用L ACP模式的链路聚合与之对接。
mod=5(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡)采用两台交换机对接服务器的多网卡采用适配器传输负载均衡,交换机上不需进行配置。
mod=6(balance-alb) Adaptive load balancing(适配器适应性负载均衡)采用两台交换机对接服务器的多网卡采用适配器适应性负载均衡,交换机上不需要进行配置。

(3) 内核加载bond模块并查看

  

3.team模式

(1)概念

链路聚合的一种方式,最多支持8块网卡,相比 bond 更加稳定可靠。

(2)聚合方式:

表2 team聚合方式

种类名称
broadcast广播容错 
round-robin平衡轮叫
active-backup主备
load-balance负载均衡

4.bond和team区别

 bond只能是双网卡绑定,team不需要手动加载相应内核模块和有更强的拓展性,最高可以绑定8块网卡。

 其他参数区别:

表3 bond和team对比

聚合方式bond模式team模式
broadcast TX policyYesYes
round-robin TX policyYesYes
active-backup TX policyYesYes
LACP (802.3ad) supportYesYes
hash-based TX policyYesYes
TX load-balancing support (TLB)YesYes
VLAN supportYesYes
LACP hash port selectYesYes
Ethtool link monitoringYesYes
ARP link monitoringYesYes
ports up/down delaysYesYes
configurable via Network Manager (gui, tui, and cli)YesYes
multiple device stackingYesYes
highly customizable hash function setupNoYes
D-Bus interfaceNoYes
ØMQ interfaceNoYes
port priorities and stickiness (“primary” option enhancement)NoYes
separate per-port link monitoring setupNoYes
logic in user-spaceNoYes
modular designNoYes
NS/NA (IPV6) link monitoringNoYes
load-balancing for LACP supportNoYes
lockless TX/RX pathNoYes
user-space runtime controlLimitedFull
multiple link monitoring setupLimitedYes
extensibilityHardEasy
performance overheadLowVery Low
RX load-balancing support (ALB)YesPlanned
RX load-balancing support (ALB) in bridge or OVSNoPlanned

5.桥接

(1)概念

桥接是虚拟网卡,默认主机是没有网桥的(内核不开放的),虚拟机内核和系统和真机的内核和系统是相互独立的。
真机上网是通过内核调用网卡与外界进行联系的,而虚拟机的网卡是虚拟化的,不能直接上网。所以在真机的内核上面开一个网络桥接的口,将虚拟机的内核和真机的网卡连接在一起,从而虚拟机可以通过真机的网卡上网。
即在网卡上开一个接口,而该接口绑定一个IP,同一网段的虚拟机直接通过此接口绑定的IP与外界通信,相当于在虚拟机和真机上面架了一个桥,不需要受内核路由的控制,直接可以与外界通信
NAT和网桥的对比 :

表4 NAT和网桥对比

序号对比
1相对于NAT,网桥不需要地址伪装,也不需要路由转发,也不需要配置网关,就可以与外界通信(配置的繁琐性)
2网桥是工作在数据链路层(不需要IP,通过MAC通信),而NAT是在网络层(需要IP),所以前者的速度比后者快


 

二、实验

1.实现bond网络接口

(1)添加网卡

 (2)ifconfig查看网卡

NAME=bond1
TYPE=bond
DEVICE=bond1
BOOTPROTO=none
IPADDR=192.168.204.150
NETMASK=255.255.255.0
GATEWAY=192.168.204.2
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"

 (3)创建bond设备文件

切换目录创建文件

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vim  ifcfg-bond1

配置文件

NAME="bond1"
TYPE="bond"
DEVICE="bond1"
BOOTPROTO="static"
NM_CONTROLLED="no"
ONBOOT="yes"
IPADDR=192.168.204.150
NETMASK=255.255.255.0
GATEWAY=192.168.204.2
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"

(4)进入主网卡ens33配置主bond

[root@localhost network-scripts]# vim ifcfg-ens33
BOOTPROTO="static"
TYPE=Ethernet
NAME="ens33"
DEVICE="ens33"
ONBOOT="no"
MASTER="bond1"
SLAVE="yes"

(5)进入备网卡ens36配置从属bond

[root@localhost network-scripts]# vim ifcfg-ens36
NAME="ens36"
TYPE=Ethernet
DEVICE="bond1"
BOOTPROTO="none"
MASTER=bond1
SLAVE="yes"
ONBOOT="no"

(6)重启网卡使用另一台主机进行ping操作,在本主机使用ifdown  ens33关闭ens33网卡

    

结果:ping过程中关闭ens33网卡依然能ping通

(7)使用ifup ens33开启ens33网卡,然后使用另一台主机进行ping操作,在本主机使用ifdown ens36关闭ens36网卡

  

 结果:ping过程中关闭ens36网卡依然能ping通

(8)使用ifup ens36开启ens36网卡,然后使用另一台主机进行ping操作,在本主机分别关闭ens33网卡、ens36网卡。

结果:2个网卡都关闭后ping的主机会卡顿然后报错未发现此地址

(9)分别开启ens33、ens36网卡。然后使用cat /proc/net/bonding/bond1查看bond1信息,此bond1名称为配置文件中配置的bond名称

cat /proc/net/bonding/bond1

2.实现team网络接口

(1)备份

[root@localhost network-scripts]# mv /etc/sysconfig/network-scripts/ifcfg-ens* /etc/sysconfig/network-scripts/backup

(2)查看设备状态

nmcli device status

  

(3)重启网络

systemctl restart network

(4)创建链路聚合,模式为 loadbalance

nmcli connection add type team con-name team0 ifname team0 config '{"runner":{"name":"loadbalance"}}'	

  

(5) 查看网卡状态 

nmcli connection show

(6)开启team0-1与team0-2  

(7)添加team0 网卡配置

  

(8)开启team0

  

(9)查看生成了三个有关team模式的配置文件,主接口和两个子接口配置 ifcfg-team0 ifcfg-team0-1 ifcfg-team0-2 ...

  

(10)查看team0链路状态

  

(11)查看当前工作网卡

如果是主备模式可以查看是当前工作的网卡

  

关闭备设备并查看

  

启动备设备并查看

  

三、总结

Linux配置链路聚合的两种方式 ,网卡的链路聚合一般常用的有"bond"和"team"两种模式,"bond"模式最多可以添加两块网卡,"team"模式最多可以添加八块网卡。

在网卡绑定选项上可以根据操作系统来选择,team模式是 CentOS7 加上的,如果是 CentOS7及以上系统可选用team模式绑定,支持更多拓展性以及更节省资源。另外如果是要做桥接网络的话,目前测试只能使用bond模式,team模式无法桥接。

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

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

相关文章

【Vue】Vite基础学习

文章目录 Vite 基础学习一、单页面应用程序二、Vite 基本使用2.1 创建 vite 项目2.2 项目结构2.3 项目运行流程 Vite 基础学习 一、单页面应用程序 单页面应用程序(英文名:Single Page Application)简称 SPA,顾名思义&#xff0c…

springboot:定时任务

目录 一、实现定时任务的方法一:基于JDK 方法一:使用JDK自带的Timer类 法二:使用ScheduleExecutorsService类 二、基于Spring Task实现定时任务(推荐使用) 三、基于Quartz实现定时调度 四、使用分布式定时任务框架:elastic-j…

基础-进阶-升级~图解SpringSecurity的RememberMe流程|源码

前言 今天我们来聊一下登陆页面中“记住我”这个看似简单实则复杂的小功能。 如图就是博客园登陆时的“记住我”选项,在实际开发登陆接口以前,我一直认为这个“记住我”就是把我的用户名和密码保存到浏览器的 cookie 中,当下次登陆时浏览器…

关于Synchronized的小结

目录 一.特性 1.既是乐观锁又是悲观锁 2.是轻量级锁,也是重量级锁 3.不是读写锁,是互斥锁 4.是可重入锁 5.非公平锁 6.加锁之后,运行完毕自动解锁释放资源 二:Synchronized使用 第一种:定义一个额外的变量来控制加锁和解锁(类似于吉祥物) 第一种:直接给类/方法上锁 三…

【Linux】MySQL备份与恢复

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 MySQL备份与恢复 一、数据备份的重要性1.数据库备份的分类2.常见的备份方法3.MySQL完全备份与分类 二、MySQL 日志管理三、MySQL 备份与恢复1.MySQL 完全备份1.物理冷备份与恢…

Linux 服务器以及各个系统下安装

Linux 服务器 Linux是操作系统: Linux作为自由软件和开放源代码软件发展中最著名的例子,背靠社区与商业化的使用,使其得到了广泛的应用与发展。 Linux无处不在: 世界上500个最快的超级计算机90%以上运行Linux发行版…

【MyBatis学习】动态SQL的使用,MyBatis还能这样使用?惊掉了我的下巴 ,赶快带着好奇心一起畅游动态SQL的海洋吧! ! !

前言: 大家好,我是良辰丫,今天我们来学习一下MyBatis中动态sql的使用,带着疑惑走进我们今天的学习! ! !💌💌💌 🧑个人主页:良辰针不戳 📖所属专栏:javaEE进阶篇之框架学习 🍎励志语句…

短视频矩阵源码开发部署技术解析

短视频矩阵源码开发涉及到多个方面的技术,包括但不限于以下几点: 抖yinAPI:需要通过API获取抖音的视频、用户、评论、点赞等数据。 抖yinSDK:如果需要开发一些原生的功能,比如分享、登录、支付等,需要使用…

深入解析大型语言模型:从训练到部署大模型

简介 随着数据科学领域的深入发展,大型语言模型—这种能够处理和生成复杂自然语言的精密人工智能系统—逐渐引发了更大的关注。 LLMs是自然语言处理(NLP)中最令人瞩目的突破之一。这些模型有潜力彻底改变从客服到科学研究等各种行业&#x…

【每天40分钟,我们一起用50天刷完 (剑指Offer)】第四天 4/50

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

Jenkins集成Sonar与Gitlab代码质量检测

前提默认 安装docker19,与docker-compose 安装Jenkins 1、docker-compose.yaml配置 version: 3 services: jenkins: #network_mode: "host" #镜像 image: jenkins/jenkins:2.399-jdk11 #容器名称 container_name: jenkins #启动模式 res…

探索uniapp+vue3解析markdown语法|uniapp键盘撑起

最近正在尝试使用uniappvue3开发仿制chatgpt会话功能。 如上图:经过测试在h5/App端/小程序端 均支持markdown语法解析,键盘撑起后,整体页面和顶部自定义导航栏不会被顶起。 uniapp markdown解析及语法高亮 使用了markdown-it和highlight.js…

深入理解深度学习——BERT(Bidirectional Encoder Representations from Transform):输入表示

分类目录:《深入理解深度学习》总目录 BERT在预训练阶段使用了《深入理解深度学习——BERT(Bidirectional Encoder Representations from Transform):MLM(Masked Language Model)》和《深入理解深度学习——…

C++——函数重载

目录 1. 函数重载的概念 2. 函数重载注意点 3. C可以函数重载的原因 4. 总结 1. 函数重载的概念 函数重载:是函数的一种特殊情况。C语言不支持函数重载,而C允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 …

【软件设计师暴击考点】软件工程知识高频考点【一】

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:软件…

基于Springboot+vue的汽车租赁系统设计与实现

博主介绍: 大家好,我是一名在Java圈混迹十余年的程序员,精通Java编程语言,同时也熟练掌握微信小程序、Python和Android等技术,能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

阿里云服务器的可用区和地域选择有哪些考虑因素?如何优化性能?

阿里云服务器的可用区和地域选择有哪些考虑因素?如何优化性能?   选择阿里云服务器时,可用区和地域选择是一个非常关键的环节。本文将为您详细解析在这个过程中需要考虑的因素以及如何优化性能。 一、阿里云服务器的可用区和地域选择的考虑…

PHP基础知识解析:探索PHP编程的核心概念和技巧

目录 PHP简介 什么是PHP 网站基本概念 网站 静态网站特点 动态网站特点 服务器概念 IP 域名 DNS 端口 PHP基础知识 PHP语法 PHP注释 PHP语句分隔符 变量 变量基本概念 变量的使用 命名的命名规则: 预定义变量: 可变变量 变量传值 …

【Linux操作系统】共享内存

文章目录 什么是共享内存?共享内存的原理共享内存的知识点构建创建共享内存的前提-key值共享内存的创建ipcs命令共享内存的释放共享内存的关联与解除代码演示共享内存的大小共享内存的特点 什么是共享内存?共享内存的原理 共享内存让不同进程看到同一份…

C++ --引用与函高级

引用 定义:给变量起别名。 语法:数据类型&别名原名。 int a10; int &ba; //(此时的a和b都指向了同一块空间,都可对里面的元素进行修改) 对这两个变量名字任意一个进行修改,两变量的结果都会发生变化 引用注意事项 1.引…