L2TP+IPSEC и несколько NAT

Раздел для тех, кто начинает знакомиться с MikroTik
Правила форума
Как правильно оформить вопрос.
Прежде чем начать настройку роутера, представьте, как это работает. Попробуйте почитать статьи об устройстве интернет-сетей. Убедитесь, что всё, что Вы задумали выполнимо вообще и на данном оборудовании в частности.
Не нужно изначально строить Наполеоновских планов. Попробуйте настроить простейшую конфигурацию, а усложнения добавлять в случае успеха постепенно.
Пожалуйста, не игнорируйте правила русского языка. Отсутствие знаков препинания и неграмотность автора топика для многих гуру достаточный повод проигнорировать топик вообще.

1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.
Ответить
roman.ilinets
Сообщения: 5
Зарегистрирован: 12 авг 2021, 00:21

Здравствуйте уважаемые форумчане.

Хотел бы получить советы или решение (если кто делал) вот по какому вопросу.

Нужно организовать защищенный ipsec l2tp туннель между Mikrotik RB951 и Cisco 2811.
Вводная такая:

1. Циска имеет белый ip, на ней поднял ipsec и vpn сервер
2. Микротик имеет серый ip.
3. Между микротиком и внешним миром стоит еще один роутер, в который воткнута sim-карта оператора мобильной связи, который обеспечивает выход в интернет.
4. Микротик получает свой внешний серый адрес от 3g-роутера по dhcp.
5. На микротике и 3g-роутере включен NAT.

Т.е. схема получается такая:
NAT (микротик) -> NAT(3g-роутер) -> NAT(сотовый оператор) -> интернет -> Cisco

В чем проблема:
IPSEC поднимается, но l2tp туннель внутри него нет. Если отключить ipsec и пустить голый l2tp, то все работает нормально.

Задача - все таки обернуть l2tp в ipsec вот в такой конфигурации.

P.S. Доступ ко всему оборудованию из вышеприведенной цепочки есть. 3g-роутеры разные (zyxel, huawei, asus, какие-то от МТС и Билайн). Всего объектов с такой, простите, ректальной конфигурацией несколько десятков.

Прошу вашей помощи, надеюсь на оперативный ответ.

Заранее спасибо.


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

Если IPSec поднимается, а L2TP внутри него - нет, то это скорее надо смотреть, чтобы на циске был открыт 4500 порт. То, что микротик находится за двойным NAT'ом впрямую никакой роли не играет.


Telegram: @thexvo
roman.ilinets
Сообщения: 5
Зарегистрирован: 12 авг 2021, 00:21

Если IPSec поднимается, а L2TP внутри него - нет
Да, именно так и происходит.
Я вижу, что устанавливаются SA, IPSec поднимается, а дальше, если посмотреть на счетчик байт, зашифрованных тем или иным ключом, то трафик есть только в одну сторону. От микротика к циске (от клиента к серверу).
то это скорее надо смотреть, чтобы на циске был открыт 4500 порт
Можно здесь поподробнее?
Почему спрашиваю. Если на стороне клиента я убираю 3g роутер, а сим-карту вставляю в обычный usb модем, который в свою очередь воткнут в usb порт микротика, то все работает и ipsec понимается и внутри него l2tp. Конфигурация циски при этом не меняется.


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

Сам факт двойного NAT'а не должен мешать.

Но проблема например может быть в MTU на сотовом канале, а в случае с отдельным 3g-роутером микротик может не знать, что там на нем за MTU.


Telegram: @thexvo
roman.ilinets
Сообщения: 5
Зарегистрирован: 12 авг 2021, 00:21

Например, если на 3g роутере mtu меньше, чем я задаю для туннеля?
Пока не очень понимаю, как диагностировать проблему.


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

Да.
Пока попробуйте уменьшить до 1280 MTU на L2TP.


Telegram: @thexvo
roman.ilinets
Сообщения: 5
Зарегистрирован: 12 авг 2021, 00:21

Пока попробуйте уменьшить до 1280 MTU на L2TP.
Не помогло.

Для более детального разбирательства сделал тестовый стенд, где из проблемной связки исключен 3g роутер (модем подключен непосредственно к микротику). Напомню, что в таком случае все работает. На микротиках включил и изучил дебаги ipsec, l2tp и ppp в обоих случаях. При необходимости все логи могу предоставить, но они большие, поэтому расскажу уже о результате поиска.

Проблема в том, что микротик не поучает ответа на l2tp control message
Лог с микротика (проблемная конфигурация). Адрес A.B.C.D - внешний IP циски, 192.168.1.100 - адрес на внешнем интерфейсе микротика, полученный по dhcp от 3g-роутера.

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

11:29:23 ipsec,info initiate new phase 1 (Identity Protection): 192.168.1.100[500]<=>A.B.C.D[500] 
11:29:24 ipsec,info ISAKMP-SA established 192.168.1.100[4500]-A.B.C.D[4500] spi:7dd733f89905a73e:25e629daeaaacb86 
11:29:24 l2tp,debug,packet sent control message to A.B.C.D:1701 from 192.168.1.100:1701 
11:29:24 l2tp,debug,packet     tunnel-id=0, session-id=0, ns=0, nr=0
11:29:24 l2tp,debug,packet     (M) [b]Message-Type=SCCRQ
11:29:24 l2tp,debug,packet     (M) Protocol-Version=0x01:00 
11:29:24 l2tp,debug,packet     (M) Framing-Capabilities=0x1 
11:29:24 l2tp,debug,packet     (M) Bearer-Capabilities=0x0 
11:29:24 l2tp,debug,packet     Firmware-Revision=0x1 
11:29:24 l2tp,debug,packet     (M) Host-Name="agzs20" 
11:29:24 l2tp,debug,packet     Vendor-Name="MikroTik" 
11:29:24 l2tp,debug,packet     (M) Assigned-Tunnel-ID=57 
11:29:24 l2tp,debug,packet     (M) Receive-Window-Size=4
Для сравнения в таком же логе с рабочей конфигурации (A.B.C.D - белый адрес циски, 10.113.226.216 - серый ip на внешнем интерфейсе микротика, выданный при подключении модема):

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

12:36:52 ipsec,info initiate new phase 1 (Identity Protection): 10.113.226.216[500]<=>A.B.C.D[500] 
12:36:52 ipsec,info ISAKMP-SA established 10.113.226.216[4500]-A.B.C.D[4500] spi:962d7a57d3c2c845:907bf0959295eca6 
12:36:53 l2tp,debug,packet sent control message to A.B.C.D:1701 from 10.113.226.216:1701 
12:36:53 l2tp,debug,packet     tunnel-id=55305, session-id=0, ns=6, nr=2
12:36:53 l2tp,debug,packet     (M) Message-Type=ICRQ
12:36:53 l2tp,debug,packet     (M) Assigned-Session-ID=2 
12:36:53 l2tp,debug,packet     (M) Call-Serial-Number=10 
12:36:53 l2tp,debug,packet     (M) Bearer-Type=0x0
В первом случае микротик не получает ответ на пакет с Message-Type=SCCRQ и соединение рвется.
Во втором случае в логе я вообще не вижу пакет с Message-Type=SCCRQ, сразу есть ]Message-Type=ICRQ, на который есть ответы и соединение дальше устанавливается нормально.

Пока затык в этом месте. Куда копать дальше - не знаю. Прошу помощи.


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

Ну как куда - смотреть то же самое на циске.
Доходит ли до неё этот пакет и теряется обратный, или вовсе не доходит.

И попробовать сниффером или правилами firewall'а поймать этот пакет на разных этапах: когда он ещё голый l2tp (1701 порт) и когда он уже обернут ipsec'ом (4500 порт).


Telegram: @thexvo
roman.ilinets
Сообщения: 5
Зарегистрирован: 12 авг 2021, 00:21

К сожалению пока не получилось нормально посмотреть debug ip packet на циске.
Но получилось сделать тестовый стенд. А именно, микротик с точной копией конфиа с проблемного объекта, а вот в качестве 3g-роутера (нет под рукой) я взял второй микротик RB-951 и обычный usb модем. Настроил все так, как было описано в первом посте, за исключением того, что на импровизированном 3g роутере отключил firewall (точнее создал accept правила в цепочках input, output и forward).

И, о чудо, все поднялось с полпинка. И ipsec и l2tp.

Получается, что дело в 3g роутере, возможно даже в его firewall. Но тут не пойму какие соединения он запрещает, при условии, что стоит этот роутер на стороне клиента и все приходящее к нему извне касаемо l2tp и ipsec должно идти как ответ, а не новые соединения.


Ответить