DDNS w systemie RouterOS

Zapewne prawie każdy zna taką sytuację kiedy potrzebuje publicznego adresu IP. Dzwoni wtedy do swojego ISP i (po mniejszych lub większych trudnościach) go dostaje. Ale gdy zadajemy pytanie w stylu „rozumiem że to adres stały ?” nie zawsze jest już tak kolorowo. Dlatego w tym artykule przedstawię najpopularniejszy sposób na rozwiązanie tego problemu czyli DDNS.


Co to jest DDNS ?

DDNS czyli skrót od Dynamic Domain Name System jest to tak na prawdę system bardzo podobny do normalnego systemu DNS (wykorzystuje dokładnie taki sam mechanizm działania) z tą różnicą że rekordy czyli wpisy w strefie DNS które zawierają informację np. jaki adres IP jest pod danym adresem domenowym mają krótki czas życia. Czyli gdy korzystamy np. z usługi noip.com i mamy adres example.ddns.net odpowiadający naszemu IP np. 1.2.3.4 to po jego pobraniu przez np. nasz komputer jest on w jego pamięci zwykle tylko około minuty. Podczas gdy w przypadku zwykłego DNS zwykle około kilku godzin (czasem nawet dłużej). Tak więc jeśli nasz router zaktualizuje swój adres w takim serwisie będzie on dla nas (wykorzystujących nazwę domenową) dostępny bardzo szybko.


DDNS na MikroTik’u

Artykuł został przygotowany przy użyciu systemu RouterOS w wersji 6.43.2 (current).

RouterOS ma swój mechanizm DDNS. Wielu może go pamiętać jako zawodny, synchronizacja trwała długo lub wypadała na timeout. Jednak od wersji 6.43 MikroTik wprowadził jego nową wersję która rzeczywiście działa szybko. Funkcjonalność konfigurujemy wchodząc w IP->Cloud i zaznaczamy „DDNS Enabled”.

W polu „Public Address” będzie nasz publiczny adres IP (dla bardziej wtajemniczonych będzie to IP którym przedstawimy się do adresu cloud2.mikrotik.com). W polu „DNS Name” pojawi się przydzielona nam nazwa domenowa. Będzie ona dla nas zarezerwowana do czasu aż wyłączymy usługę odznaczając „DDNS Enabled”.

Natomiast faktem jest że taki adres do najkrótszych nie należy, po drugie jest on generowany losowo (nie możemy wpisać/zaproponować swojego). Tutaj dobrym pomysłem wydaję się posiadanie własnej domeny (lub subdomeny) i stworzenie rekordu CNAME np. router.twojadomena.pl wskazującego na adres domenowy wygenerowany w MikroTik’u. Z serwisów oferujących darmowe subdomeny polecam one.pl. Ważne aby TTL tego rekordu był jak najniższy (np. 60 sekund).


Alternatywnie proponuję wykorzystać serwis noip.com (wcześniej no-ip.org) i posiadać bezpośrednio swoją subdomenę w takim serwisie.

W tym przypadku nie wykorzystujemy żadnej funkcjonalności wbudowanej w RouterOS. Zamiast tego za pomocą skryptu łączymy się z serwisem noip.com i aktualizujemy nasz adres IP.

Poradnik jak wdrożyć to rozwiązanie opisałem na portalu mikrotikacademy.pl jedynie z czasem skrypt pokazany w tym poradniku trochę wyewoluował.

Poniżej nowa wersja skryptu.

 # Konfiguracja
:local wanInterface "";
:local hostname "";
:local username "";
:local password "";

# Skrypt
:local publicIP [/ip address get [find interface=$wanInterface] address];
:set publicIP [:pick $publicIP 0 [:find $publicIP "/"]];
/tool fetch url="http://dynupdate.no-ip.com/nic/update?hostname=$hostname&myip=$publicIP" user=$username password=$password keep-result=no;
:delay 10s;

Skrypt do pobrania