← 1.1.1.1 (DNS resolver) / 1.1.1.1
Dotazování nadřazených serverů
Pokud 1.1.1.1 nemá odpověď ve své mezipaměti, obrátí se vaším jménem na autoritativní jmenné servery. Autoritativní jmenné servery jsou servery DNS, které uchovávají skutečné záznamy pro danou doménu. Tato stránka popisuje, jak 1.1.1.1 vybírá, který jmenný server dotázat, co se stane, když je jmenný server nedostupný, a jak se určuje konečná odpověď.
Minimalizace názvu dotazu
Při překladu vícestupňového doménového jména, jako je foo.bar.example.com, 1.1.1.1 neprozradí úplný název každému serveru v řetězci. Místo toho odešle jen minimální množství informací, které daný server potřebuje. Když se například dotazuje .com server TLD, 1.1.1.1 prozradí pouze to, že potřebuje najít example.com : části subdomény (foo.bar) nejsou zahrnuty. Tím se omezuje množství informací vystavených zprostředkujícím serverům a snižuje se únik soukromých údajů.
Kořenová zóna
1.1.1.1 používá lokálně uložené kopie souboru kořenové zóny ↗ místo dotazování vzdálených kořenových serverů při každém vyhledávání. Soubor kořenové zóny obsahuje adresy všech serverů domén nejvyšší úrovně (TLD). Díky lokálnímu uložení se 1.1.1.1 vyhne síťové zpáteční cestě ke kořenovým serverům, což snižuje latenci, zlepšuje soukromí a snižuje zátěž globálního systému kořenových serverů DNS.
Výběr nameserveru
Většina domén má z důvodu redundance více autoritativních nameserverů. Když potřebuje 1.1.1.1 některý z nich dotázat, vybírá ho podle naměřeného výkonu. Resolver si pro každý nameserver sleduje metriky, mimo jiné dobu odezvy (round-trip time, tedy dobu, za kterou dotaz doputuje na server a zpět) a kvalitu odpovědí, a z datacentra, které váš požadavek zpracovává, pak vybere nameserver, jenž byl dosud nejrychlejší a nejspolehlivější.
Pokud vybraný jmenný server neodpoví včas nebo vrátí chybu, zopakuje 1.1.1.1 dotaz na jiný jmenný server pro stejnou zónu. Podrobnosti najdete v Chování při opakování s podrobnostmi.
Malé procento dotazů se odesílá i na alternativní nameservery, aby měření výkonu zůstávalo aktuální. Díky tomu lze dříve pomalý server znovu vyhodnotit, pokud se jeho výkon zlepší. Další informace o systému, který tento výběr řídí, najdete v blogový příspěvek o architektuře BigPineapple ↗.
Chování při opakování
Pokud jmenný server neodpoví včas nebo vrátí dočasnou chybu, zopakuje 1.1.1.1 dotaz na jiný autoritativní jmenný server pro stejnou zónu. Server, který neodpovídá, se přesune na nižší prioritu, takže následující dotazy upřednostní zdravější alternativy. 1.1.1.1 pravidelně kontroluje servery s nižší prioritou a zjišťuje, zda se obnovily.
Když více klientů požaduje stejnou doménu současně, 1.1.1.1 deduplikuje dotazy na nadřazené servery, takže jeden probíhající požadavek obslouží všechny čekající klienty. Přesné časování opakovaných pokusů a logika řazení se v průběhu času ladí a mohou se měnit.
Výběr odpovědi
U daného dotazu vrací 1.1.1.1 klientovi pouze jednu odpověď. Pokud se autoritativní jmenné servery neshodnou, závisí výběr odpovědi ze strany 1.1.1.1 na typu přijatých odpovědí.
Relevantní jsou následující odpovědní kódy DNS:
NOERROR: Dotaz byl úspěšný. Odpověď obsahuje požadované záznamy, nebo uvádí, že název existuje, ale nemá žádné záznamy požadovaného typu (někdy se to označuje jakoNODATA).NXDOMAIN: Název domény neexistuje.SERVFAIL: Na serveru jmen došlo k interní chybě a nemohl odpovědět.REFUSED: Server jmen odmítl na dotaz odpovědět.
Jak 1.1.1.1 řeší neshody mezi jmennými servery:
NOERRORoprotiNXDOMAIN: Obě jsou platné autoritativní odpovědi. 1.1.1.1 vrátí tu, kterou obdrží jako první, a odpovědi od zbývajících serverů jmen již pro porovnání nezjišťuje. Od autoritativních serverů jmen pro stejnou zónu se očekává, že budou konzistentní. Pokud jeden vrátíNXDOMAINa jiný vrátíNOERRORpro stejný název, značí to nesprávnou konfiguraci na straně autoritativního serveru.- Timeout oproti platné odpovědi: Vypršení časového limitu není odpověď. 1.1.1.1 to zkusí znovu u jiného serveru jmen a vrátí první platnou odpověď, kterou obdrží.
SERVFAILneboREFUSEDoproti platné odpovědi: Dočasné výpadky se považují za chyby na straně poskytovatele, nikoli za autoritativní odpovědi. 1.1.1.1 to zkusí znovu u jiného serveru jmen a vrátí první platnou odpověď. Teprve pokud chybu vrátí všechny servery jmen, vrátí 1.1.1.1 klientovi chybu, obvykleSERVFAIL, neboREFUSEDpokud to servery jmen trvale vracely.