Звіти про те, що VPN заблоковано на порту 53, змішують три спостереження, які зазнають невдачі з різних причин. Розв'язання імені кінцевої точки відбувається до того, як з'явиться тунель, зашифрований транспорт — окрема розмова, а DNS-запити, що виконуються після, — третя. Кожен має свій підпис відмови, і лише один із них узагалі стосується DNS.

Перш ніж щось змінювати, розкладіть пакети за призначенням, бо виправлення йде за етапом.

Три розмови, один номер порту

Перша розмова — це пошук імені кінцевої точки: ваша машина запитує в налаштованого резолвера, де розташовано vpn.example.com, і ця відповідь надходить звичайним DNS ще до того, як клієнт надішле бодай один тунельний пакет. Друга — сам транспорт OpenVPN, який підключається до адреси, отриманої в результаті пошуку, за тим протоколом і портом, які вказані в профілі. Третя відбувається після підняття тунелю, коли застосунки запитують імена, а передані налаштування резолвера вирішують, хто відповідає.

Ці три можуть вдаватися або зазнавати невдачі незалежно. Клієнт може бездоганно розв'язати свою кінцеву точку і все одно не достукатися до слухача, а може встановити тунель, коли кожен внутрішній пошук імені зазнає невдачі через те, що налаштування DNS так і не надійшли.

ConversationWhen it happensWhat has to be true
Endpoint lookupBefore the client contacts a hostnameAn underlying resolver path can answer for the endpoint name
OpenVPN transportDuring tunnel establishmentThe gateway listens on its configured transport, address and port, and nothing filters it
Application DNSDuring or after the protected sessionA resolver the client can reach, plus routing that carries its queries

Читайте таблицю як контрольний список, а не як опис. Якщо ім'я кінцевої точки не розв'язується, далі ніщо не може працювати, і тунель ніколи не починається.

Номер порту не називає застосунок

Порт 53 несе DNS за угодою, і оператор OpenVPN також може опублікувати там слухача, і саме тому це число — поганий ідентифікатор. Сеанс OpenVPN на UDP 53 залишається сеансом OpenVPN, а DNS-запит до сервера на порту 53 нічого не каже про те, чи дозволено тунель. Рядки proto і remote профілю задають зовнішню кінцеву точку; номер порту сам собою нічого не задає.

Під час діагностики це ріже в обидва боки: загальна UDP-проба на порт 53 доводить, що порт відповідає, а не що відповідає служба VPN. Перевіряйте справжнім клієнтом і справжнім профілем, бо лише це тренує рукостискання, якого очікує служба.

Доведіть слухача, перш ніж звинувачувати мережу

На сервері перевірте, що прив'язано, за допомогою ss -lunp | grep 53, і порівняйте з протоколом і портом профілю. З мережі клієнта запустіть клієнт із більшою докладністю, щоб журнал показав, яку адресу й транспорт він спробував. Якщо сервер слухає, а пакети клієнта не надходять, їх відхиляє шлях або політика, і це розмова з власником мережі, а не причина змінювати порт.

Інший порт допомагає лише тоді, коли служба справді слухає там, і розгортання це дозволяє. Переміщення слухача, щоб обійти фільтрацію керованої мережі, — це рішення щодо політики, а не крок усунення несправностей. Запитайте у власника мережі, що дозволено, перш ніж змінювати службу, бо обхідний шлях, який порушує політику, все одно згодом закриють. Запишіть цю відповідь поруч із профілем, щоб наступна людина не повторювала запит.

Перевірте DNS після тунелю, окремо

Коли тунель піднято, огляньте стан резолвера на інтерфейсі VPN і запитайте одне внутрішнє та одне публічне ім'я. Якщо внутрішні імена зазнають невдачі, поки тунель несе трафік, передані налаштування DNS не застосовано, і це питання інтеграції клієнта, а не транспорту. Якщо публічні імена зазнають невдачі, а внутрішні працюють, політика розділеного тунелю робить те, для чого її налаштовано.

Залиште зміни DNS власникові резолвера. Перезапис керованої конфігурації резолвера, щоб пройшов один тест, може зламати приватні імена для всього іншого на машині. Якщо тунель передає резолвер, а клієнт його ігнорує, виправте інтеграцію клієнта замість того, щоб додавати статичний запис деінде. Статичні записи приховують відмову, доки хтось не змінить мережу. Запишіть, який резолвер має відповідати за кожен простір імен.

Схожі статті