Столкнулись с интересной проблемой у одного из заказчиков после перенастройки VPN сервера Windows Server 2012 с PPTP на L2TP/ IPSec (из за отключения поддержки PPTP VPN в iOS). Изнутри корпоративной сети VPN клиенты без каких-либо проблем подключаются к VPN серверу, а вот внешние Windows клиенты при попытке установить соединение с L2TP VPN сервером, выдают такую ошибку:
The network connection between your computer and the VPN server could not be established because the remote server is not responding. This could be because one of the network devices (e.g. firewalls, NAT, routers, etc) between your computer and the remote server is not configured to allow VPN connections. Please contact your Administrator or your service provider to determine which device may be causing the problem.
В других версиях Windows о наличии аналогичной проблемы могут свидетельствовать ошибки VPN подключения 800, 794 или 809.
Стоит отметить, что данный VPN сервер находится за NAT, а на маршрутизаторе настроен проброс портов, необходимых для работы L2TP:
- UDP 1701 — Layer 2 Forwarding Protocol (L2F) & Layer 2 Tunneling Protocol(L2TP)
- UDP 500
- UDP 4500 NAT-T – IPSec Network Address Translator Traversal
- Protocol 50 ESP
В правилах Windows Firewall VPN сервера эти порты также открыты. Т.е. используется классическая конфигурация. Для подключения используется встроенный VPN клиент Windows.
Если подключаться к этому же VPN серверу через PPTP, подключение успешно устанавливается.
VPN ошибка 809 для L2TP/IPSec в Windows за NAT
Как оказалось, проблема эта уже известна и описана в статье https://support.microsoft.com/en-us/kb/926179. По умолчанию встроенный VPN клиент Windows не поддерживает подключение к L2TP/IPsec через NAT. Дело в том, что IPsec использует протокол ESP (Encapsulating Security Payload) для шифрования пакетов, а протокол ESP не поддерживает PAT (Port Address Translation). Если вы хотите использовать IPSec для коммуникации, Microsoft рекомендует использовать белые IP адреса на VPN сервере.
Но есть и обходное решение. Можно исправить этот недостаток, включив поддержку протокола NAT—T, который позволяет инкапсулировать пакеты протокола ESP 50 в UDP пакеты по порту 4500. NAT-T включен по-умолчанию почти во всех операционных системах (iOS, Android, Linux), кроме Windows.
Если VPN сервер L2TP/IPsec находится за NAT, то для корректного подключения внешних клиентов через NAT необходимо на стороне Windows сервера и клиента внести изменение в реестр, разрешающее UDP инкапсуляцию пакетов для L2TP и поддержку (NAT-T) для IPsec.
- Откройте редактор реестра
regedit.exe
и перейдите в ветку:- Для Windows 10,8.1,7 и Windows Server 2016,2012R2,2008R2 — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent
- Для Windows XP/Windows Server 2003 — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPSec
- Создайте DWORD параметр с именем AssumeUDPEncapsulationContextOnSendRule и значением 2;
Примечание. Возможные значения параметра AssumeUDPEncapsulationContextOnSendRule:
- 0 – (значение по-умолчанию), предполагается, что VPN сервер подключен к интернету без NAT;
- 1 – VPN сервер находится за NAT;
- 2 — и VPN сервер и клиент находятся за NAT.
- Осталось перезагрузить компьютер и убедиться, что VPN туннель успешно создается.
Если и Windows VPN сервер и клиент находятся за NAT, нужно изменить это параметре на обоих системах.
Можно использовать командлет PowerShell для внесения изменений в реестр:
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesPolicyAgent" -Name "AssumeUDPEncapsulationContextOnSendRule" -Type DWORD -Value 2 –Force;
После включения поддержки NAT-T, вы сможете успешно подключаться к VPN серверу с клиента через NAT (в том числе двойной NAT).
В некоторых случаях для корректной работы VPN необходимо открыть дополнительное правило в межсетевом экране для порта TCP 1701 (в некоторых реализациях L2TP этот порт используется совмести с UDP 1701).
NAT-T не корректно работал в ранних редакциях Windows 10, например, 10240, 1511, 1607. Если у вас старая версия, рекомендуем обновить билд Windows 10.
L2TP VPN не работает на некоторых Windows компьютерах в локальной сети
Есть еще один интересный баг. Если в вашей локальной сети несколько Windows компьютеров, вы не сможете установить более одного одновременного подключения к внешнему L2TP/IPSec VPN серверу. Если при наличии активного VPN туннеля с одного клиента, вы попытаетесь подключиться к тому же самому VPN серверу с другого компьютера, появится ошибка с кодом 809 или 789:
Error 789: The L2TP connection attempt failed because the security layer encountered a processing error during initial negotiations with the remove computer.
Что интересно, эта проблема наблюдется только с Windows-устройствами. На устройствах с Linux/MacOS/Android в этой же локальной сети таких проблем нет. Можно без проблем одновременно подключиться к VPN L2TP серверу с нескольких устройств.
По информации на TechNet проблема связана с некорректной реализацией клиента L2TP/IPSec клиента в Windows (не исправляется уже много лет).
Для исправления этого бага нужно изменить два параметра реестра в ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRasManParameters и перезагрузите компьютре:
- AllowL2TPWeakCrypto – изменить на 00000001 (ослабляет уровень шифрования, для L2TP/IPSec используются алгоритмы MD5 и DES)
- ProhibitIPSec – изменить на 00000000 (включает шифрование IPsec, которое часто отключается некоторыми VPN клиентами или утилитами)
Для изменения этих параметров реестра достаточно выполнить команды:
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters" /v AllowL2TPWeakCrypto /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters" /v ProhibitIpSec /t REG_DWORD /d 0 /f
Это включает поддержку нескольких одновременных L2TP/IPSec-подключений в Windows через общий внешний IP адрес (работает на всех версиях, начиная с Windows XP и заканчивая Windows 10).
Всем привет! Сегодня мы будем разбирать, из-за чего возникает 809 ошибка при подключении к интернету (или VPN) и как её исправить. Данная проблема проявляется, когда компьютер не может связаться с конечным сервером через VPN тоннель L2TP подключения. Очень часто подобную ошибку замечают клиенты провайдера Билайн. Но также данный казус может возникать при подключении к частным или рабочим VPN серверам.
На самом деле косяк этой проблемы в операционной системе Windows. Дело в том, что VPN-клиент, который подключается к туннелю, не поддерживает L2TP/IPSec через NAT. И тут проблема кроется в IPSec при использовании шифрования ESP, а, насколько мы помним, ESP не поддерживает PAT, который и работает с адресацией через NAT.
NAT – это перевод внешних адресов во внутренние и наоборот. То есть при подключении к VPN-серверу клиент не может получить свой адрес, и получается дисконект. Но может быть проблема в закрытых портах или работе некоторых программ в винде. Далее я расскажу, как решить эту проблему.
Содержание
- ШАГ 1: Открытие портов
- ШАГ 2: Создания правила реестра
- ШАГ 3: Изменения параметров шифрования
- ШАГ 4: Отключение Xbox Live
- Ничего не помогло?
- Задать вопрос автору статьи
ШАГ 1: Открытие портов
В первую очередь, нам нужно открыть порты на брандмауэре, так как он может блокировать их. Смотрите, Билайн использует два типа VPN: L2TP и PPTP. PPTP используется реже, да и ошибка при нем данная не возникает. Для L2TP мы будем открывать несколько портов: 1701, 500, 1460 и 4500.
Ок, какие порты нам нужны, мы решили. Но какой протокол? – обычно используется UDP. Но если проблема останется, то создадим подобные правила и для TCP-протокола.
- Перейдите в «Панель управления». В Windows 10 данный раздел можно найти в поисковой строке.
- Переходим в раздел брандмауэра.
- Открываем доп. параметры.
- Кликаем ПКМ по входящим правилам и создаем одно.
- «Для порта».
- К сожалению, тут нельзя сразу выбрать два протокола. Сначала выделаем UDP. Ниже выделяем нижнюю галочку и вписываем порты: 1701, 500, 1460, 4500 (для L2TP). Если у вас PPTP, то указываем следующие порты: 1723, 1460, 4500.
- Разрешаем подключение.
- Тут оставляем все сети.
- Обязательно введите понятное название, чтобы в случае чего можно было быстро найти и удалить правило. В описании лучше указать номера портов и тип протокола
- А теперь проделываем те же самые действия, но только для исходящего подключения.
Если данный вариант не дал результата, то пробуем создать два аналогичных правила для входящего и исходящего подключения, но уже для TCP протокола. Если проблема осталась, то значит основа ошибки лежит именно в протоколе NAT-T – то есть или клиент находится за NAT, или сервер.
ШАГ 2: Создания правила реестра
В IPSec используется также ESP 50 протокол. Проблема в том, что данные пакеты не поддерживаются в Windows. Но мы можем обернуть эти пакеты по 4500 порту UDP. Тогда подключение должно появиться – это можно сделать через команду в реестре.
- Чтобы открыть редактор реестра, вам нужно найти на клавиатуре две кнопки (может иметь значок Windows) и английскую буковку R. Нажимаем на них одновременно и вписываем команду:
regedit
- Если вы не можете найти эти кнопки, то просто введите ту же команду в поиске.
- Теперь нужно открыть основной каталог «HKEY_LOCAL_MACHINE» и найти там раздел «SYSTEM». Далее переходим в «CurrentControlSet» и в ней ищем «Services». В самом конце просто нажмите по подразделу «PolicyAgent», чтобы вы увидели все параметры. Нажимаем на свободное поле справа правой кнопкой мыши, выбираем «Создать» – «Параметр DWORD (32 бита)».
- Называем параметр как:
AssumeUDPEncapsulationContextOnSendRule
- Даем значение «2».
- Жмем «ОК».
- Перезагружаем компьютер и проверяем подключение.
ШАГ 3: Изменения параметров шифрования
Есть такой глюк, что если вы уже где-то подключались с данного аккаунта к выделенному серверу, то на винде подключиться больше нельзя. Причем на других операционных системах (Linux, iOS или Android) такое не наблюдается. Данная проблема уже достаточно старая, и в Microsoft её никак не допилят. Но можно сделать это вручную. Опять идем в реестр по пути: HKEY_LOCAL_MACHINE – SYSTEM – CurrentControlSet – Services – теперь находим папку «RasMan» и открываем «Parameters».
Создаем два правила DWORD:
- AllowL2TPWeakCrypto – значение один (1).
- ProhibitIPSec – значение ноль (0).
Перезагружаемся, чтобы изменения вступили в силу. Если это не поможет, то откройте параметр «AllowL2TPWeakCrypto» и установите значение 0, чтобы выключить шифрование вообще. Опять перезагружаемся.
ШАГ 4: Отключение Xbox Live
На самом деле мы выполнили почти все, что нужно. Теперь подключение должно работать, но могут быть проблемы из-за одной службы, которая мешает подключению к серверу. Попробуем её выключить:
Через кнопки и R запускаем команду:
services.msc
Раздел «Службы» также можно запустить и через поиск.
Находим «Сетевую службу Xbox Live», заходим в неё и отключаем. Перезагружаем ОС.
Ничего не помогло?
В таком случае делаем комплекс мер:
- В первую очередь обновите операционную систему. Как я уже и говорил, данная проблема чаще всего возникает на винде, поэтому обновление может решить проблему.
- Windows 10: «Пуск» – «Параметры» – «Обновление и безопасность» – «Центр обновления Windows».
- Windows 7: «Пуск» – «Панель управления» – «Центр обновления Windows» – кнопка «Установить обновления».
- Если вы ранее устанавливали какие-то программы, которые работают с VPN или виртуальными сетевыми картами, то попробуйте выключить их в реестре или вообще удалить.
- Почистите компьютер от мусора – об этом очень подробно написано тут.
- Если проблема появилась внезапно, то можно попробовать выполнить «Восстановление системы» – через поиск или в «Панели управления» находим раздел «Восстановления» и запускаем «Восстановление системы». При этом выбираем самую раннюю точку.
Если ничего не помогает, то уже можно звонить провайдеру, возможно, проблема связана с удаленным сервером.
I have a Windows 2012 Server to which I am trying to open a L2TP VPN connection on a Windows 8.1 x64 client. I am using a pre-shared key.
I am well aware that this error usually pops up when the server is behind a NAT device, and indeed it is, but i have successfully been connecting to the server with the other clients that are running on All OS from Windows XP to Windows 8, so i have a feeling
that this detail is unrelated with the issue. I use the exact same settings, internet connection, etc, on the Windows 8.1 machine but my efforts are in vain.
I have spent countless hours searching the internet and attempting different solutions. I have found a handful of people experiencing this problem. Common advice is to:
1. Check firewall/antivirus settings
2. Check that pre-shared key is correct.
3. Modify registry to allow NAT Traversal with AssumeUDPEncapsulationContextOnSendRule=2.
4. Make sure «IPsec Policy Agent» and «IKE and AuthIP IPsec Keying Modules» services are running.
I can get XP, Vista, 7, 8 and even OS X clients to connect to the VPN on the same internet connection so 1 is out. So is No. 2, I double-checked it and again, it works on other machines. I did No. 3 and it made no difference. The services
are running as described in No. 4.
This is the first time i am configuring a VPN on windows 8.1… Is there something i am missing?
Thanks!
Иногда, при попытке запустить подключение VPN в Windows 7 может появится ошибка 809 с комментарием:»Нельзя установить связь по сети между компьютером и VPN сервером, поскольку удалённый сервер не отвечает». Чаще всего проблема возникает из-за ошибки самого пользователя. Дело в том, что сейчас чаще всего в домах и квартирах стоят роутеры, которые сами подключаются к серверу и раздают Интернет. Пользователь пытается параллельно с компьютера поднять ещё одно соединение и потому выскакивает ошибка 809 в Windows 7. С этим сталкивались многие абоненты Билайн. Поэтому если у Вас установлен роутер — не нужно поднимать ещё какие-либо соединения.
Вторая причина, по которой появляется ошибка подключения 809 по VPN L2TP — это брандмауэр Windows 7. Так как в нём по умолчанию не настроена правильно обработка VPN-соединения, система попросту блокирует его. Для решения можно либо полностью отключить брандмауэр Виндовс, что не совсем правильно, либо немного подправить реестр. Этим мы сейчас и займёмся.
Нажимаем комбинацию Win+R и вводим в строчку «Открыть» команду regedit.
Нажимаем кнопку «ОК». Должно появится окно редактора реестра Windows 7.
В древовидном списке в левой части окна нужно найти нужную ветку. В Windows XP:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPSec
В Windows 7,8,10:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent
Далее в правой части окна с помощью меню «Правка»>»Создать» Вам нужно создать параметр DWORD для 32-разрядной версии с именем AssumeUDPEncapsulationContextOnSendRule. Далее кликаем по нему правой кнопкой мыши и выбираем пункт меню «Изменить». В поле значение нужно указать одно из вот этих значений:
0 — значение по умолчанию. Запрет подключения к VPN-серверу, находящемуся за NAT
1 — Разрешает подключение, если за NAT находится только сервер. При этом важное условие — у клиента должен быть “белый” IP-адрес
2 — Разрешает VPN подключение, если за NAT находятся и сервер, и его клиент.
Обычно для того, чтобы исправить ошибку 809 при подключении к интернету Билайн, либо другого провайдера, использующего протокол VPN L2TP, достаточно поставить значение 2.
Перезагружаем Windows 7 и проверяем подключение к Интернету.
В интересах производственных процессов возникает вопрос обеспечения доступа пользователей к локальной сети предприятия через VPN.
Частным случаем реализации данной задачи является организация доступа через шлюз MikroTik по протоколу L2TP с использованием IpSec и ключа проверки подлинности (IPSec Secret). При этом при создании пользователей для доступа по VPN через сервер L2TP используется профиль SSTP.
Однако, как показала практика, возникают сложности с соединением, выражающиеся в отображении пользователю ошибки 809 при его попытке соединиться с локальной сетью, например:
Устранение данной ошибки является комплексным решением проблемы и включает в себя условно 3 этапа.
1. Модем. При работе из дома пользователи, как правило, используют домашний роутер, предоставленный провайдером услуг Интернет. Необходимо убедиться, что Ваш домашний роутер будет корректно обрабатывать протоколы L2TP и IpSec. Пример решения для одного из модемов приведён в этой заметке.
По личному опыту, этого было достаточно при работе в Linux.
2. Брандмауэр Windows, по умолчанию, блокирует необходимые для описываемого типа VPN-соединения соединения к определённым портам. Для обеспечения соединения нужно открыть доступ к портам UDP 500, 1701, 4500. Назначение этих портов:
500 – ISAKMP – Internet Security Association and Key Management Protocol;
1701 – Layer 2 Forwarding Protocol (L2F) & Layer 2 Tunneling Protocol (L2TP);
4500 – NAT-T – IPSec Network Address Translator Traversal.
Запустите оснастку управления брандмауэром Windows и нажмите на ссылку «Дополнительные параметры»:
Нужно создать 2 правила: для входящих подключений и исходящих подключений. Активизируйте соответствующий пункт в верхнем меню слева:
Далее в верхнем меню справа нажмите на «Создать правило»:
При запросе типа правила укажите, что данное правило создаётся для порта:
Укажите локальные порты UDP: 500, 4500, 1701
Аналогично сделайте и для другого вида подключения (в этом примере далее – для исходящего).
Попробуйте установить соединение. Если не помогло – работаем дальше.
3. Внесение измнения в реестр Windows.
Запустите редактор реестра (regedit) и пройдите в ветку
HKEY_LOCAL_MACHINE System CurrentControlSet Services Rasman Parameters
Создайте двоичный параметр DWORD с именем ProhibitIpSec и значением 1:
Перезагрузитесь. Попробуйте соединиться со своей сетью по VPN. Получилось?
Виртуальная частная сеть (VPN) — это универсальное решение для обеспечения безопасности и конфиденциальности в Интернете. Когда они работают, они великолепны, но когда они этого не делают, они могут оставить вас в замешательстве. Для VPN-подключений довольно часто возникают проблемы. Примерно существуют сотни различных кодов ошибок VPN, но в большинстве случаев появляются только несколько. Если вы используете устройство Windows и VPN, то весьма часто встречается ошибка VPN 809.
Эта ошибка обычно возникает, когда Windows не позволяет установить VPN через брандмауэр. Кроме того, если вы не используете брандмауэр, но находитесь на устройстве NAT, эта ошибка может появиться.
Трансляция сетевых адресов (NAT) предназначена для сохранения IP-адресов. Это позволяет частным IP-сетям с незарегистрированными IP-адресами подключаться к Интернету. NAT обычно работает на маршрутизаторе, соединяющем две или более сетей, и превращает незарегистрированную сеть в юридические адреса. Устройства NAT имеют особый способ трансляции сетевого трафика, и когда вы помещаете сервер за устройством NAT и используете среду IPsec NAT-T, вы можете получить эту ошибку.
Вы получите сообщение об ошибке с указанием;
Не удалось установить сетевое соединение между вашим компьютером и сервером VPN, поскольку удаленный сервер не отвечает.
Кроме того, когда появляется ошибка, журнал событий также не отображает никаких связанных журналов, потому что трафик не достигнет интерфейса WAN MX.
Вы можете выбрать следующие варианты устранения неполадок VPN Ошибка 809:
- Включите порты на вашем брандмауэре/маршрутизаторе
- Добавить значение в реестр Windows
- Отключить службы Xbox Live Networking
- Проверьте настройки PAP
- Отключить сторонние приложения
Давайте рассмотрим эти варианты устранения неполадок подробнее.
Вариант 1. Включите порты на вашем брандмауэре/маршрутизаторе
Код ошибки VPN «Всегда включен» 809 вызван тем, что порт PPTP (TCP 1723) или порт L2TP или порт IKEv2 (порт UDP 500 или 4500) заблокирован на сервере VPN или брандмауэре. Решение состоит в том, чтобы включить эти порты на брандмауэре или маршрутизаторе. Вы можете попробовать развернуть VPN-туннель на основе SSTP или OpenVPN у своего VPN-провайдера. Это позволит VPN-соединению беспрепятственно работать через брандмауэр, NAT и веб-прокси.
Вариант 2: Добавить значение в реестр Windows
При попытке установить VPN-соединение, если ваш MX находится за NAT, вам нужно добавить значение DWORD «AssumeUDPEncapsulationContextOnSendRule» в реестр Windows. Вот как это сделать:
1] Войдите в систему Windows Machine как «Администратор»
2] Щелкните правой кнопкой мыши «Пуск» и выберите «Выполнить»
3] Введите «regedit» и нажмите «Enter»
4] Найдите запись «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent»
5] Щелкните правой кнопкой мыши и создайте новое значение «DWORD» (32-разрядное).
6] Добавьте RegValue «AssumeUDPEncapsulationContextOnSendRule» и нажмите «Ok», чтобы сохранить изменения.
7] Измените новую запись и измените значение данных с «0» на «2».
8] Перезагрузите компьютер и проверьте соединение
Примечание. Это решение идеально подходит, когда ваш VPN-сервер и компьютерный клиент находятся за устройствами NAT.
Вариант 3. Отключение сетевых служб Xbox Live
Для пользователей Windows 10 антивирус может быть несовместим с ОС, из-за чего он отклоняет соединения IPsec. Служба Windows 10 может обеспечить единовременный доступ к L2TP/IPsec VPN, для решения этой проблемы выполните следующие действия:
1] В поле « Поиск » введите «Услуги».
2] В результатах нажмите «Услуги».
3] Найдите «Xbox Live Networking Services» и отключите его.
Ваше VPN-соединение должно работать, а ошибка VPN 809 должна исчезнуть.
Вариант 4. Проверьте настройки PAP
Выполните следующие действия, чтобы проверить правильность настроек PAP:
1] Нажмите «Пуск» и выберите «Настройки»
2] Выберите «Сеть и Интернет» и выберите «VPN».
3] Теперь вам нужно будет «Добавить VPN», указав имя подключения, имя пользователя и пароль.
4] Теперь на вкладке «Свойства» выберите «Безопасность», затем перейдите к «Расширенные настройки».
5] В разделе «Аутентификация» выберите «Разрешить эти протоколы», а затем отметьте только поле «PAP».
Теперь перезагрузите систему, чтобы подтвердить, если ошибка исчезла.
Вариант 5: отключить сторонние приложения
Иногда сторонние приложения на устройстве могут быть причиной причины ошибки VPN 809. Здесь вам придется индивидуально выяснить, какое приложение вызывает проблему. Это может приводить в бешенство, но как только вы отключите приложение преступника, ошибка должна исчезнуть.
Ошибка VPN 809 — это очень распространенная проблема VPN, с которой время от времени сталкивается каждый пользователь. Перечисленные выше варианты помогут вам решить эту проблему в кратчайшие сроки.
Материал из Wiki — Iphoster — the best ever hosting and support. 2005 — 2023
Перейти к:навигация, поиск
При подключении к ipsec/l2tp серверу — Ошибка 809 — Не удалось установить связь по сети между компьютером и VPN-сервером
На Windows системах 7, 8.x и 10 при подключении к ipsec/l2tp серверу возникает ошибка:
Ошибка 809: Не удалось установить связь по сети между компьютером и VPN-сервером, так как удаленный сервер не отвечает. Возможная причина: одно из сетевых устройств (таких как брандмауэры, NAT, маршрутизаторы и т.п.) между компьютером и удаленным сервером не настроено для разрешения VPN-подключений. Чтобы определить, какое устройство вызывает эту проблему, обратитесь к администратору или поставщику услуг
Решение — это внести 2 правки в реестр Windows и перезагрузить компьютер:
Запускаем CMD как Администратор и выполняем 2 команды: REG ADD HKLMSYSTEMCurrentControlSetServicesPolicyAgent /v AssumeUDPEncapsulationContextOnSendRule /t REG_DWORD /d 0x2 /f REG ADD HKLMSYSTEMCurrentControlSetServicesRasManParameters /v ProhibitIpSec /t REG_DWORD /d 0x0 /f и перезагрузить компьютер.
1 правка - разрешает работать если Вы находитесь за роутером за NAT. 2 правка - включает поддержку IPsec шифрования на Windows системах
Комментарии
Windows OS Hub / Windows 10 / Configuring L2TP/IPSec VPN Connection Behind a NAT, VPN Error Code 809
Due to disabling PPTP VPN support in iOS, one of my clients decided to reconfigure the VPN server running Windows Server 2012 R2 from PPTP to L2TP/IPSec. Internal VPN clients from inside LAN connect to the VPN server without any problems, however external Windows clients get the error 809 when trying to establish the connection with the L2TP VPN server:
Can’t connect to L2TP-IPsec-VPN-Server.hostname
The network connection between your computer and the VPN server could not be established because the remote server is not responding. This could be because one of the network devices (e.g. firewalls, NAT, routers, etc) between your computer and the remote server is not configured to allow VPN connections. Please contact your Administrator or your service provider to determine which device may be causing the problem.
In other Windows versions, the connection errors 800, 794 or 809 may indicate the same problem.
It is worth to note that the VPN server is behind a NAT, and the router is configured to forward L2TP ports:
- UDP 1701 — Layer 2 Forwarding Protocol (L2F) & Layer 2 Tunneling Protocol (L2TP)
- UDP 500
- UDP 4500 NAT-T – IPSec Network Address Translator Traversal
- Protocol 50 ESP
These ports are also open in the Windows Firewall rules for VPN connection. Those, the classic configuration is used. The built-in Windows VPN client is used for connection.
If you connect to the same VPN server via PPTP, the connection is successfully established.
VPN Error 809 for L2TP/IPSec on Windows behind NAT
As it turned out, the problem is already known and described in the article https://support.microsoft.com/en-us/kb/926179. The Windows built-in VPN client doesn’t support by default L2TP/IPsec connections through NAT. This is because IPsec uses ESP (Encapsulating Security Payload) to encrypt packets, and ESP doesn’t support PAT (Port Address Translation). If you want to use IPSec for communication, Microsoft recommends using public IP addresses on the VPN server.
But there is also a workaround. You can fix this drawback by enabling support for the NAT-T protocol, which allows you to encapsulate ESP 50 packets in UDP packets on port 4500. NAT-T is enabled by default in almost all operating systems (iOS, Android, Linux) except Windows.
If the L2TP/IPsec VPN server is behind a NAT device, in order to connect external clients through NAT correctly, you have to make some changes to the registry both on the server and client side to allow UDP packet encapsulation for L2TP and NAT-T support in IPsec.
- Open the Registry Editor (
regedit.exe
) and go to the following registry key:- Windows 10/8.1/Vista and Windows Server 2016/2012R2/2008R2 — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent
- Windows XP/Windows Server 2003 — HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesIPSec
- Create a DWORD parameter with the name AssumeUDPEncapsulationContextOnSendRule and the value 2;
Note. Possible AssumeUDPEncapsulationContextOnSendRule values are:
- 0 – (a default value) suggests that the server is connected to the Internet without NAT;
- 1 – the VPN server is behind a NAT device ;
- 2 — both VPN server and client are behind a NAT.
- Just restart your computer and make sure that the VPN tunnel is established successfully
[alert] If both Windows VPN server and client are behind NAT, you need to change this setting on both devices.
Also, you can use a PowerShell cmdlet to make changes to the registry:
Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesPolicyAgent" -Name "AssumeUDPEncapsulationContextOnSendRule" -Type DWORD -Value 2 –Force;
After enabling NAT-T support, you will be able to successfully connect to the VPN server from the client through NAT (including double NAT).
In some cases, for VPN to work properly, you need to enable an additional firewall rule for TCP 1701 (in some L2TP implementations, this port is used in conjunction with UDP 1701).
NAT-T didn’t work correctly in earlier Windows 10 builds, for example, 10240, 1511, 1607. If you have an older Windows version, we recommend you to upgrade the Windows 10 build.
Multiple L2TP VPN Connections from the same LAN
There is another interesting VPN bug. If your local network has several Windows computers, you cannot establish more than one simultaneous connection to an external L2TP/IPSec VPN server. If you try to connect to the same VPN server from another computer (with an active VPN tunnel from different device), error code 809 or 789 will appear:
Error 789: The L2TP connection attempt failed because the security layer encountered a processing error during initial negotiations with the remove computer.
Interestingly, this problem only occurs on Windows devices. On Linux/MacOS/Android devices on the same local network, there are no such problems. You can easily connect to the VPN L2TP server from multiple devices at the same time.
According to TechNet, the issue is related to incorrect implementation of the L2TP/IPSec client on Windows (not fixed for many years).
To fix this bug, you need to change two registry parameters in the HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRasManParameters registry key and restart your computer:
- AllowL2TPWeakCrypto – change to 00000001 (allows weak encryption algorithms, for L2TP/IPSec the MD5 and DES algorithms are used);
- ProhibitIPSec – change to 00000000 (enables IPsec encryption, which is often disabled by some VPN clients or system tools).
Run the following command to change apply these registry changes:
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters" /v AllowL2TPWeakCrypto /t REG_DWORD /d 1 /f
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesRasmanParameters" /v ProhibitIpSec /t REG_DWORD /d 0 /f
This enables support for concurrent L2TP/IPSec VPN connections on Windows through a shared public IP address (works on all versions from Windows XP to Windows 10).
A Virtual Private Network (VPN) is a one-stop solution for Internet safety and privacy needs. When they work, they are great, but when they don’t, they can leave you baffled. It’s quite a common thing for VPN connections to occasionally experience problems. Roughly there are hundreds of different VPN error codes that exist, but only a few appear in the majority of cases. If you use a Windows device and a VPN, then it isn’t uncommon to come across VPN Error 809. You receive an error message stating;
The network connection between your computer and the VPN server could not be established because the remote server is not responding.
This error is normally caused when Windows doesn’t allow you to establish a VPN through your firewall. Also, if you don’t use a firewall but are on a NAT device, this error may pop-up.
Network Address Translation (NAT) is meant for IP address conservation. It permits private IP networks with unregistered IP addresses to connect to the internet. NAT normally operates on a router, connecting two or more networks, and alters the unregistered network into legal addresses. NAT devices have a specific way of translating network traffic, and when you put a server behind a NAT device and use the IPsec NAT-T environment, you may get this error.
Besides, when the error appears, the event log too won’t display any related logs because the traffic won’t reach the MX’s WAN interface.
Fix VPN Error 809 on Windows 11/10
You can opt for following options for troubleshooting VPN Error 809:
- Enable the ports on your firewall/router
- Add value to the Windows registry
- Disable Xbox Live Networking services
- Check PAP settings
- Disable third-party apps
The network connection between your computer and the VPN server could not be established because the remote server is not responding
Let’s look at these troubleshooting options in detail.
1] Enable the ports on your firewall/router
An ‘Always On’ VPN Error Code 809 is caused by PPTP port (TCP 1723), or port L2TP or IKEv2 port (UDP port 500 or 4500) being blocked on the VPN server or the firewall. The solution is to enable these ports on the firewall or your router. You can try deploying the SSTP or OpenVPN based VPN tunnel on your VPN provider. This will allow the VPN connection to seamlessly work across the firewall, NAT, and web proxies.
2] Add value to the Windows registry
While trying to establish your VPN connection, if your MX is placed behind a NAT, you will have to add the “AssumeUDPEncapsulationContextOnSendRule” DWORD value to the Windows registry. Here’s how to do it:
1] Login to Windows Machine as ‘Admin’
2] Right-click ‘Start’ and select ‘Run’
3] Type ‘regedit’ and press ‘Enter’
4] Locate the entry:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent
5] Right-click and Create a new ‘DWORD’ (32-bit) value.
6] Add RegValue “AssumeUDPEncapsulationContextOnSendRule” and click ‘Ok’ to save changes.
7] Modify the new entry and change Value Data from “0” to “2“.
8] Reboot the computer and test the connection
Note: This solution is perfect when your VPN’s server and the computer client are behind NAT devices.
3] Disable Xbox Live Networking services
For Windows 10 users, the anti-virus can be incompatible with the OS making it reject IPsec connections. A Windows 10 service may lump access to the L2TP/IPsec VPN, to resolve this follow the below steps:
1] In the ‘Search Box’ type ‘Services’.
2] From the results, click on ‘Services’.
3] Locate ‘Xbox Live Networking Services’ and disable it.
Your VPN connection should work, and the VPN Error 809 should disappear.
4] Check PAP settings
Follow these steps to check if your PAP settings are configured correctly:
1] Click ‘Start’ and select ‘Settings’
2] Select ‘Network and Internet’ and pick ‘VPN’
3] Now, you will need to ‘Add A VPN’ by providing a connection name, username, and password.
4] Now from the ‘Properties tab’, select ‘Security’, then got to the ‘Advanced Settings’ option.
5] Under ‘Authentication’, select ‘Allow these protocols’ and then tick only the ‘PAP’ box.
Now restart the system to confirm if the error is gone.
Related:
- VPN Error 720, Error connecting to a VPN Connection
- VPN error 812, Connection prevented because of a policy configured on RAS/VPN server
5] Disable third-party apps
Sometimes, third-party apps on the device can be the reason behind the cause of VPN Error 809. Here you will have to individually find out which app is causing the problem. This can be an infuriating option, but once you disable the culprit app, the error should be gone.
VPN Error 809 is a very common VPN problem which every user will face from time to time. The above-listed options will help you resolve this issue in just no time.
Related read: Common VPN error codes troubleshooting & solutions.