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 ipv6-localnet
ff00::0 ipv6-mcastprefix ff02::1 ipv6-allnodes ff02::2 ipv6-allrouters ff02::3 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
.com .edu .firma
.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)
● Zawiera adres IPv4 (32b)
–
AAAA
● 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
● Przeszukiwana domena – QTYPE
● 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
● Offset do nazwy – TYPE
● 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)