Protokół DNS

Damian Stelmach | 07-10-2016

DNS to protokół, usługa, zamieniająca nazwy domenowe, zrozumiałe dla człowieka na adresy IP urządzeń w sieci. Wyobraźmy sobie sytuacje, gdzie DNS nie istnieje, a my chcemy wyświetlić w przeglądarce naszą ulubioną stronę. Zamiast nazwy domeny, czyli adresu w postaci słownej musimy wpisać adres IP, np. taki: 212.56.93.112. Dla większości z nas nie byłby to problem, można zapamiętać kilka cyfr. Natomiast w Internecie jest wiele stron WWW i zapamiętanie wielu adresów liczbowych byłoby już trudne. Co więcej w takim zapisie liczbowym, łatwo jest się pomylić, a w świecie Internetu, taka drobna pomyłka może skutkować tym, że wejdziemy na inna stronę WWW, niż zamierzaliśmy.

To jest jedna strona medalu, druga jest taka, że adresy IP serwerów, może nie bardzo często, ale jednak się zmieniają. Kiedy nasza strona zmieni adres IP, a nie działa usługa DNS musimy uczyć się tego adresu na nowo, jeszcze raz go zapamiętać. DNS rozwiązuje za nas ten problem ponieważ on sam, w swojej bazie rekordów zmieni ten adres i przypisze go do nazwy domeny. Wtedy dla nas, użytkowników nie ma znaczenia pod jakim adresem IP strona się znajduje, ważne jest to, że znamy słownie jej adres, jej domenę, które to nie ulegają zmianie.

DNS to usługa działająca w architekturze klient – serwer, jednak nie mamy tutaj do czynienia z klientem jako programem komputerowym takim jak przeglądarka czy program do wymiany plików. Na komputerze uruchamiana jest po prostu usługa systemowa, zwana z języka angielskiego DNS resolver i ona obsługuje wszystkie aplikacje na komputerze klienta, które wymagają zamiany nazw. Zawsze, kiedy konfigurujemy urządzenie sieciowe, czy też zwyczajnie komputer powinniśmy podawać dwa adresy serwerów DNS, tak aby w przypadku braku komunikacji z jednym z nich, drugi realizował funkcję zamiany nazw.

Właściwości TCP/IP

Serwer DNS przechowuje różne typy rekordów, m. in rekordy typu A oraz AAAA zawierające adresy urządzeń końcowych, jak również rekordy typu MX obsługujące wymianę poczty elektronicznej, bo pamiętać należy, że DNS nie tylko zamienia adresy domenowe na adres IP dla stron WWW, ale także dla serwerów poczty elektronicznej. Zamiana nazw wygląda mnie więcej tak:

1. Klient wysyła żądanie do serwera DNS, a ten sprawdza, czy w swojej bazie posiada dany rekord.

DNS etap 1

2. Jeśli tak przekształca nazwę na adres IP i odsyła do klienta:

DNS etap 2

3. Jeśli nie, to kontaktuje się z innymi serwerami, aby te dany rekord wyszukały w swoich bazach:

DNS etap 3

Wysyłanie zapytań serwera DNS, który nie znalazł rekordów w swojej bazie do innych serwerów może powodować nadmierny ruch sieciowy, co jest sytuacją nieporządną. Aby zapobiec nadmiernemu i niepotrzebnemu ruchowi w sieci, kiedy inny serwer odnajdzie dany rekord i prześle go do serwera przypisanego do naszego urządzenia, ten zapisuje sobie ten rekord w pamięci podręcznej, tak aby w przyszłości już nie musieć się odwoływać do innego serwera po ten sam adres. Zdecydowanie przyspiesza to potem zamianę nazw, ponieważ nasz serwer DNS nie szuka już rekordu po innych serwerach tylko od razu zamienia nazwy. Podobnie usługa DNS na komputerze osobistym przechowuje poprzednio przekształcone nazwy. Można to sprawdzić, wprowadzając na komputerze z systemem Windows polecenie ipconfig/displaydns. Zobaczymy wówczas jakie odwzorowania są zapisane w pamięci podręcznej usługi DNS naszego komputera.

ipconfig displaydns

Hierarchiczność DNS

Hierarchia serwerów DNS ta ma postać odwróconego drzewa, gdzie korzeń, czyli serwery DNS głównego poziomu znajdują się na samej górze. Serwery głównego poziomu przechowują informację jak dotrzeć do serwerów najwyższego poziomu, to z kolei przechowują informację jak dotrzeć do serwerów drugiego poziomu itd. Domeny najwyższego poziomu określają kraj (.pl .de czy .uk) lub też typ organizacji ( .org .com czy .gov).

Hierarchia DNS

W takim, przykładowym adresie: poczta.wp.pl wyróżniamy domenę najwyższego poziomu (.pl), następnie domenę drugiego poziomu (wp.pl), i na koniec domenę trzeciego poziomu (poczta.wp.pl). Oczywiście nie wszystkie adresy muszą zawierać, aż tyle poziomów domen, nie które zwierają tylko domeny najwyższego i drugiego poziomu, np. wp.pl, pasja-informatyki.pl, szkola.pl.