Простенький скрипт, уже давно пользуюсь. Обновляет с помощью http запроса.
Для начала заходим в настройки DNS записей домена и включаем поддержку DynamicDNS. При включении нам выдадут пароль для обновления записей только этого домена. Далее в микротике делаем скрипт со следующим содержимым:
Код: Выделить всё
#Поменяйте интерфейс на тот который у Вас wan
:local iface "ether1-wan";
#Тут мы получаем IP адрес без маски
/ip address
:local ip [get [find interface=$iface] address];
:local ipaddr [:pick $ip 0 [:find $ip "/"]];
#Тут можно указать основной домен и несколько поддоменов для обновления (ip адрес будет один для всех)
:local hosts {"@";"www"};
#Сюда пишем имя домена
:local domain "domain.name";
#Сюда вписываем пароль который нам выдали в админке домена
:local pwd "Dynamic DNS Password";
:foreach host in=$hosts do={
:do {
:local mainrec "https://dynamicdns.park-your-domain.com/update\3Fhost=$host&domain=$domain&password=$pwd&ip=$ipaddr";
/tool fetch url="$mainrec" mode=https keep-result=no
:log info "DNS record ".$host." updated"; }
on-error={ :log info ("Something goes wrong while updating ".$host)}
};
У меня он вызывается другим скриптом, который проверяет, изменился ли IP адрес, что бы не спамить запросами. Но можно его дергать просто шедулером раз в 5 минут, к примеру.
Код: Выделить всё
/system scheduler
add interval=5m name="Dns updater" on-event=update-dns policy=read start-time=startup