Konfiguracja MikroTik – Część 47: MikroTik jako lokalny serwer DNS z filtrowaniem treści i cache’owaniem odpowiedzi
Konfiguracja MikroTik – Część 47: MikroTik jako lokalny serwer DNS z filtrowaniem treści i cache’owaniem odpowiedzi
🔍 Wprowadzenie
W większości przypadków MikroTik służy jako router lub firewall, jednak jego możliwości w zakresie obsługi DNS często są niedoceniane. Dzięki funkcjom DNS static, DNS cache, a także filtrowaniu i przekierowywaniu zapytań DNS, MikroTik może stać się lokalnym resolverem DNS. Taka konfiguracja przyspiesza dostęp do sieci, zwiększa bezpieczeństwo użytkowników, a także umożliwia wdrożenie lokalnego filtrowania domen — na przykład blokadę serwisów społecznościowych, złośliwych adresów czy reklam.
W tej części przeprowadzimy pełną konfigurację MikroTika jako serwera DNS dla sieci LAN, z uwzględnieniem cache’owania, filtrowania niepożądanych domen oraz bezpiecznego przekazywania zapytań tylko do zaufanych upstreamów DNS.

🧱 Funkcje jakie wdrożymy
- MikroTik jako lokalny DNS resolver
- Ustawienie cache DNS
- Filtrowanie złośliwych lub niepożądanych domen
- Blokada przekierowania DNS (DNS hijacking)
- Wymuszanie DNS-over-HTTPS lub przekierowanie zapytań portu 53 do lokalnego serwera
- Przykład użycia listy z malwaredomains.com i własnych blacklist
- Monitorowanie zapytań DNS
⚙️ Krok 1: Włączenie lokalnego serwera DNS
W RouterOS (od wersji 7+), lokalny serwer DNS konfiguruje się poprzez:
/ip dns set allow-remote-requests=yes cache-max-ttl=1d servers=1.1.1.1,9.9.9.9
allow-remote-requests— pozwala klientom z sieci lokalnej korzystać z routera jako resolveraservers— adresy zewnętrznych, zaufanych serwerów (może to być Cloudflare, Quad9, Google DNS lub lokalny Unbound)
🧠 Krok 2: Filtrowanie niechcianych domen
Możemy wykorzystać statyczne wpisy DNS do zablokowania domen np. reklamowych:
/ip dns static
add name=doubleclick.net address=127.0.0.1 ttl=1d
add name=facebook.com address=127.0.0.1 ttl=1d
add name=*.ads.* address=127.0.0.1 ttl=1d
Lub zautomatyzować wgrywanie setek wpisów z pliku:
/tool fetch url=https://example.com/blacklist.txt dst-path=blacklist.rsc
/import file-name=blacklist.rsc
Warto wygenerować plik
.rsczawierający wpisy DNS statyczne w formacie:
/ip dns static add name=badsite.com address=127.0.0.1
🔒 Krok 3: Zapobieganie omijaniu DNS przez użytkowników
Jeśli użytkownik ręcznie ustawi zewnętrzny DNS (np. 8.8.8.8), może ominąć lokalne filtrowanie. Aby temu zapobiec:
/ip firewall nat
add action=redirect chain=dstnat dst-port=53 protocol=udp to-ports=53
add action=redirect chain=dstnat dst-port=53 protocol=tcp to-ports=53
Ta reguła przekierowuje każde zapytanie DNS w sieci lokalnej na port 53 routera MikroTik, wymuszając użycie lokalnego DNS.
📦 Krok 4: DNS-over-HTTPS (DoH)
MikroTik nie obsługuje jeszcze natywnie DoH jako resolver, ale można to obejść przez zewnętrzny DoH proxy — np. dnscrypt-proxy działający na Raspberry Pi w sieci LAN, który komunikuje się z Quad9 DoH/Cloudflare.
W MikroTik ustawiamy:
/ip dns set servers=192.168.1.100
Gdzie 192.168.1.100 to nasz lokalny DoH proxy.
📊 Krok 5: Monitorowanie zapytań DNS
Możesz logować zapytania DNS w MikroTiku:
/system logging add topics=dns,debug action=memory
Lub eksportować logi do zewnętrznego sysloga:
/system logging action add name=dns-remote target=remote remote=192.168.1.200
/system logging add topics=dns action=dns-remote
Takie dane można potem analizować w ELK, Grafanie czy Loki.
🎯 Praktyczne zastosowania
- Szkoły – blokada YouTube, TikTok i treści NSFW
- Małe biura – filtracja phishingu i złośliwych linków
- Domowe sieci – kontrola rodzicielska
- Edge/IoT – ograniczenie komunikacji tylko do znanych domen
✅ Podsumowanie
MikroTik nie jest pełnoprawnym zamiennikiem dla Unbound czy Pi-hole, ale w wielu przypadkach wystarcza jako lokalny resolver z opcją filtracji. Odpowiednia konfiguracja pozwala na przyspieszenie dostępu do sieci, ochronę użytkowników oraz egzekwowanie polityk bezpieczeństwa. Dodatkowo, przez redirectowanie zapytań, administrator ma pełną kontrolę nad ruchem DNS w sieci.






