DNS - DOMAIN NAME SYSTEM DNS (ang. Domain Name System, system nazw domenowych) to system serwerów oraz protokół komunikacyjny zapewniający zamianę adresów znanych użytkownikom Internetu na adresy zrozumiałe dla urządzeń tworzących sieć komputerową. DNS jest jedną z najważniejszych usług warstwy aplikacji, często nieświadomie wykorzystywaną przez użytkowników Internetu. Zapewnia odwzorowywanie nazw hostów na adresy IP. Przykładowo, to dzięki systemowi DNS i najbliższemu serwerowi tej usługi po wpisaniu w naszej przeglądarce WWW nazwy serwera: www.zss.tychy.pl zostaniemy skierowani na adres IP: 212.244.134.3. Usługa DNS jest jedną z najważniejszych usług w sieci Microsoft Windows. Znajomość jej działania oraz konfiguracji jest kluczowa do sprawnej i właściwej administracji siecią Usługę DNS wykorzystuje się do lokalizowania serwerów pocztowych, usług webowych oraz serwerów plików w sieciach.
PRZESTRZEŃ NAZEWNICZA Przestrzeń nazw w Internecie jest oparta na modelu drzewiastym (drzewo jest odwrócone). A pełną dokładną nazwę domenową FQDN (Fully Qualified Domain Name) zapisujemy od prawej do lewej, od najbardziej ogólnych domen do szczegółowych, aż po nazwę konkretnego komputera. Poszczególne nazwy rozdzielamy kropkami. Tworzenie nazwy zaczynamy od korzenia (root) oznaczanego kropką (.). Następnie są nazwy domen górnego poziomu, np. pl (domena pierwszego rzędu). Potem poddomeny (domena drugiego rzędu), np. onet.pl, nasa.gov, microsoft.com a w końcu nazwa hosta. Jednak aby uprościć zapis, najczęściej pomijamy kropkę oznaczającą korzeń, więc w efekcie otrzymujemy dobrze nam znany, typowy adres.
STREFY NA SERWERACH DNS Domeny pierwszego i drugiego rzędu są organizowane i zarządzane w usłudze DNS za pomocą STREF. Strefy są tworzone dla zarządzania poszczególnymi nazwami domeny. Na przykład dla domeny drugiego rzędu polska i pierwszego rzędu cdp tworzy się strefę polska.cdp. Strefy usługi DNS fizycznie są przechowywane na SERWERACH NAZW. Jeden serwer może przechować wiele stref. SERWER NAZW zarządzają przede wszystkim dwoma standardowymi w sieci Internet rodzajami stref. Strefy podstawowe, które są konfigurowane i zarządzane, służą do wprowadzania zmian. Wyróżnia się też strefy pomocnicze, które są kopiami tylko do odczytu strefy podstawowych. SERWER NAZW dane pobiera z lokalnego pliku lub z innego serwera nazw, co opisujemy mówiąc, że serwer ma autoryzację (authority) dla strefy lub że jest wiarygodnym (autorytarnym) serwerem dla tej strefy. Ponieważ baza danych posiadająca wpisy dotyczące wszystkich hostów w domenie pl byłaby ogromna i praktycznie niemożliwa do zarządzania, stosuje się tzw. delegację strefy. W ten sposób przechowywanie i uzupełnianie informacji o hostach w domenie firma.com.pl zostaje przekazane serwerowi nazw należącemu do tej firmy. Serwer zarządzający domeną com.pl zawiera jedynie wpis informujący o adresie IP serwera nazw domeny firma.com.pl. Wszelkie pytania o poszczególne komputery w tej domenie będą skierowane do tego serwera. Dzięki temu baza nazw domenowych Internetu zachowuje pewien rozproszony charakter, tak charakterystyczny dla tej sieci, której korzenie sięgają sieci wojskowej, z założenia odpornej na duże uszkodzenia struktury. RODZAJE SERWERÓW DNS Istnieją dwa rodzaje serwerów DNS: podstawowy serwer główny (primary masters) i drugorzędny serwer główny (secondary masters). Drugorzędny serwer czasem nazywany jest zapasowym serwerem. Dodatkowo czasem uruchamia się tzw. serwery tymczasowe,
buforujące przechodzące przez nie dane i odciążające w ten sposób serwery podstawowy i drugorzędny. Oczywiście serwerów podstawowych może być więcej niż dwa, jednak formalnie dla domeny są wymagane przynajmniej dwa serwery podstawowe. Pierwszy z nich czyta dane strefy z lokalnego pliku. Drugi pobiera informację dotyczącą strefy z serwera podstawowego; operację taką nazywamy transferem strefy (zone transfer). Przy rejestracji domeny jest wymagane podanie dwóch adresów IP naszych serwerów DNS. PIEŃ STRUKTURY DNS Ponieważ przestrzeń nazw ma strukturę drzewiastą, gdzieś się musi zbiegać w pień. Takim pniem jest trzynaście głównych serwerów (root servers) DNS dla Internetu. Serwery te mają obowiązek udostępniać informacje o adresach IP serwerów zarządzających domenami głównego poziomu (np. edu, com, pl). Wszystkie pozostałe serwery DNS muszą posiadać w swojej konfiguracji plik z adresami IP tych serwerów. Jest to najsłabszy punkt całego systemu. Gdyby nagle wszystkie główne serwery DNS zostały uszkodzone, korzystanie z Internetu dla większości użytkowników stałoby się niemożliwe. Jeszcze kilkanaście lat temu ludzie często zamiast nazw interesujących ich serwerów mieli zapisane ich numery IP. Ze względu na wygodę systemu DNS rozpowszechnił się on na tyle szeroko, że jego uszkodzenie byłoby katastrofalne w skutkach. ftp://ftp.rs.internic.net/domain/named.root lista adresów głównych serwerów DNS W ten sposób nie ma problemów w mapowaniu nazw DNS na adresy IP. Jak jednak wykonać odwrotną operację? Istnieje możliwość rozwiązywania adresów IP na ich nazwy domenowe. Została stworzona domena in-addr.arpa, w której znajdują się nazwy odpowiadające adresom IP. Należy pamiętać, że adresy w domenie in-addr.arpa są podawane w odwrotnej kolejności. Przykładowo aby zapytać o nazwę hosta o adresie 192.168.1.2, musimy serwerowi DNS zadać pytanie o treści 2.1.168.192. in-addr.arpa. Dzięki temu zwiększając długość o kolejny człon, możemy zadawać pytania o coraz większej dokładności. Zgodnie ze specyfikacją DNS funkcjonalność reagowania na opisane powyżej zapytania odwrotne jest opcjonalna i nie wszystkie serwery DNS muszą na takie pytania odpowiadać. DZIAŁANIE SERWERA DNS Program, który potrafi wysyłać zapytania do serwerów DNS, nazywamy resolwerem (resolver). System operacyjny, aby wyznaczyć adres IP, przekazuje nazwę hosta resolwerowi i oczekuje na odpowiedź od niego. Resolwer wysyła zapytanie do serwera DNS; nazwiemy go Serwer-A. Zapytanie jest przesyłane wewnątrz pakietu UDP skierowanego na port 53 serwera DNS. Port 53 jest tzw. dobrze znanym portem przydzielonym tej usłudze. Następnie Serwer-A odpowiada, podając adres IP odpowiadający nazwie podanej poprzednim pakiecie. Odpowiedź
jest pakietem UDP z portu 53 na port, z którego padło pytanie najczęściej jest to port wysoki (o numerze powyżej 1024). Sposób w jaki Serwer-A dowiaduje się, jaki adres IP ma host, o który pytamy, przykładowo można przedstawić w punktach. 1. Serwer-A wysyła zapytanie do głównych serwerów nazw dla Internetu. Pyta o adres www.firma.com.pl. Ponieważ serwer główny nie ma informacji o zawartości domeny pl, odpowiada, wysyłając listę kilku serwerów posiadających autoryzację dla domeny pl 2. Serwer-A wysyła zapytanie o host www.firma.com.pl do jednego z serwerów domeny pl. Serwer nazw dla domeny pl odpowiada, podając adresy IP serwerów DNS domeny com.pl 3. Serwer-A wysyła zapytanie o host www.firma.com.pl do jednego z serwerów domeny com.pl. W odpowiedzi otrzymuje adresy IP serwerów DNS (najczęściej dwa) dla domeny firma.com.pl 4. Serwer-A wysyła zapytanie o host www.firma.com.pl do jednego z serwerów domeny firma.com.pl. Otrzymuje w odpowiedzi adres IP poszukiwanego hosta Dopiero w tym momencie Serwer-A może wysłać odpowiedź resolwerowi, który zapytał go o adres www.firma.com.pl. Jak widać, uzyskanie adresu IP na podstawie nazwy DNS-owej danego hosta jest bardzo skomplikowanym i pracochłonnym procesem. Aby go uprościć, stosowane jest buforowanie (caching) przez serwery raz uzyskanych danych ze względu na duże prawdopodobieństwo ponownego zapytania o tę samą nazwę. Serwer-A sprawdza, czy w buforze nie ma już adresu serwera domeny firma.com.pl, następnie com.pl i w końcu pl. Znalezienie adresu któregoś z tych serwerów w pamięci podręcznej jest bardzo prawdopodobne i upraszcza proces rozwiązywania nazwy. Oczywiście istnieje związane z tym niebezpieczeństwo, ponieważ jeśli nastąpiłyby zmiany w strefie, to dane nie byłyby rozpropagowywane do serwerów posiadających w buforze wpisy o stanie poprzednim. Aby ominąć ten problem, został wprowadzony czas życia TTL (Time to Live) danych w buforze. Po tym czasie serwer musi usunąć te dane z buforu. TTL jest definiowany na serwerze wiarygodnym dla danej domeny (serwerze zarządzającym domeną) i jego wartość jest pobierana przez inne serwery. Wartość TTL jest kompromisem pomiędzy spójnością danych a obciążeniem serwera. Krótki czas życia równoważny jest z szybszym rozpropagowywaniem zmian, a jednocześnie zwiększa obciążenie serwera, ponieważ musi on częściej odpowiadać na zapytania innych serwerów odświeżających swoje dane. Serwery DNS buforują również błędne odpowiedzi. KWERENDY DNS Istnieją dwa rodzaje zapytań DNS, rekurencyjne i iteracyjne. Rekurencyjne zapytanie zmusza serwer do znalezienia wymaganej informacji lub zwrócenia wiadomości o błędzie. Ogólną zasadą jest, że zapytania od resolwera do serwera są typu rekurencyjnego, czyli resolwer oczekuje podania przez serwer adresu IP poszukiwanego hosta.
Iteracyjne zapytanie wymaga od serwera jedynie podania najlepszej dostępnej mu w danej chwili odpowiedzi, przy czym nie musi on łączyć się jeszcze z innymi serwerami. Zapytania wysyłane pomiędzy serwerami są iteracyjne, przykładowo wiarygodny (autorytarny) serwer domeny pl nie musi znać adresu IP komputera www.firma.com.pl, podaje więc najlepszą znaną mu w tej chwili odpowiedź, czyli adresy serwerów autorytarnych dla domeny com.pl. ICANN - The Internet Corporation for Assigned Names and Numbers Organizacją zajmującą się zarządzaniem przestrzenią nazw domenowych jest ICANN (The Internet Corporation for Assigned Names and Numbers). Domeny głównego poziomu dzielą się na domeny organizacyjne i geograficzne. Domena główna Domena organizacyjna Domena geograficzna Domeny geograficzne są to dwuliterowe nazwy domen przyznane poszczególnym krajom, przykładowo:.pl - Polska.us - Stany Zjednoczone.uk - Wielka Brytania.tw - Taiwan.eu - Europa Domeny organizacyjne są przyznawane w zależności od prowadzonej działalności:.com - firmy komercyjne.edu - instytucje naukowe.gov - agencje rządowe USA.mil - organizacje wojskowe USA.net - organizacje związane z siecią Internet.int - międzynarodowe organizacje rządowe i pozarządowe
.org - pozostałe organizacje nie mieszczące się w tych ramach W październiku 2000 roku zostało zaaprobowanych siedem nowych domen organizacyjnych:.info - do użytku ogólnego.biz - dla biznesu.aero - dla przemysłu lotniczego.name - dla osób indywidualnych.pro - dla profesjonalistów.museum - dla muzeów.coop - dla współpracy Główne domeny organizacyjne na mocy tradycji należą do Stanów Zjednoczonych, dlatego poszczególne kraje tworzą w swoich domenach geograficznych poddomeny organizacyjne, np. www.men.gov.pl REJESTROWANIE WŁASNYCH DOMEN Jeśli chcemy zarejestrować własną domenę, to najczęściej musimy podjąć decyzję, czy będzie to poddomena w hierarchii.pl czy.com. Dodatkowo dochodzi nam rozważenie nowych poddomen organizacyjnych. Wbrew pozorom rejestracja poddomeny.pl nie jest tańsza od domen globalnych; wynika to z monopolu organizacji NASK na zarządzanie domeną pl. Ponadto jest to proces silnie sformalizowany (wysyłanie faksu z podpisami i pieczęciami) i długotrwały (przy rejestracji w NASK). Na stronach tej organizacji znajdziemy zasady rejestrowania domen obsługiwanych przez NASK. Dzięki uruchomieniu przez NASK obsługi protokołu EPP (Extcnsible Provisioning Protocol) możliwe było oddelegowanie rejestracji domen do innych podmiotów gospodarczych. Dzięki temu spadły ceny i wzrosła szybkość oraz prostota rejestracji nowej domeny. Lista firm oferujących usługę rejestracji jest dostępna na stronach NASK. Pojawiła się również możliwość rejestracji domen z wykorzystaniem znaków narodowych. Nie jest to jednak zmiana w systemie DNS, a dodatek do funkcjonalności przeglądarek internetowych, które tłumaczą przykładowo www.żółw.pl" na www.xn--w--uga1v8h.pl" i taka właśnie domena jest rejestrowana w systemie DNS. Jeśli chcemy zarejestrować poddomenę domeny com, net lub org, powinniśmy skorzystać z listy akredytowanych przez ICANN firm, podanej na stronie: http://www.icann.org/en/registrars/accredited-list.html Aby zarejestrować poddomenę w jednej z nowych domen organizacyjnych (np..info,.biz), należy na stronie http://www.icann.org/tlds/ odnaleźć listę organizacji odpowiedzialnych
za każdą z nich. Na stronach tych organizacji jest dostępna lista firm świadczących usługi rejestracji poddomen. Możemy dokonać porównania cen i sposobu rejestracji, a następnie wybrać ofertę najbardziej nam odpowiadającą. Najczęściej wystarczy wypełnienie wniosku na stronie WWW i dokonanie zapłaty kartą. Po kilkunastu minutach domena powinna zostać uruchomiona. Domeny funkcjonalne administrowane przez NASK Dosyć ważnym aspektem rejestracji domeny organizacyjnej jest odległość serwerów DNS firmy świadczącej usługę od hostów naszych potencjalnych klientów. Należy najpierw określić, w jaki sposób i skąd będą się nasi klienci łączyli z Internetem, a następnie sprawdzić jakość połączenia pomiędzy naszym potencjalnym klientem a serwerem DNS, zwracając uwagę na ilość routerów po drodze i obciążenie łącza w różnych porach doby.