DNS prevádza mená ako example.cz na IP adresy, ktorým rozumejú počítače. V tomto článku vysvetlíme, čo robí ktorý typ záznamu, prečo sa zmena neprejaví hneď a ako si záznam sami overíte. Na základy potom nadväzujú návody na doménu pre VPS a doménu pre Minecraft server.
Čo budete potrebovať
- Vlastnú doménu (u ktoréhokoľvek registrátora), alebo iba chuť pochopiť, ako DNS funguje
- Prístup k správe DNS záznamov vašej domény
- Počítač s Windows, macOS alebo Linuxom na overenie záznamov
- Približne 15 minút
Ako DNS funguje#
Keď hráč napíše do Minecraftu mc.example.cz alebo návštevník do prehliadača example.cz, jeho počítač sa opýta resolvera (DNS servera poskytovateľa internetu, alebo verejného ako 1.1.1.1). Resolver dohľadá, ktorý autoritatívny DNS server má pre doménu záznamy, opýta sa ho a odpoveď si na čas uloží.
Tri roly, ktoré sa často pletú:
| Rola | Čo robí | Príklad |
|---|---|---|
| Registrátor | U neho ste doménu kúpili a platíte ju. Nastavuje, ktoré nameservery doménu spravujú. | Firma, u ktorej máte doménu .sk, .cz alebo .com. |
| DNS hosting (nameservery) | Server, kde sú uložené záznamy domény (A, MX …). Tu záznamy upravujete. | Často rovnaký registrátor, alebo Cloudflare. |
| Resolver | Zisťuje odpovede pre používateľov a ukladá si ich do medzipamäte. | DNS poskytovateľa internetu, 1.1.1.1, 8.8.8.8. |
Upravujte záznamy tam, kam mieria nameservery
Ak má doména nameservery Cloudflare, záznamy u registrátora sa vôbec nepoužijú, aj keď ich tam vidíte. Najprv zistite, kde DNS naozaj beží (príkaz pre NS záznam nájdete nižšie).
Typy záznamov#
| Typ | Na čo je | Príklad hodnoty | Pozor na |
|---|---|---|---|
| A | Prevádza meno na IPv4 adresu. | 203.0.113.10 | Iba jeden záznam pre jedno meno, ak nechcete striedanie adries. |
| AAAA | Prevádza meno na IPv6 adresu. | 2001:db8::10 | Keď služba na IPv6 nepočúva, klienti s IPv6 sa nepripoja. |
| CNAME | Meno je prezývka iného mena. | example.cz. | Nesmie byť na koreni domény ani vedľa iného záznamu s rovnakým menom. |
| SRV | Kde (meno a port) beží konkrétna služba. | 0 5 25570 mc.example.cz. | Cieľ musí byť meno s A/AAAA záznamom, nie IP adresa a nie CNAME. |
| MX | Kam sa doručuje e-mail domény. | 10 mail.example.cz. | Cieľ musí mať A/AAAA záznam, nesmie to byť CNAME ani IP. |
| TXT | Ľubovoľný text: overenie domény, SPF, DKIM, DMARC. | "v=spf1 mx -all" | SPF smie mať doména iba jeden. |
| NS | Ktoré nameservery doménu spravujú. | ns1.example.net. | Meňte iba pri presune DNS inam. |
| CAA | Ktoré certifikačné autority smú vydať certifikát. | 0 issue "letsencrypt.org" | Keď CAA nastavíte, nezabudnite povoliť autoritu, ktorú používate. |
| PTR | Prevádza IP adresu na meno (reverzné DNS). | mail.example.cz. | Nastavuje ho vlastník IP adresy, nie vy vo svojej doméne. Pozri rDNS. |
A a AAAA#
Základ všetkého: hovoria, na akej IP adrese meno beží. IPv4 adresu VPS nájdete v zákazníckom účte v záložke Sieť (napríklad 203.0.113.10), rovnako aj IPv6 (napríklad 2001:db8::10).
AAAA záznam pridávajte iba vtedy, keď na IPv6 adrese naozaj počúva služba, ktorú meno obsluhuje. Zariadenia s IPv6 totiž väčšinou skúšajú IPv6 ako prvé.
CNAME#
CNAME hovorí „toto meno je iba iný názov pre tamto meno“. Typicky www.example.cz ako prezývka pre example.cz. Resolver potom hľadá A/AAAA záznam cieľového mena.
Pravidlá:
- Meno s CNAME nesmie mať žiadny iný záznam (podľa štandardu DNS, RFC 1034). Preto CNAME nejde dať na koreň domény (
example.cz), kde vždy sú záznamy NS a SOA. - Niektoré DNS hostingy to obchádzajú vlastnou funkciou (Cloudflare ju nazýva CNAME flattening): na koreni ukážu rovno IP adresu cieľa.
SRV#
SRV záznam hovorí, na ktorom mene a porte beží konkrétna služba. Používa ho napríklad Minecraft Java Edition: vďaka nemu hráči nemusia písať port.
_minecraft._tcp.mc.example.cz. 300 IN SRV 0 5 25570 mc.example.cz.| Časť | Význam |
|---|---|
_minecraft | Názov služby, vždy s podčiarkovníkom. |
_tcp | Protokol, vždy s podčiarkovníkom. |
mc.example.cz. | Meno, pre ktoré záznam platí (to, čo hráč zadá do hry). |
300 | TTL v sekundách. |
0 | Priorita – klient skúsi najprv cieľ s najnižšou prioritou. |
5 | Váha – medzi cieľmi s rovnakou prioritou rozhoduje pomer váh. Pri jednom cieli na nej nezáleží. |
25570 | Port, na ktorom služba skutočne beží. |
mc.example.cz. | Cieľ – meno, ktoré má A/AAAA záznam s IP adresou servera. |
Vo webovom rozhraní DNS hostingu sa polia volajú podobne (Name / Service / Protocol, Priority, Weight, Port, Target). Celý postup pre Minecraft nájdete v článku Adresa servera a vlastná doména. Bedrock Edition SRV záznamy nepoužíva.
MX a TXT#
- MX určuje poštový server domény. Nižšie číslo (priorita) má prednosť. Cieľ musí byť meno s A/AAAA záznamom.
- TXT nesie text. Služby ako Google alebo Microsoft cez neho overujú, že doménu vlastníte. E-mail ho používa na SPF (kto smie za doménu posielať poštu), DKIM (podpis správ) a DMARC (čo robiť s podvrhnutými správami, záznam
_dmarc.example.cz).
Koreň domény a subdomény#
- Koreň (aj „zavináč“,
@) je samotná doména,example.cz. - Subdoména je čokoľvek pred ňou:
www.example.cz,mc.example.cz,panel.example.cz. Subdoménu nemusíte nikde „zakladať“, stačí pre ňu vytvoriť záznam. - Hviezdička (
*.example.cz) je zástupný záznam pre všetky mená, ktoré nemajú vlastný záznam.
Do poľa Názov píšte iba začiatok
Väčšina webových rozhraní DNS dopĺňa doménu za názov sama. Pre mc.example.cz napíšte do poľa Názov (Name, Host) iba mc, pre koreň @. Keď napíšete celé mc.example.cz, vznikne nechcené mc.example.cz.example.cz.
Bodka na konci (example.cz.) v zápise zónového súboru znamená „celé meno, nič nepridávaj“. Vo webových rozhraniach ju väčšinou písať nemusíte; ak rozhranie bodku vyžaduje, napovie vám to.
TTL a „propagácia“#
TTL (time to live) je počet sekúnd, počas ktorých si resolvery smú odpoveď pamätať. Keď záznam zmeníte, resolver, ktorý si ho práve pamätá, bude posielať starú hodnotu, kým mu TTL nevyprší. Tomu sa ľudovo hovorí „propagácia DNS“.
| TTL | Kedy použiť |
|---|---|
300 (5 minút) | Plánujete zmenu (sťahovanie servera) alebo ešte len ladíte. |
3600 (1 hodina) | Bežná prevádzka, nič nemeníte. |
86400 (1 deň) | Záznamy, ktoré sa roky nemenia. |
Sťahovanie bez výpadku
Deň pred sťahovaním servera znížte TTL záznamu na 300. Po sťahovaní sa nová IP adresa rozšíri do 5 minút. Keď všetko funguje, môžete TTL zase zvýšiť.
Ďalšie dve situácie:
- Zmena nameserverov u registrátora trvá dlhšie, zvyčajne do 24 hodín.
- Negatívna odpoveď sa tiež pamätá. Keď sa na meno niekto opýta skôr, než záznam existuje, resolver si chvíľu pamätá „také meno nie je“. Preto záznam najprv vytvorte a až potom ho skúšajte.
Ako záznam overiť#
Za example.cz a mc.example.cz v príkazoch dosaďte svoju doménu.
Windows
Otvorte PowerShell (alebo Windows Terminal) a použite nslookup:
nslookup example.cz
nslookup -type=AAAA example.cz
nslookup -type=SRV _minecraft._tcp.mc.example.cz
nslookup -type=NS example.cz
nslookup example.cz 1.1.1.1nslookup example.cz– opýta sa predvoleného DNS servera na adresy mena.-type=AAAA– typ záznamu, na ktorý sa pýtate (A,AAAA,SRV,MX,TXT,NS,CNAME).1.1.1.1na konci – opýta sa konkrétneho resolvera namiesto predvoleného. Hodí sa, keď chcete obísť medzipamäť poskytovateľa.
Server: one.one.one.one
Address: 1.1.1.1
Non-authoritative answer:
Name: example.cz
Address: 203.0.113.10Non-authoritative answer je v poriadku: odpoveď prišla z resolvera, nie priamo z nameservera domény.
V PowerShelli môžete použiť aj Resolve-DnsName:
Resolve-DnsName -Name example.cz -Type A -Server 1.1.1.1-Name– dopytované meno.-Type– typ záznamu.-Server– resolver, ktorého sa pýtate (voliteľné).
macOS
Otvorte aplikáciu Terminál. Program dig je v macOS predinštalovaný:
dig +noall +answer example.cz A
dig +noall +answer example.cz AAAA
dig +noall +answer _minecraft._tcp.mc.example.cz SRV
dig +short example.cz NS
dig @1.1.1.1 +short example.cz Adig– nástroj na dopyty do DNS.+noall +answer– vypíše iba sekciu s odpoveďou, bez technických podrobností.+short– vypíše iba samotnú hodnotu.example.cz A– meno a typ záznamu.@1.1.1.1– opýta sa konkrétneho resolvera.
example.cz. 300 IN A 203.0.113.10Stĺpce znamenajú: meno, zostávajúce TTL v sekundách, trieda (vždy IN), typ záznamu a hodnota.
Linux
Na Ubuntu 24.04 aj Debiane 13 (napríklad priamo na VPS) nainštalujte balík s programom dig, ak ho systém nemá:
apt update && apt install bind9-dnsutilsapt update– stiahne aktuálny zoznam balíkov. Bez neho môžeapt installskončiť chybouUnable to locate package.&&– druhý príkaz spustí, iba keď prvý prebehol bez chyby.apt install– nainštaluje balík zo systémových repozitárov. Spúšťajte ako root; pod bežným používateľom napíšte pred oba príkazysudo.bind9-dnsutils– balík s nástrojmidiganslookup.
Potom použite rovnaké príkazy ako na macOS:
dig +noall +answer example.cz A
dig +noall +answer _minecraft._tcp.mc.example.cz SRV
dig +short example.cz NS
dig @1.1.1.1 +short example.cz A+noall +answer– iba sekcia s odpoveďou.+short– iba hodnota.@1.1.1.1– dopyt na konkrétny resolver.
Užitočné verejné resolvery na kontrolu: 1.1.1.1 (Cloudflare), 8.8.8.8 (Google), 9.9.9.9 (Quad9). Keď je nový záznam vidieť u nich, ale nie u vás, máte starú odpoveď v medzipamäti.
Pre pokročilých: dopyt priamo na nameserver domény
Odpoveď autoritatívneho nameservera medzipamäť neovplyvní. Zistite nameserver domény a opýtajte sa ho priamo. Namiesto ns1.example.net dosaďte jeden z nameserverov z prvého výpisu:
dig +short example.cz NS
dig @ns1.example.net +short mc.example.cz AKeď tu záznam je a inde nie, stačí počkať na vypršanie TTL. Celú cestu od koreňových serverov ukáže dig +trace example.cz.
Časté chyby#
| Chyba | Ako sa prejaví | Oprava |
|---|---|---|
| Celá doména v poli Názov | Vznikne mc.example.cz.example.cz, adresa nefunguje. | Do poľa Názov píšte iba mc. |
| Dva rôzne A záznamy pre jedno meno | Raz sa pripojíte, inokedy nie. | Nechajte iba záznam so správnou IP. |
| Zabudnutý AAAA záznam na starý server | Z IPv6 sietí (mobilné dáta) web alebo server nefunguje. | Opravte AAAA na novú IPv6, alebo ho zmažte. |
| CNAME vedľa iného záznamu | DNS hosting záznam odmietne, alebo sa správa nepredvídateľne. | Pre meno použite buď CNAME, alebo A/AAAA, nie oboje. |
| Cieľ SRV alebo MX je IP adresa | Klient adresu nenájde. | Cieľ musí byť meno s A/AAAA záznamom. |
| Proxy Cloudflare (oranžový obláčik) pri hernom serveri alebo SSH | Web funguje, hra ani SSH nie. | Pre tieto záznamy nastavte DNS only (sivý obláčik). Pozri doména na VPS a Cloudflare. |
| Úprava záznamov u registrátora, aj keď NS mieria inam | Zmena sa nikdy neprejaví. | Upravte záznamy tam, kam mieria NS. |
Záznam v súbore hosts v počítači | U vás meno vedie inam než všetkým ostatným. | Skontrolujte súbor hosts (Windows C:\, macOS a Linux /etc/hosts). |
Keď niečo nefunguje#
Non-existent domain (Windows) alebo NXDOMAIN (dig)#
Meno neexistuje. Skontrolujte preklep, že záznam je uložený a že ho upravujete pri správnych nameserveroch. Ak ste sa na meno pýtali skôr, než ste záznam vytvorili, počkajte pár minút (negatívna odpoveď v medzipamäti).
Odpoveď je prázdna, ale meno existuje (No answer, ANSWER: 0)#
Meno existuje, ale nemá záznam typu, na ktorý sa pýtate. Napríklad máte A záznam, ale pýtate sa na AAAA. Každý nástroj to ukáže trochu inak:
dig +shortnevypíše nič. V plnom výpisedigjestatus: NOERRORaANSWER: 0.nslookupna macOS a Linuxe vypíše*** Can't find …: No answer.nslookupvo Windows namiesto adresy vypíše iba údaje o nameserveri domény (riadokprimary name server).
Pri SRV skontrolujte, že názov obsahuje _minecraft._tcp. a správnu subdoménu.
Pri 1.1.1.1 je nová IP, u mňa stále stará#
Váš počítač alebo poskytovateľ internetu má starú odpoveď v medzipamäti. Počkajte na vypršanie TTL, alebo vymažte medzipamäť počítača:
Windows
ipconfig /flushdnsipconfig /flushdns– vymaže medzipamäť DNS vo Windows (aj zapamätané negatívne odpovede).
macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSRespondersudo– spustí príkaz s právami správcu (opýta sa na heslo k Macu, pri písaní sa nič nezobrazuje).dscacheutil -flushcache– vymaže medzipamäť adresárovej služby systému.;– po prvom príkaze spustí druhý.killall -HUP mDNSResponder– pošle systémovej službe DNS signál, aby zahodila medzipamäť.
Linux
sudo resolvectl flush-cachessudo– spustí príkaz s právami správcu. Na VPS, kde ste prihlásení ako root, ho vynechajte.resolvectl flush-caches– vymaže medzipamäť služby systemd-resolved, ktorú používa Ubuntu aj rad ďalších distribúcií.
Keď príkaz skončí chybou (napríklad resolvectl: command not found), systém službu systemd-resolved nepoužíva. Tak je to napríklad pri bežnej inštalácii Debianu: systém si odpovede DNS sám nepamätá a mazať nemusíte nič.
Prehliadače majú vlastnú medzipamäť; pomôže ich zavrieť a znova otvoriť.
dig: command not found alebo nslookup: command not found#
Na Linuxe nainštalujte balík bind9-dnsutils (pozri záložku Linux vyššie). Vo Windows namiesto dig použite nslookup alebo Resolve-DnsName.
Zmena sa neprejavila ani po niekoľkých hodinách#
- Zistite nameservery domény:
dig +short example.cz NS(Windows:nslookup -type=NS example.cz). - Overte, že záznamy upravujete u rovnakého poskytovateľa, kam NS mieria.
- Opýtajte sa priamo nameservera (pozri „Pre pokročilých“ vyššie). Ak tam záznam nie je, zmena sa neuložila.
Zhrnutie
- A a AAAA vedú meno na IP adresu, CNAME na iné meno, SRV hovorí meno a port služby, MX vedie poštu.
- Záznamy upravujete u DNS hostingu, kam mieria nameservery domény, nie nutne u registrátora.
- TTL určuje, ako dlho si resolvery pamätajú starú hodnotu; pred zmenou ho znížte na 300 s.
- CNAME nepatrí na koreň domény a cieľ SRV/MX musí byť meno, nie IP.
- Záznam overíte príkazom
nslookup(Windows) alebodig(macOS, Linux).