MikroTik: Туннель GRE/IPsec (Site-to-Site)
Продолжаем серию статей по настройке туннеля между двумя маршрутизаторами. На этот раз создадим #GRE туннель.
На обоих маршрутизаторах у меня используются динамические WAN IP. #GRE предпочитает только статические IP-адреса. Чтобы обойти данное ограничение, я использую скрипт из статьи MikroTik и CloudFlare: Динамический IP для домена, который обновляет IP-адреса маршрутизаторов в суб-доменах, далее скриптом в конце статьи я забираю актуальные IP-адреса суб-доменов и обновляю их в настройках интерфейса #GRE.
Вводные данные
- Маршрутизатор
R1
:- WAN IP:
gw1.example.com
. - LAN IP:
10.1.0.1
. - Network:
10.1.0.0/16
.
- WAN IP:
- Маршрутизатор
R2
:- WAN IP:
gw2.example.com
. - 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.com
.
- Имя интерфейса:
- Прописываем интерфейсу 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.com
.
- Имя интерфейса:
- Прописываем интерфейсу 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.com
) к интерфейсу и запрашивает 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
.