Skip to main content

10.7 Systém doménových mien, DNS, DoH a mDNS

Doménové meno

Úplné doménové meno (FQDN = Fully Qualified Domain Name) internetového servera má všeobecný tvar zariadenie.doména. Napríklad esphome.ust.ssnd.sk označuje zariadenie (server) s menom „esphome“, ktorý sa nachádza v doméne školy - „ust.ssnd.sk“. v nej sú aj iné zariadenia, napríklad „grafana“, jeho doménové meno teda bude „grafana.ust.ssnd.sk“.

Meno domény by sme vedeli ďalej rozdeliť na viac častí oddelených bodkou - posledná časť (za poslednou bodkou, v našom prípade „sk“) je doména najvyššej úrovne (TLD). Domény najvyššej úrovne by sa dali rozdeliť do dvoch kategórií:

  1. národné domény (ccTLD) označujú krajinu, zopár príkladov susedných a blízkych krajín:
    • .sk - Slovensko;
    • .cz - Česko;
    • .pl - Poľsko;
    • .ua - Ukrajina;
    • .hu - Maďarsko;
    • .at - Rakúsko;
    • .de - Nemecko.
  2. všeobecné domény (gTLD) označujú typ organizácie / inštitúcie, zopár historických domén:
    • .com - komerčné spoločnosti (company), v súčasnosti najrozšírenejšia TLD;
    • .org - nekomerčné organizácie (organization);
    • .net - inštitúcie zaoberajúce sa sieťami a internetom (network);
    • .mil - armáda USA (military);
    • .gov - vláda a vládne inštitúcie USA (government);
    • .edu - vzdelávacie inštitúcie USA (education).

Niektoré všeobecné domény najvyššej úrovne zostali z historických dôvodov vyhradené pre USA (.mil, .gov, .edu) - ostatné krajiny ich používajú len ako domény 2. úrovne pod príslušnou TLD svojej krajiny, napríklad slovenská vláda má doménu „.gov.sk“, konkrétny príklad webových stránok Protimonopolného úradu SR na nej: www.antimon.gov.sk

V súčasnosti je už možné registrovať si aj vlastné TLD, čo využili aj „veľkí hráči“ - vyskúšať si môžeme napríklad ai.google, či office.microsoft.

Je pochopiteľné, že v záujme zachovania poriadku musí prideľovanie doménových mien niekto usmerňovať a organizovať - správu každej domény najvyššej úrovne má na starosti príslušné centrum NIC (vo význame Network Information Center). v prípade našej národnej domény sa jedná o SK-NIC, kde si je možné vyhľadať informácie o konkrétnej slovenskej doméne - kto je jej vlastníkom, dokedy je jej prevádzka zaplatená a podobne.

DNS server

Informácie o doménových menách udržiavajú a poskytujú DNS servery. Tie majú hierarchické usporiadanie:

  • Koreňové DNS servery poskytujú register všetkých TLD a ich NIC. Sú strategicky rozmiestnené po celom svete, je ich formálne 13 (s menami a.root-servers.netm.root-servers.net) a každý z nich spravuje iná organizácia. Každý z týchto 13 serveroch však existuje v mnohých inštanciách dostupných cez anycast adresy (nám najbližšie sú inštancie serverov D, E, F a K) - reálne beží takmer 2000 inštancií koreňových DNS serverov.
  • Autoritatívny DNS server pre konkrétnu doménu spravuje jej záznamy. Obvykle je ich viac (redundancia), napríklad autoritatívnymi servermi pre TLD .sk sú servery a.tld.skh.tld.sk, ktoré prevádzkuje SK-NIC.
  • Rekurzívny DNS prekladač (resolver) získava DNS údaje postupne podľa hierarchie - teda spýta sa koreňového DNS servera na správcu TLD, toho sa spýta na správcu domény 2. úrovne, atď.

Bežne zadávame náš smerovač ako „DNS server“ pre zariadenia v sieti, no v skutočnosti sa nejedná o plnohodnotný DNS server (ani resolver), ale len o preposielanie požiadaviek (DNS Forwarder) s ukladaním výsledkov do pamäte (cache) pre opakované použitie - čo je samo o sebe výhodnou možnosťou obzvlášť v prípade sietí s veľkým množstvom klientov. Každé zariadenie MikroTik s RouterOS môže slúžiť ako DNS server s cache, pričom umožňuje nielen preposielať požiadavky, ale môžeme v ňom nastaviť aj vlastné (statické) DNS záznamy cez WinBox ponuku IP → DNS → tlačidlo Static.

DNS záznamy

Každý DNS záznam má svoj typ, hodnotu a dobu platnosti. Azda najčastejšie sa stretneme s týmito typmi DNS záznamov:

  • A: IPv4 adresa;
  • AAAA: IPv6 adresa;
  • CNAME: alias mena (odvoláva sa na iné meno);
  • MX (mail exchanger): priorita a adresa SMTP servera pre príjem mailov;
  • TXT: rôzne doplnkové informácie, napr. SPF, Domain Key;
  • FWD: nejde o štandardný DNS záznam, ale skôr funkciu pre preposlanie otázky na iný DNS server.

Dopytovanie DNS

Pre komunikáciu s DNS serverom (cez UDP/53 a TCP/53), teda pre získavanie informácií o doménových menách, sa využíva príkaz nslookup alebo pokročilejší príkaz dig - ten síce nepodporuje interaktívny režim dopytovania, ale podporuje aj nové typy DNS záznamov (napríklad HTTPS). Zopár príkladov použitia:

# štandardný dopyt
nslookup www.ssnd.sk # odpovie typy A+AAAA
dig www.ssnd.sk # odpovie len typ A

# špecifikácia typu DNS záznamu
dig AAAA www.ssnd.sk # dopyt na AAAA
dig MX ssnd.sk # dopyt na MX

# stručný výpis - len odpoveď
dig server.ust.ssnd.sk +short

# pýta sa konkrétneho DNS servera 8.8.8.8
nslookup server.ust.ssnd.sk 8.8.8.8
dig server.ust.ssnd.sk @8.8.8.8 +short

V OS Windows nie je štandardne nástroj dig k dispozícii, doinštalovať ho možno aj príkazom winget install ISC.Bind --scope machine. Ak nie je dostupný v OS Linux, pomôže napríklad apt install dnsutils.

Reverzné DNS záznamy

DNS server prekladá nielen doménové meno na IP adresu, ale môže aj opačne - k IP adrese dohľadať stanovené doménové meno cez reverzný záznam typu PTR. Pozor, viaceré doménové mená môžu smerovať na rovnakú IP adresu, no každá IP adresa má len jediný reverzný záznam. Ten sa získava určitým trikom - dopytuje sa „doménové meno“ v špeciálnom tvare:

  • Pre IPv4 je to {IP adresa po číslach od konca}.in-addr.arpa, pričom čísla (oktety) sa oddeľujú bodkou, teda napríklad pre adresu „10.112.100.200“ je to „200.100.112.10.in-addr.arpa“.
  • Pre IPv6 je to {IP adresa po čísliciach od konca}.ip6.arpa, pričom číslice (v šestnástkovej sústave) sa oddeľujú bodkou, teda napríklad pre adresu „2001:470:5a05:100::1“ je to „1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.5.0.a.5.0.7.4.0.1.0.0.2.ip6.arpa“.

Takéto PTR záznamy, na rozdiel od všetkých vyššie uvedených, sa nedefinujú na DNS serveri držiteľa domény, ale oprávnenie preň má držiteľ IP adresy, čiže obvykle ISP.

Pre reverzný dopyt je možné použiť rovnaké príkazy, pre dig však musíme uviesť parameter -x:

nslookup 8.8.8.8
dig -x 8.8.8.8 +short
Načo sú vlastne dobré reverzné záznamy?
Okrem diagnostických nástrojov typu traceroute ich využívajú aj poštové servery pre zapisovanie trasy správy do hlavičiek e-mailu, ale aj na overovanie odosielajúceho servera. Okrem toho sa reverzné dopyty môžu využívať aj na identifikáciu, či jednoduchú geolokáciu klienta ľubovoľnej služby - napríklad na našom webe môžeme vidieť, že návštevník prišiel zo siete telekom.sk, orange.sk, ssnd.sk a podobne.

DoH (DNS over HTTPS)

Keďže DNS služba je z podstaty fungovania predmetom záujmu útočníkov, zaujímavou novinkou je DNS over HTTPS (DoH) - dopyt na doménové mená sa nerealizujú štandardným nešifrovaným spojením na DNS server (ktoré je možné veľmi jednoducho zachytiť a zmanipulovať - pozri kapitolu 12.3 Presmerovania spojení z LAN), ale prostredníctvom šifrovaného HTTPS spojenia na DoH server. Túto možnosť podporujú webové prehliadače, operačné systémy, ale i MikroTik zariadenia. Klientovi nenastavujeme DNS server cez obvyklú IP adresu, ale uvádzame plnú URL adresu na HTTPS službu poskytovateľa DoH v tvare https://{adresa servera}/dns-query.

Zapnutie DoH

Vo Windows 11 je možné zapnúť DoH v nastaveniach sieťovej karty, no DoH server použijú len podporované aplikácie (webové prehliadače) a nie operačný systém samotný. v nastaveniach je potrebné:

  • zvoliť manuálne DNS, zadať bežnú IP adresu zvoleného DNS servera (napríklad 1.1.1.3);
  • v časti „Uprednostňovaný server DNS pred protokolom HTTPS“ zvoliť voľbu „Zapnuté (manuálna šablóna)“;
  • zadať celú URL adresu toho istého DoH servera, ktorého IP adresu sme zadali vyššie (napríklad https://1.1.1.3/dns-query).

Nastavenie DoH vo webových prehliadačoch PC:

  • Edge: v nastaveniach „Ochrana osobných údajov", sekcia „Zabezpečenie“, voľba „Použiť zabezpečené DNS“;
  • Vivaldi: v nastaveniach „Sieť“, sekcia „DNS cez HTTPS“;
  • Firefox: v nastaveniach „Súkromie a bezpečnosť“, sekcia „DNS cez HTTPS“.

Príklad využitia DoH služieb Cloudflare:

  • adresa servera DoH bez filtrovania: cloudflare-dns.com alebo 1.1.1.1;
  • adresa servera DoH s filtrovaním škodlivého obsahu: security.cloudflare-dns.com alebo 1.1.1.2;
  • adresa servera DoH s filtrovaním škodlivého a nevhodného obsahu: family.cloudflare-dns.com alebo 1.1.1.3;
  • overenie funkčnosti DoH Cloudflare: https://one.one.one.one/help;
  • overenie funkčnosti filtrovania: cez adresy uvedené v zozname z dokumentácie (napríklad phishing.testcategory.com);
  • dokumentácia API.

Ak URL adresa DoH servera obsahuje doménové meno, je nutné mať nastavený aj štandardný DNS server. Akonáhle sa overí funkčnosť DoH, štandardný DNS server sa nebude používať. No čo ak útočník zachytí dopyt na doménové meno DoH servera? Toto rieši samotné šifrovanie HTTPS, v MikroTik RouterOS je však potrebné zapnúť overovanie certifikátu a nahrať koreňovú CA - touto problematikou sa budeme zaoberať podrobne v 14. kapitole. Cloudflare využíva certifikát DigiCert Global Root CA.

Multicast DNS (mDNS)

V dnešnej dobe smart technológií sa dôraznejšie prejavuje potreba jednoduchého nájdenia zariadení vo svojej LAN sieti. Bežní používatelia nemusia vedieť novému zariadeniu ani priradiť stabilnú rezerváciu IP adresy na DHCP serveri a ani mu prideliť doménové meno. Ako sa teda majú pripojiť napríklad na nový riadiaci server smart domácnosti?

Riešením mDNS (multicast DNS) - ide o akýsi automatický lokálny DNS systém, fungujúci v LAN sieti cez multicast dopyty, teda bez potreby DNS servera, či záznamov na ňom. Nefunguje pre všetky DNS dopyty (asi by sme nechceli, aby sa všetky DNS otázky z nášho zariadenia šírili po celej LAN), ale len pre dopyty na doménové mená zo špeciálnej TLD .local.

Ako môže mDNS pomôcť v praxi?

1. príklad: Do siete pripojíme novú tlačiareň, počítač ju nájde a pripojí si ju cez mDNS meno, ktoré bude nemenné.

2. príklad: Do siete pripojíme nový SBC (napríklad Raspberry Pi), na pamäťovej karte má nahratú inštaláciu OS. Po dokončení inštalácie sa môžeme naň pripojiť po sieti (SSH / HTTP / appka v mobile) aj bez znalosti IP adresy - stačí použiť mDNS meno, napríklad raspberrypi.local pre Raspberry Pi OS, homeassistant.local pre Home Assistant OS.

Najznámejšie praktické implementácie mDNS nesú označenie Bonjour v ekosystéme Apple (služby ako AirPrint, Apple TV a podobne) a Avahi vo svete Linux. Windows nemá vlastnú implementáciu - staršie verzie sa spoliehali na NetBIOS a aktuálne už priamo podporuje základné A/AAAA záznamy mDNS a pre objavovanie služieb používa vlastný protokol WS-Discovery.

Technické detaily

Na rozdiel od DNS dopytov, ktoré sú adresované na UDP port 53 a IP adresu konkrétneho DNS servera, sú mDNS dopyty adresované na UDP port 5353 a multicast IP adresy 224.0.0.251 a ff02::fb (s MAC adresami 01:00:5E:00:00:FB a 33:33:00:00:00:FB). Podporované nie sú len A/AAAA záznamy, ale aj iné, ktoré poznáme z bežného DNS, vrátane SRV záznamov, ktoré sú kľúčové pre objavovanie služieb (Service Discovery) a záznamov typu TXT, ktoré môžu poskytovať doplňujúce informácie.

Dopytovanie mDNS

Na mDNS dopyty nie je možné využiť nástroje dig a nslookup, pretože tie ich adresujú DNS serveru. Pre preklad multicast mena na IP adresu (záznamy A/AAAA) postačí aj ping, no pre plnohodnotné využitie mDNS je potrebný iný postup:

  • v OS Windows použiť PowerShell a príkaz Resolve-DnsName meno.local, prípadne aj s parametrom pre určenie typu dopytu -type TYP;
  • v OS Linux je veľmi silná dvojica príkazov AVAHI, konkrétne:
    • avahi-resolve --name meno.local len preloží meno;
    • avahi-browse --all --resolve zobrazí všetky dostupné služby na všetkých zariadeniach, prípadne avahi-browse služba --resolve vypíše len zariadenia s uvedenou službou (napríklad _esphomelib._tcp, _ssh._tcp).

Prechádzanie mDNS dopytov cez router

Štandardne sa multicast posielajú len v rámci vlastnej LAN siete. Smerovače MikroTik však podporujú funkciu mDNS Repeater, pre ktorú môžeme definovať rozhrania, do ktorých majú byť preposlané mDNS dopyty - toto nájdeme cez WinBox ponuku IP → DNS → mDNS Repeater Interfaces. MikroTik zariadenie bude na definovaných rozhraniach „počúvať“ mDNS dopyty a odpovede a všetky prepošle na ostatné definované rozhrania. Vďaka tomu je možné mať napríklad tlačiarne v samostatnej sieti, IoT zariadenia v samostatnej sieti a zároveň využívať výhody mDNS.