For shortened English version of „Using host names in MikroTik RouterOS firewall (Dynamic DNS issue)“ scroll down to the bottom of the page, please.
MikroTik RouterOS (aktuálne verzia 6.33.3) dokáže natívne pracovať s doménovými názvami, teda prekladať hostname na IP. Doménové názvy však nie je možné použiť v rámci celej konfigurácie. Plne podporované sú napríklad nástroje ping a traceroute, nie však už IP / Firewall – doménový názov (hostname) systém nepovolí uložiť do konfigurácie.
Spravujte GLPI s IT365! Objavte naše expertné služby pre implementáciu a podporu GLPI.
Kliknite pre viac informácií.
V dnešnej situácii nedostatku IPv4 IP adries je to zásadný problém pre použitie Mikrotiku nielen v SOHO riešeniach, ale aj napríklad pri zabezpečovaní vzdialeného prístupu pracovníkov z domácich pripojení s dynamickými IP adresami (veľkí poskytovatelia SOHO a domáceho internetu recyklujú verejné IP adresy v niekoľko týždňových intervaloch).
Riešenie pre použitie hostname v IP / Firewall pravidlách
Pre použitie hostname (dynamické aj statické názvy) vo firewalle budete potrebovať jednoduchý skript a niekoľko nastavení pre jeho prevádzku.
- Vytvoríme záznam v IP / Firewall / Address list, ktorý budeme aktualizovať
- Vytvoríme skript na aktualizáciu tohto záznamu vstavaným RouterOS Schedulerom
- Záznam použijeme v pravidle v IP / Firewall
Záznam v IP / Firewall / Address list
V obslužnej aplikácii WinBox prejdite do časti IP / Firewall, na záložku Address List. Pridajte nový záznam, jeho IP adresa nie je pre naše potreby relevantná, budeme ju aktualizovať (použite napríklad aktuálnu IP adresu hostname).
Na adresovanie záznamu z aktualizačného skriptu potrebujeme vedieť jeho poradie v Address List. V ľavej časti WinBoxu otvorte nové terminálové okno (New Terminal) a vylistujte záznamy príkazom:
ip firewall address-list print
Výstupom bude riadok obsahujúci náš hostname a IP s poradovým číslom v Address List:
15 sub1.itcko.sk 37.9.175.20
Z aktualizačného skriptu budeme teda odkazovať na 15ty záznam.
Aktualizačný skript a MikroTik Scheduler
V ľavej časti WinBoxu prejdite na System / Scripts a pridajte nový skript. Meno skriptu bude dôležité pre odkazovanie v Scheduleri.
Telo samotné skriptu upravte aby obsahovalo vašu (Dyn) DNS adresu (hostname) a poradové číslo záznamu v Address List:
:local resolvedIP [:resolve „sub1.itcko.sk“]
:if ($resolvedIP != $currentIP) do={
/ip firewall address-list set 15 address=$resolvedIP
/log info „sub1.itcko.sk IP has been updated“;}
}
Všimnite si správne nastavenie oprávnení skriptu:
Prejdite do System / Scheduler, nastavíme opakované spúšťanie skriptu. Pridajte nový záznam v Scheduler, kde v poli On Event bude názov skriptu z predošlého kroku. Interval spúštania napríklad 00:30:00 znamená každú polhodinu, upravte podľa vlastnej preferencie.
Práva Scheduler jobu budú rovnaké ako pre samotný skript – read a write.
Použitie DynDNS hostname v MikroTik Firewall
Prejdite na IP / Firewall a na záložke NAT vytvorte bežné pravidlo ako pri použití IP adries, zdrojovú adresu (Src. Address) nechajte prázdnu.
Nový, automaticky aktualizovaný záznam (Address List záznam) s dynamickou zdrojovou IP adresou zadajte v detailoch pravidla na záložke Advanced:
Shortened English version
Since this post is getting a lot of traffic from abroad, here is a short version of How to get DynDNS hostnames working in RouterOS and its firewall.
Please find pictures above, and proceed with these steps:
- Create an Address List entry in IP / Firewall on the Address List tab. Use any IP in this step and remember the name.
- Paste „ip firewall address-list print“ in the Terminal and note the number of your Address List entry.
- Create a new script in System / Scripts (paste the script shown above) and edit hostname and entry number to suit your setup.
- Create a new job in System / Scheduler referencing your new script in On Event field.
That’s it, the Address List entry is now resolving IP automatically every 30 minutes.
Please note you need to paste the entry name in Advanced tab (Src. Address List field) when creating NAT rule.