| I Ogólnopolskie Seminarium ,,Internet jako narzędzie ewangelizacji'' | ||
|---|---|---|
| Poprzedni | DNS i jego rola w sieci Internet | Następny |
DNS działa w oparciu o sieć serwerów nazw (name server) przechowujących i przesyłających między sobą dane adresowe. Każdy komputer dołączany do sieci internet, czy to łączem stałym, czy komutowanym (telefonicznym) musi korzystać z usług przynajmniej jednego serwera nazw, albo być samemu takim serwerem.
Każdy serwer nazw zawiera dane o pewnej części całej przestrzeni adresowej DNS (DNS namespace). Dane z każdej domeny są zawsze przechowywane na co najmniej dwóch serwerach. Jeden z nich tzw. podstawowy serwer nazw (primary name serwer) jest autorytatywnym źródłem informacji o danej domenie. Pozostałe (co najmniej jeden, a najlepiej kilka) to serwery wtórne (secondary), które przechowują kopię zawartości serwera podstawowego. Istnienie kilku serwerów wtórnych dla danej domeny jest ważne, ponieważ zwiększa niezawodność i odporność całego systemu na awarie.
Typowa maszyna dołączona do sieci komunikuje się z systemem DNS wysyłając zapytanie do serwera, który jest podany jako jej serwer nazw. Większość serwerów — właściwie wszystkie z jakimi mogą mieć do czynienia zwykli użytkownicy — działa w sposób rekurencyjny. Oznacza, to że po otrzymaniu zapytania realizują odpowiednią sekwencję zapytań innych serwerów i zwracają odpowiedź pozytywną — znaleziony adres, albo negatywną — nie ma maszyny o takiej nazwie. Raz dana odpowiedź jest przez pewien czas przechowywana w pamięci podręcznej serwera i przy ponownym zapytaniu o ten sam adres serwer podaje go nie komunikując się z innymi. Możliwość buforowania informacji zmniejsza znacznie ruch w sieci i poprawia efektywność działania systemu. Czasem wręcz korzystne jest uruchamianie serwerów nie przechowujących żadnych danych “od siebie”, tylko w celu buforowania wielokrotnie ponawianych zapytań. Niektórzy specjaliści zalecają umieszczanie buforującego serwera nazw w każdej gałęzi sieci lokalnej, z której “wychodzi” się do internetu.
Część serwerów — zwłaszcza te które obsługują domeny znajdujące się wysoko w hierarchii przestrzeni nazw to serwery nierekurencyjne. Serwer taki nie podaje ostatecznej odpowiedzi na zapytanie. Odsyła jedynie do innego serwera, który może dać odpowiedź. Typowe oprogramowanie po stronie klienta wykorzystywane w stacjach roboczych i komputerach osobistych nie może korzystać bezpośrednio z usług serwerów nierekurencyjnych.
Schemat poszukiwania odpowiedzi na zapytanie najlepiej zrozumieć na przykładzie (rys. Rysunek 2). Załóżmy, że pracujemy na maszynie csd8 znajdującej się w domenie ia.pw.edu.pl i chcemy dowiedzieć się jaki jest adres maszyny www.opole.oaza.org.pl. Serwerem nazw dla tej domeny ia.pw.edu.pl jest maszyna csd i do niej właśnie zostanie wysłane zapytanie. Zakładamy, że nikt nie pytał o ten adres przez dostatecznie długi czas i nie ma go w pamięci podręcznej naszego serwera.
Rysunek 2. Zapytanie DNS
Na rysunku zaznaczony jest przebieg zapytań, odesłań i odpowiedzi, w wyniku których otrzymujemy adres szukanego serwera. Na rysunku widać 5 serwerów nazw. Jeden z nich znamy z nazwy — jest to rekurencyjny serwer csd, który obsługuje naszą maszynę. Nazw kolejnych serwerów już nie znamy i pozostaną one dla nas nieznane przez cały czas. Dwa z tych serwerów, to serwery nierekurencyjne (serwery dla domen pl i org.pl), natomiast dwa są rekurencyjne (oba serwery “oazowe”). Serwery nierekurencyjne nie odpowiadają na pytanie wprost. Ich odpowiedzi są następujące: serwer domeny pl — “Ja nie wiem, ale wiem, kto obsługuje org.pl, spytaj jego”; serwer domeny org.pl: — “Ja nie wiem, ale wiem, kto obsługuje domenę oaza.org.pl, spytaj jego”. Dopiero zapytanie serwera dla domeny oaza.org.pl powoduje rekurencyjne przeszukanie serwerów oazowych. Serwer dla domeny oaza.org.pl nie musi znać wszystkich maszyn w swojej poddomenie, ale musi mieć w swojej bazie danych wskazanie na serwer, który zawiera adresy w tej poddomenie.
Przy okazji obsługiwania tego zapytania w pamięci podręcznej serwera zostaną zapamiętane pewne informacje. Serwer csd będzie już np. wiedział kto obsługuje domenę oaza.org.pl i odpowiadając na zapytanie o adres www.warmia.oaza.org.pl nie będzie się kontaktował z serwerami dla domen pl i org.pl, a od razu przekaże zapytanie do serwera dla domeny oaza.org.pl.