Перейти к содержанию

Объединение интерфейсов: bonding

Bonding связывает несколько сетевых адаптеров в один логический интерфейс. Типичный сценарий — отказоустойчивое подключение сервера к коммутаторам. В НАЙС.ОС CLOUD bond описывается в systemd-networkd: логическое устройство .netdev, подключение портов .network и адресация bond через отдельный .network.

Аппаратные зависимости

Режим 802.3ad (LACP) требует поддержки и корректной настройки коммутатора/виртуального свитча. Для первичного знакомства здесь используется active-backup, не требующий LACP. Режим не гарантирует отказоустойчивости, если оба интерфейса подключены к одной неисправной точке сети.

Исходные условия

  • Два существующих интерфейса: ens3, ens4.
  • Адрес управления будет назначаться bond0, а не физическим портам.
  • У вас есть out-of-band консоль, разрешение на изменение сети и резервная копия старых профилей.
  • Система действительно содержит оба сетевых адаптера: ip -br link.

1. Создаём bond

# /etc/systemd/network/20-bond0.netdev
[NetDev]
Name=bond0
Kind=bond

[Bond]
Mode=active-backup
MIIMonitorSec=1s

active-backup использует один активный порт. MIIMonitorSec управляет частотой проверки состояния линка, но сама по себе не проверяет доступность удалённого шлюза на L3.

2. Добавляем два порта

# /etc/systemd/network/10-ens3-bond.network
[Match]
Name=ens3

[Network]
Bond=bond0
# /etc/systemd/network/10-ens4-bond.network
[Match]
Name=ens4

[Network]
Bond=bond0

Важно: при переходе на bond физические интерфейсы не должны независимо запрашивать DHCP или иметь адрес управления. Проанализируйте старые профили прежде, чем их заменять.

3. Назначаем адрес на bond

# /etc/systemd/network/20-bond0.network
[Match]
Name=bond0

[Network]
DHCP=ipv4

Если инфраструктура использует статический IP, вместо DHCP задайте Address, Gateway, DNS по правилам статического IPv4.

4. Проверяем

networkctl reload
networkctl reconfigure ens3
networkctl reconfigure ens4
networkctl status bond0
cat /proc/net/bonding/bond0
ip -br address
ip -4 route
journalctl -b -u systemd-networkd -n 80 --no-pager

В /proc/net/bonding/bond0 должны отображаться режим, активный порт, участники и их состояние. Для проверки отказа кабеля нужен согласованный тест в период обслуживания; не выводите интерфейс административно из работы через SSH без резервной консоли.

LACP: когда потребуется другой режим

Для 802.3ad используется Mode=802.3ad и настройки LACP-агрегатора на стороне коммутатора. Параметры LACPTransmitRate, hash policy и MAC зависят от конкретной инфраструктуры. До проверки коммутатора не копируйте настройки из этого раздела.

Диагностика

Проблема Действие
bond0 не создан Просмотрите логи .netdev и версию systemd
Второй порт не участвует Проверьте выбранный .network и Link File
IP не получен Проверьте DHCP на bond и MAC-политику свитча
Периодические потери пакетов Проверьте физические линк-события, режим коммутатора
После reboot другое имя интерфейса Пересмотрите [Match] и udev naming

См. также bridge, VLAN и управление профилями.

Источники: systemd.netdev, Linux bonding.