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

Июль, 07th 2019Рубрика: Windows 30270
Подписаться на комментарии по RSS

Проблема при работе с 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.

К сожалению, добавление в реестр параметра DWORD с именем UDPEncapsulationContextOnSendRule и значением (2), о котором также написано в статье, проблемы не решает.

Параметр UDPEncapsulationContextOnSendRule добавляется в ветку реестра:

  • для Windows XP — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec
  • для Windows Vista/7/8/10 — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent

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

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

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

Если считаете статью полезной,
не ленитесь ставить лайки и делиться с друзьями.

Комментариев: 8

  1. 2019-09-30 в 21:24:25 | Аноним

    Месяц я мучился с WINDOWS 10 Pro !!!!!!

    [HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters]

    "ProhibitIpSec"=dword:00000000 !!!!!!

    "AllowL2TPWeakCrypto"=dword:00000001

  2. 2019-12-16 в 16:55:35 | Anon

    Мелкософтцы запарили своими багами

  3. 2020-05-07 в 20:37:15 | Спасибо тебе Аноним

    Спасибо дружище!

    Смог наконец то избавиться от ошибки 809.

    VPN на Server 2008 R2, клиент Windows 10

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters]

    «AllowL2TPWeakCrypto»=dword:00000001

    «ProhibitIPSec»=dword:00000000

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec

    «AssumeUDPEncapsulationContextOnSendRule»=dword:00000002

  4. 2020-06-17 в 13:34:43 | TIM

    2 недели мучился, на Windows 7, Windows 10

    [HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters]

    "ProhibitIpSec"=dword:00000000 !!!!!!

    "AllowL2TPWeakCrypto"=dword:00000001

    СПАСИБО параметры народ)

  5. 2020-06-25 в 09:53:21 | Grey

    У меня получилось так. VPN на Server 2008 r2, клиенты на Win 7 и 10. Все за NATом.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolisyAgent

    «AssumeUDPEncapsulationContextOnSendRule»=dword:00000002

    Однако клиенты на мобильном интернете не могут подключиться по L2TP, а на Мегафоне и по PPTP.

  6. 2022-10-30 в 19:35:36 | Аноним

    Где меняете на сервере или в клиентких пк? Меняю на сервере со смарта перестает подключается. Меняю на клиентских пк - все равно не подрубается

  7. 2022-11-03 в 10:58:33 | dre@mer]]>avatar]]>

    не понял вопрос, у вас совсем не подключается или только когда одновременно несколько клиентов подключается соединение отваливается?

  8. 2023-11-10 в 11:56:55 | Вячеслав

    Проделал все эти манипуляции на двух компьютерах. Все равно подключиться может только один. На обоих Win10, выходят в Интернет через один роутер.

ваш комментарий будет опубликован после проверки
на указанный адрес будет отправлено письмо с кодом активации. Вы можете настроить собственный профиль и стать активным участником или автором.