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

网络聚合链路与软件网桥配置指南

网络聚合链路与软件网桥配置指南

在这里插入图片描述

一、聚合链路(Team)

网络组队(聚合链路)是一种将多个网络接口控制器(NIC,Network Interface Controller)以逻辑方式组合在一起的技术,通过这种方式可以实现故障转移或提升网络吞吐量。相比传统方式,组队具有更好的性能和可扩展性,其模块化设计也使其更易于扩展。

二、teamd支持的聚合模式

teamd是实现聚合链路的工具,支持以下几种常见模式:

  • roundrobin(轮询模式):以轮询方式在所有端口传输数据包,均衡利用各接口带宽。
  • activebackup(主备模式):属于故障迁移模式,会监控链路状态变化,仅选择活动端口进行数据传输,当主端口故障时自动切换到备用端口。
  • loadbalance(负载均衡模式):通过监控网络流量,使用哈希函数选择传输端口,以实现流量的均衡分配。
  • broadcast(广播模式):具备容错能力,设备会通过所有端口广播传输数据包。

三、聚合链路配置(以activebackup主备模式为例)

Server1配置步骤:

#添加网卡后需要网络连接的配置文件

[root@zhangyiwei3 ~]# nmcli connection show
NAME        UUID                                  TYPE      DEVICE 
ens33       c96bc909-188e-ec64-3a96-6a90982b08ad  ethernet  ens33  
virbr0      4ab2a230-02bf-4d02-9ede-a083c3085a3e  bridge    virbr0 
有线连接 1  3fd45fe7-dfb5-328a-a8d9-edc356ee0574  ethernet  ens36  
有线连接 2  44d47fa4-02f8-300c-9c96-870f2bd0fdc5  ethernet  ens37  
[root@zhangyiwei3 ~]# nmcli connection delete  "有线连接 1"
成功删除连接 '有线连接 1'(3fd45fe7-dfb5-328a-a8d9-edc356ee0574)。
[root@zhangyiwei3 ~]# nmcli connection delete  "有线连接 2"
成功删除连接 '有线连接 2'(44d47fa4-02f8-300c-9c96-870f2bd0fdc5)。
  1. 创建组接口

    [root@zhangyiwei3 ~]# nmcli connection add con-name team0 ifname team0 type team config '{"runner": {"name": "activebackup"}}'
    连接“team0”(e01bbbf9-1ac1-40be-93dc-8781f18e2923) 已成功添加。
    
    • con-name team0:指定连接名称为team0
    • ifname team0:指定接口名称为team0
  • type team:设置连接类型为team
    • config:指定聚合模式为activebackup
  1. 为组接口配置静态IP
    [root@zhangyiwei3 ~]# nmcli connection modify team0 ipv4.addresses 192.168.200.30/24 ipv4.method manual connection.autoconnect yes
    • ipv4.addresses:设置IP地址为192.168.0.1/24
    • ipv4.method manual:启用手动配置IP
  • connection.autoconnect yes:设置开机自动连接
  1. 添加端口接口到组接口
    将ens36、ens37网络接口加入team0组:

    [root@zhangyiwei3 ~]# nmcli connection add con-name team0-ens36 ifname ens36 type team-slave master team0
    连接“team0-ens36”(fc0093bb-763b-4bd4-8234-ef2cedf9c278) 已成功添加。
    [root@zhangyiwei3 ~]# nmcli connection add con-name team0-ens37 ifname ens37 type team-slave master team0
    连接“team0-ens37”(034e9e55-6137-4401-ad08-fcee00d5eb13) 已成功添加。
    
   - `type team-slave`:指定为组接口的从设备  - `master team0`:指定所属的主组接口为team0  4. **激活组接口**  ```bash[root@zhangyiwei3 ~]# nmcli connection up team0Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/47)
  1. 重启网络服务(建议)

    [root@zhangyiwei3 ~]# systemctl restart network
    
  2. 查看组队状态

    [root@zhangyiwei3 ~]# 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

    该命令可显示team0的当前状态,包括活动端口、备用端口等信息。

Server2配置步骤:

配置步骤与Server1相同,仅需将team0的IP地址修改为192.168.0.2/24:

[root@zhangyiwei-2 ~]# nmcli connection modify team0 ipv4.addresses 192.168.200.20/24 ipv4.method manual connection.autoconnect yes

测试连通性

在Server1上ping Server2的team0接口IP,验证是否连通:

[root@zhangyiwei3 ~]# 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.521 ms
64 bytes from 192.168.200.20: icmp_seq=2 ttl=64 time=0.326 ms
64 bytes from 192.168.200.20: icmp_seq=3 ttl=64 time=0.453 ms
64 bytes from 192.168.200.20: icmp_seq=4 ttl=64 time=0.362 ms
^C
--- 192.168.200.20 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.326/0.415/0.521/0.079 ms
[root@zhangyiwei3 ~]# xxxxxxxxxx [root@zhangyiwei3 ~]# ping 192.168.200.20PING 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.521 ms64 bytes from 192.168.200.20: icmp_seq=2 ttl=64 time=0.326 ms64 bytes from 192.168.200.20: icmp_seq=3 ttl=64 time=0.453 ms64 bytes from 192.168.200.20: icmp_seq=4 ttl=64 time=0.362 ms^C--- 192.168.200.20 ping statistics ---4 packets transmitted, 4 received, 0% packet loss, time 2999msrtt min/avg/max/mdev = 0.326/0.415/0.521/0.079 ms[root@zhangyiwei3 ~]# ping 192.168.0.2bash

四、软件网桥

网桥是工作在链路层的设备,通过MAC地址在网络中转发流量。它会学习主机的MAC地址并构建MAC地址表(转发表),然后根据表中信息决定数据包的转发端口。在Linux环境中,可通过软件网桥仿真硬件网桥,其最常见的应用是在虚拟化场景中,用于让多个虚拟NIC共享一个物理NIC。

软件网桥功能:

  • MAC学习:通过监听接收和发送的数据包,记录每个MAC地址对应的接入端口,逐步构建地址-端口对照表(转发表)。
  • 报文转发:当收到数据包时,提取目的MAC地址,查询转发表以确定转发端口,然后将数据包从对应端口发送出去。

软件网桥配置步骤:

  1. 创建软件网桥

    [root@zhangyiwei-2 ~]# nmcli connection add con-name bridge0 ifname bridge0 type bridge
    连接“bridge0”(f3badf92-da37-4069-9a0e-74a8e4494a88) 已成功添加。
    
    • con-name bridge0:连接名称为bridge0
  • ifname bridge0:接口名称为bridge0
    • type bridge:连接类型为网桥
  1. 配置网桥静态IP(可选)

    nmcli connection modify bridge0 ipv4.addresses 192.168.200.1/24 ipv4.method manual connection.autoconnect yes
    
  2. 添加网络接口到网桥
    将ens38、ens39 接口连接至bridge0:

    [root@zhangyiwei3 ~]# nmcli connection add con-name bridge0-ens38 ifname ens38 type bridge-slave master bridge0
    连接“bridge0-ens38”(747a1837-21e8-4e68-bf32-8a0ce9db49ee) 已成功添加。
    [root@zhangyiwei3 ~]# nmcli connection add con-name bridge0-ens39 ifname ens39 type bridge-slave master bridge0 
    连接“bridge0-ens39”(f6a36769-995f-4e13-a131-f8e22b160f73) 已成功添加。
    
   - `type bridge-slave`:指定为网桥的从设备  - `master bridge0`:指定所属网桥为bridge0  4. **激活网桥**  ```bash[root@zhangyiwei3 ~]# nmcli connection up bridge0Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/15)
  1. 重启网络服务(建议)

    [root@zhangyiwei3 ~]# systemctl restart network
    
  2. 启用IP转发(如需实现路由功能)
    编辑/etc/sysctl.conf文件,添加IP转发配置:
    vim /etc/sysctl.conf

    加入以下内容:

[root@zhangyiwei3 ~]# vim /etc/sysctl.conf

加入以下内容:
net.ipv4.ip_forward = 1

使配置生效:  
```bash
[root@zhangyiwei3 ~]# sysctl -p

测试

可通过brctl show命令查看网桥状态,或通过ping命令测试网桥连接的设备之间的连通性。

在server2 ping 软件网桥的IP地址:

[root@zhangyiwei-2 ~]# ping 192.168.200.1
PING 192.168.200.1 (192.168.200.1) 56(84) bytes of data.
64 bytes from 192.168.200.1: icmp_seq=1 ttl=64 time=0.043 ms
64 bytes from 192.168.200.1: icmp_seq=2 ttl=64 time=0.049 ms
64 bytes from 192.168.200.1: icmp_seq=3 ttl=64 time=0.055 ms
64 bytes from 192.168.200.1: icmp_seq=4 ttl=64 time=0.044 ms
^C
--- 192.168.200.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.043/0.047/0.055/0.009 ms
[root@zhangyiwei-2 ~]# 
http://www.xdnf.cn/news/1329769.html

相关文章:

  • 从一个ctf题中学到的多种php disable_functions bypass 姿势
  • CNN 在故障诊断中的应用:原理、案例与优势
  • 机器人控制基础:串级 PID 和模糊 PID介绍与对比(干货总结)
  • Transformer十问
  • java17学习笔记-Deprecate the Applet API for Removal
  • LCC-LCC谐振式无线充电系统控制技术研究的复现
  • 期权小故事:王安石变法与期权
  • 前端本地模糊搜索1.0 按照匹配位置加权
  • 土地财政历史探寻
  • Diamond开发经验(1)
  • RabbitMQ:SpringAMQP Direct Exchange(直连型交换机)
  • 走进数字时代,融入数字生活,构建数字生态
  • Arthas 全面使用指南:离线安装 + Docker/K8s 集成 + 集中管理
  • 开源 C++ QT Widget 开发(一)工程文件结构
  • 猫头虎AI分享|字节开源了一款具备长期记忆能力的多模态智能体:M3-Agent 下载、安装、配置、部署教程
  • Java NIO 核心精讲(上):Channel、Buffer、Selector 详解与 ByteBuffer 完全指南
  • Python量化交易:结合爬虫与TA-Lib技术指标分析
  • Vue2.x核心技术与实战(二)
  • 力扣hot100:三数之和(排序 + 双指针法)(15)
  • Android Cordova 开发 - Cordova 嵌入 Android
  • 谷歌为什么要将Android的页面大小(Page Size)从传统的4KB升级至16KB
  • Android RxJava数据库操作:响应式改造实践
  • Android-ContentProvider的跨应用通信学习总结
  • 2943. 最大化网格图中正方形空洞的面积
  • MCP(模型上下文协议):是否是 AI 基础设施中缺失的标准?
  • 电源、电流及功率实测
  • 【图像算法 - 18】慧眼辨良莠:基于深度学习与OpenCV的麦田杂草智能识别检测系统(附完整代码)
  • RabbitMQ:SpringAMQP 入门案例
  • 【自动驾驶】8月 端到端自动驾驶算法论文(arxiv20250819)
  • 最新研究进展:2023-2025年神经机器翻译突破性成果