[freebsd] l2tp за NAT'ом (без IPSEC)

Eugene Grosbein eugen at grosbein.net
Wed Apr 12 17:37:37 EEST 2017


12.04.2017 7:38, Irina Liakh пишет:
> Добрый день всем!
> 
> Помогите, пожалуйста, разобраться, или подскажите, если это всем давно
> известно)
> 
> Есть mpd, настроен как клиент, тип линка - l2tp. IPSEC не задействован.
> Машина находится в LAN и NAT'ится ближайшим хопом - сервером, имеющим выход
> к VPN-серверу.
> Туннель поднимается, в логах все ок. Но по туннелю не ходят TCP и UDP
> (пинги ходят).  При попытке установить TCP-соединение с этой машины,
> tcpdump показывает исходящий SYN, входящий SYN ACK, но исходящего ACK нету,
> как будто не воспринимается SYN ACK. Через время повторно уходит SYN и т.д.
> С UDP похожая ситуация. Например, если запустить команду "host ...",
> tcpdump показывает исходящие DNS-запросы, приходящие DNS-ответы,
> но команда выдает:
> 
> # host google.com 8.8.8.8
> ;; connection timed out; no servers could be reached
> 
> В качестве NAT'а пробовались pf и ipfw, результат одинаковый.
> Если подключить машину не через NAT, то все работает.
> Система FreeBSD 10.3-RELEASE-p11 (пробовалась и 11.0), на сервере с NAT'ом -
> FreeBSD 11.0.
> 
> Почему туннель не работает через NAT?

Стандартная ошибка - художественное изложение своими словами проделанной
диагностики и полное отсутствие по-настоящему необходимых деталей.
Не надо так.

Надо добавть вывод команд ifconfig, ipfw show, tcpdump - со всеми аргументами,
даже если кажется, что это не нужно - на самом деле, нужно.

А по существу - входящие пакеты дропаются. Если tcpdump -s0 видит входящие
пакеты на ngX с верными контрольными суммами, то первый подозреваемый - пакетный фильтр.
Разница "с NAT" и "без нат" может быть в чём угодно, например некорректные
правила файрвола, не учитывающие изменения имени интерфейса при смене схемы.
Ну или что угодно ещё.




More information about the freebsd mailing list