Bonding объединяет несколько сетевых интерфейсов в один логический bond0. Обычно его используют для:
• резервирования сетевого подключения
• распределения нагрузки
• защиты от отказа кабеля, порта или сетевой карты
• увеличения суммарной пропускной способности
Два самых популярных режима — active-backup и 802.3ad.
▪️ Active-backup. В каждый момент работает только один интерфейс. Второй находится в резерве и включается при отказе основного.
[NetDev] Name=bond0 Kind=bond [Bond] Mode=active-backup MIIMonitorSec=100ms Primary=eno1
Главный плюс — простота. Специальная настройка коммутатора обычно не требуется. Подходит, когда нужна прежде всего отказоустойчивость.
▪️ LACP — 802.3ad. Оба интерфейса могут передавать трафик одновременно:
[Bond] Mode=802.3ad MIIMonitorSec=100ms LACPTransmitRate=fast TransmitHashPolicy=layer3+4
Но на коммутаторе порты должны быть объединены в один LAG с поддержкой LACP.
Важно понимать: одно TCP-соединение обычно не получит скорость двух интерфейсов. Трафик распределяется по хешу между разными потоками.
Проверить состояние bonding:
cat /proc/net/bonding/bond0
Там видно:
- текущий активный интерфейс
- состояние каждого slave
- скорость и duplex
- количество переключений
- состояние LACP
Дополнительно:
ip -br link ip -s link show bond0 ethtool eno1
Типовые ошибки при настройке Bond
• включили 802.3ad, но не настроили LAG на коммутаторе
• порты подключены к разным независимым коммутаторам без MLAG/stack
• IP назначен одновременно на bond0 и физические интерфейсы
• интерфейсы имеют разную скорость или MTU
• забыли удалить старые маршруты и конфигурации slave-интерфейсов
• считают, что LACP удвоит скорость одного соединения
• проверяют только link up, хотя трафик через порт не проходит
