Найти тему
mdex-nn.ru

Проблема при работе с L2TP/IPSec под Windows которая не решается годами

Изначально, не планировал выделять для данного материала отдельный пост, но так как проблема не решается годами, решил рассказать о ней чуть подробнее. Проблема заключается в том, что из локальной сети, имеющей единственный выход в Интернет, невозможно установить одновременно более одного соединения к внешнему L2TP/IPSec VPN серверу с компов под управлением Windows.

Допустим, у вас заведено несколько пользователей на внешнем VPN L2TP сервере. По отдельности, каждый из них спокойно устанавливает соединение с сервером и работает стабильно, без сбоев. Любые попытки одновременной работы с VPN сервером других пользователей сети, использующих один внешний IP, прерывают работу друг друга, возвращая в журнал Windows код ошибки 809.

Наблюдается такой эффект исключительно на компьютерах под управлением ОС Windows, начиная с XP и заканчивая «десяткой». Причём на Linux и MacOS всё прекрасно работает вне зависимости от того, сколько одновременно клиентов подключается к удалённому L2TP/IPSec серверу. Так что это проблема не в настройках VPN сервера или роутера, как пишут на многих форумах (да и сами мелкомягкие), а именно в некорректной работе встроенного L2TP/IPSec клиента на Windows.

Честно говоря, ранее эта проблема обходила меня стороной. Всегда использовал OpenVPN и столкнулся с ней впервые только сейчас, после поднятия L2TP VPN-сервера на роутере Keenetic. После чего и было принято решение объединять сети офисов между собой, а не давать доступ отдельным клиентам, но об этом расскажу в следующей статье.

Есть ли решение проблемы при работе с L2TP/IPSec в Windows?

Но неужели Microsoft не знает о проблеме? Знает. Как оказалось, проблема давно известна и описана в статье https://support.microsoft.com/en-us/kb/926179. Но вот с решением беда...

Если совсем кратко, то там говорится что в случае, когда VPN сервер L2TP/IPsec находится за NAT, для корректного подключения внешних клиентов через NAT необходимо на стороне сервера и клиента внести изменение в реестр, разрешавшее UDP инкапсуляцию пакетов для L2TP и поддержку (NAT-T) для IPsec.

К сожалению, добавление в реестр параметра UDPEncapsulationContextOnSendRule 2, о котором также написано в статье, проблемы не решает. В сети можно найти упоминание пары дополнительных ключей реестра и отключении одной службы, связанной с играми, но вся эта неведомая магия не работает. Как только появляется другой клиент под виндой, твоё соединение отваливается.

Чтобы получить хоть какую-то пользу (кроме моего негативного опыта) от моего поста, собрал несколько ссылок по теме L2TP/IPsec и NAT-T в Windows:

Подписывайтесь на канал и узнавайте первыми о новых материалах, опубликованных на сайте.

ЕСЛИ СЧИТАЕТЕ СТАТЬЮ ПОЛЕЗНОЙ,
НЕ ЛЕНИТЕСЬ СТАВИТЬ ЛАЙКИ И ДЕЛИТЬСЯ С ДРУЗЬЯМИ.
https://mdex-nn.ru/page/problema-l2tpipsec-v-windows.html