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

聚合链路与软件网桥的原理及配置方法

聚合链路与软件网桥的原理及配置方法

一、聚合链路(网络组队)

1. 基本概念
  • 聚合链路(网络组队)是通过逻辑方式将多个网络接口控制器(NIC,Network Interface Control)连接,实现故障转移或提升吞吐量的方法。
  • 优势:采用新的实施方式,性能更优;模块化设计使其可扩展性更强。
2. teamd 支持的聚合模式(teamd 是实现聚合链路的工具)
  • roundrobin(轮询模式):按轮询方式在所有端口传输数据包。
  • activebackup(主备模式):故障迁移机制,监控链接变化,仅通过活动端口传输数据。
  • loadbalance(负载均衡模式):监控流量,利用哈希函数选择传输端口,力求流量均衡。
  • broadcast(广播容错模式):设备通过所有端口传输数据包,实现容错。
3. 主备模式(activebackup)配置步骤

以两台服务器(server1、server2)为例:

server1 配置
  1. 创建组接口

    [root@hrz3 ~]# nmcli connection add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}'
    [root@hrz3 ~]# nmcli connection show 
    NAME    UUID                                  TYPE      DEVICE 
    ens33   c96bc909-188e-ec64-3a96-6a90982b08ad  ethernet  ens33    
    team0   43ba7d1c-2472-430c-80f0-8e767bcedad8  team      team0  
    
  2. 配置静态 IP

    [root@hrz3 ~]# nmcli connection modify team0 ipv4.addresses 192.168.200.30/24 ipv4.method manual connection.autoconnect yes 
    [root@hrz3 ~]# ip a
    ......................
    10: team0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 00:0c:29:b0:df:e8 brd ff:ff:ff:ff:ff:ffinet 192.168.200.30/24 brd 192.168.200.255 scope global noprefixroute team0
  3. 添加端口接口(将 ens36、ens37 加入 team0)

    [root@hrz3 ~]# nmcli connection add con-name ens36 ifname ens36 type team-slave master team0 
    [root@hrz3 ~]# nmcli connection add con-name ens37 ifname ens37 type team-slave master team0 
    [root@hrz3 ~]# nmcli connection show 
    NAME    UUID                                  TYPE      DEVICE 
    ens33   c96bc909-188e-ec64-3a96-6a90982b08ad  ethernet  ens33  
    ens36   c399a5f4-2cb3-45b9-8261-37269597c024  ethernet  ens36  
    ens37   143dddaa-7c5c-498e-8a65-18a1b0057180  ethernet  ens37  
    team0   43ba7d1c-2472-430c-80f0-8e767bcedad8  team      team0  
    virbr0  199846fc-481d-489c-af7b-12c9e664bd9c  bridge    virbr0 
    
  4. 激活组接口
    nmcli connection up team0

  5. 重启网卡服务(建议操作)
    systemctl restart network

  6. 查看组队状态
    teamdctl team0 state

    [root@hrz3 ~]# teamdctl team0 state
    setup:runner: activebackup
    ports:ens36link watches:link summary: upinstance[link_watch_0]:name: ethtoollink: updown count: 0ens37link watches:link summary: upinstance[link_watch_0]:name: ethtoollink: updown count: 0
    runner:active port: ens36
server2 配置
  • 步骤与 server1 一致,仅需将 team0 的 IP 修改为192.168.200.20/24
测试
  • 在 server1 上执行ping 192.168.0.2(server2 的 team0 接口 IP),若能 ping 通则配置成功。
[root@hrz3 ~]# ping 192.168.200.20
PING 192.168.200.20 (192.168.200.20) 56(84) bytes of data.
64 bytes from 192.168.200.20: icmp_seq=1 ttl=64 time=0.314 ms
64 bytes from 192.168.200.20: icmp_seq=2 ttl=64 time=0.321 ms

二、软件网桥

1. 基本概念
  • 网桥是链路层设备,基于 MAC 地址转发网络流量,通过学习主机 MAC 地址构建 MAC 地址表(转发表),并依据表中信息决策数据包转发端口。
  • Linux 环境中可通过软件网桥仿真硬件网桥,常见应用于虚拟化场景,用于在多个虚拟 NIC 间共享硬件 NIC。
2. 核心功能
  • MAC 学习:记录数据包来源 MAC 地址与对应端口,建立 “地址 - 端口” 对照表(转发表)。
  • 报文转发:提取数据包的目的 MAC 地址,从转发表中查找对应端口并转发数据。
3. 配置步骤
  1. 创建软件网桥

    [root@hrz2 ~]# nmcli connection add con-name bridge0 ifname bridge0  type bridge
    [root@hrz2 ~]# nmcli connection show 
    NAME     UUID                                  TYPE      DEVICE  
    ens33    c96bc909-188e-ec64-3a96-6a90982b08ad  ethernet  ens33   
    virbr0   f636e086-5953-48a8-b9c4-c033f9f54deb  bridge    virbr0  
    bridge0  a0353cad-39e3-4333-b9d7-b359fb8e5a9e  bridge    bridge0 
  2. 配置静态 IP(可选)

    [root@hrz2 ~]# nmcli connection modify bridge0 ipv4.addresses 192.168.200.20/24 ipv4.method manual connection.autoconnect yes
    [root@hrz2 ~]# ip a
    ..........
    8: bridge0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000link/ether 00:0c:29:08:b6:b1 brd ff:ff:ff:ff:ff:ffinet 192.168.200.20/24 brd 192.168.200.255 scope global noprefixroute bridge0valid_lft forever preferred_lft foreverinet6 fe80::5e7b:f11f:7aee:998f/64 scope link noprefixroute valid_lft forever preferred_lft forever
  3. 添加接口至网桥(将 ens37、ens40、ens41 等接口连接到 bridge0,注意避免重复命名)

    [root@hrz2 ~]# nmcli connection add con-name bridge0-ens36 ifname ens36 type bridge-slave master bridge0 
    [root@hrz2 ~]# nmcli connection add con-name bridge0-ens37 ifname ens37 type bridge-slave master bridge0 
    
  4. 激活网桥

    [root@hrz2 ~]# nmcli connection up bridge0
    
  5. 重启网卡服务(建议操作)

    [root@hrz2 ~]# systemctl restart network
    
4. 流量分担设置
  • 开启 IP 转发,使多个网卡分担流量:

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

网络测试

[root@hrz2 ~]# ping 192.168.200.30
PING 192.168.200.30 (192.168.200.30) 56(84) bytes of data.
64 bytes from 192.168.200.30: icmp_seq=1 ttl=64 time=0.302 ms
64 bytes from 192.168.200.30: icmp_seq=2 ttl=64 time=0.330 ms
64 bytes from 192.168.200.30: icmp_seq=3 ttl=64 time=0.431 ms
http://www.lryc.cn/news/626077.html

相关文章:

  • 【LeetCode 热题 100】279. 完全平方数——(解法一)记忆化搜索
  • JVM原生的assert关键字
  • 手写C++ string类实现详解
  • 使用redis读写锁实现抢券功能
  • 怎样平衡NLP技术发展中数据质量和隐私保护的关系?
  • JVM 面试精选 20 题(续)
  • JVM对象创建和内存分配
  • SpringAI接入openAI配置出现的问题全解析
  • 今日行情明日机会——20250819
  • Java开发面试实战:Spring Boot微服务与数据库优化案例分析
  • 星图云开发者平台新功能速递 | 微服务管理器:无缝整合异构服务,释放云原生开发潜能
  • 微服务如何集成swagger3
  • 微服务-08.微服务拆分-拆分商品服务
  • UE5 使用RVT制作地形材质融合
  • idea如何设置tab为4个空格
  • CSS backdrop-filter:给元素背景添加模糊与色调的高级滤镜
  • Day08 Go语言学习
  • Ansible 中的文件包含与导入机制
  • 常见 GC 收集器与适用场景:从吞吐量到亚毫秒停顿的全景指南
  • NestJS 依赖注入方式全解
  • TDengine IDMP 运维指南(3. 使用 Ansible 部署)
  • 【上升跟庄买入】副图/选股指标,动态黄色线由下向上穿越绿色基准线时,发出买入信号
  • day32-进程与线程(5)
  • Ubuntu 下面安装搜狗输入法debug记录
  • Ubuntu一键安装harbor脚本
  • WSL虚拟机(我的是ubuntu20.04)将系统文件转移到E盘
  • 机器学习之决策树:从原理到实战(附泰坦尼克号预测任务)
  • LINUX819 shell:for for,shift ,{} ,array[0] array[s] ,declare -x -a
  • 中科米堆CASAIM提供机加工件来料自动化测量尺寸方案
  • 中国互联网医院行业分析