Junior
Jak działa DNS?
sobes.tech AI
Odpowiedź od AI
DNS, czyli System Nazw Domenowych, to rozproszona baza danych, która zamienia czytelne dla człowieka nazwy domen (np. google.com) na adresy IP (np. 172.217.16.14), zrozumiałe dla komputerów.
Proces konwersji (rozwiązania) nazwy domeny na adres IP obejmuje kilka kroków interakcji między różnymi komponentami:
- Zapytanie użytkownika: Użytkownik wpisuje nazwę domeny w przeglądarce.
- Resolver DNS: System operacyjny lub aplikacja wysyła zapytanie do lokalnego resolvera DNS (często dostarczanego przez dostawcę internetu lub znajdującego się na routerze/komputerze lokalnym).
- Pamięć podręczna resolvera: Resolver najpierw sprawdza swoją lokalną pamięć podręczną. Jeśli znajdzie adres IP, zwraca go klientowi. Przyspiesza to proces.
- Serwery DNS główne (Root): Jeśli w pamięci podręcznej nie ma wpisu, resolver wysyła zapytanie do jednego z 13 serwerów DNS głównych (oznaczanych kropką
.). Te serwery wiedzą, gdzie znaleźć serwery TLD (Top-Level Domain). - Serwery DNS TLD: Serwer główny kieruje resolver do serwera TLD odpowiedzialnego za domenę najwyższego poziomu (np.
.com,.org,.ru). - Serwery DNS autorytatywne: Serwer TLD kieruje resolver do serwera DNS autorytatywnego dla konkretnej domeny (np.
google.com). Ten serwer przechowuje rekordy DNS dla tej domeny. - Odpowiedź serwera autorytatywnego: Serwer autorytatywny znajduje odpowiedni rekord (np. rekord A dla IPv4 lub AAAA dla IPv6) i zwraca adres IP resolverowi.
- Pamięć podręczna resolvera: Resolver otrzymuje adres IP, zapisuje go w pamięci podręcznej na określony czas (TTL - Time To Live) i zwraca klientowi.
- Połączenie klienta: Klient używa otrzymanego adresu IP do nawiązania połączenia z serwerem WWW.
Serwery DNS przechowują różne typy rekordów:
- A: Zamienia nazwę domeny na adres IPv4.
- AAAA: Zamienia nazwę domeny na adres IPv6.
- CNAME: Tworzy alias dla innej nazwy domeny.
- MX: Określa serwery pocztowe obsługujące domenę.
- NS: Wskazuje autorytatywne serwery DNS dla domeny.
- PTR: Zamienia adres IP na nazwę domeny (używane w odwrotnych zapytaniach DNS).
# Przykład zapytania DNS za pomocą dig
dig google.com A
; <<>> DiG 9.16.1-Ubuntu <<>> google.com A
;; opcje globalne: +cmd
;; Odpowiedź:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42650
;; flagi: qr rd ra; QUERY: 1, ANSWER: 1, AUTORYTET: 0, DODATKOWE: 1
;; SEKCJA PSEUDO-OPCJI:
; EDNS: wersja: 0, flagi:; udp: 65494
;; SEKCJA PYTANIA:
;google.com. IN A
;; SEKCJA ODPOWIEDZI:
google.com. 300 IN A 172.217.16.142
;; Czas zapytania: 42 ms
;; SERWER: 127.0.0.53#53(127.0.0.53)
;; KIEDY: wt paź 26 10:00:00 UTC 2023
;; ROZMIAR WIADOMOŚCI: 55
To rozproszone i hierarchiczne podejście czyni DNS skalowalnym i odpornym na awarie.