Связывание LACP в Linux: настройка, проверка, устранение неполадок

14 мин чтения - 12 июня 2026 г.

hero section cover
Содержание
  • Объединение каналов LACP в Linux: настройка, проверка и устранение неполадок
  • Что такое агрегация каналов и LACP?
  • Режимы объединения в Linux: когда использовать LACP
  • Настройка LACP-объединения в Linux
  • Проверка и устранение неполадок LACP
  • Когда LACP — не лучший выбор
Поделиться

Настройка агрегации каналов LACP в Linux. Настройте режим бондинга 4 с помощью netplan или NetworkManager, проверьте согласование и устраните такие распространенные проблемы, как нули Partner MAC.

Объединение каналов LACP в Linux: настройка, проверка и устранение неполадок

Объединение каналов LACP в Linux объединяет несколько интерфейсов Ethernet в один логический канал, обеспечивая большую совокупную пропускную способность и автоматическое переключение между физическими сетевыми картами. Оно использует стандарт IEEE 802.3ad, при котором обе стороны (сервер и коммутатор) согласовывают, какие каналы активны и как распределяется трафик. В этой статье рассказывается о том, что на самом деле делает LACP, когда его следует выбирать вместо других режимов объединения в Linux, как настроить его на современном сервере Linux и как проверить его работоспособность.

Что такое агрегация каналов и LACP?

Агрегация каналов объединяет несколько физических сетевых соединений в один логический канал. Она служит двум целям: увеличению общей доступной пропускной способности по группе каналов и обеспечению автоматического переключения на резервный канал в случае выхода из строя любого отдельного канала.

LACP (Link Aggregation Control Protocol) — это динамическая версия агрегации каналов, определённая стандартом IEEE 802.3ad. Вместо того чтобы полагаться на статическую конфигурацию на обоих концах, LACP обменивается контрольными пакетами, называемыми LACPDU, между сервером и коммутатором. Обе стороны согласовывают, какие каналы присоединяются к агрегации, отслеживают работоспособность каждого канала и включают или исключают каналы из группы по мере изменения условий.

В контексте Linux LACP работает в режиме 4 (802.3ad) драйвера bonding ядра. Драйвер создает логический интерфейс (обычно bond0), которому принадлежит IP-адрес, в то время как физические интерфейсы, такие как eth0 и eth1 , становятся подчиненными связке. С точки зрения ОС существует один сетевой интерфейс. С точки зрения физического кабеля существует несколько параллельных каналов Ethernet.

Есть несколько вещей, которых LACP конкретно не делает, хотя люди часто этого ожидают:

  • Одно TCP-соединение по-прежнему проходит по одному физическому каналу. LACP балансирует потоки, а не пакеты внутри потока. Два объединенных канала 1 Гбит/с не позволят увеличить скорость загрузки более 1 Гбит/с.
  • Для работы LACP требуется коммутатор, поддерживающий стандарт 802.3ad. Он не сможет сформировать связку с неуправляемым коммутатором или коммутатором, не поддерживающим LACP.
  • Все входящие в связку каналы должны работать с одинаковой скоростью и в одинаковом дуплексном режиме. Невозможно объединить порт 1 Гбит/с с портом 10 Гбит/с.

Режимы объединения в Linux: когда использовать LACP

Драйвер Linux bonding поддерживает семь режимов. В большинстве производственных развертываний используется один из трех.

Режим 1: активный-резервный

Один интерфейс-участник активен, остальные находятся в режиме ожидания. Если активный интерфейс выходит из строя, другой берет на себя его функции в течение нескольких сотен миллисекунд. Настройка коммутатора не требуется, что делает этот режим правильным выбором, когда коммутаторы находятся вне вашего контроля или не поддерживают 802.3ad. Вы получаете избыточность, но не дополнительную пропускную способность.

Режим 4: 802.3ad (LACP)

Все участники передают трафик. Драйвер объединения и коммутатор используют LACP для согласования активного набора и обнаружения сбоев. Исходящий трафик распределяется между участниками с помощью настраиваемой вами политики хеширования. Это стандартный выбор для выделенных серверов, подключенных к управляемым коммутаторам, когда требуется как избыточность, так и дополнительная пропускная способность для многопотоковых рабочих нагрузок.

Режим 6: balance-alb

Адаптивная балансировка нагрузки в обоих направлениях, не требующая поддержки со стороны коммутатора. Драйвер перехватывает ARP-ответы, чтобы переписать MAC-адреса и распределить входящий трафик. Это работает, но по сравнению с LACP является менее надежным. Используйте его только в том случае, если настройка со стороны коммутатора действительно невозможна.

Правило принятия решения:

  • Нет управляемого коммутатора, или вам нужна только отработка отказа: режим 1 (active-backup).
  • Управляемый коммутатор, несколько потоков, требуется как пропускная способность, так и резервирование: режим 4 (LACP).
  • Управляемый коммутатор невозможен, но требуется балансировка в обоих направлениях: режим 6 (balance-alb).

Режимы 0 (balance-rr), 2 (balance-xor), 3 (broadcast) и 5 (balance-tlb) существуют, но редко являются правильным выбором на современном оборудовании. Выбирайте режим 1 или режим 4, если у вас нет особых причин этого не делать.

Настройка LACP-объединения в Linux

В современных системах Ubuntu и Debian LACP настраивается через netplan. В RHEL, CentOS Stream, AlmaLinux и Rocky Linux используйте NetworkManager через nmcli или путем редактирования базовых файлов подключения.

Netplan (Ubuntu, Debian)

Вставьте следующее в /etc/netplan/01-lacp.yaml:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
    eth1:
      dhcp4: no
  bonds:
    bond0:
      interfaces: [eth0, eth1]
      addresses: [10.0.0.5/24]
      gateway4: 10.0.0.1
      parameters:
        mode: 802.3ad
        lacp-rate: fast
        mii-monitor-interval: 100
        transmit-hash-policy: layer3+4

Затем примените с помощью netplan apply. Ключевые параметры:

  • mode: 802.3ad включает LACP.
  • lacp-rate: fast отправляет LACPDU каждую секунду вместо 30 секунд по умолчанию. Должно совпадать с настройкой коммутатора.
  • mii-monitor-interval: 100 проверяет состояние канала каждые 100 мс.
  • transmit-hash-policy: layer3+4 распределяет потоки по IP-адресу источника/назначения и порту TCP/UDP. Это обеспечивает лучшую балансировку, чем политика по умолчанию layer2 для типичного веб-трафика и трафика баз данных.

NetworkManager (RHEL, AlmaLinux, Rocky)

nmcli con add type bond ifname bond0 con-name bond0 \
  bond.options "mode=802.3ad,miimon=100,lacp_rate=fast,xmit_hash_policy=layer3+4"
nmcli con add type ethernet ifname eth0 master bond0
nmcli con add type ethernet ifname eth1 master bond0
nmcli con mod bond0 ipv4.addresses 10.0.0.5/24 ipv4.gateway 10.0.0.1 ipv4.method manual
nmcli con up bond0

Сторона коммутатора

Коммутатору требуется группа LAG (часто называемая порт-каналом), настроенная в активный режим LACP, с таким же количеством портов-участников, как и у связки. Точный синтаксис зависит от производителя, но требования остаются неизменными: порты должны находиться в одной VLAN, иметь одинаковую скорость и режим дуплекса, а также использовать активный режим LACP хотя бы на одной стороне. Наиболее безопасной конфигурацией является использование активного режима LACP на обеих сторонах.

В Cisco IOS:

interface range gigabitethernet0/1 - 2
 channel-group 1 mode active
 channel-protocol lacp

В Aruba/ProCurve:

trunk 1-2 trk1 lacp

Настройка lacp_rate настройка на коммутаторе должна совпадать с настройкой на хосте. Несоответствие здесь является одной из самых распространенных ошибок конфигурации LACP и вызывает периодическое колебание соединения каждые 30 секунд.

Проверка и устранение неполадок LACP

Проверьте текущий статус канала на стороне Linux:

cat /proc/net/bonding/bond0

В выводе следует обратить внимание на четыре момента:

  1. Bonding Mode: IEEE 802.3ad Dynamic link aggregation подтверждает, что загружен режим 4.
  2. Каждый подчиненный интерфейс, указанный с MII Status: up и link failure count: 0.
  3. не нулевое Partner Mac Address для каждого подчиненного. Наличие здесь одних нулей означает, что коммутатор вообще не отправляет пакеты LACP, либо потому, что порт не находится в LAG с активным LACP, либо потому, что кабель подключен к неправильному порту.
  4. Aggregator ID одинаков на всех членах. Различные ID означают, что члены на самом деле не объединены, они действуют независимо.

Самый быстрый способ проверить, используется ли пропускная способность, — запустить iperf3 с несколькими параллельными потоками (iperf3 -P 8) с другого хоста. Если общая пропускная способность превышает пропускную способность одного канала, LACP балансирует нагрузку правильно. Тест с одним потоком, показывающий скорость одного канала, является ожидаемым поведением, а не ошибкой.

Наиболее распространенные проблемы LACP и их причины:

  • MAC-адрес партнера состоит из одних нулей: порт коммутатора не находится в LAG с активным LACP или кабели подключены неправильно.
  • Бонд запускается, но пропускная способность застряла на одном канале: вероятно, политика хеширования по умолчанию установлена на layer2, которая хеширует только по MAC-адресу назначения. Переключитесь на layer3+4.
  • Периодические колебания каждые 30 секунд: lacp_rate несоответствие между хостом и коммутатором.
  • Один подчиненный работает, а другой никогда не передает трафик: несовпадение скорости/дуплекса или порты коммутатора не находятся в одной группе LAG со стороны коммутатора.

Когда LACP — не лучший выбор

LACP решает конкретную задачу: агрегирование нескольких каналов между одним хостом и одним коммутатором (или стеком коммутаторов) для обеспечения избыточности и пропускной способности на поток. Существуют сценарии, в которых это не подходящий инструмент.

Если вам нужна только избыточность, а коммутаторы не поддерживают 802.3ad, используйте вместо этого режим 1 (active-backup). Он работает с чем угодно.

Если вам нужно объединить два отдельных коммутатора для обеспечения избыточности на уровне шасси, стандартный LACP не сможет охватить два несвязанных между собой коммутатора. Вам понадобится агрегация каналов Multi-Chassis Link Aggregation (MLAG), при которой два коммутатора представляют себя как один логический партнер LACP. Большинство поставщиков корпоративных коммутаторов реализуют эту функцию под собственным названием: Cisco vPC, Arista MLAG, Juniper MC-LAG.

Если вам нужно, чтобы один поток превышал пропускную способность одного канала, LACP этого сделать не может. Варианты заключаются в использовании более быстрого физического канала (заменить 2x 10 Гбит/с на 1x 25 Гбит/с или 1x 40 Гбит/с) или в использовании совершенно другой технологии. SR-IOV обеспечивает виртуальным машинам производительность одного потока, близкую к скорости линии, предоставляя каждой виртуальной машине виртуальный сетевой адаптер с аппаратным ускорением, но он решает другую проблему и имеет свои собственные ограничения. Это тема для отдельного поста.

Для большинства выделенных серверов и серверов в центрах колокации, обрабатывающих множество одновременных соединений, LACP остается стандартным решением. Два объединенных канала 10 Гбит/с с layer3+4 хешированием с легкостью обрабатывают более 18 Гбит/с совокупного трафика по множеству потоков, при этом выдерживая отказ сетевой карты или кабеля без потери пакетов.

background image
Подходит ли ваш VPS для этой работы?

В стандартную комплектацию VPS от FDC входят диски NVMe, процессоры EPYC и действительно неизмеряемая пропускная способность. Готовы к обновлению?

Разблокируйте производительность прямо сейчас

Блог

События этой недели

Другие статьи
Настроенные профили для оптимизации рабочей нагрузки Linux-сервера

Настроенные профили для оптимизации рабочей нагрузки Linux-сервера

Как выбирать, применять и настраивать профили для GPU, баз данных и Linux-серверов с высокой пропускной способностью, с примерами и советами по развертыванию Ansible.

16 мин чтения - 9 июня 2026 г.

Тюнинг Linux OOM Killer для VPS: практическое руководство

12 мин чтения - 8 июня 2026 г.

Другие статьи
background image

У вас есть вопросы или вам нужно индивидуальное решение?

icon

Гибкие варианты

icon

Глобальный охват

icon

Мгновенное развертывание

icon

Гибкие варианты

icon

Глобальный охват

icon

Мгновенное развертывание