Рубрики
network \ сеть

bond linux

Ссылки:

Link aggregation between Juniper and Linux
https://askubuntu.com/questions/1112288/netplan-configuring-2-vlan-on-same-bonding https://habr.com/ru/post/58218/ ## error An illegal loopback occurred on adapter https://support.mellanox.com/s/article/MLNX2-117-999kn

Необходимо поставить пакет:

apt-get install ifenslave 
apt-get install ifupdown

Проверяем:

lsmod | grep bonding
modprobe bonding
ip link show
cat /proc/net/bonding/bond0

Опция в ядре linux:

CONFIG_BONDING=m

Режимы bond:

mode=0 (balance-rr)
Последовательно кидает пакеты, с первого по последний интерфейс.

mode=1 (active-backup)
Один из интерфейсов активен. 
Если активный интерфейс выходит из строя (link down и т.д.), другой интерфейс заменяет активный. 
Не требует дополнительной настройки коммутатора

mode=2 (balance-xor)
Передачи распределяются между интерфейсами на основе формулы ((MAC-адрес источника) XOR (MAC-адрес получателя)) % число интерфейсов. 
Один и тот же интерфейс работает с определённым получателем. Режим даёт балансировку нагрузки и отказоустойчивость.

mode=3 (broadcast)
Все пакеты на все интерфейсы

mode=4 (802.3ad)
!!! В случае ошибок (An illegal loopback occurred on adapter) поменяй на другой режим, например (mode 1).
Link Agregation — IEEE 802.3ad, требует от коммутатора настройки.

mode=5 (balance-tlb)
Входящие пакеты принимаются только активным сетевым интерфейсом, исходящий распределяется в зависимости от текущей загрузки каждого интерфейса.
Не требует настройки коммутатора.

mode=6 (balance-alb)
Тоже самое что 5, только входящий трафик тоже распределяется между интерфейсами. Не требует настройки коммутатора, но интерфейсы должны уметь изменять MAC.

Пример конфига /etc/network/interfaces для bond:

auto eth1
iface eth1 inet manual
    bond-master bond0

auto eth2
iface eth2 inet manual
     bond-master bond0

auto bond0
iface bond0 inet static
     address 10.10.12.2
     netmask 255.255.255.0
     #bond-mode 802.3ad
     bond-mode 4
     bond-miimon 100
     bond-lacp-rate 1
     bond-slaves eth1 eth2

Пример конфига /etc/network/interfaces для bond (debian 11 202207):

Наблюдалась проблема работы режимов 4 и 802.3ad, перевел на bond 1

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback
 
auto bond0
iface bond0 inet static
     address 10.0.0.2/24
     bond-mode 1
     bond-miimon 100
     bond-lacp-rate 1
     bond-slaves ens4 ens5

Проверка работы bon0

cat /proc/net/bonding/bond0

Бонд в режиме балансировки:

auto bond0
iface bond0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4
    bond-slaves eth0 eth1
    bond-mode 802.3ad
    bond-miimon 100
    bond-xmit-hash-policy layer3+4

auto eth0
iface eth0 inet manual
    bond-master bond0

auto eth1
iface eth1 inet manual
    bond-master bond0