Synology NAS с двумя портами LAN: почему рукопожатие VPN срывается
Ошибка рукопожатия часто означает, что не пришёл ни один пакет. Найдите привязанный адрес, исправьте переадресацию, посмотрите перехват, затем проверьте сертификаты и транспорт.
Ноутбук сообщает об ошибке рукопожатия TLS, что звучит как проблема с сертификатом и обычно ею не является. На NAS с двумя портами Ethernet самая частая причина — переадресация на маршрутизаторе, направленная на адрес, на котором пакет не слушает, и сообщение клиента в обоих случаях одинаково. Пакет не отвечает на втором порту только потому, что оба кабеля подключены. Прежде чем кто-либо перевыпустит сертификат, докажите, что пакет вообще доходит до NAS.
Что сообщает клиент и что произошло на самом деле
Ошибка рукопожатия от клиента OpenVPN — это общее обозначение. Она охватывает несоответствие сертификата, несоответствие транспорта, слушателя на другом порту и переадресацию, которая ничего не доставила. Поэтому сообщение бесполезно как отправная точка и полезно только как подтверждение. Воспринимайте его как утверждение, что сеанс не установлен, и ничего более конкретного.
Порт и привязанный адрес — это два факта, которые решают, дойдёт ли пакет вообще.
Запишите оба, прежде чем что-либо менять, потому что правдоподобное исправление, применённое не на том уровне, — это путь, которым проблема на пятнадцать минут превращается в целый день. Отметьте интерфейс, адрес на нём, порт и транспорт. Эти четыре значения составляют весь входящий путь, и следующий раздел объясняет, где живёт каждое из них.
Найдите адрес, на котором слушает пакет
DSM нумерует порты Ethernet, и каждый несёт свой адрес. Страница VPN Server называет интерфейс, который использует служба OpenVPN, а сетевую панель показывает адрес, настроенный на этом интерфейсе. Читайте их в этом порядке, от службы наружу, чтобы описывать то, что слушает, а не то, что вы предполагаете использовать.
Служба привязывается к одному адресу. То, что оба порта подключены и активны, не заставляет службу отвечать на втором. Статический адрес на одном интерфейсе рядом с адресом DHCP на другом даёт два похожих значения, которые легко перепутать с первого взгляда, особенно если они различаются только последним октетом. Скопируйте адрес из панели, а не вводите его по памяти. Затем подтвердите на NAS, что на самом деле привязано к порту.
sudo ss -lunp | grep 1194Если этот вывод называет адрес, которого вы не ждали, переадресация направлена на неверный интерфейс, и всё остальное здесь — бухгалтерия. Исправьте правило, прежде чем читать дальше, иначе вы закончите отладкой сертификата из-за пакета, который так и не покинул маршрутизатор.
Исправьте переадресацию, затем следите за счётчиком
Редактируйте существующее правило переадресации, а не добавляйте второе для того же внешнего порта. Два правила могут существовать в таблице маршрутизатора одновременно, и всегда побеждает только одно, что превращает сеанс отладки в спор о том, какое настоящее. Направьте внутренний адрес на значение, прочитанное с NAS, и оставьте внутренний порт совпадающим с тем, на котором слушает служба.
Если DSM получает этот адрес по DHCP, сначала создайте резервирование. Изменение аренды тихо ломает переадресацию, которая работала вчера.
sudo tcpdump -i any -n udp port 1194Начните перехват до того, как клиент попытается подключиться, и читайте адрес источника во всём, что появится. Полное отсутствие означает, что что-то по пути его отбросило: переадресация, межсетевой экран DSM или интерфейс, на который она была направлена, и сертификаты не могут быть причиной, пока это так. Что-то, приходящее с публичного адреса клиента без ответа, означает, что NAS получил запрос и решил не отвечать. Это разные находки, и только вторая возвращает вас к настройкам самого пакета.
Только тогда смотрите на сертификаты и транспорт
Как только пакеты начнут приходить, повторно экспортируйте профиль после любого изменения сертификата, потому что старый файл всё ещё несёт удостоверяющий центр, с которым был создан. Профиль, отредактированный вручную под другой транспорт, оставляет клиента ждать слушателя, которого нет, и сообщает ту же общую ошибку, что и всё остальное. Сравните транспорт внутри профиля с транспортом, который пакет настроен обслуживать. Два профиля для двух транспортов — законный дизайн, а один профиль, отредактированный для обоих, — нет.
Проверяйте снаружи собственной сети как последний шаг, поскольку соединение изнутри LAN может удаться по пути, который вообще не касается переадресации.
Храните экспортированный профиль, адрес интерфейса и правило переадресации вместе в одной заметке. Когда адрес меняется, эта заметка — разница между исправлением и повторением. Ничто на этом пути не требовало переустановки пакета, что стоит помнить, прежде чем винить следующую перезагрузку.