Zanim powstał DNS

Na początku działania sieći Internet każdy komputer musiał posiadać dane o niektórych komputerach w Sieci. Lista ważnych komputerów była umieszczana w pliku host.txt, plik ten ma zbliżoną strukturę do pliku /etc/hosts, wystepującego w dzisiejszych systemach serverowych, czy lmhosts w systemie Windows. Plik ten był tworzony i utrzymywany przez jedną, centralną organizacje o nazwie InterNIC, która udostępniała ten plik innym komputerom.
Admionistratorzy serwerów musiel wysyłać pocztą informacje o zmianach do organizacji InterNIC, która odpowiadała za uaktualnienie informacji. W miarę upływu czasu poszczególne komputery pobierały uaktualnioną wersję pliku i w ten sposób informacje rozchodziły się w Sieci. Rozrastanie się sieci Internet spowodowało że, plik host.txt rozrósł się do dużych rozmiarów i stał się nieporęczny czego jego efektywne zarządzanie zawartymi w nim informacjami stało się niemożliwe. Twórcy Sieci przeanalizowali problem i opracowali plan nowego, lepszego systemu, radzącego sobie z ogromną liczbą komputerów. Takim systemem właśnie jest DNS.

Co to jest DNS

DNS jest w zasadzie prostą, rozproszoną bazą danych, dająca możliwości delegowania i posiadająca bardzo ważną własność - możliwość buforowania odpowiedzi na zapytania.

DNS ważna sprawa

DNS to usługa, która wraz z kilkoma innymi odpowiada za prawidłowe działanie całej Sieci - żle skonfigurowana może przynieść więcej szkody niż pożytku. Nieprawilowa konfiguracja DNS-u może powodować w większości przypadków w przwrwy w dostawach usług do użytkowików, klientów oraz z tymi z którymi kontakt odbywa się poprzez Internet. Najbardziej zdradliwym aspektem DNS jest to że, bład konfiguracji może nie ujawniać sie nawet przez tydzień czy nawet kilka tygodni. Związku z tym prace związane z systemem DNS należy poświęcić odpowiednio dużo uwagi. Struktura DNS-u jest prosta, ale szczegóły jej funkcjonowania mogą być frustrujące.
Na rynku znajdują sie dwie implementacje takiej bazy danych jaką jest DNS:
Program BIND i DJBDNS

Program BIND z ang. Berkley Internet Name Daemon Przez wiele lat BIND byl w wersji 4, ale w koncu się zestarzał i został zastąpiony przez BIND 8 Obecnie oprocz wersji BIND 8 jest wersja BIND 9 BIND 9 rozwiązuje wiele problemów z jakimi boryka się BIND 8 i jest bezpieczniejszy. Rozwojem programu BIND zajmuje się Internet Software Consorcium (ISC)
www.isc.org/products/BIND/

DJBDNS jest serverem DNS autorstwa D.J Bernsteina. Jest wydajniejszy i bezpieczniejszy. Jest trudniejszy w instalacji i konfiguracji niż BIND. Dużą zaletą djbdns jest modularność. Nie jest to jeden duży program spełniający wszystkie zadania, lecz zbiór programów, z których każdy pełni ścisle określoną funkcję. Każdy program ma ograniczone uprawnienia i nie może wpływać na prace innego modułu.
Stona domowa programu: cr.yp.to/djbdns.html

DNS - hierarchiczna, rozproszona baza danych.

Hierarchiczność systemu DNS wynika z hierarchi nazw domenowych takich jak na przykład nasza domena www.sztynx.lublin.pl
Ostatni człon tej nazwy oznacza domene najwyższego poziomu onaczajaca ze domena jest z Polski. Najpopularniejsze domeny najwyższego poziomu to com,edu i org. ale każde państwo posiada własną domene najwyższego poziomu i oznacza się dwuliterowym skrótem państwa. W każdej domenie najwyższego poziomu istnieje wiele domen niższego poziomu w tym przypadku jest to lublin i oznacza ze domena jest z miasta lublina i jest to domena drugiego rzedu, w tej domenie jest zarejestrowana domena trzeciego rzędu czyli sztynx
W domenie sztynx znajduje się kilka nazw domenowych, tworzonych przez dodanie na początku nazwy członu identyfikacyjnego komputer lub grupę komputerów np. www. Cała nazwa www.sztynx.lublin.pl, nazywana jest pełną nazwą domenową czyli FQDN z ang. Fully Quailfied Domain Name; żaden z jej członów nie został pominiety. Domeny najwyższego poziomu oznaczane są w skrócie jako TLD ang. Top Level Domain.
Hierarchiczność wynika też z rozproszenia. Rozproszenie oznacza sposób jaki zasoby bazy danych DNSU są rozmieszczone w różnych serwerach w całej Sieci. Zasoby te są zorganizowane w sposób hierarchiczny, prawie pokrywający się s hierarchią nazw domenowych. Związane jest to iż organizacja zarzadzająca dana domeną deleguje odpowiedzialność za poszczególne domeny niższego poziomu do innych organizacji. Podam to na przykładzie naszej domeny. Organizacja zarządzającą domene lublin.pl jest LUBMAN http://www.lubman.pl który przekazał zarządzanie częścia bazy danych związaną z domeną sztynx.lublin.pl do zestawu serwerów DNS, odpowiadających za obsługę tej domeny. Związku z tym możemy również tworzyć subdomeny w domenie , którą zarządzamy i możemy delegować zarządzanie nimi do innych jednostek. Przekazanie odpowiedzialności z domeny lublin.pl do dom,eny niższego poziomu czyli sztynx jest bardzo istotna, pozwala ona na rozproszenie zarówno obsługi technicznej bazy DNS, i administrowania nią w całej Sieci.. Jest to najważniejsza cecha systemu DNS, pozwalająca mu rozwijać się w sytuacji , gdy utrzymanie pliku host.txt dawno stała by się niemożliwa z powodu duzej objętości tego pliku. Delegowanie odpowiedzialności pociąga za sobą skalowalność systemu; każdy z jej elementów odpowiada za taką częśc bazy, z którą możę sobie sam poradzić.
DNS posiada korzeń krawędzie i węzły.
Korzeniem jest głowny server nazw .
Jeśli wiadomo gdzie szukać korzenia, wszystkie pozostałe elementy drzewa jest łatwo odnależć. W systemie DNS w każdym serverze nazw jest dostyępny plik root.hints w którym znajdują się informacje gdzie szukać głownego servera nazw czyli korzenia drzewa DNS. Aby znależć adres komputera takiego jak www.sztynx.lublin.pl, DNS odpytuje głowny server nazw, czy zna taki adres. Głowny server nazw nie posiada takich informacji, ale może podać , kto ma dane dotyczące domeny pl. Taki wskażnik reprezentuje krawędź w drzewiastej strukturze DNS i prowadzi do kolejnego węzła - servera DNS, którego należy prosić o informacje. Ponownie jest wysyłane zapytanie o nazwę www.sztynx.lublin.pl i jeszcze raz server nie podaje , jaki jest adres takiego komputera, podaje tylko kto ma dane dotyczące domeny lublin.pl. Wtedy ponownie jest wysyłane zapytanie o nazwę www.sztynx.lublin.pl, ale nadal server nie podaje takich informacji, zwraca jednak informację o tym, gdzie szukać servera nazw dla domeny sztynx.lublin.pl. Zapytanie jest wówczas wysyłane do wskazanego servera i tym razem zwraca on odpowiednie dane, ponieważ posiada je we własnych plikach konfiguracyjnych. Wszystkie dane zdobyte podczas obsługi takiego zapytania są buforowane przez system DNS, dzięki czemu nie trzeba przeprowadzać pełnej, skomplikowanej procedury odpytywania. Jeśli zpaytasz sie o numer IP komputera www.sztynx lublin.pl, system DNS będzie znać juz adres servera nazw obsługującego domenę lublin.pl więc nie wyśle ponownego zapytania do servera głownego. Buforowanie jest jednym z kluczowych aspektów działania systemu DNS. Zarządzanie systemem DNS jest oparte na strefach. Przykładem może być domena lublin.pl w której jest wiele domen np nasza sztynx.lublin.pl.
sztynx.lublin.pl jest odrębną strefą którą możemy samodzielnie zarządzać , bez pytania administratorów strefy lublin.pl

STREFY ODWROTNE.

Każdy komputer posiada oprocz nazwy domenowej swoj IP.
Aby realizować zapytania odwrotne, trzeba na podstawie adresu IP odtworzyć nazwę komputera. Większość serverów w sieci domaga się nazwy komputera nawiązującego polonczenie bez tego odrzuci polonczenie. W przypadku protokołu IPv4 odpowiedni mechanizm jest prosty. Jesli szukasz nazwy komputera o podanyma adresie na przyklad.192.168.1.1, wysyłasz do servera nazw zapytanie o nazwę 1.1.168.192.in-addr.arpa a DNS zwraca nazwę, na przykład henio.trolejbus.com.pl
Nazwa, o którą pytaliśmy, składa sie z adresu IP, w którym została odwrócona kolejnośc bajtów, oraz przyrostka in-addr.arpa. Domena in-addr.arpa jest specjalną domeną wykorzystywaną wyłącznie do realizacji zapytań odwrotnych. Skrót in-addr oznacza, żę poszukiwany adres jest adresem internetowym, natomiast arpa pochodzi od starej nazwy Internetu, czyli ARPAnet. Strefy odwrotne może ustawiać tylko własciciel klasy C( posiadający 256 adresów) , który może też odelegować częśc domeny odwrotnej.

Systemie DNS rozrózniamy kilka typów rekordów:

REKORD A odpowiada za przypisanier ip do danego adresu domenowego. Przykład Rekordu A henio.trolejbus.com.pl A 192.168.1.1

REKORD NS zawieraja informacje o adresie servera nazw obsługującego strefę. Każda strefa musi posiadać rekord NS, na podstawie którego jest określany server, udostępniający wszystkie informacje o niej. Rekordy NS są to krawędzie drzewa bazy DNS.
Odróznia sie dwa rodzaje serverów nazw primary i secondary Przykład rekordu:
henio.trolejbus.com.pl NS szelki.henio.trolejbus.com.pl
henio.trolejbus.com.pl NS trajtek.henio.trolejbus.com.pl

Rekord CNAME

Rekord ten infromuje, że nazwa , która została podana, nie jest faktyczną nazwą komputera i podaje nazwę kanoniczną. Rekord ten pozwala na tworzenei aliasów. Jeżeli server zna adres komputeraa określonego przez nazwę kanoniczną, informacja taka zostanie też podana. NP. Kanoniczna nazwa komputera www.lubie.trolejbusy.pl to henio.trolejbus.com.pl o IP 192.168.1.1
www.lubie.trolejbusy.pl
CNAME henio.trolejbus.com.pl
henio.trolejbus.com.pl A 192.168.1.1

Rekord PTR

Odwzorowanie adresów na nazwy jest realizowane przez rekordy PTR. NP 1.1.168.192.in-addr.arpa PTR henio.trolejbus.com.pl Realizowanie zapytań odwrotnych jest ważne. Takie zapytania są wysyłane często. Niektóre usługi będa niedostepne lub dostępne w ograniczonym stopniu., jeżeli zapytania odwrotne nie są realizowane prawidłowo, spowoduje to, że użytkownicy bedątych usług pozbawieni. Oczywiście będzie to wina administratora, który jest odpowiedzialny za prawidłowe skonfigurowanie domeny prostej i odwrotnej.

Przygotował Krzysztof Różalski