Zeszyt SOSK/TI
DNS (ang. Domain Name System, system nazw domenowych) to system serwerów, protokół komunikacyjny oraz usługa zapewniające zamianę adresów znanych użytkownikom Internetu na adresy zrozumiałe dla urządzeń tworzących sieć komputerową. Dzięki wykorzystaniu DNS nazwa mnemoniczna, np. pl.wikipedia.org, może zostać zamieniona na odpowiadający jej adres IP, czyli 91.198.174.232
Adresy DNS składają się z domen internetowych rozdzielonych kropkami. Dla przykładu w adresie Wikipedii org oznacza domenę funkcjonalną organizacji, wikipedia domenę należącą do fundacji Wikimedia, a pl polską domenę w sieci tej instytucji. W ten sposób możliwe jest budowanie hierarchii nazw, które porządkują Internet.
STRUKTURA DOMEN
Wewnątrz każdej domeny można tworzyć tzw. subdomeny – stąd mówimy, że system domen jest 'hierarchiczny'. Przykładowo wewnątrz domeny .pl utworzono wiele domen:
regionalnych jak 'opole.pl', 'dzierzoniow.pl' czy 'warmia.pl'
funkcjonalnych jak 'com.pl', 'gov.pl' czy 'org.pl'
należących do firm, organizacji lub osób prywatnych jak 'wp.pl', 'zus.pl', 'porady-domowe.pl'
Nazwy domen i poszczególnych komputerów składają się z pewnej liczby nazw, oddzielonych kropkami. Ostatnia z tych nazw jest domeną najwyższego poziomu. Każda z tych nazw może zawierać litery, cyfry lub znak '-'. Od niedawna w nazwach niektórych domen można używać znaków narodowych (IDN) takich jak 'ą' czy 'ż'. Trwają prace nad nowymi standardami odpowiadającymi DNS, które będą obsługiwać kodowanie Unicode, co pozwoli na umieszczanie w nazwach domen dowolnych znaków np. polskich albo chińskich równocześnie. W Polsce domeny zawierające znaki diakrytyczne praktycznie nie występują. Wewnątrz każdej z poddomen można tworzyć dalsze poddomeny, np. w domenie 'wikipedia.org' można utworzyć domenę pl.wikipedia.org.
Administracja DNS
DNS, jako system organizacyjny, składa się z dwóch instytucji – IANA i ICANN. Nadzorują one ogólne zasady przyznawania nazw domen i adresów IP. Nie zajmują się jednak one przydzielaniem domen poszczególnym chętnym, jedynie rozdzielają domeny najwyższego poziomu (takie jak .pl, .gov, .com, .eu) pomiędzy kraje lub wybrane organizacje i przekazują im prawa do zarządzania tymi domenami. Te mogą dalej przekazywać nadzór nad całością bądź częścią swoich domen, i tak Rząd Polski przekazuje nadzór nad domeną .pl Naukowej i Akademickiej Sieci Komputerowej, która rozdziela poddomeny w obrębie domeny .pl pomiędzy zainteresowanych. Ci z kolei mogą rozdzielać te domeny pomiędzy poszczególne komputery, lub dalej swoim klientom.
W wielu krajach domena internetowa przyznana przez system DNS staje się własnością tego, kto pierwszy ją kupi. W Polsce jest ona tylko wynajmowana na określony czas. Jeżeli ktoś zrezygnuje ze swojej domeny i zwróci ją administratorowi DNS, może ona trafić w inne ręce.
Instytucje administrujące DNS na świecie
ICANN-IANA – nadzór ogólny nad nazewnictwem i strukturą domen najwyższego poziomu (TLD – ang. Top Level Domains), np.: .pl, .gov, .com
VeriSign Global Registry Services – rejestracja i nadzór nad domenami: .net, .org, .com
Rząd USA – rejestracja i nadzór nad domenami – .mil i .gov
NeuLevel – rejestracja i nadzór nad domeną – .biz
IEEE – rejestracja i nadzór nad domeną – .aero
Afilias Limited – rejestracja i nadzór nad domeną – .info
Global Name Registry – rejestracja i nadzór nad domeną – .name
EurID – rejestracja i nadzór nad domeną – .eu
rządy poszczególnych krajów: rejestracja i nadzór nad domenami "krajowymi", np. .pl (zwykle rządy poszczególnych krajów przekazują ten nadzór wyspecjalizowanym instytucjom)
Ogólny zarys
Podstawą technicznego systemu DNS jest ogólnoświatowa sieć serwerów przechowujących informacje na temat adresów domen. Każdy wpis zawiera nazwę oraz odpowiadającą jej wartość, najczęściej adres IP. System DNS jest podstawą działania Internetu.
DNS to również protokół komunikacyjny opisujący sposób łączenia się klientów z serwerami DNS. Częścią specyfikacji protokołu jest również zestaw zaleceń, jak aktualizować wpisy w bazach domen internetowych. Na świecie jest wiele serwerów DNS, które odpowiadają za obsługę poszczególnych domen internetowych. Domeny mają strukturę drzewiastą, na szczycie znajduje się 13 głównych serwerów (root servers) obsługujących domeny najwyższego poziomu (TLD – top level domains), których listę z ich adresami IP można pobrać zftp://ftp.rs.internic.net/domain/named.root
Serwery najwyższego poziomu z reguły posiadają tylko odwołania do odpowiednich serwerów DNS odpowiedzialnych za domeny niższego rzędu, np. serwery główne (obsługujące między innymi TLD .com) wiedzą, które serwery DNS odpowiedzialne są za domenę example.com. Serwery DNS zwracają nazwę serwerów odpowiedzialnych za domeny niższego rzędu. Możliwa jest sytuacja, że serwer główny odpowiada, że dane o domenie example.com posiada serwer dns.example.com. W celu uniknięcia zapętlenia w takiej sytuacji serwer główny do odpowiedzi dołącza specjalny rekord (tak zwany glue record) zawierający także adres IP serwera niższego rzędu (w tym przypadku dns.example.com).
Najważniejsze cechy
System DNS posiada następujące cechy:
Nie ma jednej centralnej bazy danych adresów IP i nazw. Najważniejszych jest 13 głównych serwerów rozrzuconych na różnych kontynentach.
Serwery DNS przechowują dane tylko wybranych domen.
Każda domena powinna mieć co najmniej 2 serwery DNS obsługujące ją, jeśli więc nawet któryś z nich będzie nieczynny, to drugi może przejąć jego zadanie.
Każda domena posiada jeden główny dla niej serwer DNS (tzw. master), na którym to wprowadza się konfigurację tej domeny, wszystkie inne serwery obsługujące tę domenę są typuslave i dane dotyczące tej domeny pobierają automatycznie z jej serwera głównego po każdej zmianie zawartości domeny.
Serwery DNS mogą przechowywać przez pewien czas odpowiedzi z innych serwerów (ang. caching), a więc proces zamiany nazw na adresy IP jest często krótszy niż w podanym przykładzie.
Na dany adres IP może wskazywać wiele różnych nazw. Na przykład na adres IP 207.142.131.245 mogą wskazywać nazwy pl.wikipedia.org oraz de.wikipedia.org
Czasami pod jedną nazwą może kryć się więcej niż 1 adres IP po to, aby jeśli jeden z nich zawiedzie, inny mógł spełnić jego rolę.
Przy zmianie adresu IP komputera pełniącego funkcję serwera WWW, nie ma konieczności zmiany adresu internetowego strony, a jedynie poprawy wpisu w serwerze DNS obsługującym domenę.
Protokół DNS posługuje się do komunikacji serwer-klient głównie protokołem UDP, serwer pracuje na porcie numer 53, przesyłanie domeny pomiędzy serwerami master i slaveodbywa się protokołem TCP na porcie 53.
Rodzaje zapytań DNS
rekurencyjne
zmusza serwer do znalezienia wymaganej informacji lub zwrócenia wiadomości o błędzie. Ogólną zasadą jest, że zapytania od resolwera (program, który potrafi wysyłać zapytania do serwerów DNS) do serwera są typu rekurencyjnego, czyli resolwer oczekuje podania przez serwer adresu IP poszukiwanego hosta. Wykonywanie zapytań rekurencyjnych pozwala wszystkim uczestniczącym serwerom zapamiętać odwzorowanie (ang. DNS caching), co podnosi efektywność systemu.
iteracyjne
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 serwer domeny org nie musi znać adresu IP komputera www.pl.wikipedia.org, podaje więc najlepszą znaną mu w tej chwili odpowiedź, czyli adresy serwerów autorytatywnych dla domeny wikipedia.org
Odpowiedzi na zapytania
autorytatywne – dotyczące domeny w strefie, nad którą dany serwer ma zarząd, pochodzą one bezpośrednio z bazy danych serwera; jest to pozytywna odpowiedź zwracana do klienta, która w komunikacie DNS zawiera ustawiony bit uwierzytelniania (AA – Authoritative Answer) wskazujący, że odpowiedź została uzyskana z serwera dokonującego bezpośredniego uwierzytelnienia poszukiwanej nazwy
nieautorytatywne – dane które zwraca serwer pochodzą spoza zarządzanej przez niego strefy; odpowiedzi nieautorytatywne są buforowane przez serwer przez czas TTL, wyspecyfikowany w odpowiedzi, później są usuwane.
Bezpieczeństwo
Należy zdać sobie sprawę, że system DNS został zaprojektowany wiele lat temu przez naukowców. Nie przewidzieli oni "trafienia internetu pod strzechy" i istnienia światowej sieci używanej do prowadzenia poważnych operacji. W Internecie pojawiła się grupa osób wykorzystująca luki w systemie DNS do łamania prawa.
Podstawową wadą DNS jest to, iż korzysta on z bezpołączeniowego protokołu UDP i nie zawiera żadnych mechanizmów autoryzujących. Pierwsza cecha może być używana w atakachDDoS – komputer atakujący może wysyłać zapytania DNS do różnych serwerów na świecie ze sfałszowanym adresem źródłowym, przedstawiając się jako komputer ofiara. Serwery te odpowiadają na zapytania, wysyłając odpowiedzi do komputera ofiary, bo tak wskazuje adres źródłowy pakietu. Konstrukcja protokołu DNS powoduje, że jedno małe zapytanie mieszczące się w pakiecie o wielkości poniżej 100 bajtów, może wygenerować odpowiedź o wielkości ponad dziesięciokrotnie większej. Atakujący komputer wysyłając strumień 1 Mbpstakich zapytań może spowodować ponad 10 Mbps odpowiedzi przychodzących do komputera ofiary, zakłócając w ten sposób pracę jego łącza.
DNS łatwo też poddaje się atakom typu man in the middle, co pozwala na przysyłanie fałszywych odpowiedzi do komputera ofiary, zmuszając go do połączenia się z innym serwerem, co pozwala na przykład na kradzież haseł. Istnieje wiele innych możliwości ataków na infrastrukturę DNS, łącznie nawet z uruchamianiem fałszywych serwerów głównych. O słabościach protokołu DNS zdano sobie sprawę wcześnie i stworzono jego rozszerzenie oparte o podpisy cyfrowe nazwane DNSSEC, jednakże system ten nie został całkowicie zaakceptowany przez Internet, nie jest wspierany przez wiele narzędzi, w związku z czym w internecie praktycznie nie jest używany.
Tomek Chomik kl.2TI1