DNS (system nazw domen)

Protokoły i standardy
Hierarchiczny system nazw internetowych, który tłumaczy czytelne dla człowieka nazwy domen na adresy IP używane przez komputery do komunikacji.
← Wróć do słownika

Czym jest DNS?

DNS (Domain Name System) to książka telefoniczna internetu. Tłumaczy czytelne dla człowieka nazwy domen, takie jak "example.com", na adresy IP, takie jak "93.184.216.34", których komputery używają do lokalizowania i komunikowania się ze sobą. Bez DNS trzeba byłoby zapamiętywać adresy IP, aby odwiedzać strony.

Jak działa DNS?

Po wpisaniu nazwy domeny w przeglądarce zachodzi szybki, wieloetapowy proces.

Proces rozwiązywania DNS

1. Sprawdzenie lokalnego cache: przeglądarka i system operacyjny sprawdzają ostatni wynik w lokalnym cache DNS.

2. Zapytanie do resolvera rekurencyjnego: jeśli wyniku nie ma w cache, zapytanie trafia do resolvera, zwykle operatora internetu albo usługi takiej jak Cloudflare 1.1.1.1 lub Google 8.8.8.8.

3. Zapytanie do serwera głównego: resolver pyta serwer główny, który wskazuje właściwy serwer TLD.

4. Zapytanie do serwera TLD: serwer TLD, na przykład dla .com, zwraca autorytatywne serwery nazw domeny.

5. Zapytanie do serwera autorytatywnego: serwer autorytatywny zwraca właściwy adres IP domeny.

6. Buforowanie odpowiedzi: wynik jest przechowywany na wielu poziomach zgodnie z wartością TTL (Time To Live).

Cały proces zwykle trwa kilka milisekund.

Typy rekordów DNS

DNS przechowuje różne rekordy, z których każdy pełni inną funkcję.

Typ rekorduZastosowaniePrzykład
AMapuje domenę na adres IPv4example.com → 93.184.216.34
AAAAMapuje domenę na adres IPv6example.com → 2606:2800:220:1:...
CNAMEAlias wskazujący inną domenęwww.example.com → example.com
MXWskazuje serwer pocztowyexample.com → mail.example.com
TXTDane tekstowe (SPF, DKIM, weryfikacja)Różne ciągi weryfikacyjne
NSDelegowanie serwerów nazwexample.com → ns1.provider.com

Hierarchia DNS

DNS działa jako rozproszona, hierarchiczna baza danych.

. (root)

├── com (TLD)

│ ├── example (SLD)

│ │ ├── www (subdomain)

│ │ └── mail (subdomain)

│ └── google

├── org (TLD)

└── io (TLD)

Ta hierarchia umożliwia rozproszoną obsługę miliardów nazw domen przez tysiące organizacji.

DNS dla programistów

Zrozumienie DNS jest kluczowe przy tworzeniu usług internetowych.

Typowe zadania

Konfiguracja domeny: ustawienie rekordów A, CNAME dla subdomen i rekordów MX dla poczty wymaga znajomości DNS. Weryfikacja SSL/TLS: wiele urzędów certyfikacji używa rekordów DNS (TXT lub CNAME) do potwierdzenia własności domeny. Konfiguracja CDN: sieci dostarczania treści często wymagają rekordów CNAME do kierowania ruchu przez serwery brzegowe. Dostarczalność poczty: rekordy SPF, DKIM i DMARC są rekordami TXT DNS niezbędnymi do uwierzytelniania poczty.

Propagacja DNS

Po aktualizacji rekordów DNS zmiany nie obowiązują natychmiast. Propagacja DNS, czyli rozchodzenie się zmian w globalnej infrastrukturze, może trwać od kilku minut do 48 godzin zależnie od TTL i sposobu buforowania.

Kwestie bezpieczeństwa DNS

DNS wiąże się z zagrożeniami, które programiści powinni rozumieć.

Podszywanie się pod DNS: napastnicy mogą zwracać fałszywe odpowiedzi DNS i przekierowywać użytkowników na złośliwe strony. DNSSEC (DNS Security Extensions) ogranicza to ryzyko za pomocą podpisów kryptograficznych. Wycieki DNS: użytkownicy VPN mogą przypadkowo wysyłać zapytania DNS poza szyfrowanym tunelem, ujawniając aktywność przeglądania. Wzmocnienie DDoS: DNS może być wykorzystywany w atakach amplifikacyjnych, ponieważ protokół pozwala zwracać odpowiedzi większe od zapytań.

DNS a dostępność domeny

Stan rozwiązywania DNS może sugerować dostępność domeny, ponieważ brak rekordów DNS może oznaczać brak rejestracji. Zapytania RDAP/WHOIS dostarczają jednak bardziej wiarygodnych informacji, gdyż zarejestrowana domena może jeszcze nie mieć skonfigurowanych rekordów DNS.

Wykorzystaj tę wiedzę w praktyce

Użyj API DomScan, aby sprawdzić dostępność domen, ich kondycję i więcej.