当前位置: 首页 > news >正文

25.Linux 聚合链路与软件网桥

Linux 聚合链路与软件网桥

聚合链路(Team)

概念
将多个物理网卡(NIC)逻辑绑定为一个接口,实现:

  • 故障转移(高可用)
  • 更高吞吐量(负载均衡)

特点

  • 模块化设计,性能更优
  • 扩展性强

NIC:Network Interface Controller(网络接口控制器)

不同聚合模式下的 MAC 地址行为

1. 主备模式 (activebackup)
  • 对外 MAC
    聚合接口(如 bond0team0使用主网卡(Active Port)的 MAC 地址
  • 故障切换时
    当主网卡故障,备网卡接管时会 沿用原聚合接口的 MAC 地址(用户无感知)。
  • 优势
    外部设备(如交换机)的 ARP 表无需更新,网络连续性最佳。
2. 负载均衡模式 (loadbalance, balance-xor, 802.3ad)
  • 对外 MAC
    聚合接口使用 虚拟 MAC 地址(通常为首个成员网卡的 MAC)。
  • 内部转发
    • 出向流量:源 MAC 始终为聚合接口的虚拟 MAC(无论从哪个物理口发出)。
    • 入向流量:目的 MAC 匹配聚合接口的虚拟 MAC,由内核分发到各成员网卡。
  • 流量分配逻辑
    通过哈希函数计算 {源MAC + 目的MAC} 的组合值,决定使用哪个物理端口。
3. 广播模式 (broadcast)
  • 所有成员网卡 保持原始 MAC 地址
  • 相同数据包从所有物理口发出(源 MAC 各不相同)。
4. 轮询模式 (roundrobin)
  • 行为类似负载均衡模式:
    聚合接口使用虚拟 MAC,物理网卡发送时 改写源 MAC 为聚合接口的 MAC。

配置聚合链路(网络组队)

开始前添加两个网卡(网络适配器)

1.创建组接口

[root@xieyuhui2 ~]# nmcli connection add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}'

2.给组接口配置ip

[root@xieyuhui2 ~]# nmcli connection modify team0 ipv4.addresses 192.168.200.10/24 ipv4.method manual connection.autoconnect yes

3.将ens36,ens37接口加入到team0中

[root@xieyuhui2 ~]# nmcli connection add con-name team0-ens36 ifname ens36 type team-slave master team0 
[root@xieyuhui2 ~]# nmcli connection add con-name team0-ens37 ifname ens37 type team-slave master team0

4.激活组接口

[root@xieyuhui2 ~]# nmcli connection up team0

在这里插入图片描述

查看详细信息

在这里插入图片描述

能够看到ens36 ,ens37和team0的mac地址是一样的

查看team0的详细信息

[root@xieyuhui2 ~]# teamdctl team0 state

在这里插入图片描述

激活的端口为ens36

我们断开ens36

[root@xieyuhui2 ~]# nmcli connection down team0-ens36

在这里插入图片描述

能够看到ens36与ens37和team0的mac地址不相同,而这时激活的是ens37的端口,因此知道聚合链路是哪个端口先加入到组中,则使用那个端口及其mac地址,而断开端口后,新的端口激活,所以mac地址也改变,成员网卡(如 ens36,ens37)在加入聚合链路后,其 MAC 地址被聚合接口覆盖
从聚合链路移除后,成员网卡自动恢复原始 MAC。

如果其中一个网卡出现故障,另外一个依旧能使用

软件网桥

Linux 软件网桥(Software Bridge)是工作在数据链路层(L2)的虚拟交换机,通过内核模块实现 MAC 地址学习、数据包转发和网络隔离,是虚拟化、容器网络和复杂网络架构的核心组件。


核心功能
功能说明
MAC 地址学习动态构建转发表,记录 MAC 地址与端口的映射关系
二层转发基于 FDB 表精确转发单播流量,减少广播风暴
广播/泛洪对未知目标 MAC 或广播包,向所有端口转发(除源端口)
网络隔离不同网桥形成独立广播域,隔离流量(类似物理交换机 VLAN)
协议支持支持 STP(防环)、VLAN 标记、IGMP Snooping(优化组播)

配置软件网桥

创建软件网桥

[root@xieyuhui3 ~]# nmcli connection add con-name bridge0 ifname bridge0 type bridge 

给软件网桥添加ip

[root@xieyuhui3 ~]# nmcli connection modify bridge0 ipv4.addresses 192.168.200.30/24 ipv4.method manual connection.autoconnect yes

将ens36,37接口连接至软件网桥bridge0

[root@xieyuhui3 ~]# nmcli connection add con-name bridge0-ens36 ifname ens36 type bridge-slave master bridge0 
[root@xieyuhui3 ~]# nmcli connection add con-name bridge0-ens37 ifname ens37 type bridge-slave master bridge0 

激活软件网桥bridge0

[root@xieyuhui3 ~]# nmcli connection up bridge0

在这里插入图片描述

开启网络转发功能能够进行测试

[root@xieyuhui3 ~]# vim /etc/sysctl.conf net.ipv4.ip_forward =1
[root@xieyuhui3 ~]# sysctl -p
net.ipv4.ip_forward = 1

查看网络详细信息

[root@xieyuhui3 ~]# ip a

在这里插入图片描述

能够看到软件网桥的ip地址ens36相同,再看软件网桥的详细情况

在这里插入图片描述

发现选用mac地址是根据stp(生成树协议)来决定的,软件网桥会根据添加端口的mac地址大小来决定自己的mac地址,越小优先级越高

http://www.dtcms.com/a/332437.html

相关文章:

  • 【中微半导体】BAT32G139GK48FA 定时器B输入捕获测速(寄存器TBSR/TBIER/TB/TBGRA/TBGRC)
  • Struts文件泄露漏洞分析与修复方案
  • 企业级Spring事务管理:从单体应用到微服务分布式事务完整方案
  • Baumer高防护相机如何通过YoloV8深度学习模型实现驾驶员疲劳的检测识别(C#代码UI界面版)
  • MySQL 主键详解:作用与使用方法
  • 搭建前端开发环境 安装nvm nodejs pnpm 配置环境变量
  • MySQL、PolarDB、PolarDB-X、TableStore、MongoDB、TiDB、ClickHouse选型
  • 融合开源AI智能名片与链动2+1模式的微商新零售转型研究——基于S2B2C商城小程序的实践探索
  • 戴永红×数图:重构零售空间价值,让陈列创造效益!
  • HTML5新增属性
  • 鸿蒙任务调度机制深度解析:优先级、时间片、多核与分布式的流畅秘密
  • 什么是国产化防爆平板?有哪些功能特点?应用在什么场景?
  • 【iOS】多线程原理
  • AI生成内容版权争议:当算法创作撞上法律边界
  • Python入门第2课:变量、数据类型与输入输出
  • Java Maven更换国内源
  • 企业网盘、NAS、移动硬盘、同步盘都是什么意思?
  • 个人博客系统测试文档
  • Python复杂元素排序:从基础到高阶
  • 以太网转换器实现:S7-300通过MPI转以太网连接多类工业设备
  • Java锁机制深度解析:从synchronized到StampedLock
  • Linux网络基础(一)
  • 嵌入式开发学习———Linux环境下网络编程学习(二)
  • 开始回溯的学习
  • OpenSCA开源社区每日安全漏洞及投毒情报资讯|14th Aug. , 2025
  • hex文件结构速查
  • Flutter 以模块化方案 适配 HarmonyOS 的实现方法
  • 3分钟解锁网页“硬盘“能力:离线运行VSCode的新一代Web存储技术
  • 二叉树(1):二叉树的前、中、后和层次遍历
  • 《R for Data Science (2e)》免费中文翻译 (第4章) --- Workflow: code style