Прямые руки → Использование DDNS в MikroTik на примере changeip.com

Принимая во внимание то что NO-IP уже давно «скурвислся» и теперь отменил все бесплатные аккаунты, то сам бог велел использовать другого DDNS провайдера, лично мне, уже очень давно, нравится cahngeip.com, когда-то давно я им пользовался, когда сервер с этим сайтом стоял у меня дома под столом, то домен был прикручен к нему, отзывы только положительные.
Короче, чтобы обновлять IP в DNS записях, необходим скрипт, сначала я начал писать свой, но оказалось что «все придумано до нас» и уже есть готовая наработка, которую я и взял.
:local interfacename ("eth-name");
:local ddns ("domain.of.cahngeip.com");
:local login ("user");
:local password ("password");
:local CurrentDynDNSIP [:resolve $ddns]
:local TMPDynDNSIP [/ip address get [/ip address find interface=$interfacename] address]
:local RealDynDNSIP [:pick $TMPDynDNSIP 0 ([:len $TMPDynDNSIP]-3)]
:if ($CurrentDynDNSIP!=$RealDynDNSIP) do={/tool dns-update name=$ddns address=$RealDynDNSIP key-name=$login key=$password}
Где:
eth-name имя интерфейса которым мы подключаемся к провайдеру (если провайдер beeline то указываем имя L2TP подключения)
domain.of.cahngeip.com указываем имя домена, по которому будет доступен наш маршрутизатор
user логин пользователя на сайте changeip.com
password пароль
Остается только создать задание, которое будет запускать этот скрипт, чтобы он обновлял DNS запись
переходим в Winbox -> System -> Sheduler и создаем задание:

Все что менялось подчеркнуто красным
Зададим имя задания send_my_ip
Укажем интервал запуска, раз в 5 мин хотя можно и 1 раз в минуту.
Вставляем скрипт в поле On Event
Теперь наш скрипт будет запускаться раз в 5 мин и обновлять IP в DNS записи и мы сможем подключиться к роутеру по имени, в случае изменения IP, недоступность системы составляет не более 5 мин.
Логика работы скрипта: Скрипт получает IP от того соединения которое вы указали (у меня это VPN соединение), затем отрезает 3 последних символа, /32 это маска подсети, далее выполняет dns запрос аналог nslookup и получает значение IP вашей записи, если ваш текущий IP адрес отличается от IP который был записан в ДНС, то производится подключение к changeip.com и обновление записи, если расхождений нет, то никаких действий не производится, фактически, скрипт можно запускать раз в минуту без опасений что вас забанит changeip.com.
Если у вас есть домен, то можно прикрутить и его, заплатив денег, тем более что сумма не большая, но а если эта сумма для вас велика, то можно и бесплатно создав в вашем домене запись CNAME чтобы
ваш_домен.tld CNAME домен_который_вы_зарегили_у_changeip.com
т.е. ваш домен указывает на домен который принадлежит changeip, а его запись будет будет обновляться роутером каждые несколько минут.
Что еще могу от себя порекомендовать, в настройках домена changeip.com уменьшать ttl вашей записи, по умолчанию там стоит 30 сек, я уменьшил до 3, сделано это для только чтобы, вы, обновив IP вашей записи, если записи будут жить в закешированном виде 30 сек, то вы не сможете подключиться к новому адресу, а так срок жизни записи составляет 3 сек, то она быстрее будет обновляться на кеширующих DNS серверах, все проведено на скриншоте, свой IP я закрасил, чтобы не мешал, ну и не забываем сохранить сделанные изменения.

Скрипт взят с сайта mikrotik.axiom-pro.ru/scripts/ddnschangeip.php
На этом все, в случае возникновения вопросов прошу в комментарии.
Все что касается оборудования Mikrotik можно посмотреть в на этой странице
5 комментариев
/ip cloud
век живи, век учись…
Из недостатков — имя выдается автоматически в домене XXXX.sn.mynetname.net и его нельзя изменить.
Как best practie, чтобы не запоминать его, можно сделать CNAME запись в своем домене.
Например: home.xxx.ru CNAME XXXX.sn.mynetname.net