Как записать конечную точку IPv6 в конфигурации VPN
Литерал IPv6 содержит двоеточия, поэтому конечной точке с портом нужны квадратные скобки. Следуйте синтаксису поля, задокументированному вашим клиентом, а затем проверьте путь.
Адрес IPv6 полон двоеточий, а поле конечной точки, которое несёт ещё и порт, нуждается в способе отметить, где адрес заканчивается. Ошибётесь здесь, и клиент либо откажется разбирать профиль, либо молча подключится не к тому. Правильная форма не универсальна: она зависит от того, содержит ли поле адрес с портом, голый адрес или имя хоста. Проходите руководство по порядку, потому что исправление синтаксиса и исправление доступности выглядят совершенно по-разному, как только вы начинаете читать вывод клиента.
Проверьте тип поля, прежде чем вводить адрес
Например, WireGuard Endpoint поле с портом использует квадратные скобки вокруг адреса, как в [2001:db8::10]:51820. Префикс документации в этом примере не является публичным сервером, а скобки — часть синтаксиса, а не адреса.
У других форматов свои правила. URI может нести литерал IPv6 в скобках, но конфигурация VPN не обязательно является URI. Клиент с отдельными полями адреса и порта может ждать в одном поле только литерал, а в другом — число, и добавлять там скобки так же неправильно, как опускать их в объединённом поле.
Ставьте литерал в скобки, когда порт находится в том же поле
Правило простое: скобки появляются, когда в той же строке следует порт. Они не появляются, когда адрес стоит один в поле без порта.
Копирование полной строки конечной точки одного протокола во каждого клиента — обычная причина этой ошибки. OpenVPN, профили IPsec и интерфейсы приложений каждый документируют свой синтаксис, и строка, верная для одного, может быть отвергнута или неверно истолкована другим. Читайте собственную документацию клиента для поля, которое правите, и держите префикс документации или пример адреса в комментарии, чтобы никто не отправил его как реальный хост. Когда руководство даёт две формы, используйте ту, что соответствует типу поля перед вами.
Разделите поля адреса и порта
Когда клиент даёт два поля, поместите адрес в одно, а порт в другое. Объединённая форма, вставленная в поле адреса, даёт ошибку разбора или, что хуже, адрес, который разрешается во что-то нежелательное.
Проверяйте конечные пробелы и невидимые символы, когда значение выглядит правильным. Скопированный адрес часто несёт неразрывный пробел или символ нулевой ширины, который клиент не может разобрать, а экран не показывает. Введите значение заново вместо вставки, когда ошибка не имеет смысла.
Осторожно обращайтесь с идентификаторами зоны
Литерал локального канала может требовать идентификатор зоны, привязанный к интерфейсу, записанный знаком процента и именем интерфейса. Эта форма действует на хосте, которому принадлежит интерфейс, и она не заменяет общедоступную удалённую конечную точку.
Область и маршрутизация по-прежнему важны после успешного разбора. Адрес IPv6 с квалификатором зоны, который клиент принимает, может не иметь пути с машины, а удалённая конечная точка, достигаемая через интернет, вообще не должна зависеть от локальной зоны. Решите, через какой интерфейс пакет должен выйти, до того как писать зону, а не после неудачного рукопожатия.
Сначала проверьте разбор, затем доступность
Явно разделите две неудачи. Искажённый адрес даёт ошибку разбора или немедленный отказ, тогда как правильно сформированная конечная точка, которая отвергает аутентификацию или никогда не отвечает, — это другая проблема с другим решением.
После поддерживаемого исправления убедитесь, что туннель договаривается и нужное приложение работает. Одно рукопожатие не доказывает путь, и ping до конечной точки не доказывает туннель. Когда оператор даёт имя хоста, сохраняйте поддерживаемое имя и его проверки подлинности, а не заменяйте его числовым адресом, найденным в другом месте.
Запишите точное поле, использованное значение и ответ клиента в примечании к изменению. Иначе следующий человек, редактирующий профиль, повторит эксперимент со скобками, а ответ уже есть в вашей заявке.