Как пустить l2tp+ipsec через выбранный шлюз?

Обсуждение ПО и его настройки
Lucifer
Сообщения: 18
Зарегистрирован: 16 июл 2019, 09:04

Долго рылся, но не смог найти (может потому, что не смог точно сформулировать)...
В общем есть микротик с 2 внешними каналами - основной и резервный. Чисто для резервирования (тупо "рекурсивными" методом переключается дефолтный маршрут). Есть 2 поднятых l2tp+ipsec тоннеля (этот микротик в качестве клиента) - тоже все работает.
Теперь нюанс: нужно чтобы один из тоннелей (назовем l2tp_1) всегда шел через резервный канал и никак не попадал в основной, а остальной трафик, в т.ч. тоннель l2tp_2 - в зависимости от доступности. Т.е. предположим IP l2tp сервера для тоннеля l2tp_1 - х.х.х.х, и на этом же IP крутится ftp-сервер. Нужно чтоб трафик на ftp://х.х.х.х и на l2tp_2 (и весь прочий) шел через любой доступный канал (т.е. сейчас так и есть), а тоннель l2tp - только через резервный (как сделать?).
Пробовал udp 1701,500,4500 и ipsec-esp на х.х.х.х маркировать и кидать через через резервный - не работает... Куда копать?


kharkov_max
Сообщения: 104
Зарегистрирован: 04 окт 2015, 21:38

Оба внешних интерфейса l2tp клиента цепляются на один IP l2tp сервера?


Lucifer
Сообщения: 18
Зарегистрирован: 16 июл 2019, 09:04

Нет, на разные.


Erik_U
Сообщения: 1768
Зарегистрирован: 09 июл 2014, 12:33

l2tp с ipsec у микротика сначала устанавливает шифрованное ipsec соединение, в потом, внутри него делается туннель l2tp.
Поэтому заруливать куда-то l2tp поздно.

А зарулить в 2 разных конца ipsec на стадии установки соединения не получится, если они на один адрес ломятся. (если на втором конце не 2 канала с разными белыми IP). Оно будет устанавливаться всегда по маршруту по-умолчанию с меньшим distance.


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

То что Вы хотите сделать можно, только не уверен, что это прокатит с двумя одинаковыми тоннелями именно c IPSEC. Но отбалансировать тоннели так, чтобы они ходили только на определенные ISP можно. У меня на Микротике клиенте один тоннель L2TP+IPSEC, второй ovpn. Поскольку ipsec только на одном тоннеле, то коллизий не возникает, каждый заворачивается только через свой ISP (или не поднимается вовсе !). Плюс в ppp-profile при поднятии тоннеля динамически прописываются статические маркированные маршруты для локальных сетей через нужный ISP, когда тоннель разъединяется (падает) - скрипт их удаляет.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Lucifer
Сообщения: 18
Зарегистрирован: 16 июл 2019, 09:04

Erik_U писал(а): 19 июл 2019, 05:22 А зарулить в 2 разных конца ipsec на стадии установки соединения не получится, если они на один адрес ломятся. (если на втором конце не 2 канала с разными белыми IP). Оно будет устанавливаться всегда по маршруту по-умолчанию с меньшим distance.
Так ipsec'и "заруливаются" на разные IP. Нужно чтоб один из них всегда шел только через конкретный внешний интерфейс (если он недоступен то канал должен "упасть" и ждать пока поднимется интерфейс) условно на адрес x.x.x.x, а второй - через что получится (т.е. через доступный дефолтный маршрут) на адрес y.y.y.y . Но на оба IP-адреса (x.x.x.x, y.y.y.y) через доступный дефолтный маршрут должны идти еще и все прочие (не ipsec) соединения.


Erik_U
Сообщения: 1768
Зарегистрирован: 09 июл 2014, 12:33

Давайте подробнее.

У вас на 1 стороне микротик с двумя каналами и с двумя серыми (или белыми?) IP адресами.
Он клиент, он устанавливает соединение по L2TP.

На второй стороне у вас микротик, являющийся L2TP сервером, он принимает соединения. У него сколько белых IP адресов и каналов?


В настройках L2TP клиента есть поле "Connect To", где указывается белый IP адрес L2TP сервера, к которому нужно подключиться.

Если у вас эти адреса разные - получится по dst закрепить соединение за конкретным интерфейсом. Если один и тот же - ничего не получится.


Lucifer
Сообщения: 18
Зарегистрирован: 16 июл 2019, 09:04

Erik_U писал(а): 19 июл 2019, 11:02 Давайте подробнее.
Mikrotik (клиент): 2 канала - один с "белым" IP, второй с "серым" (непринципиально, если в этом вопрос второй можно сделать белым).
Отсюда поднимаются два L2TP/IPSec канала на 2 разных "белых" IP (которые x.x.x.x и y.y.y.y) которые на 2-х разных mikrotik'ах - L2TP/IPSec серверах (в разных местах)

Весь трафик с mikrotik'а-"клиента", за исключением L2TP/IPSec на y.y.y.y должен идти через дефолтный маршрут. В том числе прочий (не относящийся к L2TP/IPSec) трафик на y.y.y.y.
Дефолтный маршрут обычно идет через канал с "белым" IP, но при его недоступности - переключается на канал "серого" IP.

А вот трафик L2TP/IPSec тоннеля на y.y.y.y должен всегда идти через канал "серого" IP - если маршрут недоступен - ждать доступности...


Erik_U
Сообщения: 1768
Зарегистрирован: 09 июл 2014, 12:33

Делаете правило мангл.
Все, что идет на y.y.y.y прероутингом делаете марк роутинг какой нибудь табле_шмабле.

И у вас в таблице маршрутизации получается 2 таблицы - майн, и ваша табле_шмабле.
И делаете для таблицы табле_шмабле маршрут по умолчанию строго через интерфейс с серым айпи.
А в таблице майн дефолтному маршруту прописываете оба интерфейса.

Должно быть все.
На y.y.y.y доступ будет строго через интерфейс с серым айпи, на x.x.x.x с любого.


Lucifer
Сообщения: 18
Зарегистрирован: 16 июл 2019, 09:04

Erik_U писал(а): 22 июл 2019, 11:12 Должно быть все.
На y.y.y.y доступ будет строго через интерфейс с серым айпи, на x.x.x.x с любого.
Ну уж это-то понятно. Но куда при Вашем раскладе при обеих работающих интерфейсах пойдет, например http://y.y.y.y ? Надо, чтоб в этом случае шло через "белый". И туда-же должен идти трафик тоннеля x.x.x.x. А трафик тоннеля на y.y.y.y всегда (в т.ч. при обеих работающих) - должен идти только через "серый".
Т.е. если решение через маркировку пакетов - вопрос: как промаркировать только трафик тоннеля L2TP/IPSec к y.y.y.y чтоб при этом не маркировался остальной трафик на y.y.y.y и не маркировался трафик тоннеля L2TP/IPSec к x.x.x.x


Ответить