Laboratorium Sieci Komputerowych
System nazw domen DNS
Każdy komputer w sieci TCP/IP ma swój niepowtarzalny adres, składający się z 4 bajtów, postaci: a.b.c.d. Adres podzielony jest na 2 części: identyfikującą sieć i komputer w tej sieci. Pierwszy bajt adresu określa klasę sieci.
1 bajt: zakres |
klasa adresu |
sieć |
komputer |
1 - 126 128 - 191 192 - 255 |
A B C |
a a.b a.b.c |
b.c.d c.d d |
Adres 127.0.0.1 jest adresem testowym localhost (loopback).
Nazwa komputera musi być niepowtarzalna w danej sieci. Pozwala na odwołanie do komputera za pomocą słów zamiast adresów sieciowych.
Istnieją dwie metody zamian nazw na adresy:
tablica komputerów (host table);
obsługa nazw domen (DNS);
Tablica komputerów zawiera w pliku /etc/hosts adresy IP i nazwy, również alternatywne. W każdym systemie powinna być mała tablica komputerów zawierająca informacje o komputerach w sieci lokalnej (localhost, gateway, inne serwery).
W DDN Network Information Center (NIC) (nic.ddn.mil/netinfo/hosts.txt) znajduje się tablica komputerów, na podstawie której można stworzyć (gettable, htable) pliki /etc/hosts i /etc/networks (networks zawiera adresy sieci i ich nazwy). Zanim przyjęto DNS były tam umieszczone nazwy wszystkich komputerów w Internecie.
Tablica komputerów obsługiwana jest na porcie 42 - usługa nameserwice. DNS obsługiwany jest na porcie 53 - usługa domain.
Domain Name System (DNS) (RFC 1033, 1035, 1178) jest to system rozproszonej bazy danych, gwarantujący poprawną, automatyczną dystrybucję informacji o nazwach i numerach IP komputerów w Internecie. Serwery nazw zorganizowane są w hierarchiczną strukturę, na szczycie której znajduje się domena główna i grupa serwerów głównych. Poniżej znajdują się domeny górnego poziomu (np. com, edu, org, gov, mil, net, pl, uk, jp). Chociaż serwer DNS może nie znać odpowiedzi na zapytanie, jednak wie, kogo o nią spytać.
Jeśli serwer DNS otrzymuje zapytanie dotyczące komputera o którym nie posiada informacji, przekazuje to zapytanie do serwera autorytatywnego (odpowiedzialnego za utrzymanie dokładnej informacji o swojej domenie). Odpowiedź zapamiętuje w pamięci podręcznej (cache).
Zapytanie nierekurencyjne polega na odesłaniu odpowiedzi w postaci wskazania na serwer, który zna odpowiedź. Serwer lokalny musi sam zapytać następnego serwera. Przy zapytaniu rekurencyjnym serwer zdalny sam podąża za wskazaniami i serwerowi lokalnemu udziela końcowej odpowiedzi.
Chcąc stworzyć nową domenę w ramach jednej z domen górnego poziomu, należy zwrócić się do NIC, która doda w domenie górnego poziomu wskazanie na serwery nazw nowej domeny. W przyznanej domenie można tworzyć we własnym zakresie poddomeny.
Nazwy domen często są pisane relatywnie do domeny domyślnej. DNS dodaje ją do zapytania użytkownika kierowanego do serwera nazw. Sposób dodawania nie jest już jednak częścią DNS, a oprogramowaniem klienta.
Realizacja DNS jest przeważnie oparta na oprogramowaniu Berkeley Internet Name Domain (BIND) jako proces named. W zależności od konfiguracji rozróżnia się serwery nazw:
pierwotny (primary) - serwer autorytatywny, posiada wszystkie informacje o domenie w pliku utworzonym przez administratora;
wtórny (secondary) - również autorytatywny, posiada wszystkie informacje o domenie w pliku zone file, kopiowanym z serwera primary;
pomocniczy (caching-only) - zapamiętuje odpowiedzi do swoich zapytań z innych serwerów nazw i wykorzystuje je do odpowiedzi na takie same pytania zadawane w przyszłości;
Działanie DNS opiera się o zasadę klient-serwer. Resolver formułuje zapytania, zaimplementowany jako biblioteka. Serwer nazw (name serwer) udziela odpowiedzi, zaimplementowany jako BIND
System typu resolver-only - tylko plik /etc/resolv.conf. Jeśli pliku nie ma, to musi działać named, domyślna domena z hostname, domyślnym serwerem nazw jest lokalny komputer.
Komendy w pliku /etc/resolv.conf:
nameserwer adres - serwer nazw;
domain nazwa - domyślna nazwa domeny.
Serwer pomocniczy - pliki: named.boot (startowy), named.ca (notatnikowy), named.local (loopback);
Serwer pierwotny lub wtórny - pliki: named.hosts (plik strefowy dla domeny), named.rev (dla domeny odwrotnej), named.boot (startowy), named.ca (notatnikowy, wskazuje serwery domeny root), named.local (loopback, translacja adresu lokalnego).
Polecenia konfiguracyjne pliku named.boot:
directory - określa katalog dla wszystkich później występujących plików;
primary - definiuje dany komputer jako serwer pierwotny dla strefy;
secondary - definiuje dany komputer jako serwer wtórny dla strefy;
cache - wskazuje plik notatnikowy;
forwarders - lista serwerów, do których przekazywane są zapytania;
slave - wymusza na serwerze użycie wyłącznie serwerów określonych jako forwarders.
Format rekordu bazy danych DNS (pliki named.hosts, named.rev, named.ca, named.local):
[nazwa] [ttl] IN typ dane
nazwa - nazwa obiektu w domenie, do którego odwołuje się rekord;
ttl - czas w sekundach przez który informacja ma być przechowywana w pamięci podręcznej;
Standardowe typy rekordów:
SOA (Start of Authority) - określa początek dasnych dotyczących strefy oraz definiuje parametry, które odnoszą się do całej strefy;
NS (Name Serwer) - określa serwer nazw dla domeny;
A (Address) - przekształca nazwę komputera na jego adres;
PTR (Pointer) - przekształca adres na nazwę komputera;
MX (Mail Exchange) - specyfikuje, gdzie dostarczyć pocztę dla danej domeny;
CNAME (Canonical Name) - definiuje nazwę alternatywną nazwy komputera;
HINFO (Host Information) - opisuje platformę i system operacyjny komputera;
WKS (Well Known Service) - ogłasza usługi sieciowe.
Plik named.ca zawiera dane wykorzystywane w momencie startu serwera do inicjacji pamięci podręcznej. Lista serwerów domeny głównej: ftp://nic.ddn.mil/netinfo/root-servers.txt.
Plik named.local jest używanydo konwersji adresu 127.0.0.1 na nazwę localhost. Jest to plik strefowy dla domeny odwrotnej 0.0.127.IN-ADDR.ARPA.
Program nslookup pozwala na kierowanie zapytań do serwerów DNS. Niektóre komendy:
help - pomoc;
exit - wyjście;
server nazwa - określenie serwera realizującego zapytania;
set type=typ - ustawienie zapytań o rekordy określonego typu;
set domain=nazwa - ustawienie domeny domyślnej;
ls nazwa > plik - pobranie pliku strefowego dla domeny nazwa i zapisanie do pliku plik;
view plik - wyświetlenie posortowanej zawartość pliku.
Zadania
Wyniki zadań umieścić w pliku wraz z opisem sposobu uzyskania wyników.
Zobaczyć zawartość pliku /etc/resolv.conf.
Wyświetlić listę serwerów obsługujących zadaną domenę.
Wyświetlić listę serwerów domeny głównej.
Wyświetlić listę wszystkich komputerów w domenie iinf.polsl.gliwice.pl oraz gliwice.pl.
Wyświetlić standardowe typy rekordów dla danego zapytania.
Zobaczyć jaka jest domena domyślna i kiedy jest dodawana do nazwy komputera.
Wyświetlić wiarygodną listę serwerów autorytatywnych dla domeny pl.
Jak nazywa się autorytatywny serwer dla domeny polsl.gliwice.pl?
Czy zeus jest serwerem autorytatywnym dla domeny iinf.polsl.gliwice.pl?
Co zrobi name serwer homer otrzymując adres x.x.gliwice.pl oraz x.x.x.pl, gdzie x jest nieznaną nazwą?
1
3