Страница 1 из 1
L2TP+IPSEC и несколько NAT
Добавлено: 12 авг 2021, 00:48
roman.ilinets
Здравствуйте уважаемые форумчане.
Хотел бы получить советы или решение (если кто делал) вот по какому вопросу.
Нужно организовать защищенный 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, какие-то от МТС и Билайн). Всего объектов с такой, простите, ректальной конфигурацией несколько десятков.
Прошу вашей помощи, надеюсь на оперативный ответ.
Заранее спасибо.
Re: L2TP+IPSEC и несколько NAT
Добавлено: 12 авг 2021, 01:49
xvo
Если IPSec поднимается, а L2TP внутри него - нет, то это скорее надо смотреть, чтобы на циске был открыт 4500 порт. То, что микротик находится за двойным NAT'ом впрямую никакой роли не играет.
Re: L2TP+IPSEC и несколько NAT
Добавлено: 13 авг 2021, 16:45
roman.ilinets
Если IPSec поднимается, а L2TP внутри него - нет
Да, именно так и происходит.
Я вижу, что устанавливаются SA, IPSec поднимается, а дальше, если посмотреть на счетчик байт, зашифрованных тем или иным ключом, то трафик есть только в одну сторону. От микротика к циске (от клиента к серверу).
то это скорее надо смотреть, чтобы на циске был открыт 4500 порт
Можно здесь поподробнее?
Почему спрашиваю. Если на стороне клиента я убираю 3g роутер, а сим-карту вставляю в обычный usb модем, который в свою очередь воткнут в usb порт микротика, то все работает и ipsec понимается и внутри него l2tp. Конфигурация циски при этом не меняется.
Re: L2TP+IPSEC и несколько NAT
Добавлено: 13 авг 2021, 17:48
xvo
Сам факт двойного NAT'а не должен мешать.
Но проблема например может быть в MTU на сотовом канале, а в случае с отдельным 3g-роутером микротик может не знать, что там на нем за MTU.
Re: L2TP+IPSEC и несколько NAT
Добавлено: 14 авг 2021, 15:07
roman.ilinets
Например, если на 3g роутере mtu меньше, чем я задаю для туннеля?
Пока не очень понимаю, как диагностировать проблему.
Re: L2TP+IPSEC и несколько NAT
Добавлено: 14 авг 2021, 15:18
xvo
Да.
Пока попробуйте уменьшить до 1280 MTU на L2TP.
Re: L2TP+IPSEC и несколько NAT
Добавлено: 15 авг 2021, 12:31
roman.ilinets
Пока попробуйте уменьшить до 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, на который есть ответы и соединение дальше устанавливается нормально.
Пока затык в этом месте. Куда копать дальше - не знаю. Прошу помощи.
Re: L2TP+IPSEC и несколько NAT
Добавлено: 15 авг 2021, 12:53
xvo
Ну как куда - смотреть то же самое на циске.
Доходит ли до неё этот пакет и теряется обратный, или вовсе не доходит.
И попробовать сниффером или правилами firewall'а поймать этот пакет на разных этапах: когда он ещё голый l2tp (1701 порт) и когда он уже обернут ipsec'ом (4500 порт).
Re: L2TP+IPSEC и несколько NAT
Добавлено: 17 авг 2021, 11:38
roman.ilinets
К сожалению пока не получилось нормально посмотреть debug ip packet на циске.
Но получилось сделать тестовый стенд. А именно, микротик с точной копией конфиа с проблемного объекта, а вот в качестве 3g-роутера (нет под рукой) я взял второй микротик RB-951 и обычный usb модем. Настроил все так, как было описано в первом посте, за исключением того, что на импровизированном 3g роутере отключил firewall (точнее создал accept правила в цепочках input, output и forward).
И, о чудо, все поднялось с полпинка. И ipsec и l2tp.
Получается, что дело в 3g роутере, возможно даже в его firewall. Но тут не пойму какие соединения он запрещает, при условии, что стоит этот роутер на стороне клиента и все приходящее к нему извне касаемо l2tp и ipsec должно идти как ответ, а не новые соединения.