- Вопрос или проблема
- Ответ или решение
- 1. Как режим 6 достигает балансировки входящего трафика на подчиненных интерфейсах?
- 2. Почему это не работает с arp monitor в режиме 6?
- 3. Может ли это работать вDistributed VXLAN Gateway с динамическим обучением ARP и подавлением широковещательных ARP?
- 4. Что произойдет, когда два Distributed VXLAN Gateway учат один и тот же ARP-запись с разными MAC-адресами от локальной сети?
- Заключение
Вопрос или проблема
В режиме 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
, а из обоих файлов /sys/class/net/bond6/bonding/arp_interval
и /sys/class/net/bond6/bonding/arp_validate
получил 0
. Я направил трафик на целевой хост с помощью iperf3
, и весь трафик от разных исходных хостов с различными ARP записями (один и тот же целевой IP с различными MAC-адресами, принадлежащими слейвам режима 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 ответов) всем пирами с
ими индивидуально назначенными аппаратными адресами,
чтобы трафик перераспределялся.
Вопросы:
1. Как объединение достигает того, что режим 6 балансирует нагрузку принимаемого трафика между слейвами?
2. Почему это не работает с arp monitor
в режиме 6?
3. Может ли это работать в распределенном VXLAN шлюзе с динамическим обучением ARP записей
и подавлением широковещательных ARP-сообщений
?
4. Когда два распределенных VXLAN шлюза (Q3) получают одну и ту же запись ARP по IP-адресу хоста, но с различными MAC-адресами из локальной сети (порт коммутатора), что они будут делать?
Я не могу найти ответ на unix.stackexchange.com, поэтому я пришел сюда, чтобы задать этот вопрос.
Ответ или решение
Конечно, давайте подробно рассмотрим вопрос о механизме балансировки нагрузки трафика в режиме 6 для объединений в системе Ubuntu 18.04.6 LTS.
1. Как режим 6 достигает балансировки входящего трафика на подчиненных интерфейсах?
Режим 6 (RLB – Receive Load Balancing) в объединении, также известный как „balance-alb“, осуществляет балансировку входящего трафика через использование протокола ARP. В этом режиме система отправляет ARP-ответы на запросы, чтобы обновить информацию о MAC-адресах подчиненных интерфейсов, что позволяет маршрутизаторам и другим устройствам в сети привязывать IP-адреса к нескольким MAC-адресам. Это позволяет распараллеливать входящий трафик в зависимости от того, какие интерфейсы „активны“ и каких MAC-адресов они управляют.
Однако ваш вопрос поднимает важные нюансы. Для корректной работы балансировки на текущий момент необходимо убедиться, что подчинённые интерфейсы действительно обрабатывают ARP-ответы и правильно обновляют свои записи в ARP-кэше.
2. Почему это не работает с arp monitor в режиме 6?
Причиной, по которой arp monitor
может не функционировать должным образом в режиме 6, может быть следующее:
- Возможно, что ARP-ответы, отправляемые драйвером, не соответствуют ожидаемым
arp monitor
, что приводит к расхождению в обновлениях записей. - В некоторых случаях параметры, такие как
bond_arp_interval
иarp_validate
, могут не применяться должным образом, как это видно из вашего вывода (значения не обновляются). Это может быть связано с ошибкой в драйвере или некорректной настройкой системы.
3. Может ли это работать вDistributed VXLAN Gateway с динамическим обучением ARP и подавлением широковещательных ARP?
Да, теоретически режим 6 может работать в рамках Distributed VXLAN Gateway. Динамическое обучение ARP предполагает, что устройства могут адаптироваться к изменениям в сети, в том числе и нагрузке. Поскольку ARP работает на уровне 2, VXLAN должен без проблем совместно с этим режимом. Однако стоит учитывать, что, если механизм ARP-ответов не будет корректно реализован на уровне устройства, могут возникнуть конфликты и потери пакетов.
4. Что произойдет, когда два Distributed VXLAN Gateway учат один и тот же ARP-запись с разными MAC-адресами от локальной сети?
В этом случае может возникнуть конфликт. Оба устройства будут иметь записи о MAC-адресах, ассоциированных с одним и тем же IP-адресом, что приведет к ситуации неустойчивого поведения в ARP-кэше. Обычно, в сетевых устройствах правила для разрешения конфликта могут варьироваться. Одно из устройств может быть предпочтительным в зависимости от конфигурации сети или политики управления ARP.
Заключение
Резюмируя, режим 6 позволяет достигать балансировки входящего трафика при правильно настроенном ARP. Тем не менее, если наблюдаются проблемы с обновлениями ARP-записей, необходимо провести диагностику конфигурации сетевого объединения и параметров драйвера. Обсуждаемые технологии, такие как Distributed VXLAN Gateway, также могут вызывать сложности при некорректных настройках сети. Важно проводить тесты в контролируемой среде, чтобы убедиться в корректности работы каждого из компонентов системы.