DNS Beacon
Панель керуванняУвійти

DynDNS на MikroTik RouterOS: покрокове налаштування

Роутери MikroTik не мають клієнта DynDNS2 — функція IP Cloud працює лише з власним сервісом MikroTik. За допомогою невеликого скрипта RouterOS і планувальника ваш роутер усе ж самостійно викликає оновлення DNS Beacon і залишається доступним за постійним іменем хоста, навіть коли WAN-IP змінюється. Ось як це налаштувати.

Крок за кроком

  1. У WinBox у розділі System → Scripts (або в терміналі через /system script add) створіть новий скрипт з іменем dnsbeacon і політиками read, write, test. Вставте як source два рядки скрипта з таблиці нижче та замініть ether1 на свій WAN-інтерфейс, а <email> і <api-key> — на електронну пошту облікового запису та API-ключ з панелі керування.
  2. У розділі System → Scheduler додайте завдання, яке запускає скрипт кожні 5 хвилин — команда scheduler із таблиці робить це одним рядком у терміналі. Планувальнику потрібні ті самі політики, що й скрипту.
  3. Запустіть скрипт один раз вручну (Run Script або /system script run dnsbeacon). У журналі з'явиться «dnsbeacon: good <IP>» — або nochg, якщо IP уже правильна. Відтепер планувальник автоматично підтримує ім'я хоста актуальним.

Значення для введення

System → Scripts і System → Scheduler (WinBox або термінал)

WAN-інтерфейс:
інтерфейс із публічною IP, напр. ether1 або pppoe-out1 (у скрипті замініть ether1)
Hostname:
myhouse.dnsfollowme.uk
Ім'я користувача:
ваша адреса електронної пошти (<email> у скрипті)
Пароль:
ваш API-ключ (<api-key> у скрипті)
Скрипт, рядок 1:
:local a [/ip address get [find interface=ether1] address]; :local ip [:pick $a 0 [:find $a "/"]]
Скрипт, рядок 2:
:local r [/tool fetch url="https://api.dnsbeacon.com/nic/update?hostname=myhouse.dnsfollowme.uk&myip=$ip" user="<email>" password="<api-key>" output=user as-value]; :log info ("dnsbeacon: " . ($r->"data"))
Scheduler:
/system scheduler add name=dnsbeacon interval=5m on-event=dnsbeacon policy=read,write,test
IPv6:
У рядку 1 замініть /ip address на /ipv6 address, а [find interface=ether1] на [find interface=ether1 global]; у рядку 2 надсилайте &myipv6=$ip замість &myip=$ip.

RouterOS не має вбудованого клієнта DynDNS2 — IP Cloud працює лише з власним сервісом MikroTik. Тому оновлення виконує скрипт із двох рядків: рядок 1 зчитує IP WAN-інтерфейсу, рядок 2 викликає /nic/update через /tool fetch з HTTP basic-автентифікацією та записує відповідь у журнал. У DSL/PPPoE WAN-інтерфейс зазвичай називається pppoe-out1. За CGNAT/DS-Lite WAN-IP приватна й через IPv4 усе одно недоступна — тоді надсилайте myipv6 із глобальною IPv6-адресою. Стосується RouterOS 7 (та 6.45+).

IPv4 чи IPv6?

Значення вище оновлюють адресу IPv4 (запис A) — звичайний випадок для підключень із власною публічною IPv4. Для IPv6 (запис AAAA) пристрій додатково або замість цього надсилає параметр &myipv6=<IPv6>. Як це зробити на цьому пристрої, описано в рядку «IPv6» таблиці.

DS-Lite або CGNAT (багато кабельних і оптоволоконних підключень): роутер тоді не має публічної IPv4, а приватну WAN-адресу сервіс відхиляє з відповіддю «abuse». У такому разі надсилайте лише myipv6 — або використовуйте клієнт DNS Beacon безпосередньо на цільовому пристрої, який сам визначає обидва сімейства адрес.

Спершу потрібне безкоштовне ім'я хоста?

Створіть безкоштовний обліковий запис DNS Beacon, додайте ім'я хоста та згенеруйте API-ключ — а потім поверніться й завершіть налаштування вище.

Створити безкоштовний обліковий запис

Назад до всіх інструкцій