Bond 网卡绑定技术学习

前言: 为了实现网卡的高可用性,需要学习一下 Bond技术

1. 概念

Bond(也被称为链路聚合、端口绑定或接口绑定)是一种网络技术,用于将多个物理网络接口(如以太网接口)组合成一个逻辑接口。这样做的目的是增加带宽、提高网络性能、实现负载均衡和冗余备份。

网卡绑定(Bonding)技术是一种在Linux网络架构中提高网络连接可靠性和带宽利用的手段,主要用于将两个或多个物理网卡(NICs)组合成一个逻辑接口,这样即使单个网卡出现故障,网络连接仍然能够保持

2. Bond技术 能解决什么问题

通过使用 Bond 技术,可以将多个网络接口绑定在一起,形成一个虚拟的逻辑接口。当数据包通过该逻辑接口传输时,它们会通过内部算法(如哈希函数)分发到每个物理接口上,实现负载均衡。这样可以充分利用每个物理接口的带宽,提高整体网络吞吐量。

另外,Bond 还提供了故障切换和冗余备份的功能。如果其中一个物理接口发生故障或不可用,数据包会自动切换到其他可用的接口上,确保网络的可靠性和连通性。

Bond 技术在服务器和网络设备中广泛应用,特别是在需要高带宽和可靠性的环境中,如数据中心、负载均衡器、集群服务器等。它可以提供更高的网络性能、冗余备份和容错能力,从而提高网络的可靠性和性能。

3. Bond模式介绍

  • mode=0(平衡负载模式):平时两块网卡均工作,且自动备援,但需要在与服务器本地网卡相连的交换机设备上进行端口聚合来支持绑定技术。
  • mode=1(自动备援模式):平时只有一块网卡工作,在它故障后自动替换为另外的网卡。
  • mode=2(balance-xor)(平衡策略) : 表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy,需要交换机配置port channel)
  • mode=3(broadcast)(广播策略): 表示所有包从所有网络接口发出,这个不均衡,只有冗余机制,但过于浪费资源。此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。需要和交换机的聚合强制不协
    商方式配合。
  • mode=4(802.3ad)(IEEE 802.3ad 动态链接聚合):表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy)。标准要求所有设备在聚合操作时,要在同样的速率和双工模式,而且,和除了balance-rr模式外的其它bonding
    负载均衡模式一样,任何连接都不能使用多于一个接口的带宽。
  • mode=5(balance-tlb)(适配器传输负载均衡): 是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave。该模式要求slave接口的网络设备驱动有某种ethtool支持;而且ARP监控不可用。
  • mode=6(balance-alb)(适配器适应性负载均衡):在5的tlb基础上增加了rlb(接收负载均衡receive load balance).不需要任何switch(交换机)的
    支持。接收负载均衡是通过ARP协商实现的.

4. Bond模式配置实验

mode 1 模式进行实验;
实验思路: 创建一个虚拟的网卡Bond0配置为Master指定mode级别并配置地址,将两张真正的物理卡配置为Slave不用配置地址

使用Centos7完成本次实验,在实验前,先禁用NetworkManager服务,并禁止selinux

systemctl disable NetworkManager --now
setenforce  0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

4.1. 查看物理网卡

[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:57:ff:c5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.92.128/24 brd 192.168.92.255 scope global noprefixroute dynamic ens33
       valid_lft 5444412sec preferred_lft 5444412sec
    inet6 fe80::199:d74c:2c3c:1cd/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:57:ff:cf brd ff:ff:ff:ff:ff:ff
    inet 192.168.92.129/24 brd 192.168.92.255 scope global noprefixroute dynamic ens36
       valid_lft 5444413sec preferred_lft 5444413sec
    inet6 fe80::3150:9b3d:2ff5:dc9a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

4.2. 创建Bond网卡,Bond模式为1

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=Ethernet 
BOOTPROTO=none 
ONBOOT=yes 
USERCTL=no 
DEVICE=bond0 
IPADDR=192.168.92.100 
PREFIX=24 
GATEWAY=192.168.92.2
DNS1=192.168.92.2
NM_CONTROLLED=no
BONDING_OPTS='mode=1 miimon=100 fail_over_mac=1'

fail_over_mac=1 : 默认fail_over_mac=0,当发生错误时,只改slave的mac不改bond;fail_over_mac=1时,只改bond不改slave

4.3. 将物理网卡配置slave模式,master为 bond0

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet 
BOOTPROTO=none 
ONBOOT=yes 
USERCTL=no 
DEVICE=ens33
MASTER=bond0 
SLAVE=yes
[root@localhost ~]# cat  /etc/sysconfig/network-scripts/ifcfg-ens36
TYPE=Ethernet 
BOOTPROTO=none 
ONBOOT=yes 
USERCTL=no 
DEVICE=ens36 
MASTER=bond0 
SLAVE=yes

4.4. 重启网络

[root@localhost ~]# systemctl restart network

在这里插入图片描述

4.5 故障测试

长ping百度,将一块网卡down掉,查看效果

[root@localhost ~]# ip link set ens33 down

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

今日份动态规划学习

主要只搞了一个这道题&#xff0c;有点摸鱼了今天晚上&#xff0c;也是来小看一下这道题吧01背包完全背包 P1941 [NOIP2014 提高组] 飞扬的小鸟 题意&#xff1a; 这题是说&#xff0c;给我们一个游戏界面&#xff0c;界面的长度为n&#xff08;水平距离&#xff09;&#x…

E: Unable to locate package ros-kinetic-usb-cam

mkdir -p USB/src && cd USB/src catkin_init_workspace git clone https://github.com/bosch-ros-pkg/usb_cam.git cd .. catkin_make source devel/setup.bash echo "source ~/USB/devel/setup.bash" >> ~/.bashrc source ~/.bashrc 编译过程报错&…

Wireshark抓包日常运维实用过滤

0x0 Wireshark 介绍 Wireshark 是一款功能强大的网络分析工具&#xff0c;适用于网络专业人员。它提供了出色的过滤器&#xff0c;您可以轻松放大到您认为可能存在问题的位置。过滤器的主要好处是消除定位流量&#xff0c;并缩小要查找的数据类型。 0x1 根据源 IP 地址过滤主…

Golang | Leetcode Golang题解之第134题加油站

题目&#xff1a; 题解&#xff1a; func canCompleteCircuit(gas []int, cost []int) int {for i, n : 0, len(gas); i < n; {sumOfGas, sumOfCost, cnt : 0, 0, 0for cnt < n {j : (i cnt) % nsumOfGas gas[j]sumOfCost cost[j]if sumOfCost > sumOfGas {break}…

四川古力未来科技抖音小店开创电商新纪元,前景广阔值得期待!

在数字化浪潮汹涌的当下&#xff0c;电商行业正以前所未有的速度蓬勃发展。四川古力未来科技抖音小店&#xff0c;作为这一领域的佼佼者&#xff0c;凭借其独特的经营理念和创新的营销策略&#xff0c;正在开创电商行业的新纪元。本文将深入探讨四川古力未来科技抖音小店的前景…

25 - 销售分析III(高频 SQL 50 题基础版)

25 - 销售分析III -- where 是分组之前筛选数据 -- having 是分组之后筛选数据selectp.product_id,p.product_name fromSales s left join Product p on s.product_idp.product_id group byproduct_id havingmin(sale_date) >"2019-01-01" and max(sale_date)&…

京东商品采集以及应用场景||电商API接口

京东商品采集的步骤和应用场景可以归纳如下&#xff1a; 一、采集步骤 注册账号&#xff1a;首先&#xff0c;需要在京东开放平台注册一个开发者账号。创建应用&#xff1a;登录开放平台后&#xff0c;创建一个应用以获取API密钥和应用凭据。获取权限&#xff1a;根据所需的服…

Java学习【深入探索包装类和泛型】

Java学习【深入探索包装类和泛型】 &#x1f680;包装类获取包装类对象的方式使用valueOf()创建直接赋值 Integer成员方法 &#x1f680;泛型引出泛型泛型类泛型方法泛型接口泛型的继承和通配符泛型的上界 在Java的学习中&#xff0c;包装类和泛型是两个重要的概念&#xff0c;…

JVM基础知识

一、JVM的内存区域划分 一个进程在运行的时候,会向操作系统申请到内存资源,从来存放程序运行的相关数据。 JVM本质上就是一个java进程,在运行的时候也会从操作系统那搞一块内存&#xff0c;供Java代码执行使用。 JVM又把申请的一块内存根据不同的用途划分出了不同区域。 每一…

数据库——多表查询概述

与单表查询不同&#xff0c;多表查询是从多张表中查找数据。例如&#xff1a; select * from user,course; 得到一张有36条数据的表&#xff0c;这是因为12条数据的user表与3条数据的course表进行了笛卡尔积运算&#xff0c;但是在多表查询中&#xff0c;往往需要消除笛卡尔积带…

MySQL 与 PostgreSQL 在 SQL 方面的关键对比二(功能篇)

目录 1 详细示例 1.1自动增量列 1.2 字符串连接 1.3 JSON 支持 2 总结 MySQL 和 PostgreSQL 是两种流行的开源关系数据库管理系统&#xff08;RDBMS&#xff09;。尽管它们在许多方面相似&#xff0c;但在 SQL 语法和功能上存在一些显著差异。 以下SQL语句的执行如果需要开…

YoloV8改进策略:Block篇|MobileNetV4——移动生态系统的通用模型

文章目录 摘要1、引言2、相关工作3、硬件无关的帕累托效率4、通用反向瓶颈5、Mobile MQA6、MNv4模型设计6.1、精炼NAS以增强架构6.2、MNv4模型的优化 7、结果7.1、ImageNet分类 8、增强蒸馏方案9、结论10、致谢A、搜索空间细节B、基准测试方法论C、ImageNet-1k分类任务的训练设…

springboot启动报端口被占用,修改端口还是报被占用,如何处理?

第一种方式&#xff1a; 通过cmd查看是否有程序占用端口 netstat -ano| findstr 端口号 杀死进程 taskkill -f -pid 进程号 如果未看到有程序占用该端口说明不是这个原因 第二种方式&#xff1a; 打开任务管理器 查看是否进程占用对应端口&#xff0c;有就关闭进程 第三种…

视觉SLAM十四讲:从理论到实践(Chapter8:视觉里程计2)

前言 学习笔记&#xff0c;仅供学习&#xff0c;不做商用&#xff0c;如有侵权&#xff0c;联系我删除即可 一、目标 1.理解光流法跟踪特征点的原理。 2.理解直接法是如何估计相机位姿的。 3.实现多层直接法的计算。 特征点法存在缺陷&#xff1a; 二、光流(Optical Flow) …

nodeJS社区新冠人群管理与老人疫苗小程序-计算机毕业设计源码65190

目 录 摘要 1 绪论 1.1背景及意义 1.2国内外研究慨况 1.3B/S体系工作原理 1.4node.js主要功能 2 1.5论文结构与章节安排 3 2 社区新冠人群管理与老人疫苗小程序分析 4 2.1 可行性分析 4 2.2 系统流程分析 4 2.2.1数据增加流程 5 2.3.2数据修改流程 5 2.3.3数据删除流程 5…

【会议征稿,IEEE出版】第六届电子与通信,网络与计算机技术国际学术会议(ECNCT 2024,7月19-21)

第六届电子与通信&#xff0c;网络与计算机技术国际学术会议 &#xff08;ECNCT 2024&#xff09;将于 2024年7月19日-21日 在 中国广州 举办&#xff0c; 为期三天。 会议由广东工业大学自动化学院主办&#xff0c;会议将安排主旨报告&#xff0c;口头报告以及海报展示&#…

人类语言处理nlp部分笔记——二、BERT和它的家族-介绍和微调

参考自李宏毅课程-人类语言处理 二、BERT和它的家族-介绍和微调 1. What is pre-train model 这里所说的pre-train model是输入一串tokens&#xff0c;能够输出一串vectors&#xff0c;且每个vector可以表示对应的语义的模型&#xff0c;这些vectors也被称作为embeddings。以…

假设检验学习笔记

1. 假设检验的基本概念 1.1. 原假设&#xff08;零假设&#xff09; 对总体的分布所作的假设用表示&#xff0c;并称为原假设或零假设 在总体分布类型已知的情况下&#xff0c;仅仅涉及总体分布中未知参数的统计假设&#xff0c;称为参数假设 在总体分布类型未知的情况下&#…

抱抱脸上第一的开原模型Qwen2-72B;腾讯开源人像照片生成视频的模型;Facebook开源翻译模型;智谱 AI 推出的最新一代预训练模型

✨ 1: Qwen2 Qwen2 是一种多语言预训练和指令调优的语言模型&#xff0c;支持128K上下文长度并在多项基准测试中表现优异。 Qwen2&#xff08;全称“Qwen Qwen”&#xff0c;简称Qwen&#xff09;是一个先进的大语言模型家族&#xff0c;在其前身Qwen1.5的基础上进行了重大提…

安卓手机平板使用JuiceSSH无公网IP远程连接本地服务器详细流程

文章目录 前言1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 前言 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? 本文就和大家分享一下如何使用 cpolarJuiceSSH 实现手机端远程连接Linux…