4 Kroki WireGuard z DDNS [konfiguracja Mikrotik]
Tym razem zajmiemy konfiguracją DDNS dla scenariusza z WireGuardem.
Na interfejsie WAN mamy zmienne adresy IP publiczne. Chcemy zaktualizować nazwy domenowe dla bieżącego adresu IP i powiązać to z dostępem po WireGuardzie.
Konfigurację w formie video obejrzysz TUTAJ 🙂
Dowiedz się więcej: 4 Kroki WireGuard z DDNS [konfiguracja Mikrotik]Topologia

System LINUX (czerwone pole) będzie łączył się zdalnie przez WireGuarda w trybie Road-Warrior do MT1. Będzie to w sieci 10.255.254.0. Jedynka będzie dla mikrotika, dwójka będzie dla Linuxa.
Krok 1: Wybór serwisu DDNS i rejestracja konta
DDNS stworzymy dla zmieniających się adresów IP na WANie MT1.
Będziemy pracować dziś na DYNU.



Krok 2: Wybór domeny
Możemy tutaj skorzystać z jednej z domen proponowanych przez serwis – opcja 1. Ja wybieram opcję 2 – użycie własnej domeny (mt1.netadminpro.pl).


Przy tym wariancie trzeba pamiętać o przekierowaniu klienta do serwera DNSa lub o zaparkowaniu swojej domeny na serwerze z listy DYNU.

Ja tym razem wybieram rozwiązanie pierwsze – przekierowanie klienta.
Na moim LINUXie mam już wpisany DNS związany z serwerem NS11.DYNU.COM (Frankfurt, DE).
Przy odpytywaniu DNSa o domenę mt1.netadminpro.pl dało adres IP, który będzie w dalszej części pracy przekonfigurowywany.
Sam adres można oczywiście wpisać tutaj ręcznie, ale nam zależy na tym, aby odświeżał się on przecież automatycznie.

Krok 3: Konfiguracja Mikrotika
Aby to zrobić, trzeba wejść w ustawienia – DDNS – Setup

Konfiguracji możemy dokonać dla różnych platform, klientów…

Nas interesuje dziś konfiguracja z Mikrotikiem i taka również się tu znajduje.
Po wybraniu tej opcji należy skopiować cały podany skrypt.
Wypełnić należy odpowiednio wytłuszczone dane.

W moim przypadku to konkretnie te dane:
:global ddnsuser "NetAdminPro" :global ddnspass "gYciM3Jhzo76RN67r7$a" :global theinterface "WAN-eth1-MT1" :global ddnshost "mt1.netadminpro.pl"
Skrypt podany poniżej uzupełniony jest już o powyższe.
/system script
add name=Dynu policy=read,write,test :global ddnsuser "NetAdminPro" :global ddnspass "gYciM3Jhzo76RN67r7$a" :global theinterface "WAN-eth1-MT1" :global ddnshost "mt1.netadminpro.pl" :global ipddns [:resolve $ddnshost]; :global ipfresh [ /ip address get [/ip address find interface=$theinterface ] address ] :if ([ :typeof $ipfresh ] = nil ) do={ :log info ("DynuDDNS: No IP address on $theinterface .") } else={ :for i from=( [:len $ipfresh] - 1) to=0 do={ :if ( [:pick $ipfresh $i] = "/") do={ :set ipfresh [:pick $ipfresh 0 $i]; } } :if ($ipddns != $ipfresh) do={ :log info ("DynuDDNS: IP-Dynu = $ipddns") :log info ("DynuDDNS: IP-Fresh = $ipfresh") :log info "DynuDDNS: Update IP needed, Sending UPDATE...!" :global str "/nic/update?hostname=$ddnshost&myip=$ipfresh" /tool fetch address=api.dynu.com src-path=$str mode=http user=$ddnsuser password=$ddnspass dst-path=("/Dynu.".$ddnshost) :delay 1 :global str [/file find name="Dynu.$ddnshost"]; /file remove $str :global ipddns $ipfresh :log info "DynuDDNS: IP updated to $ipfresh!" } else={ :log info "DynuDDNS: dont need changes"; } }
Dodam, że nazwa interfejsu została skopiowana z danych mikrotika MT1.

Kolejnym krokiem będzie już konfiguracja samego mikrotika (MT1).
Wybieramy zatem „Systems” a następnie „Scripts”.

Jeśli chcemy dodać nowy, wybieramy „Add new”.

Nadajemy własną nazwę, wybieramy odpowiednie opcje a w pole „Source” wklejamy skrypt skopiowany od miejsca definiowania zmiennych (czyli począwszy od frazy: global ddnsuser…).
Alternatywnie można również skorzystać z konsoli mikrotika i tam wkleić cały skrypt.

Zobaczmy jak wygląda sytuacja w logach MT1. Czy będzie już widoczne działanie tego skryptu?

Chcę jeszcze, aby ten skrypt wykonywał się powtarzalnie i automatycznie.
Skorzystam zatem z zakładki „Scheduler”, żeby dodać cykliczne zadanie.
Nadam mu nazwę, datę i godzinę startową, interwał, opcje policy (te wymienione w skrypcie).
Wskazać należy też nazwę zdarzenia, którego to dotyczy.

Krok 4: Zmiany w WireGuard
Obecnie mamy ciągle skonfigurowanego klienta WireGuarda z endpointem na 10.253.253.133


Natomiast na MT1 mamy przecież adres IP 10.253.253.103.
Czyli w konfiguracji samego klienta nasze dzisiejsze zmiany nie zostały jeszcze uwzględnione, klient wciąż kieruje się na dawniej wpisany adres.
Konieczne jest odświeżenie statusu – rozłączenie i ponowne jego podłączenie.
W Linuxie wygląda to następująco:

I jak widać po tej operacji mamy już właściwy adres 10.253.253.103

Jeśli jest ktoś zainteresowany pełniejszym omówieniem konfiguracji WireGuarda, w tym także powyższymi dwoma komendami, to zapraszam do bloga do tematu Konfiguracja klienta WireGuard na Ubuntu.
Po sprawdzeniu (zapingowniu) widać, że pakiety przechodzą prawidłowo. Tunel wireguardowy mamy zestawiony właściwie.

Oznacza to, że nasz cel został osiągnięty i adres IP będzie się aktualizował automatycznie.
Sprawdźmy zatem…
Na próbę dokonam zmiany adresu na MT1 – z adresu dotychczasowego 10.253.253.103 na inny: 10.253.253.143.

Jako uzupełnienie dodam, że ta konfiguracja odbywa się na MT1 przez usługę związaną z zarządzaniem (jest to istotne dla tych, którzy tak jak ja korzystają w tym zakresie z VRFa).
Wracając do naszego sprawdzianu – w logach już widać, że nowy adres został wykryty.

I na DDNSie również jest zmiana.

Teraz na Kliencie należy odświeżyć WireGuarda:

W efekcie widać już powyżej zmianę na 10.253.253.143.
Po zapingowaniu widać, że wszystko działa prawidłowo.

Inne opcje…
Alternatywną opcją do korzystania z DYNU (czy innego podobnego serwisu) jest wykorzystanie wbudowanej w Mikrotika konfiguracji DDNS.

Jeśli jesteś zainteresowany dokładniejszym zapoznaniem się z powyższą opcją, mogę zaproponować obejrzenie fragmentu filmu Mikrotik RouterOS IP Cloud Feature How To – DDNS.
Ja osobiście polecam jednak wykorzystanie do stworzenia DDNS serwisu takiego jak DYNU. A to ze względu na wielość opcji i funkcjonalność, zwłaszcza możliwość wykorzystania własnej domeny.
Na koniec daję znać, że jeśli chciałbyś dokładniej zobaczyć jak przebiegał mój dzisiejszy proces konfigurowania DDNS, to zapraszam do obejrzenia filmu na ten temat na YouTube – 22T43 5 Kroków WireGuard z DDNS [konfiguracja Mikrotik].