Przeczytaj
DNS (ang. Domain Name System) to usługa sieciowa zamieniająca nazwy domenowe, mnemoniczne, słowne, zrozumiałe dla nas ludzi, na adresy IP hostów w sieci i odwrotnie.
Urządzenia sieciowe, takie jak komputery, tablety czy smartfony, nie komunikują się za pomocą słów. Nawiązują połączenie, używając adresów IP. Stąd potrzeba zamiany nazw na te właśnie adresy. Następnie są one konwertowane na ciągi zer i jedynek – i w takiej formie są transmitowane przez sieć. Gdyby DNS nie działał, to zamiast adresu domenowego, w polu adresu przeglądarki należałoby wpisać adres IP serwera, na którym strona ta jest hostowana, co zwyczajnie jest kłopotliwe i niezbyt intuicyjne.
DNS działa zarówno w internecie, odpowiadając za zwracanie klientom adresów IP serwerów, na których hostowane są strony WWW, jak również służy do lokalizacji komputerów, serwerów i usług w sieciach lokalnych, zapewnia dostęp aplikacjom do określonych zasobów, czy też pozwala na dostęp do sieci firmowych poprzez VPNVPN.
Na samym początku istnienia internetu odwzorowania nazw na adresy IP zapisywane były w zwykłych plikach tekstowych (nazwa tych plików to hosts). Rozwój technologii informatycznych i sieci spowodował jednak, że sposób ten stał się mało wydajny i niewystarczający. Tak powstał DNS, którego używamy do dzisiaj. W jego skład wchodzą setki tysięcy serwerów, rozsianych po całym świecie, przechowujących w bazach rekordyrekordy odwzorowań nazw domenowych na adresy IP. Pliki hosts nadal są w użyciu. Każdy system operacyjny tworzy taki plik, w którym „na sztywno” możemy przypisać odwzorowania – jednak w małych sieciach takie rozwiązania nie są często stosowane.
Struktura usługi DNS
Struktura usługi DNS ma postać odwróconego drzewa, na którego szczycie znajdują się serwery główne, tak zwane Root Servers – reprezentowane przez znak kropki (.), a poniżej mieszczą się serwery dla poszczególnych domen. Serwerów Root jest na całym świecie 13, ale każdy z nich ma wiele kopii rozlokowanych w różnych zakątkach świata.
Poniżej serwerów Root wyróżniamy domeny pierwszego (najwyższego) poziomu (ang. TLD, Top‑Level Domain) są to domeny typu .com, .pl, .org czy też .gov.
Dalej w strukturze znajdują się domeny drugiego poziomu czyli wp.pl, epodreczniki.pl czy microsoft.com. Mówi się, że takie adresy są subdomenami (domenami podrzędnymi) domen pierwszego poziomu.
Następne w hierarchii mogą znaleźć się domeny typu poczta.wp.pl czy netacad.cisco.com.
Każda domena, czyli każdy adres internetowy musi posiadać swój własny serwer DNS. Nazywa się go serwerem autorytatywnym dla domeny. Jeśli zakładacie swoją stronę w internecie, to ona również musi mieć swój autorytatywny serwer DNS. Można sobie taki serwer skonfigurować we własnym zakresie i udostępniać go w sieci, ale najczęściej jest tak, że to operator waszej domeny, wasz usługodawca, u którego ją wykupiliście, zrobi to za was. Jeden serwer DNS może obsługiwać wiele domen jednocześnie.
Chcąc uruchomić w internecie stronę z własnym adresem, należy taki adresy wykupić. Główną instytucją, która w Polsce zajmuje się rejestracją domen, to organizacja NASKNASK. Domenę można również wykupić u prywatnych operatorów domen. Usługodawca, u którego domenę wykupiliśmy, będzie opowiedziany za skonfigurowanie dla niej serwera DNS.
Te dwa wymienione typy serwerów, czyli serwery domeny głównej oraz serwery autorytatywne dla domen, stanowią większą cześć systemu nazw DNS. Do tego, aby system był kompletny, brakuje nam jeszcze prywatnych serwerów operatorów internetowych oraz klientów usługi DNS.
Każdy komputer czy inne urządzenie korzystające z internetu musi w swojej konfiguracji sieciowej mieć zapisany adres przynajmniej jednego serwera DNS, do którego wysyłane jest żądanie o zamianę nazwy na IP. W większości przypadków usługodawca, który umożliwia nam dostęp do internetu, posiada również własne serwery DNS i to właśnie z nich korzystamy.
Istnieje też możliwość korzystania z innych serwerów DNS, niż te od usługodawcy. Takie serwery udostępniane są przez firmy prywatne (np. Cloudflare czy Google) i jeśli chcemy z nich korzystać, potrzebna jest zmiana konfiguracji urządzeń sieciowych lub końcowych.
Klient systemu DNS to usługa systemowa zwana z angielskiego resolver. Jest ona implementowana w każdym systemie operacyjnym, bez względu na to, czy korzystamy z internetu w komputerze czy w smartfonie. To właśnie resolver odpowiedzialny jest za sprawną komunikację z serwerem DNS.
DNS na komputerze lokalnym
Każdy komputer czy też inne urządzenie końcowe chcące korzystać z sieci internetowej musi posiadać w swojej konfiguracji przynajmniej jeden adres IP serwera DNS, który będzie tego hosta obsługiwał. Zanim jednak resolver wyśle zapytanie do serwera DNS, przeszuka komputer w celu odnalezienia odpowiednich informacji na dysku twardym. A co będzie sprawdzał? Najpierw prześwietli wspomniany już plik hosts, który może zawierać przypisane rozwiązania nazw. Plik ten w systemach Windows zapisany jest w lokalizacji:
C:\Windows\System32\drivers\etc\hosts
W pliku hosts można przypisać adresy IP ulubionych stron internetowych. Wówczas, gdy komputer użytkownika będzie chciał wyświetlić daną witrynę, nie będzie musiał komunikować się z serwerem DNS w celu uzyskania informacji o adresie IP tej strony, tylko po prostu weźmie ją sobie z tego pliku.
Zakładając, że resolver nie odnajdzie interesującego go wpisu w pliku hosts, przeszuka własną pamięć podręczną (ang. cache), w której zapisał sobie wcześniejsze rozwiązania nazw. Do tej pamięci możemy zajrzeć, wydając w konsoli polecenie:
Po wykonaniu takiego polecenia widać rozwiązania, które zostały już wcześniej zrealizowane i zapisane po to, aby nie korzystać już z serwera DNS, jeśli nazwa została wcześniej rozwiązana:
Cache czyszczony jest po każdym restarcie komputera, natomiast można go też wyczyścić ręcznie, wykonując w konsoli polecenie:
Jeśli i w cache’u resolver nie odnajdzie interesującego go wpisu (czyli rozwiązania nazwy), dopiero wtedy następuje komunikacja z zewnętrznym serwerem DNS.
DNS – rodzaje zapytań
Zapytania do serwerów DNS mogą być zapytaniami rekurencyjnymi lub też iteracyjnymi. Rekurencja wymaga od serwera podania adresu IP, którego żąda klient lub też zwrócenia komunikatu o błędzie, np. o niepoprawnej nazwie domenowej. W przypadku iteracji serwer zobligowany jest do podania najlepszej możliwej informacji, jaką obecnie posiada. Może to być – ale wcale nie musi – adres serwera, o którego jest odpytywany, może to być np. informacja: gdzie dalej wysłać zapytanie, aby otrzymać stosowną odpowiedź.
Załóżmy, że chcemy wejść na stronę docs.microsoft.com. Resolver wysyła zapytanie rekurencyjne zamiany nazwy do serwera, który jest do niego przypisany w konfiguracji.
Animację obrazującą przebieg zapytania DNS znajdziesz w sekcji „Jak działa DNS”.
DNS – rodzaje rekordów
Dane na serwerach DNS, jak w każdej bazie danych, przechowywane są w rekordachrekordach. Każde odwzorowanie nazwy na IP, i nie tylko, zapisane jest w postaci pojedynczego rekordu. Typów rekordów DNS jest mnóstwo, najważniejsze z nich znajdziecie w tabeli poniżej:
Rodzaj rekordu | Opis |
---|---|
A | Mapowanie nazwy na IPv4 |
AAAA | Mapowanie nazwy na IPv6 |
CNAME | Alias nazwy rekordu, pozwala używać kilku rekordów odnoszących się do jednego hosta |
MX | Mapowanie nazwy domeny na nazwę serwera mailowego |
PTR | Mapowanie adresu IP na nazwę hosta |
NS | Rekord określający adres serwera dla domeny/strefy |
SOA | Rekord określający serwer autorytatywny dla domeny/strefy |
SRV | Rekord zawierający informację o lokalizacji określonej usługi |
ISDN | Mapowanie nazwy hosta na numer telefonu |
KEY | Identyfikacja klucza publicznego dla domeny |
SIG | Rekord podpisu kryptograficznego |
Polecenia konsoli Windows związane z usługą DNS:
ipconfig /all – wyświetla rozszerzoną konfigurację IP hosta, w tym adres serwera DNS przypisany do urządzenia,
ipconfig /displaydns – wyświetla zawartość pamięci podręcznej resolvera,
ipconfig /registerdns – rejestruje klienta w domenie DNS,
nslookup – wyświetla informacje związane z serwerem DNS obsługującym klienta.
Słownik
usługa sieciowa zamieniająca nazwy domenowe na adresy IP hostów w sieci i odwrotnie
zapisany przy pomocy słów adres strony WWW, konkretnego urządzenia lub usługi, a także całej sieci, znajdujący się pod kontrolą serwera DNS
Naukowa i Akademicka Sieć Komputerowa pełniąca rolę krajowego rejestru nazw internetowych w domenie .pl oraz .gov.pl.
informacja zapisana w bazie danych, odnosząca się do danego obiektu
wirtualna sieć prywatna; technologia pozwalająca m.in. połączyć się z lokalną siecią firmową poprzez internet