# Automatycznie odświeżenie rekordów DNS wskazujących na RouterOS
Przedstawimy w jaki sposób zautomatyzować konfiguracje DNS w celu trwałego wskazywania na aktualny adres IP RouterOS (Mikrotik, Cloud Hosted Router), nawet w przypadku jego zmiany.
Pozwoli to innym urządzeniom sieciowym na zlokalizowanie urządzenia, nawet w przypadku zmiany jego adresowej sieciowej. Technika ta bywa określana jako "Dynamic DNS".
Wykorzystamy Konto Usługi, które pozwoli na bezpieczne wprowadzenie zmian w platformie bez konieczności zachowania hasła Użytkownika w konfiguracji.
# Warunki wstępne
Przed przystąpieniem do operacji powinieneś mieć:
- utworzony DNS, zgodnie z instrukcją
- utworzony rekord DNS typu A z dowolną wartością, zgodnie z instrukcją,
- dostęp do urządzenia z Router OS, albo utworzyć nowe zgodnie z przewodnikiem
- łączność sieciową z urządzenia z Router OS do sieci Internet
# Konfiguracja
# Konfiguracja platformy
Utwórz Konto Usługi, zgodnie z instrukcją.
# Konfiguracja Router OS
# Instalacja skryptu
Przejdź do WebFig, zgodnie z instrukcją (opens new window).
Przejdź do formularza dodawania skryptu. W tym celu w menu z lewej strony wybierz "System"->"Scripts". Następnie naciśnij przycisk "Add new".
Wypełnij formularz:
- W polu "Name" wprowadź
hyperone_updater
- W polu "Source" wprowadź następujący skrypt:
:local domain "{domain}" :local subdomain "{subdomain}" :local authtoken "{identyfikator_service_account}" :local ipmask [/ip address get [/ip address find interface=ether1] address]; :if ([:len $ipmask]>5) do={ :local position [:find $ipmask "/"]; :local ip [:pick $ipmask 0 $position]; :put "Current IP: $ip"; :local oldip [:resolve "$subdomain.$domain"]; :put "Old IP: $oldip" :if ($ip!=$oldip) do={ :log info "Updated DDNS from $oldip to $ip"; :tool fetch url="https://api.hyperone.com/v1/dns/zone/$domain./rrsets/A/$subdomain.$domain./ddns?authtoken=$authtoken" mode=https http-method=put }
Zastąp w polu "Source" następujące elementy:
{domain}
- nazwa strefy DNS{subdomain}
- nazwa rekordu DNS{identyfikator_service_account}
- identyfikator Konta Usługi
- W polu "Name" wprowadź
Zatwierdź zmiany przyciskiem
Apply
# Zaharmonogramowanie wykonania
Przejdź do formularza dodawania zadania do harmonogramu. W tym celu w menu z lewej strony wybierz "System"->"Scheduler". Następnie naciśnij przycisk "Add new".
Wypełnij formularz:
- W polu Name wprowadź
hyperone dns update
- W polu Interval wprowadź
00:00:30
- W polu On Event wprowadź
/system script run hyperone_updater
- W polu Name wprowadź
Zatwierdź zmiany przyciskiem
Apply
# Częste pomyłki
- Rekord DNS, który chcesz modyfikować musi istnieć przed wykonaniem operacji, a strefa DNS być poprawnie rozwiązywana z wykorzystaniem DNS urządzenia.