Интерфейсы связного подчиненного не получают тот же идентификатор агрегатора на LACP

У меня ошибка на некоторых серверах, где LACP (802.3ad) не работает. У меня на всех серверах есть связующее устройство bond0 с двумя eth подчиненные и каждый интерфейс подключен по-разному, и оба коммутатора настроены с LACP.

Кажется, все в порядке, но сетевой инженер обнаружил, что некоторые MLAG (реализация Arista LACP) не работали, когда работали физические устройства.

Когда я посмотрел на /proc/net/bonding/bond0 я обнаружил, что каждый интерфейс имеет разные Aggregator ID, На именных серверах Aggregator ID та же.

Проблема может быть воспроизведена путем выключения и включения порта на коммутаторе, тогда мы можем наблюдать, несмотря на то, что физическое соединение работает, MLAG не работает. Ошибка присутствует на RHEL 6 и 7 (но не все серверы подвержены уязвимости).

конфигурация

#/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
MACADDR=14:02:ec:44:e9:80
IPADDR=xxx.xxx.xxx.xxx
NETMASK=xxx.xxx.xxx.xxx
BONDING_OPTS="mode=802.3ad lacp_rate=slow xmit_hash_policy=layer3+4"
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
NM_CONTROLLED=no
PEERDNS=no

# /etc/sysconfig/network-scripts/ifcfg-eno49 (same for other interface)
HWADDR=14:02:ec:44:e9:80
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
NM_CONTROLLED=no
PEERDNS=no

У нас есть обходной путь - установить и поднять eth интерфейс на сервере - но это не идеально.

Чтобы проверить протокол LACP, я сделал

tcpdump -i eno49 -tt -vv -nnn ether host 01:80:c2:00:00:02

Я могу видеть пакет каждые 30 секунд на одном интерфейсе, но на другом я вижу пакет каждую 1 секунду, поскольку он пытался установить сеанс LACP.

У вас есть способ устранить неполадки и исправить это?

(извините, если я не использовал правильный термин для сети, я не очень опытен в LACP)

Спасибо

1 ответ

Решение

Изучив некоторые документы и некоторые тесты, я обнаружил, что когда сервер использует связывание, необходимо принудительно контролировать сетевые соединения, используя miimon параметр из bonding модуль.

Глядя на /proc/net/bonding/bond0 Я должен был увидеть одно из устройств имеет статус MII down где на самом деле это было на уровне ссылки.

https://access.redhat.com/articles/172483 утверждает, что:

Очень важно, чтобы режим мониторинга канала, либо miimon или же arp_interval а также arp_ip_target параметры уточняются. Конфигурирование связи без режима мониторинга соединения не является допустимым использованием драйвера соединения

Таким образом, чтобы сообщить, что в ifcfg-bond0 файл, который вы передаете в BONDING_OPTS опции

#/etc/sysconfig/network-scripts/ifcfg-bond0
...
BONDING_OPTS="mode=802.3ad lacp_rate=slow xmit_hash_policy=layer3+4 miimon=100"
...

поэтому он заставляет опрашивать ссылки каждые 100 мс.

Перезапустите сетевую службу, чтобы применить изменения.

Другие вопросы по тегам