l2tp+ipsec NAT

Обсуждение оборудования и его настройки
Ответить
ladnenko
Сообщения: 12
Зарегистрирован: 21 апр 2021, 12:25

Добрый день.
Изображение

Итак слева есть компьютеры они идут к микротику 192.168.0.1 он соединен по VPN каналу с микротиком 192.168.1.1. VPN каналом является l2tp в котором канал IPSec.
Проблема в том, что когда компьютеры слева заходят на сервак. Сервер их видит под ip микротика 192.168.1.1.
Таким образом я к примеру не могу на сервере прописать правило, что компьютер 192.168.0.2 может заходить, а компьютер 192.168.0.3 не может. Так как сервак их обоих видит как 192.168.1.1 (это пример, не надо писать, что эту задачу можно решить фаерволом микротика)

Надо сделать так чтобы ip адреса компов слева не становились 192.168.1.1
Я подозреваю, что это настройки NAT, но я не уверен.

Пожалуйста, помогите.


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Только IPSec снаружи, L2TP - внутри.

И да, это настройки NAT.
C большой долей вероятности настраивали Hairpin-NAT для доступа к серверу по внешнему IP, но слегка поскупились на дополнительные условия в правиле.


Telegram: @thexvo
ladnenko
Сообщения: 12
Зарегистрирован: 21 апр 2021, 12:25

xvo писал(а): 21 апр 2021, 13:01 Только IPSec снаружи, L2TP - внутри.

И да, это настройки NAT.
C большой долей вероятности настраивали Hairpin-NAT для доступа к серверу по внешнему IP, но слегка поскупились на дополнительные условия в правиле.
l2tp по внешнему ip адресу конектится, а ipsec по внутренним
Hairpin-NAT - не настраивал
к серверу доступ по внешним ip адресам конечно нет.


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

ladnenko писал(а): 21 апр 2021, 13:27 а ipsec по внутренним
Эмм, тогда вопрос - зачем он вообще?

Экспорт секции с NAT приложите.


Telegram: @thexvo
ladnenko
Сообщения: 12
Зарегистрирован: 21 апр 2021, 12:25

xvo писал(а): 21 апр 2021, 14:05
ladnenko писал(а): 21 апр 2021, 13:27 а ipsec по внутренним
Эмм, тогда вопрос - зачем он вообще?

Экспорт секции с NAT приложите.
Ты посеял во мне сомнения, пришлось перепроверять. Все правильно сделано. Создается канал, а в нем канал шифрования по которому летают шифрованные пакеты. Если надо пакеты зашифровать то в ipsec пускаешь, если нет то в l2tp.
А как ты говоришь, вот тогда не ясно зачем в шифрованном канале, поднимать l2tp, если и так все шифруется.
ladnenko писал(а): 21 апр 2021, 13:27 Экспорт секции с NAT приложите
/ip firewall nat srcnat, dst.address=192.168.1.0/24, action = masqerade

Я вот вычитал что надо за место masqerade сделать accept.
Но чето я не понимаю ломается все или нет. Но не помогает.


ladnenko
Сообщения: 12
Зарегистрирован: 21 апр 2021, 12:25

http://routeworld.ru/set-i-internet/web ... rotik.html

Проблема NAT
Точнее это даже не проблема, а следствие настройки. Создавая правило с действием masquerade для out-interface L2TP мы сталкиваемся с тем, что уходящие с него пакеты меняют свой родной src.address из пулов 192.168.30.0/24 и 192.168.31.0/24 на IP, который присвоен L2TP-соединению.
Допустим, L2TP соединениям присваиваются IP из пула 192.168.29.0/24, и вот поднятому виртуальному интерфейсу выдан IP 192.168.29.252. Пакеты по велению раут-таблицы лезут на него и теряют свои уникальные src.address 192.168.31.51...52...251...etc., они заменятся адресом интерфейса из VPN-пула. Здесь и возникает проблема. Устройство на другой стороне будет пытаться адресовать ответный трафик не оригинальному IP, а всё тому же адресу L2TP-интерфейса. Всему виной правило NAT превратившее всё многообразие хостов 192.168.31.0/24 в скромный 192.168.29.252:
[admin@MT1] > ip firewall nat
[admin@MT1] /ip firewall nat> add chain=srcnat out-interface=your_l2tp_connection action=masquerade

Просто отключить правило? Но тогда для хостов вообще упадет железный занавес. Нужно разрешить пакетам ходить туда, но продиктовать более удобные условия визы. Разберемся во всех вариантах натирования трафика мы в следующий раз, а пока по нашему вопросу.
Вместо masquerade нужно использовать просто action=accept. В чем разница? Маскарад заменяет адрес отправителя на первый адрес out-interface, который в нашем случае является айпишником туннеля. А вот действие accept, говорит, что пакеты обрабатывать не нужно, как раз таки это является залогом правильной работы IPSec. Вот и всё, в итоге правило должно выглядеть так:
[admin@MT1] > ip firewall nat
[admin@MT1] /ip firewall nat> add chain=srcnat out-interface=your_l2tp_connection action=accept


Вот именно эта проблема у меня и есть. Я сделал accept, но все равно не пашет. Может надо микроты ребутнуть...


ladnenko
Сообщения: 12
Зарегистрирован: 21 апр 2021, 12:25

А ну да, все заработало.


xvo
Сообщения: 4204
Зарегистрирован: 25 фев 2018, 22:41
Откуда: Москва

Поток сознания... :-)

Маскарад делается для трафика уходящего в wan-интерфейс: из ваших внутренних адресов - в адрес, который выдал провайдер.
Маскарадить трафик между двумя вашими сетями в общем случае вообще не надо, ни в одну из сторон.

А вот это ваше правило

Код: Выделить всё

/ip firewall nat chain=srcnat dst-address=192.168.1.0/24 action=masquerade
делало именно то, что вы описывали в вашем первом посте - весь трафик во внутреннюю сеть для неё выглядел исходящим из самого роутера. Какой цели оно у вас служило изначально - я не знаю.

Теперь касательно l2tp и ipsec.
В случае, когда ipsec снаружи - он несет только транспортную функцию, а l2tp - туннельную.
И преимущество такого туннеля перед ipsec в туннельном режиме, что на l2tp вешаются адреса и трафик через него нормально маршрутизируется обычными средствами, без всяких политик.
В вашем же случае один туннель лежит внутри другого туннеля, и бог с ним с лишним оверхедом, самое главное, что внешний туннель небезопасен.
Ну и вообще, предположим, что вам действительно жизненно необходимо, чтобы шифровалась только часть трафика (допустим, не тянет железка, если шифровать весь) все равно не понятно зачем тогда ipsec пихать внутрь l2tp - лежал бы себе "рядом".


Telegram: @thexvo
Ответить