|

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

Topologia sieci

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.

Po zalogowaniu wybieramy usługę – dziś DDNS
Dynu – dodawanie nowego DNS

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).

Dynu – można wybrać jedną z dwóch opcji

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

Dynu – lista dostępnych serwerów

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.

Dynu – adres IP dla mt1.netadminpro.pl przed rekonfiguracja

Krok 3: Konfiguracja Mikrotika

Aby to zrobić, trzeba wejść w ustawienia – DDNS – Setup

Dynu – konfiguracja

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

Dynu – wybór opcji konfiguracji

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.

Dynu – konfiguracja DDNS dla Mikrotika

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.

Interface’y MT1

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

Mikrotik – dodawanie nowego skryptu

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

Mikrotik – tworzenie skryptu

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.

Konsola MT1

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

MT1 – logi

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.

MT1 – planowanie cyklicznego zadania

Krok 4: Zmiany w WireGuard

Obecnie mamy ciągle skonfigurowanego klienta WireGuarda z endpointem na 10.253.253.133

WireGuard – adres endpoint przed zmianą
MT1 – adres interface’u WAN

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:

Polecenia „link set down” i „link set up”

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

WireGuard – adres endpoint po zmianie

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.

MT1 – zmiana adresu na 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.

MT1 – logi

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.

DDNS wbudowany w Mikrotika

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].


Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *