DNS Jarek Durak PI 2009
Historia usług rozwiązywania nazw Domain Name System Opracowany na potrzeby dostarczania poczty w sieci ARPANET na początku lat 80 (83 rok RFC881 882 i 883) Zastąpił plik HOSTS.TXT Pozostałość po tym pliku istnieje we wszystkich systemach operacyjnych LINUX/UNIX - /etc/hosts Windows NT/2k/XP - /Windows(WINNT)/system32/drivers/etc/hosts \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath Plik hosts funkcjonował przez 10 lat
Historia usług rozwiązywania nazw Plik hosts Na przełomie lat 70/80 znacznie wzrosła liczba hostów w ARPANET Rozmiar pliku stał się zbyt duży Częste zmiany przypisań nazwa-adres wymuszały częste transfery pliku do wszystkich hostów Transport poczty wymagał wyspecyfikowania wszystkich hostów pośredniczących utzoo!decvax!harpo!eagle!mhtsa!ihnss!ihuxp!grg user@host
Historia usług rozwiązywania nazw Obecny format pliku hosts Każda linia jest osobnym wpisem Zawiera Adres IP v4 lub v6 Nazwa długa i nazwa krótka (obie/jedna/kilka nazw) 127.0.0.1 localhost #IPv4 255.255.255.255 broadcasthost fe80::1%lo0 localhost #MacOSX 149.156.112.55 tempus.metal.agh.edu.pl tempus # IPv6 ::1 localhost ipv6-localhost ipv6-loopback fe00::0 ff00::0 ff02::1 ff02::2 ff02::3 ipv6-localnet ipv6-mcastprefix ipv6-allnodes ipv6-allrouters ipv6-allhosts
Historia usług rozwiązywania nazw Plik hosts To czy plik hosts jest używany przez resolver jest zależne od systemu operacyjnego Dla Linux/Unix jest to plik /etc/hosts conf order hosts, bind I /etc/nsswitch.conf Dla Windows są to wpisy w rejestrach W przypadku korzystania z AD istnienie wpisów w pliku hosts może zakłócić działanie stacji w drzeie AD
DNS po stronie klienta Za korzystanie z DNS na stacji klienckiej odpowiada: Jej konfiguracja (np. dodatkowe usługi) resolver (zestaw bibliotek systemowych i plików) Resolver Odpowiada za tłumaczenie nazw w postaci Tempus, www.agh.edu.pl na adres IP v4 lub 6 tempus.metal.agh.edu.pl 149.156.112.55 Usługę ReverseDNS Tłumaczenie adresu IP na nazwę domenową 55.112.156.149.in-addr.arpa. tempus.metal.agh.edu.pl
DNS po stronie klienta Przykład ReverseDNS # nslookup > set type=ptr > 55.112.156.149.in-addr.arpa Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: 55.112.156.149.in-addr.arpa name = tempus.metal.agh.edu.pl. Authoritative answers can be found from: 112.156.149.in-addr.arpa nameserver = nms.cyf-kr.edu.pl. 112.156.149.in-addr.arpa nameserver = deenes.uci.agh.edu.pl. 112.156.149.in-addr.arpa nameserver = galaxy.uci.agh.edu.pl. nms.cyf-kr.edu.pl internet address = 149.156.1.3 nms.cyf-kr.edu.pl has AAAA address 2001:6d8:0:1::a:3 deenes.uci.agh.edu.pl internet address = 149.156.119.130 galaxy.uci.agh.edu.pl internet address = 149.156.96.9
DNS po stronie klienta Plik /etc/resolv.conf nameserver określa adresy IP serwerów DNS domain nazwa domeny np. metal.agh.edu.pl search - nazwy domen wyszukiwania (maks 6) sortlist sposób sortowania odpowiedzi option dodatkowe opcje Przykładowa zawartość /etc/resolv.conf namserver 149.156.111.10 namserver 149.156.96.9 domain metal.agh.edu.pl search metal.agh.edu.pl agh.edu.pl
DNS po stronie klienta
DNS po stronie klienta Rodzaje zapytań Nie rekursywne (non-recursive) Rekursywne (recursive) Rodzaje odpowiedzi Autorytatywne Jeżeli komputery o które pytamy są administrowane przez pytany serwer Nieautorytatywne W pozostałych przypadkach
Mechanizm rozwiązywania nazw Nazwy podlegające rozwiązywaniu mają zwykle od 2 do 5 członów Nazwy rozwiązywane są segment po segmencie od prawej do lewej Na każdym etapie odpowiedź zawiera adres następnego serwera DNS do odpytania
DNS po stronie klienta W praktyce Klient zazwyczaj łączy się z serwerem DNS, który przechowuje odpowiedzi w pamięci podręcznej przez czas równy TTL danego wpisu DNS
Struktura DNS Domain Name System Jest to rozproszona hierarchiczna baza danych Rozproszona za poszczególne domeny odpowiadają wskazane serwery DNS, zawierające wpisy tylko dla tej domeny (ew kliku domen) Hierarchiczna ma strukturę odwróconego drzewa Baza danych zawiera uporządkowaną strukturę w postaci rekordów.pl.uk.edu.gov.info.firma.com.edu.agh.metal.uci
Struktura DNS Root. Stanowią podstawowe serwery DNS zawierające wskazania dla domen podstawowych Aktualna lista znajduję się pod adresem http://www.iana.org/about/popular-links/ A listę operatorów na http://www.root-servers.org/ Obecnie (5.01.2009) zawiera 13 serwerów root Ograniczenie ustalono na na limit defragmentacji pakietu Ipv4 (576B) - co daje maks. 15 rekordów (IPv6 jest więcej). 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:BA3E::2:30. 3600000 NS M.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 M.ROOT-SERVERS.NET. 3600000 AAAA 2001:dc3::35 ; End of File
Struktura DNS Domeny narodowe i funkcjonalne Serwery root zawierają wskazania do serwerów domen narodowych i funkcjonalnych Domeny narodowe jak.us,.uk.pl.eu W ramach domen narodowych są domeny funkcjonalne aid.pl agro.pl atm.pl auto.pl biz.pl com.pl edu.pl gmina.pl gsm.pl info.pl mail.pl miasta.pl media.pl mil.pl net.pl nieruchomosci.pl nom.pl org.pl pc.pl powiat.pl priv.pl realestate.pl rel.pl sex.pl shop.pl sklep.pl sos.pl szkola.pl targi.pl tm.pl tourism.pl travel.pl turystyka.pl Domeny funkcjonalne Początkowo edu, net, gov, com, net, mil, org Nowe domeny.aero transport lotniczy.biz (businesses) - dla firm.info (information) do użytku ogólnego.coop (cooperatives) - dla przedsiębiorców.museum - dla muzeów.name dla osób prywatnych.pro (professionals) - dla profesjonalistów w danym zawodzie
Struktura DNS Administracja domenami 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 (52 serwery) Rząd USA - rejestracja i nadzór nad domenami -.mil i.gov NeuLevel - rejestracja i nadzór nad domeną -.biz SITA - 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:
Struktura DNS Organizacja działania serwerów ROOT Początkowo serwery te były umiejscowione na terenie USA Obecnie każdy z serwerów jest klastrem a równoważenie obciążania zapewniają routery
Serwery DNS Typy serwerów Primary (podstawowy) Zawiera strefę (1 lub więcej) dla której jest podstawowym źródłem rekordów Wysyła odpowiedź autorytatywną Secondary (zapasowy) powinien być w innej sieci pobiera plik strefy z serwera podstawowego Wysyła odpowiedź autorytatywną Caching odpowiada na zapytania klientów i przechowuje odpowiedzi przez czas TTL Wysyła odpowiedź nieautorytatywną
Serwery DNS Reverse DNS RevDNS Zawiera strefę odwrotną Tych serwerów jest najmniej bo prowadzi się je dla przynajmniej kilkuset adresów Powstał dla wspomagania diagnostyki np. traceroute czy ping Obecnie wykorzystywany jest do wspomagania ochrony przed spamem Serwer SMTP przed przyjęciem poczty sprawdza czy serwer wysyłający pocztę rozwiązuje się na ten sam adres mnemoniczny, którym się przedstawia eliminuje to większość hostów
Serwery DNS Typy rekordów DNS (najważniejsze) A (adres record) AAAA Zawiera adres IPv4 (32b) jw dla IPv6 (128b) CNAME (Cannonical Name) Alias do innej nazwy w DNS MX (Mail Exchanger) Mapuje nazwę domeny na listę serwerów ją obsługujących NS (Name Server) Deleguje strefę do autorytatywnego serwera DNS PTR (Pointer Record) Zwraca nazwę mnemoniczną (reverse DNS) SOA (Start Of Authority) Zawiera autorytatywne informacje o strefie w tym Primary DNS, email administratora, numer seryjny domeny (transfer do secondary gdy się zmienia) i parametry czasowe
Serwery DNS $TTL 2d ; lub 172800 w sekundach acme.com. IN SOA ns.acme.com. root.acme.com. ( 2009010501 ; numer seryjny(typowo data + 2 cyfry) 28800 ; odświeżanie lub w formie 1d12h 3600 ; powtórzenia 1h 604800 ; wygasa 38400 ; TTL dawniej teraz minimum ; NegativeCache ) acme.com. IN NS ns.acme.com. ;rekord serwera DNS acme.com. IN MX 10 poczta.acme.com. ;wymiennik poczty www IN A 192.168.0.2 ; rekordy A poczta IN A 192.168.0.3 ns IN A 192.168.0.1 ftp IN CNAME www ; Alias do www Czyli ftp.acme.com to to samo co www.acme.com 192.168.0.2
Nazwy w DNS Tworzenie nazwy Dozwolone znaki A-Z, a-z duże i małe litery nie są rozróżniane 0-9 - (minus) wewnątrz nazwy Znaki niedozwolone Narodowe znaki diakrytyczne ąęśćżńół... symbole þ +.,! " $ % & / ( ) =? ^ * ç ; : _ > ] [ @ ); <spacje> Długość nazwy 3-63 znaki W strukturze geograficznej 1-63 internationalized domain name (IDN) Pozwala zastosować unicode Realizowane jest mapowanie Unicode ASCII
Protokół DNS Protokół UDP Mniejsze obciążanie serwera i klienta Mniejszy pakiet Krótszy etap nawiązywania połączenia Port 53 Format wiadomości RFC 1035 Nagłówek Występuje we wszystkich pakietach DNS Nie może być pusty Zawiera m.in. Message ID 16b identyfikator wiadomości QR- 1b 0-pytanie 1 odpowiedź QPCODE 4b typ operacji (0 -standardowe żądanie, 1 zapytanie odwrotne, 2 żądanie stanu) AA Odpowiedź autorytatywna RD - Recursion Desired żądanie wyszukiwania rekursywnego RA Recursion Avaiable tryb rekursywny dostępny QDCOUNT ilość rekordów w pytaniu ANCOUNT ilość rekordów odpowiedzi NSCOUNT ilość rekordów NS ARCOUNT ilość rekordów w dodatkowej sekcji
Protokół DNS Format wiadomości RFC 1035 Pytanie QNAME QTYPE Przeszukiwana domena Typ zapytania 1-A, 2-NS, 5-CNAME,6-SOA..., 255-ANY Kompletna lista IANA.org QCLASS - klasa zasobów Domyślnie 1 IN czyli INTERNET Kompletna lista IANA.org QNAME= 08 6D 79 64 6F 6D 61 69 6E 03 63 6F 6D 00! m y d o m a i n! c o m!! - liczba znaków do separatora
Protokół DNS Format wiadomości RFC 1035 Odpowiedź NAME TYPE Offset do nazwy Typ rekordu odpowiedzi 1-A, 2-NS, 5-CNAME,6-SOA..., 255-ANY Kompletna lista IANA.org CLASS - klasa zasobów Domyślnie 1 IN czyli INTERNET Kompletna lista IANA.org TTL - czas przechowywania w cache w sek. RDLENGHT RDATA
Dodatkowe funkcje DNS Równoważenie obciążenia serwerów np. WWW RoundRobin Klient zwykle wykorzystuje pierwszy adres z odpowiedzi Do jednej nazwy przypisanych jest kilka adresów IP Adresy są podawane w różnych kolejnością w kolejnych odpowiedziach Różne typy rekordów DNS może zawierać wiele typów rekordów (kilkadziesiąt) Opisy TXT Klucze i podpisy TKEY TSIG KEY SIG IPSECKEY...
Problemy z DNS DNS jest kluczową usługą internetu Cache poisoning Zatruwanie pamięci cache serwerów pośredniczących Pozwala na podszywanie się Serwer pośredniczący przyjmuje więcej informacji a nie tylko te o które pytał Brak sprawdzania czy odpowiedź przychodzi od właściwego serwera Użycie zbliżonych nazw lub częstych czeskich błędów np. domeny zarejestrowane www.google.com www.gogle.com www.goog1e.com DDNS (Dynamic Domain Name System) Pozwala zarejestrować domenę na adresie dynamicznym Czasy TTL są zwykle krótkie (www.dyndns.org www.no-ip.org)