Junior
Jak funguje DNS?
sobes.tech AI
Odpověď od AI
DNS, neboli Systém doménových jmen, je distribuovaná databáze, která převádí čitelné doménové názvy (například google.com) na IP adresy (například 172.217.16.14), které jsou srozumitelné počítačům.
Proces převodu (řešení) doménového jména na IP adresu zahrnuje několik kroků spolupráce mezi různými komponentami:
- Uživatelský požadavek: Uživatel zadá doménové jméno do prohlížeče.
- Resolver (DNS resolver): Operační systém nebo aplikace odešle požadavek na místní DNS resolver (často poskytován internetovým poskytovatelem nebo je na místním routeru/počítači).
- Cache resolveru: Resolver nejprve zkontroluje svůj místní cache. Pokud najde IP adresu, vrátí ji klientovi. To urychluje proces.
- Kořenové (Root) DNS servery: Pokud v cache není záznam, resolver odešle požadavek na jeden z 13 kořenových DNS serverů (označovaných tečkou
.). Tyto servery vědí, kde najít TLD (Top-Level Domain) servery. - TLD (Top-Level Domain) DNS servery: Kořenový server nasměruje resolver k TLD serveru, který je odpovědný za doménu nejvyšší úrovně (například
.com,.org,.ru). - Autoritativní (Authoritative) DNS servery: TLD server nasměruje resolver k autoritativnímu DNS serveru, který je odpovědný za konkrétní doménu (například
google.com). Tento server uchovává DNS záznamy pro danou doménu. - Odpověď autoritativního serveru: Autoritativní server najde odpovídající záznam (například A záznam pro IPv4 nebo AAAA záznam pro IPv6) a vrátí IP adresu resolveru.
- Cache resolveru: Resolver obdrží IP adresu, uloží ji do cache na stanovenou dobu (TTL - Time To Live) a vrátí ji klientovi.
- Klientské spojení: Klient použije získanou IP adresu k navázání spojení s webovým serverem.
DNS servery uchovávají různé typy záznamů:
- A: Převádí doménové jméno na IPv4 adresu.
- AAAA: Převádí doménové jméno na IPv6 adresu.
- CNAME: Vytváří pseudonym pro jiné doménové jméno.
- MX: Určuje poštovní servery odpovědné za doménu.
- NS: Uvádí autoritativní DNS servery pro doménu.
- PTR: Převádí IP adresu na doménové jméno (používá se v reverzních DNS dotazech).
# Příklad DNS dotazu pomocí dig
dig google.com A
; <<>> DiG 9.16.1-Ubuntu <<>> google.com A
;; globální možnosti: +cmd
;; Získaná odpověď:
;; ->>HEADER<<- operace: QUERY, stav: NOERROR, id: 42650
;; vlajky: qr rd ra; DOTAZ: 1, ODPOVĚĎ: 1, AUTORITATIVNÍ: 0, DALŠÍ: 1
;; OPT PSEUDOSECTION:
; EDNS: verze: 0, vlajky:; udp: 65494
;; OTÁZKA SEKCE:
;google.com. IN A
;; ODPOVĚĎ SEKCE:
google.com. 300 IN A 172.217.16.142
;; Dotazovací čas: 42 ms
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; KDY: úte 26. říjen 2023 10:00:00 UTC
;; ZPRÁVA VELIKOST rcvd: 55
Tento distribuovaný a hierarchický přístup činí DNS škálovatelným a odolným systémem.