Включаем на роутерах.
Winbox -> IP -> Cloud -> DDNS Enabled - включаем. DNS Name дальше нам понадобится.
System -> Scripts -> Создаем скрипт. Далее пример для EoIP туннеля.
# Здесь мы получаем IP по DNS имени главного роутера.
:local WANLocale [:resolve **********.sn.mynetname.net]
# Получаем локальный адрес из EoIP туннеля. Туннель определяем по id
:local IPSLocal [/interface eoip get [/interface eoip find tunnel-id="15" ] local-address]
# Здесь мы получаем IP по DNS имени филиального роутера.
:local WANRemote [:resolve **********.sn.mynetname.net]
# Получаем удаленный адрес из EoIP туннеля. Туннель определяем по id
:local IPSRemote [/interface eoip get [/interface eoip find tunnel-id="15" ] remote-address]
# Дальше сравниваем полученные выше IP и меняем их, если они поменялись.
if ($WANLocal != $IPSLocal) do={
/interface eoip set [/interface eoip find tunnel-id="15"] local-address=[:resolve **********.sn.mynetname.net]
}
if ($WANRemote != $IPSRemote) do={
/interface eoip set [/interface eoip find tunnel-id="15"] remote-address=[:resolve **********.sn.mynetname.net]
}
Скрипт загоняем в шедулер, стартуем каждую минуту.
На филиальных аналогично, только подставляем DNS name наоборот. Там где главный - пишем филиальный, там где филиальный - главный.
Второй пример, для PPTP.
Его надо делать только на филиалах. Комментировать не буду, думаю с примера выше все понятно.
Используем только DNS name главного роутера, интерфейс находим по комментарию
:local WANRemote [:resolve **********.sn.mynetname.net]
:local IPSRemote [/interface pptp-client get [/interface pptp-client find comment="Alex" ] connect-to]
if ($WANRemote != $IPSRemote) do={
/interface pptp-client set [/interface pptp-client find comment="Alex"] connect-to=[:resolve **********.sn.mynetname.net]
}
Удачи