IPSEC-туннели (разные публичные IP, одинаковые внутренние подсети)

Обсуждение ПО и его настройки
Ответить
kidlair
Сообщения: 8
Зарегистрирован: 26 окт 2016, 11:19

Ребят, помогите, голову ломаю но решение никак не дается.

На моей стороне RB-951 с единственным публичным IP. На той стороне две циски, у каждой свой публичный IP, но одинаковые локальные сетки за ними (10.4.0.0).
Контрагент требует два IPSEC туннеля для отказоустойчивости. Причем если один туннель упал (именно туннель, а не хост), должно переключиться на второй.
Делаю два пира, все нормально. А вот создаю policy - и тут уже проблемы. Получается что SA SRC Address одинаковый, SA DST Address разные. А сетки мне шифровать получается нужно одни и те же, что мне миркотик ессно не дает делать. Вторая policy всегда подсвечивается красным. Привожу конфиг политик:

Policy1
src-address=172.19.76.0/24 src-port=any dst-address=10.4.0.0/16 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=yes sa-src-address=MY_PUBLIC_IP sa-dst-address=REMOTE_PUBLIC_IP proposal=proposal1 priority=0 ph2-count=1
Policy2
src-address=172.19.76.0/24 src-port=any dst-address=10.4.0.0/16 dst-port=any protocol=all action=encrypt level=require ipsec-protocols=esp tunnel=yes sa-src-address=MY_PUBLIC_IP sa-dst-address=REMOTE_PUBLIC_IP_2 proposal=proposal1 priority=0 ph2-count=1

В голову ничего не приходит. Я понимаю почему микротик не дает отрабатывать второй политике - сетки то с моей стороны и со стороны контрагента повторяются. В голову приходит только вариант создания скрипта, который смотрит за работой первого туннеля, и в случае его некорректной работы, выключает политику первого туннеля, и включает политику второго туннеля. Но как это реализовать не знаю, например за какой параметр туннеля цепляться чтобы убедиться в том что он лежит..


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

Это два туннеля в одну сеть (10.4.0.0), или в две разные сети с конфликтом адресов?


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

Как вариант объявить соединяемые сети не /16, а /32. Тогда они будут разные.

(у меня перед глазами пример работы IPSEC в L2TP. С одной стороны технологическая сетка проводного оператора /24. С другой стороны сеть сотового оператора, реальная маска которой микротикам неизвестна, т.к. это "белый" адрес не мапится напрямую на интерфейсы, а присваивается НАТтом оператора. Но в настройках Policy IPSEC все сетки для своего удобства микротик объявил /32. При этом шифрование работает, причем между сетями, которые вообще в Policy не обозначены (сети на внутренних интерфейсах))


kidlair
Сообщения: 8
Зарегистрирован: 26 окт 2016, 11:19

Erik_U писал(а):Это два туннеля в одну сеть (10.4.0.0), или в две разные сети с конфликтом адресов?


Это два туннеля в одну сеть только через разные публичные IP на той стороне.


kt72ru
Сообщения: 141
Зарегистрирован: 23 июн 2017, 07:55

kidlair писал(а):Но как это реализовать не знаю, например за какой параметр туннеля цепляться чтобы убедиться в том что он лежит..

state="established"
https://forummikrotik.ru/viewtopic.php?t=3464


kidlair
Сообщения: 8
Зарегистрирован: 26 окт 2016, 11:19

kt72ru писал(а):
kidlair писал(а):Но как это реализовать не знаю, например за какой параметр туннеля цепляться чтобы убедиться в том что он лежит..

state="established"
https://forummikrotik.ru/viewtopic.php?t=3464


Большое спасибо за скрипт! Он мне совершенно точно пригодится.


Ответить