Domain Name System (DNS, pol. system nazw domen) – hierarchiczny rozproszony system nazw, który umożliwia identyfikację usług i zasobów internetowych, pozwalając urządzeniom użytkowników końcowych na korzystanie z usług routingu internetowego i usług łączności w celu dotarcia do tych usług i zasobów.
Dzięki DNS nazwa mnemoniczna, na przykład pl.wikipedia.org, jest tłumaczona na odpowiadający jej adres IP, pod którym dostępny jest serwer obsługujący tę stronę. Podstawową specyfikację systemu stanowią dokumenty RFC 1034 i RFC 1035 z 1987 roku, mające status standardu internetowego STD 13.
DNS to złożony system komputerowy oraz prawny. Zapewnia z jednej strony rejestrację nazw domen internetowych i ich powiązanie z adresami IP. Z drugiej strony realizuje bieżącą obsługę komputerów odnajdujących adresy IP odpowiadające poszczególnym nazwom. Jest nieodzowny do działania prawie wszystkich usług sieci Internet.
Zanim powstał DNS, odwzorowania nazw komputerów na adresy utrzymywał Network Information Center w jednym pliku o nazwie HOSTS.TXT, który wszystkie komputery w sieci pobierały protokołem FTP. Rozwiązanie to przestało się skalować wraz ze wzrostem ARPANETu i wczesnego internetu. Ruch potrzebny do rozesłania nowej wersji pliku rósł proporcjonalnie do kwadratu liczby hostów, a obciążenie samego komputera NIC było znaczne. Zmieniał się przy tym charakter sieci: wieloosobowe komputery z podziałem czasu ustępowały lokalnym sieciom stacji roboczych, a organizacje, które samodzielnie zarządzały swoimi nazwami i adresami, musiały czekać na wprowadzenie zmiany w HOSTS.TXT przez NIC, zanim stała się ona widoczna dla reszty sieci. Chciały też nadać własnej przestrzeni nazw wewnętrzną strukturę.
Powstało wówczas kilka propozycji zarządzania przestrzenią nazw, różniących się szczegółami, ale zgodnych co do tego, że przestrzeń ta powinna być hierarchiczna, odpowiadać z grubsza strukturze organizacyjnej, a poziomy hierarchii należy rozdzielać kropką. Jedną z nich był opublikowany w sierpniu 1982 roku dokument RFC 819 autorstwa Zaw-Sing Su i Jona Postela, objaśniający samą konwencję zapisu nazw – zastąpienie prostego oznaczenia komputera nazwą złożoną, czytaną od najbardziej szczegółowej części po lewej do korzenia hierarchii po prawej. Projekt oparty na rozproszonej bazie danych opisał w listopadzie 1983 roku Paul Mockapetris z Information Sciences Institute Uniwersytetu Południowej Kalifornii w dokumentach RFC 882 i RFC 883, a po doświadczeniach z kilkoma implementacjami system przyjął postać zawartą w obowiązujących do dziś dokumentach RFC 1034 i RFC 1035 z listopada 1987 roku, również jego autorstwa.
Rozproszona baza danych DNS jest indeksowana nazwami domen, tworzącymi drzewiastą strukturę hierarchiczną. Węzły drzewa DNS posiadają etykiety tekstowe o długości od 1 do 63 znaków: pusta etykieta o zerowej długości zarezerwowana jest dla węzła głównego. Etykiety węzłów oddzielone kropkami czytane w kierunku od węzła do korzenia drzewa tworzą pełną nazwę domenową (na przykład „pl.wikipedia.org.”). Łączna długość nazwy w postaci wewnętrznej, czyli wszystkich etykiet wraz z bajtami określającymi ich długość, jest ograniczona do 255 oktetów.
Domena jest poddrzewem hierarchii nazw, obejmującym zbiór domen (subdomen) o wspólnym sufiksie, nazwanym tak jak węzeł na szczycie (na przykład domena funkcjonalna com.pl grupująca nazwy zakończone .com.pl). Nazwy „hostów” są nazwami domen, do których przypisana jest informacja o konkretnych urządzeniach i zazwyczaj występują w liściach drzewa DNS (czyli nie mają swoich poddomen), ale ogólnie jedna nazwa może opisywać zarówno hosta (na przykład główny serwer WWW organizacji), jak i całą domenę.
Przykładowo, wewnątrz domeny najwyższego poziomu .pl utworzono wiele domen:
Nazwa zakończona kropką, czyli pustą etykietą korzenia, jest nazwą bezwzględną i oznacza jeden konkretny węzeł drzewa. Nazwa bez końcowej kropki może być nazwą względną, którą lokalne oprogramowanie uzupełnia o znaną sobie domenę albo o kolejne domeny z listy przeszukiwania (ang. search list). Sposób uzupełniania nazw względnych zależy od implementacji. Ponieważ najczęściej jedną z domen na liście jest sam korzeń, wieloczłonowa nazwa względna jest zwykle po prostu nazwą pełną z pominiętą dla wygody końcową kropką.
Nazwy domen mogą zawierać litery, cyfry i znak „-”, przy czym według zalecanej składni etykiety nie powinny zaczynać się ani kończyć łącznikiem. W nazwach niektórych domen można używać znaków narodowych (IDN) takich jak „ą” czy „ż”. Mechanizm ten opisuje standard IDNA2008, ogłoszony w 2010 roku i zastępujący wcześniejszy IDNA2003. Nie wymaga on żadnych zmian w samym DNS, ponieważ nazwa zapisana znakami Unicode jest po stronie aplikacji przekształcana na postać złożoną wyłącznie ze znaków ASCII. Rejestr domeny .pl przyjmuje nazwy ze znakami diakrytycznymi od września 2003 roku i według NASK był pierwszym rejestrem w Europie, który to umożliwił. Takie nazwy stanowią jednak niewielki ułamek wszystkich nazw w domenie .pl.
Baza danych DNS jest podzielona według klas, a w obrębie klasy na strefy. Strefy powstają przez „przecięcia” drzewa nazw między sąsiednimi węzłami: każda spójna część drzewa po dokonaniu przecięć stanowi osobną strefę, a nazwa jej najwyższego węzła zwykle służy do jej oznaczania. Przecięć dokonuje się tam, gdzie jakaś organizacja chce przejąć kontrolę nad poddrzewem. Właściciel strefy może samodzielnie zmieniać jej dane, dodawać nowe gałęzie drzewa, usuwać węzły i delegować kolejne podstrefy.
Dane strefy składają się z rekordów autorytatywnych wszystkich jej węzłów, rekordów NS i SOA węzła szczytowego, rekordów NS wskazujących serwery podstref (które nie należą do danych autorytatywnych strefy nadrzędnej) oraz rekordów sklejających (ang. glue records). Te ostatnie zawierają adresy serwerów nazw podstref i są niezbędne, gdy nazwa serwera leży w delegowanej podstrefie. Gdyby domenę example.com obsługiwał serwer dns.example.com, samo wskazanie jego nazwy nie wystarczyłoby, ponieważ żeby poznać jego adres, trzeba by zapytać jego samego. Serwery strefy nadrzędnej dołączają więc do odesłania adres IP wskazanego serwera.
Każda strefa musi być dostępna na co najmniej dwóch serwerach, dzięki czemu awaria jednego z nich nie odcina dostępu do nazw. Zaleca się przy tym, by serwery te znajdowały się w odległych od siebie lokalizacjach i były podłączone do sieci różnymi drogami, tak aby ani zanik zasilania, ani awaria pojedynczego łącza nie unieruchomiły ich wszystkich naraz. Wśród serwerów autorytatywnych strefy wyróżnia się te, które są źródłem transferu strefy i na których wprowadza się jej konfigurację, oraz te, które pobierają od nich zawartość strefy. Pierwsze określa się dziś jako primary, pozostałe jako secondary, a we wcześniejszych dokumentach IETF nosiły one nazwy master i slave. Zmiany wprowadza się na serwerze podstawowym, zwykle edytując plik strefy, a serwery zapasowe okresowo sprawdzają numer seryjny w rekordzie SOA strefy i po wykryciu zmiany pobierają jej nową kopię.
Za globalną koordynację nazw domen i adresów IP odpowiada ICANN, wykonujący tak zwane funkcje IANA. Nie jest to odrębna instytucja, lecz zestaw zadań administracyjnych, obejmujących między innymi zarządzanie strefą główną DNS. Od 2000 roku ICANN wykonywał je w imieniu rządu Stanów Zjednoczonych na podstawie kolejnych umów z amerykańską National Telecommunications and Information Administration (NTIA), z których ostatnia wygasła 1 października 2016 roku. Od października 2016 roku zadania te realizuje w imieniu ICANN, na podstawie zawartych z nim umów, Public Technical Identifiers (PTI) – podmiot powiązany z ICANN, zawiązany w sierpniu 2016 roku jako organizacja non-profit prawa stanu Kalifornia (ang. nonprofit public benefit corporation), której jedynym członkiem jest ICANN. Koordynacja nie polega na przydzielaniu domen poszczególnym chętnym, lecz na wyznaczaniu podmiotów zarządzających domenami najwyższego poziomu (takimi jak „.pl”, „.gov”, „.com”, „.eu”) i zapisywaniu tych delegacji w bazie strefy głównej. Podmiotem, któremu powierzono zarządzanie domeną .pl, jest Naukowa i Akademicka Sieć Komputerowa, rozdzielająca poddomeny w obrębie domeny .pl pomiędzy zainteresowanych. Ci z kolei mogą rozdzielać te domeny pomiędzy poszczególne komputery lub dalej swoim klientom.
Rejestracja nazwy domeny nie jest nabyciem rzeczy ani prawa do niej. Regulamin NASK stanowi, że zawarcie umowy nie oznacza przyznania abonentowi jakichkolwiek praw związanych z nazwą domeny poza tymi, które wynikają wyraźnie z samej umowy, a jej przedmiotem jest usługa utrzymywania nazwy. Umowa zawierana jest na czas nieoznaczony i abonent może ją wypowiedzieć bez zachowania terminów wypowiedzenia, przy czym za wypowiedzenie uznaje się również nieuiszczenie opłaty za kolejny rok utrzymywania nazwy. Po rozwiązaniu umowy nazwa może zostać zarejestrowana przez kogo innego.
Instytucje administrujące DNS na świecie:
Aktualny wykaz podmiotów zarządzających wszystkimi domenami najwyższego poziomu prowadzi IANA w bazie strefy głównej.
Instytucje administrujące DNS w Polsce:
Na system składają się trzy rodzaje elementów: przestrzeń nazw wraz z przypisanymi do nazw rekordami zasobów, serwery nazw oraz resolwery. Serwer nazw przechowuje pełne informacje o pewnej części drzewa, dla której jest autorytatywny, oraz wskazania na inne serwery, prowadzące do informacji z pozostałych części drzewa. Może też buforować dane z innych stref. Resolwer to program, który na żądanie aplikacji wydobywa informacje z serwerów nazw. Zwykle jest procedurą systemową dostępną bezpośrednio dla programów użytkownika, dlatego między nim a aplikacją nie jest potrzebny żaden protokół.
Resolwer może samodzielnie podążać za odesłaniami do kolejnych serwerów albo przekazać całą pracę serwerowi obsługującemu zapytania rekurencyjne (ang. recursive resolver). Taki uproszczony resolwer (ang. stub resolver) nie potrafi sam przeprowadzić pełnego rozwiązywania nazw i potrzebuje jedynie listy adresów serwerów rekurencyjnych, zwykle zapisanej w pliku konfiguracyjnym. Takie rozwiązanie pozwala korzystać z DNS komputerom o niewielkich zasobach i skupić pamięć podręczną w jednym miejscu dla całej sieci lokalnej.
Odpowiedzi serwerów są przechowywane w pamięci podręcznej przez czas określony polem TTL rekordu, które ustala administrator strefy. Krótkie wartości TTL ograniczają buforowanie, a TTL równe zeru je wyklucza. W praktyce dla typowych hostów zaleca się wartości rzędu dni, a przed planowaną zmianą danych można TTL tymczasowo obniżyć, by skrócić okres niespójności, i po zmianie przywrócić poprzednią wartość. Pamięć podręczna wspólna dla wielu procesów, użytkowników lub komputerów jest wydajniejsza od osobnych. Na dany adres IP może wskazywać wiele różnych nazw, a pod jedną nazwą może kryć się więcej niż jeden adres IP. Przy zmianie adresu IP komputera pełniącego funkcję serwera WWW nie ma konieczności zmiany adresu internetowego strony, a jedynie poprawy wpisu w serwerze DNS obsługującym domenę.
Nie ma jednej centralnej bazy danych adresów IP i nazw. Na szczycie drzewa domen znajduje się 13 głównych serwerów (root servers), które są serwerami autorytatywnymi dla strefy głównej i odsyłają pytających do serwerów obsługujących poszczególne domeny najwyższego poziomu. Noszą one nazwy od a.root-servers.net do m.root-servers.net. Liczba ta ma podłoże historyczne: RFC 1035 ograniczało komunikat DNS przesyłany po UDP do 512 oktetów, a dołożenie kolejnego serwera sprawiłoby, że odpowiedź na zapytanie startowe przekroczyłaby ten rozmiar. Ograniczenie to straciło na znaczeniu, odkąd serwery otrzymały również adresy IPv6, strefę główną podpisano mechanizmem DNSSEC, a rozszerzenie EDNS pozwoliło przesyłać większe komunikaty. Listę serwerów głównych wraz z ich adresami IPv4 i IPv6 publikuje InterNIC w pliku named.root.
Trzynaście nazw nie oznacza trzynastu maszyn. Operatorzy serwerów głównych udostępniają usługę z wielu niezależnych instancji (klastrów) rozmieszczonych na wielu kontynentach, wykorzystując rozsyłanie anycastowe, dzięki czemu pytający trafia do instancji najbliższej sieciowo. Pierwszy operator wdrożył tę technikę w 2002 roku, a obecnie za trzynastoma identyfikatorami stoi ponad 1500 instancji. Ich liczba stale rośnie: według wykazu prowadzonego przez samych operatorów w październiku 2026 roku działało ponad 2000 instancji. Serwer k.root-servers.net prowadzi organizacja RIPE NCC, również w oparciu o rozproszone węzły anycastowe IPv4 i IPv6, przy czym węzeł może prowadzić każda organizacja, która zgłosi się i spełni wymagania operatora.
Serwery kolejnych poziomów hierarchii z reguły nie znają szukanego adresu, lecz odsyłają pytającego o poziom niżej. Serwery główne wiedzą, które serwery obsługują domenę com, a dopiero te wskazują serwery odpowiedzialne za domenę example.com. Specyfikacja przewiduje dwa sposoby postępowania serwera, który otrzymał pytanie o dane spoza własnej strefy. Obsługę trybu iteracyjnego musi zapewniać każdy serwer nazw, natomiast tryb rekurencyjny pozostaje opcjonalny. Za właściwsze dla wymiany opartej na datagramach uznano przy tym podejście iteracyjne.
Poniższy przykład ilustruje przebieg odpytywania systemu DNS. Użytkownik wpisuje w przeglądarce stron WWW adres www.example.com. Przeglądarka musi poznać adres IP serwera obsługującego tę stronę. W przykładzie wykorzystano nazwę domenową oraz adresy IP zarezerwowane na potrzeby dokumentacji.
| Wysyła | Odbiera | Komunikat | Uwagi |
|---|---|---|---|
| Przeglądarka | Serwer DNS dostawcy (192.0.2.1) | Czy znasz adres IP komputera www.example.com? | Przeglądarka wysyła pakiet UDP z pytaniem do serwera DNS zdefiniowanego w konfiguracji systemu operacyjnego – najczęściej jest to serwer DNS dostawcy usług internetowych. |
| Serwer DNS dostawcy (192.0.2.1) | Główny serwer DNS | Czy znasz adres IP komputera www.example.com? | Serwer DNS dostawcy wysyła zapytanie do jednego z 13 serwerów głównych. |
| Główny serwer DNS | Serwer DNS dostawcy (192.0.2.1) | Nie znam, ale domenę com obsługują serwery o adresach 198.51.100.10 i 198.51.100.11. | Serwer główny nie zna adresu poszukiwanego hosta, wskazuje jednak serwery domeny wyższego rzędu. |
| Serwer DNS dostawcy (192.0.2.1) | Serwer DNS domeny „com” (198.51.100.10) | Czy znasz adres IP komputera www.example.com? | Serwer DNS wysyła zapytanie do jednego ze wskazanych serwerów. |
| Serwer DNS domeny „com” (198.51.100.10) | Serwer DNS dostawcy (192.0.2.1) | Nie znam, ale domenę example.com obsługują serwery o adresach 203.0.113.20 i 203.0.113.21. | Serwer domeny „com” odpowiada. |
| Serwer DNS dostawcy (192.0.2.1) | Serwer domeny „example.com” (203.0.113.20) | Czy znasz adres IP komputera www.example.com? | Serwer DNS wysyła zapytanie do jednego ze wskazanych serwerów. |
| Serwer DNS domeny „example.com” (203.0.113.20) | Serwer DNS dostawcy (192.0.2.1) | www.example.com ma adres IP 203.0.113.80. | Serwer domeny „example.com” jest dla niej serwerem autorytatywnym i udziela odpowiedzi autorytatywnej. |
| Serwer DNS dostawcy (192.0.2.1) | Przeglądarka | www.example.com ma adres IP 203.0.113.80. | Serwer DNS dostawcy przekazuje odpowiedź przeglądarce i zapamiętuje ją na czas określony wartością TTL. |
| Przeglądarka | Serwer „www.example.com” (203.0.113.80) | Transakcja pobrania strony WWW. | Przeglądarka łączy się z serwerem i wyświetla otrzymaną stronę. |
W rzeczywistości przebieg bywa bardziej złożony: nazwa może być aliasem (rekordem CNAME) innej nazwy, a duże serwisy stosują odwzorowanie zależne od położenia pytającego, dzięki czemu użytkownik trafia do najbliższego geograficznie centrum danych.
Każdy rekord zasobów (ang. resource record, RR) składa się z nazwy właściciela, czyli węzła, przy którym występuje, 16-bitowego typu, 16-bitowej klasy, 32-bitowego czasu życia TTL, podawanego w sekundach i określającego, jak długo rekord może pozostawać w pamięci podręcznej, oraz danych RDATA, których format zależy od typu. Kolejność rekordów w zbiorze przypisanym do jednej nazwy nie ma znaczenia. W internecie używa się klasy IN, a inne klasy, na przykład CH dla sieci Chaos, tworzą równoległe, osobno zarządzane drzewa nazw.
Najważniejsze typy rekordów DNS oraz ich znaczenie:
in-addr.arpa (IPv4), bądź ip6.arpa (IPv6), który odpowiada adresowi IP, pozwala na implementację odwrotnej translacji adresów DNS (ang. reverse DNS lookup, revDNS).Inne typy rekordów dostarczają informacje o położeniu hosta (na przykład rekord LOC) lub o danych eksperymentalnych.
Rekordy wieloznaczne (ang. wildcard), których nazwa właściciela zaczyna się od etykiety „*”, pozwalają serwerowi syntetyzować odpowiedzi dla nazw, które nie istnieją w strefie. Nie działają jednak, gdy pytana nazwa lub nazwa pośrednia między nią a rekordem wieloznacznym istnieje, ani poza strefą, w której je zdefiniowano.
Zapytania i odpowiedzi DNS są najczęściej przesyłane protokołem UDP, ponieważ przy zapytaniach datagramy sprawdzają się lepiej niż połączenia – mają mniejszy narzut i dają lepszą wydajność. Serwer nazw nasłuchuje na porcie 53, zarówno UDP, jak i TCP. Komunikat przesyłany datagramem nie może przekraczać 512 oktetów, nie licząc nagłówków IP i UDP. Dłuższa odpowiedź zostaje obcięta, a serwer zaznacza to bitem TC w nagłówku, co dla pytającego jest sygnałem, by powtórzyć zapytanie protokołem TCP. Tam komunikat poprzedza dwubajtowe pole długości, podające rozmiar samego komunikatu, bez tych dwóch bajtów. Połączeń, a nie datagramów, wymaga też odświeżanie zawartości stref.
Ograniczenie do 512 oktetów pochodzi z pierwotnej specyfikacji i w praktyce bywa obchodzone dzięki rozszerzeniu EDNS(0), opisanemu w dokumencie RFC 6891. Pozwala ono odpytującemu zadeklarować gotowość do przyjęcia większych komunikatów UDP, co ogranicza konieczność ponawiania zapytań przez TCP – ma to znaczenie zwłaszcza przy DNSSEC, gdzie odpowiedzi bywają wyraźnie większe.
Format komunikatu DNS został zdefiniowany w RFC 1035, a dwa bity nagłówka – AD i CD – dodano do niego później, wraz z rozszerzeniami DNSSEC. Komunikat składa się z pięciu sekcji:
| NAGŁÓWEK – (Header) |
|---|
| ZAPYTANIE – (Question) do serwera nazw |
| ODPOWIEDŹ – (Answer) zawiera rekordy będące odpowiedzią |
| ZWIERZCHNOŚĆ – (Authority) wskazuje serwery autorytatywne dla domeny |
| DODATKOWA – (Additional) sekcja informacji dodatkowych |
Sekcja nagłówka występuje zawsze i określa rolę całego komunikatu. W sekcji zapytania zawsze znajduje się jedno zapytanie zawierające nazwę domenową, żądany typ danych i klasę (IN). Sekcja odpowiedzi zawiera rekordy zasobów stanowiące odpowiedź na pytanie. Nagłówek ma następującą postać:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ID | |||||||||||||||
| QR | OPCODE | AA | TC | RD | RA | Z | AD | CD | RCODE | ||||||
| QDCOUNT | |||||||||||||||
| ANCOUNT | |||||||||||||||
| NSCOUNT | |||||||||||||||
| ARCOUNT | |||||||||||||||
Spójność danych między serwerami autorytatywnymi tej samej strefy utrzymują trzy mechanizmy protokołu: pełny transfer strefy (AXFR), transfer przyrostowy (IXFR) oraz powiadomienie o zmianie (NOTIFY). AXFR opisano pierwotnie w RFC 1034 i RFC 1035, ale opis ten okazał się na tyle nieprecyzyjny, że implementacje musiały przyjmować własne założenia. Dokładną specyfikację zawarto dopiero w RFC 5936 z czerwca 2010 roku. Zapytanie AXFR ma postać zwykłego zapytania DNS z typem o wartości 252 i nazwą żądanej strefy, a odpowiedź składa się z jednej lub wielu wiadomości, z których pierwsza zaczyna się rekordem SOA strefy, a ostatnia kończy tym samym rekordem. Transfer odbywa się wyłącznie po TCP, ponieważ dla tej operacji istotna jest niezawodność dostarczenia i przesyłanie strefy przez UDP nie zostało zdefiniowane.
Możliwość ograniczenia dostępu do AXFR nie była przewidziana w pierwotnym projekcie DNS i pojawiła się jako wymaganie dopiero z czasem. Powodem bywa chęć ukrycia pełnej zawartości strefy, niekiedy wynikająca z wymogów prawnych, albo ochrona serwera przed obciążeniem. Specyfikacja zaleca, by implementacje pozwalały ograniczać transfer do wskazanych klientów, na podstawie adresów IP albo z użyciem uwierzytelniania kluczem współdzielonym TSIG, oraz by domyślna konfiguracja nie udostępniała transferu wszystkim pytającym.
Protokół DNS w pierwotnej postaci nie przewidywał mechanizmów uwierzytelniania odpowiedzi ani ochrony ich poufności. Odbiorca nie ma możliwości sprawdzenia, czy otrzymana odpowiedź rzeczywiście pochodzi od serwera autorytatywnego dla danej domeny i czy nie została po drodze zmieniona, a zapytania i odpowiedzi przesyłane są tekstem jawnym. Wraz ze wzrostem znaczenia usług internetowych ograniczenia te stały się podstawą wielu rodzajów ataków.
Serwery rekurencyjne przechowują otrzymane odpowiedzi przez czas określony wartością TTL, co ogranicza liczbę zapytań kierowanych do serwerów autorytatywnych. Jeżeli napastnik zdoła umieścić w takiej pamięci sfałszowaną odpowiedź, wszyscy użytkownicy korzystający z danego serwera będą przez czas jej ważności kierowani pod wskazany przez niego adres. Atak tego rodzaju, określany jako zatruwanie pamięci podręcznej DNS (cache poisoning), polega na dostarczeniu odpowiedzi wcześniej niż serwer autorytatywny, z poprawnie odgadniętym identyfikatorem zapytania i numerem portu.
Bezpołączeniowy charakter protokołu UDP pozwala napastnikowi wysyłać zapytania z podrobionym adresem źródłowym, wskazującym na komputer ofiary. Odpowiedź serwera trafia wtedy nie do pytającego, lecz do celu ataku. Ponieważ odpowiedź DNS bywa wielokrotnie większa od zapytania, uzyskuje się w ten sposób wzmocnienie ruchu – według CERT Polska nawet ponad dwudziestokrotne, co osobie dysponującej łączem 10 Mb/s pozwala wygenerować atak o wolumenie 200 Mb/s. Technika ta, określana po angielsku jako DNS amplification lub DNS reflection, jest wykorzystywana w rozproszonych atakach odmowy usługi.
Ruch DNS jest zwykle przepuszczany przez zapory sieciowe i rzadziej niż inne protokoły poddawany szczegółowej analizie, co pozwala wykorzystać go jako ukryty kanał przesyłania informacji. Dane koduje się wówczas w etykietach nazwy domenowej kierowanej do domeny kontrolowanej przez napastnika, której serwer autorytatywny je odczytuje. Techniką tą wyprowadzano między innymi dane kart płatniczych i dane uwierzytelniające użytkowników.
Komunikację tego rodzaju rozpoznaje się po cechach samego zapytania. Ponieważ przeniesienie danych wymaga zapisania ich w nazwie domenowej, wskazówką jest nietypowo duża liczba etykiet w nazwie oraz znaczna długość zapytania, przy czym im dłuższe zapytanie, tym większe prawdopodobieństwo, że służy przesyłaniu danych. Kryteria te stosuje się łącznie, ponieważ nazwy o zbliżonej budowie występują także w zapytaniach kierowanych do sieci dostarczania zawartości.
Zapytania o podobnej budowie generuje również część legalnego oprogramowania instalowanego na stacjach roboczych, na przykład program antywirusowy ESET. Rozstrzygnięciu, czy obserwowane zapytania pochodzą od takiej aplikacji, służy wzbogacenie obserwacji o dane rejestrowe odpytywanej domeny – w przywołanym przypadku rejestr WHOIS wskazuje jako jej serwery nazw maszyny należące do producenta oprogramowania.
Sam zapis dziennika serwera nazw może przy tym nie wystarczyć, ponieważ nie obejmie zapytań kierowanych przez zainfekowany komputer bezpośrednio do serwerów zewnętrznych. Z tego względu zaleca się obserwowanie również samego ruchu sieciowego.
Odpowiedzią na brak uwierzytelniania jest zestaw rozszerzeń DNSSEC, opierający się na podpisach cyfrowych i łańcuchu zaufania prowadzącym od strefy głównej. Strefę tę podpisano w 2010 roku, a obecnie ponad 90% domen najwyższego poziomu obsługuje DNSSEC.
Wdrożenie pozostaje jednak nierównomierne. Według pomiarów APNIC w 2025 roku walidację podpisów prowadziły serwery obsługujące około 36% użytkowników internetu, natomiast podpisanych było jedynie około 7% delegacji domen niższego poziomu. Wśród domen niepodpisanych pozostają serwisy o największym ruchu.
DNSSEC zapewnia integralność odpowiedzi, nie chroni jednak poufności – treść zapytań pozostaje widoczna dla podmiotów pośredniczących w transmisji. Opracowano w związku z tym protokoły szyfrujące komunikację między klientem a serwerem rekurencyjnym: DNS over TLS (DoT), opisany w 2016 roku w dokumencie RFC 7858 i korzystający z portu 853, oraz DNS over HTTPS (DoH), opisany w 2018 roku w dokumencie RFC 8484, w którym zapytania przesyłane są jako żądania HTTPS na porcie 443. W 2022 roku w dokumencie RFC 9250 opisano także DNS over QUIC (DoQ), w którym komunikaty DNS przesyła się w połączeniach QUIC, domyślnie na porcie UDP 853.
W systemach operacyjnych zapytania do DNS zwykle są wykonywane w sposób niewidoczny dla użytkownika przez dedykowany podsystem (ang. resolver). Do bezpośredniego odpytywania DNS na przykład w celach diagnostycznych, można się posłużyć programami nslookup, host lub dig dostępnymi w wielu systemach operacyjnych.
Zwykle dane o konfiguracji protokołu DNS w domowym komputerze przekazywane są przez dostawcę Internetu (ISP). Większość operatorów udostępnia w swojej sieci protokół DHCP. Dzięki niemu komputer może automatycznie pobrać konfigurację sieciową sugerowaną przez operatora, w tym adresy serwerów DNS. Adresy te z reguły – ale nie zawsze – wskazują na serwery dobrane relatywnie dogodnie dla użytkowników. Kiedy system automatycznego pobierania adresów serwera DNS nie działa, można je wprowadzić ręcznie. W systemach typu uniksowego służy do tego /etc/resolv.conf, który zawiera listę serwerów DNS.
Jeżeli użytkownik chce w swojej sieci lokalnej uruchomić własny serwer DNS, może posłużyć się programem BIND.