Подробный гайд по агрегации каналов (bonding) в Debian 13 - Часть 4
17. Проверка пропускной способности
Важно понимать: большинство режимов балансировки не ускоряют один единственный TCP-поток. Один поток обычно идёт через один физический линк.
Чтобы увидеть агрегацию, нужно несколько потоков.
Пример с iperf3:
iperf3 -c 192.168.10.20 -P 8
Параллельно смотрите счётчики:
ip -s link show dev enp3s0
ip -s link show dev enp4s0
или:
sar -n DEV 1
Если используется режим active-backup, скорость не будет суммироваться. Это нормальное поведение: один интерфейс активен, второй резервный.
18. Важные параметры bonding
18.1. miimon
bond-miimon 100
Проверяет состояние физического линка каждые 100 мс. Обычно это рекомендуемый вариант.
18.2. updelay и downdelay
Задержка перед включением/отключением интерфейса после смены состояния линка:
bond-updelay 200
bond-downdelay 200
Полезно, если порт коммутатора медленно поднимается или есть короткие флапы.
18.3. primary и primary_reselect
Для active-backup:
bond-primary enp3s0
bond-primary-reselect better
Варианты primary_reselect:
always— возвращаться на первичный интерфейс при его восстановлении;better— переключаться только если первичный интерфейс лучше текущего;failure— переключаться только при отказе активного интерфейса.
18.4. xmit_hash_policy
Используется в режимах balance-xor, 802.3ad, частично в адаптивных режимах.
Примеры:
bond-xmit-hash-policy layer2
bond-xmit-hash-policy layer2+3
bond-xmit-hash-policy layer3+4
Практически:
layer2— по MAC-адресам;layer2+3— по MAC и IP;layer3+4— по IP и портам, часто лучший выбор для TCP/UDP.
18.5. lacp_rate
Только для 802.3ad:
bond-lacp-rate fast
slow— LACPDU раз в 30 секунд;fast— раз в 1 секунду, быстрее обнаружение проблем.
18.6. min_links
bond-min-links 1
Интерфейс bond0 будет считаться рабочим, если активен хотя бы один физический порт.
18.7. ARP monitoring
Иногда вместо miimon или вместе с ним используют ARP-мониторинг:
bond-arp-interval 100
bond-arp-ip-target 192.168.10.1
bond-arp-validate all
Это может быть полезно, если физический линк формально поднят, но реального трафика нет.
Однако в большинстве случаев достаточно:
bond-miimon 100
19. Настройка MTU и jumbo frames
Если сеть поддерживает jumbo frames, можно задать MTU, например 9000.
Пример в ifupdown:
auto enp3s0
iface enp3s0 inet manual
mtu 9000
auto enp4s0
iface enp4s0 inet manual
mtu 9000
auto bond0
iface bond0 inet static
address 10.0.0.10/24
gateway 10.0.0.1
mtu 9000
bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-xmit-hash-policy layer3+4
bond-slaves enp3s0 enp4s0
Проверка:
ip link show bond0
Проверка прохождения пакетов с DF и размером около 9000:
ping -M do -s 8972 10.0.0.1
Если фрагментация запрещена, а MTU меньше, пакеты будут теряться или возвращаться ошибка message too long.
20. Загрузка модуля bonding
Обычно модуль подгружается автоматически при создании bond0.
Но можно сделать явно:
echo bonding > /etc/modules-load.d/bonding.conf
Проверить вручную:
modprobe bonding
Не рекомендуется задавать глобальные параметры bonding в /etc/modprobe.d/, если у вас несколько bond с разными режимами. Лучше указывать параметры для каждого bond в конфигурации сети.
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.