当前位置: 首页 > 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.xdnf.cn/news/1304623.html

相关文章:

  • XXL-TOOL v2.0.0 发布 | Java工具类库
  • AI创业公司分析:Paloma
  • 自定义数据集(pytorchhuggingface)
  • SaltStack 基础
  • 【机器人-基础知识】ROS常见功能架构
  • 考研复习-计算机组成原理-第七章-IO
  • OpenCV---morphologyEx形态学操作
  • Jenkins+Python自动化持续集成详细教程
  • 【JavaEE】多线程 -- 死锁问题
  • Unity输入系统:旧版Input_System
  • 链路聚合与软件网桥配置
  • Mac(一)常用的快捷键整理
  • JavaScript(JS)DOM(四)
  • 【数据分享】2022 年黑龙江省小麦、玉米和水稻幼苗影像数据集
  • Python基础(Flask①)
  • 基于机器学习的赌博网站识别系统设计与实现
  • 数据结构——顺序表单链表oj详解
  • 8.15 机器学习(2)K最近邻算法
  • k8s注意事项
  • Nginx反向代理Tomcat实战指南
  • 8月4日实训考察:重庆五一职院走进成都国际影像产业园
  • PCA降维 提升模型训练效率
  • 【科研绘图系列】R语言绘制多种饼图
  • nVidia Tesla P40使用anaconda本地重编译pytorch3d成功加载ComfyUI-3D-Pack
  • 前端动画库之gsap
  • 深入解析五大通信协议:TCP、UDP、HTTP_HTTPS、WebSocket与GRPC
  • Al大模型-本地私有化部署大模型-大模型微调
  • 腾讯位置商业授权微信小程序逆地址解析(坐标位置描述)
  • day29-进程和线程(2)
  • C语言:指针(5)