Перейти к содержанию

Вопрос

Опубликовано

@Le ecureuil @sergeyk в свежих 4.0 (я проверял в 4.0 Beta 3, аналогично было и на Beta 2) нашел баг, при котором нарушается работа всех имеющихся на кинетике Wireguard интерфейсов.

Для его проявления достаточно программно (через веб или cli) выключить любой из Ethernet-портов. Помимо сообщений о выключении порта в лог также выводится, что кинетик по каким-то причинам "забывает" всех своих пиров, после чего интерфейсы переходят в режим ожидания:

wireguard: Wireguard0: peer "*" (*) (*.*.*.*:*) destroyed
Network::Interface::Base: "Wireguard0": "wireguard" changed "link" layer state "running" to "pending".
wireguard: Wireguard1: peer "*" (*) (*.*.*.*:*) destroyed
Network::Interface::Base: "Wireguard1": "wireguard" changed "link" layer state "running" to "pending".

Начиная с этого момента удаленные клиенты не могут подключиться к WG-интерфейсам кинетика. Клиентами делаются безуспешные попытки установить хэндшейк, а в кинетике сыпятся пачками записи вида:

wireguard: Wireguard0: invalid handshake initiation from *.*.*.*:*
wireguard: Wireguard1: invalid handshake initiation from *.*.*.*:*

Попытки перезапуска туннеля со стороны клиентов ни к чему не приводят.

Починить сломанные интерфейсы удается только со стороны кинетика - или через выкл/вкл каждого (например, в веб-интерфейсе), или же нужно перевести ранее отключенный Ethernet-порт в любое отличное от "выкл" состояние (например, установить автосогласование, дуплекс, скорость). В логе появляются записи о пересоздании пиров:

wireguard: Wireguard0: peer "*" (*) created
wireguard: Wireguard1: peer "*" (*) created

Далее клиенты успешно выполняют хейндшейк и туннели поднимаются:

wireguard: Wireguard0: receiving handshake initiation from peer "*" (*) (*.*.*.*:*)
wireguard: Wireguard0: sending handshake response to peer "*" (*) (*.*.*.*:*)
wireguard: Wireguard1: receiving handshake initiation from peer "*" (*) (*.*.*.*:*)
wireguard: Wireguard1: sending handshake response to peer "*" (*) (*.*.*.*:*)
Network::Interface::Base: "Wireguard0": "wireguard" changed "link" layer state "pending" to "running".
Network::Interface::Base: "Wireguard1": "wireguard" changed "link" layer state "pending" to "running".

Таким образом, имеется зависимость Wireguard-соединений от установленного режима работы Ethernet-порта.

При этом, экспериментальным путем выяснил, что изменение режима порта в пределах "невыключенного" состояния, т.е. изменение только скорости, дуплекса или автосогласования без полного выключения порта, к проявлению вышеописанной ситуации не приводят.

Посмотрите, пожалуйста, в чем может быть причина такого бага.

  • Спасибо 2

Рекомендуемые сообщения

  • 0
Опубликовано (изменено)

Продолжил эксперименты и обнаружил, что WG-туннели падают при попытке выключения вообще любого интерфейса, а затем восстанавливаются при его включении.

@vst в одной из недавних смежных тем по падению Wireguard вы упоминали тикет NDM-2773. Судя по всему, он относится также и к моему случаю. Есть шанс в ближайших бетах ожидать исправление?

Изменено пользователем dimon27254
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.