Вопрос или проблема
Возникает ошибка расшифровки при использовании openvpn как UDP для подключения к серверу, вот такая:
Mon Apr 22 17:46:17 2019 AEAD Decrypt error: bad packet ID (may be a replay): [ #49607 ] -- см. запись в справочнике man для --no-replay и --replay-window для получения дополнительной информации или отключите это предупреждение с помощью --mute-replay-warnings
Mon Apr 22 17:46:34 2019 AEAD Decrypt error: bad packet ID (may be a replay): [ #51909 ] -- см. запись в справочнике man для --no-replay и --replay-window для получения дополнительной информации или отключите это предупреждение с помощью --mute-replay-warnings
Mon Apr 22 17:46:50 2019 AEAD Decrypt error: bad packet ID (may be a replay): [ #54482 ] -- см. запись в справочнике man для --no-replay и --replay-window для получения дополнительной информации или отключите это предупреждение с помощью --mute-replay-warnings
При использовании TCP проблем нет, но мне действительно нужно использовать UDP как openvpn.
Есть ли способ решить эту проблему?
Если MTU составляет 1500, добавьте mssfix 1431
внизу вашего *.ovpn.
Объяснение: получите информацию от объяснения Джеймса Йонана, который является владельцем OpenVPN
С туннелем в стиле TUN через UDP с использованием стандартных параметров TLS, накладные расходы на каждый пакет составляют:
- 41 байт накладных расходов безопасности (включает тег пакета (1), HMAC-SHA1 подпись (20), вектор инициализации (16), порядковый номер (4))
- 28 байт накладных расходов на туннелирование (включает IP + UDP заголовок)
- Итого: 69 байт на пакет
Спасибо Минкус и j3ffyang !!
Это решило мою проблему, но на Windows 11!
Я смог подключиться к VPN, подключиться к серверу через ssh, но любое приложение, которое я запускал, зависало. Единственным ключом в логе была эта “AEAD Decrypt error”, и добавление “mssfix” решило проблему.
Ответ или решение
Причина ошибки "AEAD Decrypt error: bad packet ID" при использовании OpenVPN по протоколу UDP зачастую связана с сетевыми проблемами, вызванными дублированием пакетов или их неправильной последовательностью. Ошибка указывает на то, что OpenVPN не может корректно расшифровать пакет, возможно из-за его повторного появления на сервере. Рассмотрим более глубоко теоретические аспекты, примеры и пути решения данной проблемы.
Теоретическое обоснование
Когда вы используете OpenVPN с UDP, вы работаете с небезопасным и ненадежным по своей природе протоколом – UDP, который не гарантирует порядок доставки пакетов или их надежную отправку. Это контрастирует с TCP, который обязан гарантировать доставку и правильную последовательность пакетов, что объясняет, почему у вас не возникает эта проблема с TCP.
AEAD (Authenticated Encryption with Associated Data) – это метод, который обеспечивает одновременно конфиденциальность, проверку подлинности и целостность данных. Если порядок или наличие пакетов нарушается, OpenVPN может не пройти проверку целостности пакетов, что приведет к ошибке расшифровки.
Пример
При получении пакетов UDP OpenVPN использует окно перепроверки, чтобы предотвратить повторное применение одного и того же пакета. Пакеты идентифицируются по уникальным номерам, и если пакет с таким номером уже был получен или пришел не в последовательности, это вызывает ошибку. Пример:
- Пакет [#49607] приходит на сервер второй раз или вне последовательности.
- OpenVPN считает это потенциальной атакой повторного воспроизведения и игнорирует пакет, генерируя ошибку.
Практическое применение
-
Конфигурация MTU и MSS Fix:
Чтобы избежать сегментации пакетов, которая может привести к дублированию, рекомендуем настроить правильный Maximum Transmission Unit (MTU) и использовать параметрыmssfix
. Например, если ваш MTU равен 1500, добавлениеmssfix 1431
в конфигурацию может помочь избежать данных проблем. -
Настройка окна перепроверки:
Вы можете настроить параметры--replay-window
или полностью отключить проверку повторов пакетами, добавив--no-replay
. Однако, отключение функции реплей-защиты ослабляет безопасность соединения и делается на ваш страх и риск. -
Изменение сетевых настроек:
Проверьте сетевые устройства между клиентом и сервером. Брандмауэры, балансировщики нагрузки или роутеры могут некорректно обрабатывать или изменять порядок пакетов. -
Обновление и мониторинг:
Регулярно обновляйте OpenVPN до последней версии, чтобы убедиться, что у вас есть последние исправления ошибок и оптимизации. Включите детальный лог OpenVPN для наблюдения за параметрами сети и выявления условий, которые могли бы влиять на последовательность и идентичность пакетов. -
Использование анализаторов трафика:
Протестируйте соединение с помощью таких инструментов, как Wireshark, чтобы идентифицировать проблемы и посмотреть, как пакеты проходят через сеть.
Заключение: Управление VPN соединениями с помощью UDP имеет свои специфичные нюансы, и понимание теории, воздействие ее через реальные примеры, а затем применение на практике являются залогом успеха. Основное внимание здесь уделяется правильной конфигурации MTU и корректировке их оконной перепроверки для устранения проблемы, описанной выше.