Podstawy sieci komputerowych
10. Protokoły warstwy aplikacji
10.7. Protokół DNS
DNS to protokół - usługa, która tłumaczy czytelne dla człowieka nazwy domen na adresy IP urządzeń w Internecie. Wyobraźmy sobie sytuację, w której DNS nie istnieje, a chcemy wyświetlać w przeglądarce nasze ulubione strony. Musimy wpisać adres IP, a nie nazwę domeny, czyli adres w formie słownej, na przykład: 212.56.93.112. Dla większości z nas to żaden problem, niektóre liczby można zapamiętać. Z drugiej strony w Internecie jest wiele stron internetowych i trudno zapamiętać wiele adresów liczbowych. Co więcej, w takich cyfrowych zapisach łatwo o pomyłkę, a w świecie Internetu tak mały błąd może doprowadzić do innej strony niż się spodziewaliśmy.
To jedna strona medalu, a druga strona jest taka, że adres IP serwera może nie zmieniać się zbyt często. Gdy nasza strona internetowa zmienia adres IP i usługa DNS nie działa, musimy ponownie nauczyć się tego adresu i zapamiętać. DNS rozwiązuje za nas ten problem, ponieważ zmienia ten adres w swojej bazie rekordów i przypisuje go do nazwy domeny. Wtedy dla nas użytkowników nie ma znaczenia, jaki jest adres IP strony, ważne jest to, że znamy jej adres - nazwę domeny - i nie ulegają one zmianie.
Serwery DNS przechowują różnego rodzaju rekordy, w tym rekordy A i AAAA zawierające adresy urządzeń końcowych oraz rekordy MX obsługujące wymianę poczty, ponieważ należy pamiętać, że DNS nie tylko tłumaczy adresy domenowe na adresy IP dla stron internetowych, ale także stosuje do serwera poczty e-mail.
Zamiana nazw wygląda dla mnie tak:
1. Klient wysyła zapytanie do serwera DNS, który sprawdza, czy dany rekord istnieje w jego bazie danych.
2. Jeśli tak, tłumaczy nazwę na adres IP i odsyła do klienta.
3. Jeśli nie, to kontaktuje się z innymi serwerami, aby sprawdzić, czy rekord znajduje się w ich bazie danych.
Wysyłanie zapytań do innych serwerów może spowodować duży ruch w sieci. Aby zapobiec nadmiernemu i niepotrzebnemu ruchowi w sieci, gdy inny serwer odnajdzie dany rekord i prześle go na serwer przypisany do naszego urządzenia, ten ostatni zapisuje rekord w pamięci podręcznej, dzięki czemu w przyszłości nie trzeba odwoływać się do innego serwera po ten sam rekord. Z pewnością przyspieszy to późniejsze zmiany nazw, ponieważ nasze serwery DNS nie wyszukują już rekordów na innych serwerach, ale natychmiast zastępują nazwy. Podobnie usługi DNS na komputerach osobistych przechowują wcześniej przetłumaczone nazwy. Można to zweryfikować, wprowadzając ipconfig /displaydns na komputerze z systemem Windows. Wówczas zobaczymy, które mapowania są przechowywane w pamięci podręcznej usługi DNS naszego komputera.