sprawozdanie
Transkrypt
sprawozdanie
Przemysław Rakoczy DNS – historia i zasada działania DNS jest to skrót od nazwy Domain Name System (ang. system nazw domen). System ten odwzorowuje nazwy składające się z ciągu znaków na adresy ip. Przykładowo nazwa „wp.pl.” odpowiada adresowi 212.77.100.10. 1. Historia DNS Historia DNS sięga lat 80-tych, jednak aby lepiej zrozumieć przyczynę powstania tego systemu, należy się cofnąć do lat 70-tych. Wtedy to powstaje sieć ARPANET, protoplasta dzisiejszego Internetu. Każdy komputer połączony w sieć miał unikatowy adres ip, dzięki któremu był rozpoznawalny przez inne komputery w sieci. Jednak nazwa składająca się z samych cyfr jest trudna do zapamiętania przez człowieka. Pierwszym rozwiązaniem tego problemu było stworzenie pliku „Hosts.txt”. Plik ten odwzorowywał nazwy komputerów na adresy ip. Wraz ze rozrostem ARPANET pojawiały się coraz większe problemy administrowaniem pliku „Hosts.txt”. Zaczęto więc szukać lepszego rozwiązania. W 1984 powstaje DNS, którego zasada działania przetrwała do dnia dzisiejszego. 2. Zasada działania DNS DNS jest tak naprawdę rozproszoną bazą danych, składającą się z serwerów, tworzących strukturę drzewiastą. Nazwy mają postać „maszyna.domena.”. Na samym szczycie hierarchii stoi 13 root serwerów (ang. root-domain), oznaczonych „.”. Niżej są domeny główne (ang. top-lever), które dzielimy na krajowe (np. „pl”, „ru”) oraz funkcjonalne (np. „com”, „org”). Następne w hierarchii są domeny niższego poziomu (np. „google.com”, „waw.pl”). Na samym dole stoją maszyny (subdomeny). Ze względów bezpieczeństwa każdy serwer ma co najmniej jeden serwer zapasowy. Rys. 1 Schemat hierarchicznej struktury DNS. Dane w systemie DNS są udostępniane za pomocą technologii „klient-serwer” tzn. wpisując nazwę jesteśmy „klientem” i wysyłamy zapytanie do „serwera”, po czym czekamy na odpowiedz. Zapytania dzielimy na dwa rodzaje: rekurencyjne i iteracyjne. Zapytania rekurencyjne są wysyłane przez klienta do serwera. Charakteryzują się tym, że serwer otrzymujący zapytanie rekurencyjne musi zwrócić klientowi adres ip odpowiadający nazwie otrzymanej w zapytaniu. Zapytania iteracyjne są wysyłane przez serwery do innych serwerów. Charakteryzują się tym, że serwer nie musi zwrócić adresu ip nazwy otrzymanej w zapytaniu. Zamiast tego może wysłać wskazania do serwerów przechowujących informację o domenach znajdujących się o poziom niżej w hierarchii. 3. Przykładowe zapytanie DNS. Załóżmy, że chcemy uzyskać adres ip strony o nazwie „xyz.elblag.pl”. Wpisując w przeglądarce internetowej dany adres wysyłamy zapytanie do lokalnego serwera DNS. Ten wysyła zapytanie do jednego z trzynastu serwerów root. W odpowiedzi otrzymuje adres serwera posiadającego informacje o domenie „pl” i wysyła zapytanie do tego właśnie serwera. Maszyna ta nie zna szukanego przez nas adresu, jednak zna adres serwerów domeny „elblag.pl”. Nasz lokalny serwer otrzymuje więc w odpowiedzi adres serwerów domeny „elblag.pl” i wysyła zapytanie na adres otrzymany w odpowiedzi. Serwer „elblag.pl” posiada informacje o adresie strony „xyz.elblag.pl” i wysyła go naszemu lokalnemu serwerowi DNS. Ten wysyła szukany przez nas adres ip do naszego komputera, dzięki czemu strona „xyz.elblag.pl” otwiera się w naszej przeglądarce. Mechanizm działania systemu DNS został przyspieszony dzięki tzw. „buforowaniu”. Serwery „zapamiętują” wskazania do innych serwerów. Np. po wpisaniu przez nas w przeglądarce internetowej strony „pwsz.elblag.pl”, nasz lokalny serwer zapisze wskazania do serwerów domen „elblag.pl” oraz „pl”. Gdy za jakiś czas wpiszemy w przeglądarce „wp.pl”, lokalny serwer DNS w pierwszym kroku nie wyśle zapytania do root serwera, tylko do serwera domen „pl”. Informacje o wskazaniach są zapisywane w pamięci podręcznej. Po upłynięciu tzw. „time to live” dane te są kasowane z pamięci podręcznej.