Интерфейсы связного подчиненного не получают тот же идентификатор агрегатора на 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 мс.
Перезапустите сетевую службу, чтобы применить изменения.