Может ли режим объединения 6 принимать распределение нагрузки трафика на рабов?

Вопрос или проблема

Будет ли в режиме 6 трафик распределяться относительно интерфейсов слейвов?

ОС: ubuntu 18.04.6 LTS; драйвер объединения: v3.7.1; ядро: 4.15.0-213-generic

В режиме 6 я установил параметры bond_arp_interval 100, arp_validate 3 и bond_arp_ip_target ip1,ip2 и перезапустил интерфейс, но получил только ip1 из файла /sys/class/net/bond6/bonding/arp_ip_target и 0 из файла /sys/class/net/bond6/bonding/arp_interval. Я протестировал трафик с помощью iperf3, и весь трафик от различных хостов с разными ARP-записями (один и тот же IP-адрес назначения с разными апаратными адресами, принадлежащими слейвам режима 6) всегда получался на одном и том же слейв-интерфейсе на хосте назначения. Возможно, запись ARP не обновляется часто в подсети, поэтому не происходит балансировки нагрузки трафика.

Я протестировал bond_arp_interval 100, arp_validate 3 и bond_arp_ip_target ip1, что сработало в режиме 1, согласно этому решению redhat. Возможно, ARP-пробы не подходят для режима 6? Почему в режиме 6 говорится, что он может достигнуть балансировки трафика?

Как драйвер объединения инициирует ответ ARP для обновления записи ARP? Я не могу найти никакого другого параметра, который бы работал для этого.

Linux Ethernet Bonding Driver HOWTO :

Балансировка входящей нагрузки осуществляется через переговоры адресного разрешения (ARP) и отображение таблицы на соответствующий групповой интерфейс.

Таким образом, пиры узнают аппаратный адрес соединения, и балансировка входящего трафика сводится к текущему слейву. Это осуществляется путем отправки обновлений (ARP-ответов) всем пиркам с их индивидуально назначенным аппаратным адресом, чтобы трафик перераспределялся.

Ответ или решение

Режим 6 (mode 6) в драйвере объединения Ethernet (bonding) позволяет осуществлять балансировку входящего трафика через использование протокола ARP. Однако поведение в этом режиме может отличаться от ожидаемого, особенно если не все параметры настроены корректно или если среда сети не поддерживает частые обновления ARP.

Основные моменты, касающиеся режима 6

  1. Балансировка нагрузки с использованием ARP: В режиме 6, как указано в документации, балансировка входящего трафика осуществляется с помощью ARP-опросов. Драйвер объединения должен отправлять ARP-ответы, чтобы обновлять запись ARP, показывающую различные адреса MAC слейвов (slave), доступные для получения трафика.

  2. Параметры настройки:

    • bond_arp_interval: Этот параметр задает интервал, с которым драйвер будет посылать ARP-опросы. Установка его на 100 мс должна влиять на частоту обновления ARP-таблиц, но если он не обновляется или возвращает значение 0, возможно, произошла ошибка в конфигурации или проблема на уровне ядра.
    • arp_validate: Опция 3 позволяет определять, как проверяются ARP-записи, но её неправильная настройка также может мешать обновлению ARP.
  3. Проблемы с тестированием:

    • Вы проводили тесты с использованием iperf3, но если Traffic Always Routed to the Same Slave (трафик всегда проходит через один и тот же слейв), это может означать, что ARP-записи не обновляются правильно, что и приводит к привязке трафика к конкретному слейву. Возможно, необходимо проверить, как часто другие хосты в сети обновляют свои ARP-кэши.
    • Вы также упомянули о тестировании режима 1, где параметры работали корректно. Это может свидетельствовать о том, что механизмы работы с ARP в режиме 6 имеют свои ограничения и могут зависеть от настроек сети.

Рекомендации по решению проблемы

  1. Проверка конфигурации:

    • Убедитесь, что параметры bond_arp_interval, bond_arp_ip_target и arp_validate правильно прописаны и применены после перезапуска интерфейса.
    • Проверьте на других хостах в сети, как настроены ARP-записи и как быстро они обновляются.
  2. Мониторинг ARP:

    • Используйте команды типа arp -a на других хостах, чтобы увидеть, корректно ли обновляются ARP-таблицы и какие MAC-адреса отображаются для данного IP.
    • Возможно, стоит провести тестирование с использованием других машин в том же диапазоне сети, чтобы проверить, как именно реагирует сеть на ARP-ответы.
  3. Параметры ядра:

    • Убедитесь, что версия ядра (4.15.0-213-generic) поддерживает все необходимые функции и параметры для режима 6. Если возможно, проведите тест на более новой версии ядра.
  4. Логи и диагностика:

    • Изучите системные логи (dmesg) для выявления возможных ошибок, связанных с драйвером объединения.

Заключение

Режим 6 действительно может обеспечить балансировку входящего трафика, но для его правильной работы необходимо убедиться в корректной настройке всех параметров и в том, что сеть также настроена для поддержки этих механизмов. Возможно, будет полезно протестировать режимы с другими конфигурациями или в другом окружении, чтобы лучше понять ограничения и возможности режима 6.

Оцените материал
Добавить комментарий

Капча загружается...