博主头像

人間になりたい!!!!!


皖ICP备2025096275号

HomeLab 实战:使用 LACP 聚合双千兆网口,实现 2Gbps 网络带宽

前言

博主的 HomeLab 网络环境是支持全链路 10 Gbps 的. 但是博主的 SubSerer 的单个端口却只有 1 Gbps. 由于该服务器负责的是业务流量转发, 其中包含网络代理. 在入户带宽 2000 Mbps 的情况下, 1 Gbps 的单口带宽就显得有些差强人意. 但好在这台服务器有两个这样的 1 Gbps 端口, 博主所使用的交换机也原生支持 LACP. 所以这篇文章就记录了博主尝试通过 LACP 对两个 1 Gbps 接口做链路聚合的过程.

什么是链路聚合?

简单来说, 链路聚合就是把两台设备之间的多条物理链路聚合在一起, 当做一条逻辑链路来使用. 通过这种技术, 我们不仅可以提升链路总带宽, 我们还可以增强业务 SLA, 随便坏其中任意一条链路都不影响业务可用性.

什么是 LACP?

LACP 是一种 基于 IEEE 802.3ad 标准的实现链路动态聚合与解聚合的协议. 通过这种协议, 我们可以很轻松的在终端和网络设备之间进行链路聚合, 且能够获得极高的稳定性. 但这种方法也有弊端: 只有终端和网络设备均支持 802.3ad 协议的情况下才可以使用, 这就造成了某些使用廉价 Layer 2 交换机或非网管交换机的用户群体无法使用该协议. 在本篇文章中, 我们只在双方都支持 LACP 的情况下进行配置.


开整

1. 配置交换机 LACP

博主这里使用的是 D-Link 品牌的交换机, 直接使用 Web UI 进行配置. 虽然配置过程可能不同, 但 LACP 协议的基础原理都是通用的. 使用其他品牌交换机的读者也可以进行参考.

  • 启动交换机 Web UI, 进入 Link Arrangement 页面的 Port Trunking Settings 子页面.

    • 我们这里使用 40 和 48 号端口连接服务器, 所以这里勾选 40, 48 号端口.
    • Group ID 填写的是该 LACP 会话的组 ID. 该参数的作用是标识不同的 LACP 会话, 从而达到一台交换机负责多个 LACP 连接的目的. 这里我们填写 1.
    • Type 标识的是该 Trunk 端口的类型. 有两种可供选择, 分别为 StaticLACP, 这里我们选择 LACP.
    • Master Port 标识的是该 LACP 会话的主要端口. 我们需要选择我们做聚合的其中一个端口, 这里我们选择 40 号端口.
    • State 标识的是 LACP 会话的状态. 这里我们选择 Enabled.
    • Trap 标识的是当前 LACP 会话是否开启 SNMP Trap 监听. 如果您的网络环境中存在 SNMP 网关服务器, 且进行了相关配置, 您可以选择 Enable.
  • 配置完成后我们单击 Add, 然后切换至 LACP Port Settings 子页面.
    在这里我们需要将 40 和 48 号端口的 Activity 配置为 Active, 即激活状态.

    配置完成后, 交换机侧的配置就彻底结束了.

2. 配置服务器 LACP

博主这里使用的是基于 Debian 13 的 Proxmox 9.2.3 系统.

  • 安装管理绑定的工具 ifenslave

    sudo apt update
    sudo apt install ifenslave
  • 加载指定内核模块, 让内核支持网卡绑定功能

    sudo modprobe bonding
  • 打开 /etc/network/interfaces 文件并按照指示编辑

    • 将你的物理网卡 (如 eth0, eth1) 设置为手动模式, 并指定它们属于哪个逻辑 bond 接口.

      auto eth0
      iface eth0 inet manual
        bond-master bond0
      
      auto eth1
      iface eth1 inet manual
        bond-master bond0
    • 配置逻辑接口 bond0, 包括 bonding 的各项参数.

      auto bond0
      iface bond0 inet manual
        bond-slaves eno1 eno2
        bond-mode 802.3ad                 # 等价于 4
        bond-miimon 100
        bond-xmit-hash-policy layer3+4

      如果您使用的是常规 Linux 而非 Proxmox VE, 则这么配置

      auto bond0
      iface bond0 inet static
          address 192.168.1.100           # 你的服务器IP
          netmask 255.255.255.0           # 你的网络子网掩码
          gateway 192.168.1.1             # 你的网关地址
          bond-slaves eth0 eth1           # 指定绑定的物理网卡
          bond-mode 4                     # 指定 bonding 模式
          bond-miimon 100                 # 链路检查间隔(毫秒)
          bond-xmit-hash-policy layer3+4  # 负载均衡的哈希策略

      关于 bond-mode

      模式名称效果与说明适用场景
      mode=4802.3ad (LACP)专业级链路聚合, 能够叠加速率并提供负载均衡和容错. 需要交换机也支持 LACP.服务器与交换机均支持的理想生产环境
      mode=0balance-rr (轮询)简单负载均衡, 能叠加速率, 不依赖交换机. 但可能导致数据包乱序.希望无需调整交换机就能获得较好性能的场景. 理论上无需 LACP, 但通常仍建议交换机支持静态聚合, 否则兼容性有限
      mode=6balance-alb (自适应)无需交换机支持, 即可实现发送和接收的负载均衡, 理论上能叠加速率希望无需调整交换机就能获得较好性能的场景
      mode=1active-backup (主备)仅提供冗余, 不叠加带宽. 同一时间只有一个网卡工作.只希望提高网络 SLA, 不追求提升速率
    • 配置 vmbr0 网卡

      如果您配置的是普通 Linux 而非 Proxmox VE, 则可以不用配置这一步
      auto vmbr0
      iface vmbr0 inet static
        address 192.168.1.100/24   # 服务器 IP 地址
        gateway 192.168.1.1        # 服务器网关
        bridge-ports bond0         # 关键:网桥连接至 bond0
        bridge-stp off
        bridge-fd 0

完整配置示例

# network interface settings; autogenerated
# Please do NOT modify this file directly, unless you know what
# you're doing.
#
# If you want to manage parts of the network configuration manually,
# please utilize the 'source' or 'source-directory' directives to do
# so.
# PVE will preserve these directives, but will NOT read its network
# configuration from sourced files, so do not attempt to move any of
# the PVE managed interfaces into external files!

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto eno1
iface eno1 inet manual
    bond-master bond0

auto eno2
iface eno2 inet manual
    bond-master bond0

auto bond0
iface bond0 inet manual
    bond-slaves eno1 eno2
    bond-mode 802.3ad
    bond-miimon 100
    bond-xmit-hash-policy layer3+4

auto vmbr0
iface vmbr0 inet static
        address 192.168.1.5/24
        gateway 192.168.1.1
        bridge-ports bond0
        bridge-stp off
        bridge-fd 0
  • 配置完成后, 对网络进行热重载

    ifreload -a

    如果您正在配置普通 Linux, 则使用该指令

    systemctl restart networking
  • 重载完成后, 检查 Web UI 上的配置. 如果没问题, 则配置完成

3. 测试

因为 LACP 是基于流量哈希计算的链路聚合, 所以在单线程下, 带宽仍然是单条链路的带宽. 因此我们这里使用多线程的 iperf3 进行测试

iperf3 -c 192.168.1.5 -P 2


这里可以看到, 总带宽已经达到 2 Gbps 的标准. 由此可以得出, LACP 聚合的配置已经成功!

如果您使用的是企业交换机, 不要忘了保存配置

后记

本人非专业人员, 如有错误或疏漏请指出! 感谢您的阅读!

HomeLab 实战:使用 LACP 聚合双千兆网口,实现 2Gbps 网络带宽
https://blog.nanami.tech/archives/326/
本文作者 Madobi Nanami
发布时间 2026-07-21
许可协议 CC BY-NC-SA 4.0
发表新评论