IKEv2\. Не подключаются клиенты за NAT



  • Доброго дня!
    PfSense 2.3.4, поднимаю vpn IKEv2. Пользовался этим howto https://forum.pfsense.org/index.php?topic=127457.0
    Все прекрасно работает, если клиент (windows разных версий, android) имеет белый IP или NAT 1:1.
    Если Windows клиент оказывается за NAT подключения не происходит. На клиенте ошибка 809 (сервер не отвечает), в Wireshark не вижу ответа от сервера, вижу ответ от шлюза: Type: 3 (Destination unreachable). При этом netcat утверждает что наружу все открыто 4500 (ipsec-msft) open, 500 (isakmp) open. Да и Android с клиентом strongSwan из той же сети нормально подключается.
    Можно ли с этим что-то поделать?

    Вот тут https://doc.pfsense.org/index.php/L2TP/IPsec есть предупреждение "Users have reported issues with Windows L2TP/IPsec clients behind NAT. If the clients will be behind NAT, Windows clients will most likely not function. Consider an IKEv2 implementation instead." Я так полагаю, что IKEv2 с натом должен нормально работать.



  • Доброе.
    Исп. OpenVPN. Проблем особо нет.



  • werter, спасибо, нет возможности. Задача - использовать нативные средства ОС (window, macos).



  • Вкл. логирование fw на пф и смотрите что он там блокирует.



  • Мне кажется что проблема тут не в Pf, а в клиенте или fw клиента.
    До Pf пакеты будто бы вообще не доходят. Я не вижу попыток подключения.
    Мне бы локализовать проблему. Как правильно под Виндой проверить открыт ли наружу 500/udp порт? Виндовому netcat'у как-то не верится.
    Я бы и спрашивать не стал, меня смущает, что андройдовский strongSwan  из этой же сети норм подключается.

    порт однозначно открыт, с того же netcat на сервере я вижу подключения на 500 порт 15:30:26.484560 IP х.х.х.х.54068 > х.х.х.х.500: UDP, length 5
    Вероятно, что-то с NAT-T, т.к. роутеров несколько по пути…



  • Используйте "имя" хоста для идентификации.
    Т.е. явным образом на хосте за натом укажите идентификатор, это может быть IP.




  • smils, спасибо.
    Попробовал с настройкой как на скриншоте, к сожалению, ничего не изменилось.
    И я не очень понял "на хосте за натом укажите идентификатор" предполагается, что нужно сделать настройку на клиенте? В стандартном клиенте нет такой настройки.

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



  • И я не очень понял "на хосте за натом укажите идентификатор" предполагается, что нужно сделать настройку на клиенте? В стандартном клиенте нет такой настройки.

    Это клиент windows. Да, такой настройки нет. :(

    Посмотрел FAQ, скорее вот ваш метод IKEv2_with_EAP-MSCHAPv2



  • Это и есть мой метод. Единственное, с авторизацией на RADIUS.
    Мне бы получить подтверждение (или опровержение) тому, что эта схема действительно рабочая, есть пример реализации и т.п. Мне не принципиально использовать PfSense, для дома он не плох, но, вероятно корпоративный уровень пока еще уступает.
    Как писал в первом посту, меня смутила заметка в официальной доке о том, что есть проблемы с L2TP за нат, вместо него рекомендуется использовать IKEv2.



  • Зачем L2TP ?
    Если сделать проcто по wiki?



  • smils, простите, но мне кажется вы даже не читаете, что я пишу.
    У меня поднят VPN сервер с использованием протокола IKEv2. Сделано все по вики, оф. доке, все хорошо, кроме того, что windows клиенты находящиеся за NAT не могут подключиться. В официальной документации для настройки VPN по протоколу L2TP (не IKEv2, который использую я) есть указание, что наблюдаются проблемы как у меня - windows клиенты за нат не могут подключиться, возможно это актуально и для этого протокола.
    Отсюда вопрос: если знаете как это поправить, помогите пожалуйста. Если есть примеры реализации (как успешные, тогда я буду искать решение, так и не успешные, тогда я сменю программно аппаратную платформу), сообщите о них, пожалуйста.
    Спасибо.