Динамическое добавление и удаление статических маршрутов в VPN

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Допустим у нас есть связка Микротиков PPTP-сервер - PPTP-клиент.
За обоими маршрутизаторами стоят сети. Чтобы они были видны клиентам с обоих сторон мы, как известно, должны прописать маршруты в обе стороны (ну или в какую хотим) или использовать OSPF.
При простых связях с небольшим количеством роутеров, я не использую OSPF, но при отсутствии активного VPN-соединения микротиков и статические маршруты, всё время присутствующие в /root, раздражают.

Можно сделать следующее:

1. Чтобы добавить "динамический" путь (-ти) в подсеть (-ети) pptp-клиента на Микротике-сервере мы идем во вкладку ppp-secret и добавляем в пункт Rootes следующее: адрес клиента (сети) шлюз (адрес pptp-клиента) дистанция (данные параметры вставляются через пробел)

Например: 192.168.85.0/24 10.10.16.2 1

При этом при установлении соединения между Микротиками клиентом и сервером в /rootes сервера будет добавлен путь к сети Микротика-клиента 192.168.85.0/24 через шлюз 10.10.16.2 (это в данном случае адрес нашего pptp-клиента в VPN-тоннеле) с дистанцией 1.

Можно добавлять пути к нескольким сетям с разными дистанциями, это делается через запятую, например:

192.168.88.0/24 10.10.10.2 1, 192.168.89.0/24 10.10.10.2 2, 192.168.90.0/24 10.10.10.2 2

Важно, что в таком случае, пути в эти сети добавляются при установлении VPN-соединения и "пропадают" при его разрыве. То есть статические маршруты становятся как бы "динамическими" и не захламляют /rootes.

* Однако таким образом добавлять маркированные маргруты нельзя. Если это необходимо со стороны VPN-сервера, то следует делать это через profiles, как показано для клиента (ниже).
**То же самое можно сделать на Микротике-сервере через profile scripts, как делается ниже для Микротика-клиента, но предложенное выше проще и работает само.

2. Теперь нужно добавить пути в подсети Микротика-сервера на Микротике-клиенте. Как это сделать ? Ведь pptp-secret на клиенте нет.

На помощь приходит пункт PPP-profile на Микротике-клиенте, точнее его вкладка Scripts:

Здесь в событие "UP" мы вставляем добавление пути в нужную нам сеть Микротика-сервера, например:

/ip route add dst-address=192.168.0.0/24 gateway=10.10.12.1 distance=1 check-gateway=ping scope=255 comment="Root in net Mikrotik server VPN",

(заметьте, что шлюзом тут выступает адрес Микротика-сервера в VPN-тоннеле),

а в событие "Down" - удаление этого пути (точнее даже всех путей с комментарием "Root in net Mikrotik server VPN":

foreach i in [/ip route find where comment="Root in net Mikrotik server VPN"] do={[/ip route remove $i]}

т.к. при разрыве VPN-соединения добавленный через script profiles маршрут сам не удаляется. Можно точно также добавлять/удалять маркированные маршруты.

Разумеется, в этих скриптах комментарий может быть любой (Ваш), но, он должен быть одинаковый, иначе пути не удалятся.

Таким образом, Вы также можете добавлять несколько подсетей в маршруты на сети Микротика-сервера и удалять их все после отключения VPN-соединения (как сделано в данном цикле foreach).

Это решение позволяет без технологии OSPF при установлении VPN-соединений добавлять автоматически маршруты на нужные сети в обе стороны и автоматически удалять их при отключении VPN (т.е. статические маршруты становятся как бы "динамическими").

Работает также и при L2TP и при openVPN, настройка абсолютно аналогична.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Danil.Bezrukavnikov
Сообщения: 6
Зарегистрирован: 22 янв 2021, 10:17

Доброго времени суток. Такой вопрос имеется у нас сервер 8.16 с поднятым сервером openvpn. Поставили микротик, настроили, а вот решить проблему одну не как не можем. Где и как нам добавить маршрут 172.16.1.1/24 via 192.168.8.16 Что бы клиенты openvpn при подключении получали ip адрес.


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

Вы нормально излагайте задачу. Ничего не понятно кто сервер, кто микротик - он клиент ? Кто должен получать ip-адрес ? Причем тут вышеизложенная тема про маршруты ? Если у Вас в голове каша, то нам она зачем ?


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Danil.Bezrukavnikov
Сообщения: 6
Зарегистрирован: 22 янв 2021, 10:17

Sertik писал(а): 26 янв 2021, 22:18 Вы нормально излагайте задачу. Ничего не понятно кто сервер, кто микротик - он клиент ? Кто должен получать ip-адрес ? Причем тут вышеизложенная тема про маршруты ? Если у Вас в голове каша, то нам она зачем ?
Повторим. Как было до микротика
1) Имеется сеть в офисе 192.168.8.1/24
2) Имеется сервер на ubuntu c OpenVPN - 192.168.8.16
3) Имеется 10 клиентов которые подключаются к ovpn (Всем созданы конфиги для ovpn
4) Имеется сервер интернет шлюз на ubuntu - 192.168.8.1 (в конфиге на это машине было прописано что ovpn клиенты получаюит адреса из poola 172.16.1.1/24)
Клиент подключается со своего дома, с машины, с телефона к серверу openvpn - ему открывается локальная сеть офиса а его компьютер получает IP адрес из poola 172.16.1.1/24
Теперь
Пункты 1,2,3 остаются
Появляется микротик
На нем мы пишем правило что входящий пакет udp - порт 443-на машину с ovpn - 192.168.8.16.
И о чудо он это делает.
Но клиент не получает ovpn адрес 172.16.1.5 (например)

Вот и вопрос как в микротике добавить 172.16.1.1/24 на 192.168.8.16


bst-botsman
Сообщения: 184
Зарегистрирован: 13 окт 2018, 20:53
Откуда: Беларусь

Danil.Bezrukavnikov писал(а): 26 янв 2021, 23:14
Появляется микротик
На нем мы пишем правило что входящий пакет udp - порт 443-на машину с ovpn - 192.168.8.16.
И о чудо он это делает.
Но клиент не получает ovpn адрес 172.16.1.5 (например)

Вот и вопрос как в микротике добавить 172.16.1.1/24 на 192.168.8.16
Мне одному непонятно какое отношение имеет Mikrotik к адресации, выдаваемой клиентам OpenVPN-сервером на Ubuntu?


RB3011UiAS x 1
RB4011iGS+5HacQ2HnD x 3
951Ui-2nD x 2
hAP ac^2 x 24
CheckPoint 1590 x 1
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Нет, не Вам одному, мне тоже непонятно. На Микротике автор поста прокидывает web на свой сервер на ubunte и ждет, что Микротик ещё ему в придачу что-нибудь такое "выдаст" ... Что же ждать можно долго. Но где же логика ?


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Касательно стартового поста. Мне тут намедни довелось настраивать подобную маршрутизацию вместе в Illinory/ и тот предложил воспользоваться возможностями RIP. И вы знаете, мне понравилось. Всё, что вы описали RIP'ом настраивается за несколько минут и при этом всё очень просто. Крайне рекомендую к ознакомлению.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

С удовольствием ознакомлюсь, подскажите, где лучше. А лучше сделайте инструкцию под Микротик. Многие спасибо скажут.


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Аватара пользователя
podarok66
Модератор
Сообщения: 4355
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Да какая там инструкция... Имеем два Тика, соединённых sstp-туннелем.
192.168.88.0/24 - 10.10.10.1 ->>> туннель <<<- 10.10.10.2 - 192.168.100.0/24
Прописываем на Тике с локалкой 192.168.88.0/24

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

/routing rip interface
add interface=sstp-tunnel receive=v2
/routing rip neighbor
add address=10.10.10.2
/routing rip network
add network=192.168.88.0/24
На Тике с локалкой 192.168.100.0/24

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

/routing rip interface
add interface=sstp-tunnel receive=v2
/routing rip neighbor
add address=10.10.10.1
/routing rip network
add network=192.168.100.0/24
Ну и всё, должны появится динамические маршруты. Они видны в routing->RIP->routes (Метрики будут 1, 2, 3.. и так далее) , и в IP->routes (здесь у них будет дистанция 120)


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Раз эти маршруты динамические они сами удаляются из rip и /ip routes если тоннель падает ?
И восстанавливаются когда он поднимается ?
Можно, наверное, в ppp - profile script Up/Down прописать включение/выключение нужных строк RIP.
Вот тогда логично будет.

Попробую, спасибо.
На Винде тоже есть RIP. PPTP- или L2TP-Клиент Windows тоже может добавлять маршруты через RIP для себя ?
А нет, там только RIP-прослушка с роутера ...


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Ответить