MikroTik: Туннель GRE/IPsec (Site-to-Site)
Продолжаем серию статей по настройке туннеля между двумя маршрутизаторами. На этот раз создадим #GRE туннель.
На обоих маршрутизаторах у меня используются динамические WAN IP. #GRE предпочитает только статические IP-адреса. Чтобы обойти данное ограничение, я использую скрипт из статьи MikroTik и CloudFlare: Динамический IP для домена, который обновляет IP-адреса маршрутизаторов в суб-доменах, далее скриптом в конце статьи я забираю актуальные IP-адреса суб-доменов и обновляю их в настройках интерфейса #GRE.
Исходные данные
- Маршрутизатор
R1:- WAN IP:
gw1.example.org. - LAN IP:
10.1.0.1. - Network:
10.1.0.0/16.
- WAN IP:
- Маршрутизатор
R2:- WAN IP:
gw2.example.org. - LAN IP:
10.2.0.1. - Network:
10.2.0.0/16.
- WAN IP:
Настройка маршрутизаторов
В моём случае, первоначальные адреса WAN IP маршрутизаторов не имею значения. Они всё равно будут обновлены скриптом на актуальные, взятые у суб-доменов.
Router #1
- Создаём интерфейс #GRE:
- Имя интерфейса:
gre-sts. - Секретная фраза для IPsec:
PassWord. - WAN IP-адрес локального маршрутизатора
R1:1.1.1.1. - WAN IP-адрес удалённого маршрутизатора
R2:2.2.2.2. - Комментарий:
HOST: gw2.example.org.
- Имя интерфейса:
- Прописываем интерфейсу IP-адрес
10.255.255.1/24:- Адрес интерфейса:
10.255.255.1/24. - Интерфейс:
gre-sts. - Комментарий:
[GRE] GRE-STS.
- Адрес интерфейса:
- Указываем маршрут до удалённой сети
R2:- Адрес удалённой сети
R2:10.2.0.0/16. - Шлюз
R2:10.255.255.2. - Комментарий:
[GRE] GW2.
- Адрес удалённой сети
Router #2
- Создаём интерфейс #GRE:
- Имя интерфейса:
gre-sts. - Секретная фраза для IPsec:
PassWord. - WAN IP-адрес локального маршрутизатора
R2:2.2.2.2. - WAN IP-адрес удалённого маршрутизатора
R1:1.1.1.1. - Комментарий:
HOST: gw1.example.org.
- Имя интерфейса:
- Прописываем интерфейсу IP-адрес
10.255.255.2/24:- Адрес интерфейса:
10.255.255.2/24. - Интерфейс:
gre-sts. - Комментарий:
[GRE] GRE-STS.
- Адрес интерфейса:
- Указываем маршрут до удалённой сети
R1:- Адрес удалённой сети
R1:10.1.0.0/16. - Шлюз
R1:10.255.255.1. - Комментарий:
[GRE] GW1.
- Адрес удалённой сети
Скрипт для динамического IP
К сожалению, #MikroTik для интерфейса #GRE использует только IP-адреса, нельзя указать имя суб-домена. Но на форуме #MikroTik я нашёл скрипт, который парсит доменное имя удалённого маршрутизатора в специально составленном комментарии (HOST: sub.example.org) к интерфейсу и запрашивает IP-адрес этого домена. Этот IP-адрес автоматически вставляется в поле remote-address интерфейса #GRE.
Приложение
| |
Параметры
wanInterface- название WAN-интерфейса.
Установка
После настройки скрипта, его нужно добавить в репозиторий скриптов #RouterOS. Находится репозиторий в System / Scripts. При добавлении скрипта, необходимо выбрать политики read, write, test.
Планировщик
Скрипт должен переодически запускаться для проверки и синхронизации IP адресов интерфейсов и домена. В этом поможет планировщик #RouterOS. Заходим в System / Scheduler и создаём задачу с политиками read, write, test. В поле On Event вписываем точное название скрипта, ранее добавленного в репозиторий #RouterOS.
2024-11-21
- Обновление скрипта
ros.gre.ip.rsc.