L2TP/IPsec не работает, когда служба IKEEXT отключена
Нет IKEEXT — нет IPsec: L2TP и IKEv2 терпят неудачу, тогда как другие типы по-прежнему подключаются. Проверьте службу и затем выясните, что её отключило, прежде чем править профиль.
Один ноутбук подключается к шлюзу IKEv2, но терпит неудачу с шлюзом L2TP/IPsec, и ошибка появляется до того, как отправлено какое-либо имя пользователя. Профиль обычно первый подозреваемый и обычно неверный. Windows выполняет обмен ключами IPsec в службе, и пока эта служба отключена, у встроенного клиента нет стека, с которым можно вести переговоры. Проверьте службу, прежде чем трогать хоть одно поле профиля, и затем выясните, что её отключило.
Служба, стоящая за сбоем
IKE and AuthIP IPsec Keying Modules, отображаемая в списке служб как IKEEXT, выполняет обмен ключами и удерживает сокеты UDP 500 и 4500 в Windows. Отключите её, и L2TP/IPsec и IKEv2 оба теряют своего переговорщика, тогда как PPTP и SSTP могут продолжать работать, потому что от неё не зависят. Это разделение объясняет, почему пользователь может сообщить, что один тип VPN работает, а другой мёртв на той же машине. Служба является частью операционной системы, поэтому никакой параметр профиля не может её заменить.
Освобождение этих двух портов — побочный эффект, порождающий плохие советы. Инструмент или сообщение на форуме замечает, что 500 и 4500 заняты, останавливает службу, чтобы их освободить, и тем самым молча удаляет IPsec с узла. Оба эффекта — одно действие, поэтому любое руководство, рекомендующее очистить порты, описывает обмен, а не ремонт.
Верните службу на место без догадок
Задайте диспетчеру служб два вопроса: каков тип запуска и каково текущее состояние. Первый говорит, вернётся ли служба после перезагрузки; второй — работает ли она сейчас. Выполните оба запроса из командной строки с повышенными правами, чтобы та же оболочка могла затем изменить настройку.
sc qc ikeext
sc query ikeext
Тип запуска Disabled объясняет весь симптом, и решение — вернуть его в Automatic и запустить службу. В консоли «Службы» запись отображается под отображаемым именем IKE and AuthIP IPsec Keying Modules, поэтому поиск IKEEXT в этом списке ничего не находит. Перезагрузитесь, если служба была запущена уже после того, как неудачное подключение успело произойти, потому что стек, инициализированный в таком порядке, может отказывать способами, которые кажутся не связанными.
sc config ikeext start= auto
net start ikeext
Что снова её отключает
Некоторые сторонние VPN-пакеты поставляют собственную реализацию IPsec и отключают IKEEXT при установке, после чего клиент Windows перестаёт работать. Удаление другого продукта восстановило L2TP/IPsec на машинах, где правка профиля ничего не давала, и то же самое сделала переустановка без конфликтующего компонента. Служба была отключена при установке, а не переключена пользователем.
Групповая политика тоже может закрепить тип запуска; в этом случае локальное изменение откатывается при следующем обновлении, и администратор, владеющий политикой, должен его изменить. Записывайте тип запуска до перезагрузки, после перезагрузки и после обновлений другого продукта, каждый раз с датой. Значение, которое постоянно возвращается к Disabled, выдаёт своего владельца по схеме, а не по догадкам.
Сначала прочтите этап, затем журнал
Когда служба работает, этап сбоя решает, куда смотреть дальше. Задержка во время IKE обычно означает, что UDP 500 или 4500 так и не достиг сервера, либо что сервер находится за NAT без соответствующей настройки инкапсуляции. Дойти до запроса учётных данных и потерпеть там неудачу — это проблема аутентификации PPP, а не IPsec. Туннель, который поднимается и ничего не достигает, — это сбой маршрутизации или раздельного туннеля, и только первый из этих трёх живёт в профиле VPN.
Профили с сертификатом добавляют собственный этап. Клиент должен доверять издающему центру, а сертификат должен называть проверяемый сервер; когда любое из двух условий не выполняется, диалог всё равно сообщает об ошибке начального согласования, поэтому именно журнал событий показывает настоящую причину. Прочтите запись в журнале до правки профиля, потому что диалог сжимает несколько разных сбоев в одну фразу. Просроченный сертификат даёт тот же диалог, что и отключённая служба, и поэтому запись в журнале важна.
Запишите сбойный этап, текст ошибки и отметку времени для каждой попытки. Эти три поля отделяют проблему доступности от проблемы аутентификации и от проблемы маршрутизации, и они превращают следующее изменение в решение, а не в догадку.
Чего не может доказать локальный ремонт
Восстановление службы исправляет ту половину пути, которая находится на ноутбуке. Работающая служба доказывает только локальную половину: удалённая сторона всё ещё должна принять выбранное предложение, переданные учётные данные и адрес источника, с которого приходит пакет. Ничто, сделанное на ноутбуке, не компенсирует межсетевой экран, который отбрасывает UDP 500 до того, как он достигнет партнёра. Успешное состояние службы — это предварительное условие, а не доказательство того, что туннель поднимется.
Отключать IKEEXT ради освобождения портов можно оправдать, только если вы принимаете, что IPsec-VPN Windows перестанут работать. Это решает конфликт портов, убирая функцию, которой был нужен порт, и такое редко бывает обменом, который задумал пользователь. Прежде чем что-либо менять, подтвердите, что служба присутствует, установлена в Automatic и работает, что второй стек IPsec не установлен и что предварительно общий ключ или цепочка сертификатов соответствует шлюзу.
- IKEEXT присутствует, установлена в Automatic и работает до подключения клиента.
- Ничто другое не удерживает UDP 500 или 4500.
- От старого клиента не остаётся второго стека IPsec.
- Ключ или цепочка сертификатов соответствует конфигурации шлюза.
- Сбойный этап был записан до правки профиля.