DNS záznamy prakticky: A, AAAA, CNAME, MX, TXT a CAA
Jak nasměrovat doménu na VPS, kdy použít CNAME, jak fungují MX a TXT záznamy, co je TTL a jak vše ověřit přes dig. S příklady zónového souboru.
Máte VPS s IP adresou a doménu u registrátora. DNS je to, co je propojí. Typů záznamů je hodně, ale pro běžný web a e-mail stačí znát šest. Tady je praktický přehled s příklady a příkazy pro ověření.
Přehled záznamů
| Typ | K čemu | Příklad hodnoty |
|---|---|---|
A |
doména → IPv4 | 203.0.113.10 |
AAAA |
doména → IPv6 | 2001:db8::10 |
CNAME |
alias na jiné jméno | mojeapp.cz. |
MX |
kam doručovat e-mail | 10 mail.mojeapp.cz. |
TXT |
libovolný text (SPF, ověření domény, DKIM) | "v=spf1 mx -all" |
CAA |
které autority smějí vydat certifikát | 0 issue "letsencrypt.org" |
Typické nastavení pro web na VPS
mojeapp.cz. 3600 IN A 203.0.113.10
mojeapp.cz. 3600 IN AAAA 2001:db8::10
www.mojeapp.cz. 3600 IN CNAME mojeapp.cz.
api.mojeapp.cz. 3600 IN A 203.0.113.10
V administraci DNS u registrátora se kořen domény obvykle zapisuje jako @ a subdomény jen jménem (www, api).
AAAA záznam přidávejte, jen pokud server na IPv6 opravdu funguje (nginx listen [::]:80, firewall). Jinak budou mít klienti s IPv6 problémy s připojením.
CNAME: pravidla a omezení
CNAME říká „toto jméno je alias jiného jména“. Hodí se pro www nebo pro služby třetích stran (shop.mojeapp.cz CNAME shops.example.com.).
Omezení podle standardu:
- CNAME nesmí být na kořeni domény (
mojeapp.cz), protože tam musí být záznamySOAaNS. Někteří poskytovatelé DNS nabízejí náhradu (CNAME flattening, ALIAS/ANAME), ale je to jejich rozšíření. - Vedle CNAME nesmí být jiný záznam stejného jména. Nelze mít
wwwjako CNAME a zároveň TXT prowww. - MX ani NS nesmí ukazovat na CNAME – musí směřovat na jméno s A/AAAA záznamem.
MX: doručování pošty
mojeapp.cz. 3600 IN MX 10 mx1.poskytovatel.cz.
mojeapp.cz. 3600 IN MX 20 mx2.poskytovatel.cz.
Číslo je priorita – nižší číslo = vyšší priorita. Odesílající server zkusí nejdřív 10, při nedostupnosti 20.
Pokud doména e-maily vůbec nepřijímá, můžete to deklarovat „null MX“ záznamem (RFC 7505):
mojeapp.cz. 3600 IN MX 0 .
TXT: ověření a e-mailová politika
TXT záznamy používáte pro:
- ověření vlastnictví domény (Google Search Console, různé SaaS služby),
- SPF – kdo smí odesílat poštu za vaši doménu,
- DKIM – veřejný klíč pro podpisy e-mailů (
selektor._domainkey), - DMARC – politika pro neověřené e-maily (
_dmarc), - ověření pro Let’s Encrypt DNS-01 (
_acme-challenge).
mojeapp.cz. IN TXT "v=spf1 mx include:_spf.poskytovatel.cz -all"
_dmarc.mojeapp.cz. IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"
Na jednom jménu může být víc TXT záznamů, ale SPF smí být jen jeden – dva záznamy v=spf1 způsobí chybu ověření.
CAA: kdo smí vydat certifikát
mojeapp.cz. IN CAA 0 issue "letsencrypt.org"
mojeapp.cz. IN CAA 0 iodef "mailto:[email protected]"
Certifikační autority jsou povinny CAA kontrolovat. Pokud CAA záznam nastavíte a autoritu v něm neuvedete, certifikát od ní nedostanete – pozor při používání Cloudflare nebo jiných služeb, které certifikáty vydávají za vás.
TTL a propagace
TTL (v sekundách) říká, jak dlouho si resolvery mohou odpověď pamatovat. „Propagace DNS“ ve skutečnosti znamená čekání, až vyprší TTL ve všech cache.
Praktický postup při stěhování serveru:
- Den předem snižte TTL A záznamu na
300. - Počkejte alespoň původní TTL (aby si všichni načetli novou nízkou hodnotu).
- Změňte IP – změna se projeví do 5 minut.
- Po ověření vraťte TTL na
3600nebo víc.
Pozor také na negativní cache: pokud jste se dotazovali na záznam, který ještě neexistoval, resolvery si pamatují i odpověď „neexistuje“ (podle hodnoty v SOA).
Ověřování přes dig
sudo apt install dnsutils # obsahuje dig
dig +short mojeapp.cz A
dig +short www.mojeapp.cz
dig +short mojeapp.cz MX
dig +short mojeapp.cz TXT
dig +short _dmarc.mojeapp.cz TXT
Dotaz na konkrétní veřejný resolver nebo přímo na autoritativní server (obejde cache):
dig @1.1.1.1 mojeapp.cz A
dig +short mojeapp.cz NS
dig @ns1.poskytovatel.cz mojeapp.cz A
Celá cesta od kořenových serverů:
dig +trace mojeapp.cz
Reverzní záznam (PTR) IP adresy:
dig +short -x 203.0.113.10
PTR nenastavujete u registrátora domény, ale u poskytovatele IP adresy (v administraci VPS). Pro mailový server je správný PTR důležitý.
Časté chyby
| Příznak | Příčina |
|---|---|
Web funguje bez www, s www ne |
chybí záznam pro www |
| Certbot hlásí NXDOMAIN | doména nebo subdoména nemá A záznam |
| Změna se neprojevuje | vysoké TTL, cache v systému nebo prohlížeči |
| Změny v DNS u registrátora nic nedělají | doména používá jiné NS (např. Cloudflare) |
| E-maily nechodí po přechodu webu | při změně NS se nepřenesly MX a TXT záznamy |
Poslední bod je velmi častý: při přesunu DNS k jinému poskytovateli si nejdřív vypište všechny stávající záznamy a přeneste je všechny, nejen ty pro web.