System DNS Marcin Ciechanowski January 23, 2008 1 Uwagi ogólne Poniewa» zapami tywanie adresów IP jest trudne dla czªowieka, komputery dost pne w sieci s okre±lane ªatwymi do zapami tania nazwami. Na samym pocz tku istnienia sieci wystarczaªa lista kilkuset komputerów umieszczona w pliku tekstowym hosts. Poniewa» liczba ta rosªa niepomiernie, system ten zostaª zmieniony na bardziej wydajny. Jest nim system DNS (Domain Name System) ±wiadcz cy usªugi zamieniania nazwy komputera na adres IP. Nadal pozostaªo±ci po pierwotnym systemie jest plik host. W systemie uniksowym umieszczony jest w katalogu /etc/. Aby zapewni szybsze rozwi zywanie nazwy na adres IP, mo»emy r cznie uzupeªni ten plik. W pliku tym znajduje sie jeden wpis, przyporz dkowywuj cy nazw localhost do numeru IP 127.0.0.1. DNS jest jedn z najwa»niejszych usªug warstwy aplikacji. Przykªadowo, to dzi ki systemowi DNS i najbli»szemu serwerowi tej usªugi po wpisania w naszej przegl darce WWW nazwy serwera: www.onet.pl zostanie skierowany na adres IP : 213.180.130.200. Przestrze«nazw w Internecie jest oparta na modelu drzewiastym. Oczywi±cie aby byªo trudniej,drzewo jest odwrócone. Aby jeszcze bardziej utrudni, peªn nazw domenow FQDN (Fully Qualied Domain Name) zapisujemy od prawej do lewej, od najbardziej ogólnych domen, do szczegóªowych, a» po nazw konkretnego komputera. Tworzenie nazw zaczynamy od korzenia (root) oznaczonego kropk. Dla przykªadu szukamy hosta www.lodz.pl 1
Figure 1: Drzewiasta struktura domen w Internecie 2 Organizacje zajmuj ce si zarz dzaniem przestrzeni nazw domenowych Organizacja zajmuj ca si zarz dzaniem przestrzeni nazw domenowych to ICANN (The Internet Corporation for Assigned Names and Numbers) Domeny gªównego poziomu dziel si na domeny geograczne i organizacyjne.domeny geograczne s to domeny dwuliterowe przyznawane poszczególnym krajom, przykªadowo:.pl- Polska.us- Stany Zjednoczone.uk- Wielka Brytania.tw- Taiwan.eu- Europa domeny organizacyjne s przyznawane w zale»no±ci od prowadzonej dziaªalno±ci, przykªadowo:.com- rmy komercyjne.edu- instytucje naukowe.gov- organizacje rz dowe.mil- organizacje militarne.net- organizacje zwi zane z sieci Internet.int- mi dzynarodowe organizacje rz dowe i pozarz dowe.org- pozostaªe organizacje nie mieszcz ce si w tych ramach
W pa»dzierniku 2000 r. zostaªo dodanych siedem nowych domen organizacyjnych:.info- dla u»ytku ogólnego.biz dla biznesu.aero- dla przemyslu lotniczego.name- dla osób indywidualnych.pro dla profesjonalistów.museum dla muzeów.coop- dla wspóªpracy 3 Ogólne informacje o serwerach DNS Serwer nazw najcz ±ciej ma peªne informacje o cz ±ci caªej przestrzeni nazw, cz ± t nazywamy stref. Dane te pobiera z lokalnego pliku lub z innego serwera nazw, co opisujemy mówi c,»e serwer ma autoryzacj dla strefy lub»e jest wiarygodnym serwerem dla tej strefy. Poniewa» baza danych posiadaj ca wpisy dotycz ce wszystkich hostów w domenie.pl byªaby ogromna i praktycznie niemo»liwa do zarz dzania, stosuje si tzw. delegacj strefy. W ten sposób przechowywanie i uzupeªnianie informacji o hostach w domenie np rma.com.pl zostaje przekazane serwerowi nazw nale» cemu do tej rmy. Serwer zarz dzaj cy domen com.pl zawiera jedynie wpis informuj cy o adresie IP serwera nazw domeny rma.com.pl. Wszelkie pytania o poszczególne komputery w tej domenie b d skierowane do tego serwera. 4 Jak to dziaªa Program, który potra wysyªa zapytanie do serwerów DNS, nazywamy resolwerem (resolver). System aby wyznaczy adres IP, przekazuje nazw hosta resolwerowi i oczekuje na odpowied¹ od niego. Resolwer wysyªa zapytanie do serwera DNS; nazwiemy go Serwerem-A. W jaki sposób Serwer-A dowiaduje si, jaki adres IP ma host, o który pytamy, przykªadowo www.rma.com.pl?. Proces ten wygl da nast puj co: 1. Serwer-A wysyªa zapytanie do jednego ze wspomnianych wcze±niej gªównych serwerów nazw dla Internetu. Pyta o adres www.rma.com.pl. Poniewa» serwer gªówny nie ma informacji o zawarto±ci domeny pl, odpowiada, wysyªaj c list kilku serwerów maj cych autoryzacj dla domeny pl 2. Serwer-A wysyªa zapytanie o host www.rma.com.pl do jednego z serwerów domeny pl. Serwer nazw dla domeny pl odpowiada, podaj c
adres IP serwerów DNS domeny com.pl. 3. Serwer-A wysyªa zapytanie o host www.rma.com.pl do jednego z serwerów domeny com.pl. W odpowiedzi otrzymuje adres IP serwerów DNS (najcz ±ciej dwa) dla domeny rma.com.pl. 4. Serwer-A wysyªa zapytanie o host www.rma.com.pl do jednego z serwerów domeny rma.com.pl. Otrzymuje w odpowiedzi adres IP poszukiwanego hosta. 5 Rodzaje name server'ów Name server'y s magazynem informacji skªadaj cych si na baz danych domeny. Baza danych podzielona jest na sekcje - strefy, które s pó¹niej dystrybuowane pomi dzy serwerami. Jakkolwiek name server'y mog speªnia ró»ne funkcje, to gªównym ich zadaniem jest odpowiadanie na zapytania, u»ywaj c do tego informacji zawartych w bazie danych. Dane o strefach s osi galne z kilku name server'ów, by zapewni dost p do informacji nawet w przypadku awarii komputera lub ª czy komunikacyjnych. Absolutnie wymagane jest, by dane o strefach byªy umieszczone na conajmniej dwóch serwerach. Poniewa» name server przechowuje tylko niewielki wycinek drzewa domeny (i dla niej jest "autorytetem"), mo»e równie» trzyma dane z innych cz ±ci drzewa zawart w np. cache'u (s one nieautoryzowane). Poniewa» name server zachowuje odpowiedzi udzielone na zapytania, ten któremu udzielono informacji mo»e stwierdzi, czy dana odpowied¹ byªa miarodajna czy nie. Dla ka»dej domeny Internetowej potrzebne jest uruchomienie name server'a. Dla domen gªównych (top level domains) jest to wymóg konieczny, natomiast jest bardzo zalecane uruchamianie name server'a w ka»dej poddomenie (subdomain). W ten sposób struktura name server'ów b dzie odpowiada hierarchicznej strukturze nazw domen. 6 Rodzaje rekordów zasobów Baza DNS przechowuje w rzeczywisto±ci ró»ne dane, których zawarto± opisana jest w standartowych rekordach zasobów. Format denicji zasobów jest nastepuj cy: [nazwa] [ttl] IN typ dane nazwa mo»e to by zarówno nazwa hosta jak i nazwa caªej domeny. Je±li ci g nie ko«czy si kropk, traktowany jest wzgl dny wobec aktualnie
deniowanej domeny. Je±li pole jest puste, rekord odnosi sie do nazwy denowanej w poprzednim rekordzie. ttl czas»ycia(w sekundach) informacji zdeniowanej w tym rekordzie. Je±li pole jest puste, obowi zuje TTL zdenowane dla caªej strefy w rekordzie SOA. IN oznaczenie klasy hosta, IN oznacza Internet. Istniej równiez inne klasy, ale najcz sciej nie sa spotykane. Je±li pole klasy jest puste, domy±lnie przyjmowane jest IN. typ okre±la typ rekordu; najwarzniejsze typy rekordów zostaªy wymienione poni»ej. dane dane zale»ne od podanego wczesniej rekordu. Najwa»niejsze typy rekordów DNS, oraz ich znaczenie: rekord A lub rekord adresu (ang. address record) mapuje nazw domeny DNS na jej 32-bitowy adres IPv4. rekord AAAA lub rekord adresu IPv6 (ang. IPv6 address record) mapuje nazw domeny DNS na jej 128 bitowy adres IPv6 rekord CNAME lub rekord nazwy kanonicznej (ang. canonical name record) ustanawia alias nazwy domeny. Wszystkie wpisy DNS oraz poddomeny s poprawne tak»e dla aliasu. rekord MX lub rekord wymiany poczty (ang. mail exchange record) mapuje nazw domeny DNS na nazw serwera poczty. rekord PTR lub rekord wska¹nika (ang. pointer record) mapuje adres IPv4 na nazw kanoniczn hosta. Okre±lenie rekordu PTR dla nazwy hosta (ang. hostname) w domenie in-addr.arpa, który odpowiada adresowi IP, pozwala na implementacj odwrotnej translacji adresów DNS (ang. reverse DNS lookup). rekord NS lub rekord serwera nazw (ang. name server record) mapuje nazw domenow na list serwerów DNS dla tej domeny. rekord SOA lub rekord adresu startowego uwierzytelnienia (ang. start of authority record) ustala serwer DNS dostarczaj cy autorytatywne informacje o domenie internetowej.
rekord SRV lub rekord usªugi (ang. service record) pozwala na zawarcie dodatkowych informacji dotycz cych lokalizacji danej usªugi, któr udost pnia serwer wskazywany przez adres DNS. TXT - rekord ten pozwala doª czy dowolny tekst do rekordu DNS. Rekord ten mo»e by u»yty np. do implementacji specykacji Sender Policy Framework. HINFO (Host Information) zawiera opis sprz tu i systemu operacyjnego. 7 Konguracja hosta Ka»dy komputer musi mie z góry zdeniowany adres IP serwerów DNS ±wiadcz cych dla niegu usªugi. Denuje si je, wpisuj c r cznie w konguracj komputera lub za pomoc usªugi automatycznej konguracji DHCP (lub BOOTP)-protokoªy konguracji hosta. Resolwer w systemie Linux jest w rzeczywisto±ci bibliotek systemow zawieraj c funkcje obsªuguj ce zapytania DNS-owe. Podstawowa konguracj zachowania resolwera w systemie Linux zawiera plik /etc/host.conf. przykªadowa konguracja: order hosts, bind multi on W pierwszym wierszu denujemy kolejno± korzystania ze ¹ródªa informacji podczas rozwi zywania nazwy domenowej. System najpierw przeszukuje wpisy w pliku /etc/hosts, a nast pnie skorzysta z zapyta«do serwera DNS. Drugi wiersz mówi,»e biblioteka odpowiadaj ca za dziaªanie resolwera bedzie zwracaªa wszystkie wpisy z pliku /etc/hosts dotycz ce szukanej nazwy, a nie tylko pierwszy napotkany. Najcz sciej nie ma potrzeby zagl dania do tego pliku, ale warto wiedzie o jego istnieniu. Dokªadniejszej konguracji resolwerów w systemie Linux dokonujemy w pliku /etc/resolv.conf. nameserver 192.168.1.2 nameserver 192.168.1.3 domain firma.com.pl lodz.pl com.pl options ndots : 2 W powy»szej konguracji zdenowali±my dwa serwery DNS, których b dzie si pytaª dany host. Je±li nie otrzyma odpowiedzi od pierwszego z nich, wy±le zapytanie do drugiego, a w przypadku milczenia równie» drugiego, ponowi
procedur, a» otrzyma odpowied¹ lub zaniecha prób. Adresy serwerów DNS to kolejno 192.168.1.2, 192.168.1.3. Mo»na oczywi±cie zdeniowa wi cj serwerów. Je±li przykªadowo wpiszemy polecenie $ ping maurycy zostanie najpierw sprawdzona zawarto± pliku /etc/hosts, nast pnie wysªane zostan trzy zapytania do jednego z serwerów DNS, pierwsze o host maurycy.rma.com.pl, a drugi o host maurycy.lodz.pl, a trzeci o host maurycy.com.pl. Drugie i trzecie zapytanie wynikaj z listy przeszukiwania zdenowanej w wierszu czwartym pliku resolv.conf. Wiersz pi ty ze sªowem kluczowym options okre±la od jakiej warto±ci musi by mniejsza liczba kropek w podanej domenie, aby resolwer uzupeªniª t nazw za pomoc domy±lnej domeny. Liczba dwa oznacza,»e zapytanie o nazw maurycy.oddzial1 zostanie przetworzone do postaci maurycy.oddzial1.rma.com.pl, a do zaytania maurycy.oddzial1.miasto1 nie zostanie ju» dodana nazwa domeny domy±lnej. Wynika to z faktu,»e w drugim zapytaniu liczba kropek nie byªa mniejsza od dwóch. 8 serwery DNS Aktualnie istnieje wiele mo»liwych do zastosowa«serwerów DNS. Najbardziej rozpowszechnionych w Internecie jest BIND, mo»na go pobra spod adresu www.isc.org/products/bind. Serwer ten znany jest z cz stego wykrywania w nim dziur i bª dów. Pomimo tych zarzutów jest to pot»ne narz dzie o du»ej wydajno±ci i to jest gªówny powód, z którego wynika jego popularno±. Innym godnym polecenia serwerem jest nastawiony na bezpiecze«stwo djbdns, który mo»na pobra ze strony http://cr.yp.to/djbdns.html. Serwer ten zostaª napisany przez ameryka«skiego naukowca D.J.Bernsteina. Twórca oferuje 500$ ka»demu, kto znajdzie dziury(bª dy w zabezpieczeniach). 9 PRZYKŠADOWA KONFIGURACJA SERWERA DNS Przedstawi przykªad zawarto±ci plików konguracyjnych demona named, pocz wszy od najwa»niejszego: Plik /etc/named.conf options { directory "/etc/named"; listen-on {192.168.1.2 ;}; allow-transfer {192.168.1.3 ;};
}; zone "." IN { }; type hint; le "root.cache"; zone "0.0.127.in-addr.arpa" IN { }; type master; le "named.local"; zone "1.168.192.in-addr.arpa" IN { }; type master; le "domain/1.168.192.in-addr.arpa"; }; zone "rma.com.pl" IN{ Plik /var/named/domain/rma.com.pl type master; le "domain/rma/com.pl"; notify yes; $TTL 86400 rma.com.pl. IN SOA dns1.rma.com.pl. admin.rma.com.pl. ( 2002020801 ; Serial 3h ; Refresh
Plik /var/named/root.cache. 6D IN NS G.ROOT-SERVERS.NET.. 6D IN NS J.ROOT-SERVERS.NET.. 6D IN NS K.ROOT-SERVERS.NET.. 6D IN NS L.ROOT-SERVERS.NET.. 6D IN NS M.ROOT-SERVERS.NET.. 6D IN NS A.ROOT-SERVERS.NET.. 6D IN NS H.ROOT-SERVERS.NET.. 6D IN NS B.ROOT-SERVERS.NET.. 6D IN NS C.ROOT-SERVERS.NET.. 6D IN NS D.ROOT-SERVERS.NET.. 6D IN NS E.ROOT-SERVERS.NET.. 6D IN NS I.ROOT-SERVERS.NET.. 6D IN NS F.ROOT-SERVERS.NET. 1h ; Retry 1w ; Expire 1h ) ; Minimum G.ROOT-SERVERS.NET. 5w6d16h IN A 192.112.36.4 J.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.10 K.ROOT-SERVERS.NET. 5w6d16h IN A 193.0.14.129 L.ROOT-SERVERS.NET. 5w6d16h IN A 198.32.64.12 M.ROOT-SERVERS.NET. 5w6d16h IN A 202.12.27.33 A.ROOT-SERVERS.NET. 5w6d16h IN A 198.41.0.4 H.ROOT-SERVERS.NET. 5w6d16h IN A 128.63.2.53 B.ROOT-SERVERS.NET. 5w6d16h IN A 128.9.0.107 C.ROOT-SERVERS.NET. 5w6d16h IN A 192.33.4.12 D.ROOT-SERVERS.NET. 5w6d16h IN A 128.8.10.90 E.ROOT-SERVERS.NET. 5w6d16h IN A 192.203.230.10 I.ROOT-SERVERS.NET. 5w6d16h IN A 192.36.148.17 F.ROOT-SERVERS.NET. 5w6d16h IN A 192.5.5.241 Plik /var/named/domain/1.168.192.in-addr.arpa $TTL 86400 rma.com.pl. IN SOA dns1.rma.com.pl. admin.rma.com.pl. ( 2002020801 ; Serial 3h ; Refresh
1.168.192.in-addr.arpa IN NS dns1.rma.com.pl 1.168.192.in-addr.arpa IN NS dns2.rma.com.pl 2.1.168.192.in-addr.arpa IN PTR dns1.rma.com.pl 3.1.168.192.in-addr.arpa IN PTR dns2.rma.com.pl 4.1.168.192.in-addr.arpa IN PTR mail.rma.com.pl 5.1.168.192.in-addr.arpa IN PTR www.rma.com.pl 1h ; Retry 1w ; Expire 1h ) ; Minimum Plik /var/named/named.local $ TTL 86400 0.0.127.in-addr.arpa IN SOA dns1.rma.com.pl. admin.rma.com.pl. ( 0.0.127.in-adr.arpa IN NS dns1.rma.com.pl. 0.0.127.in-adr.arpa IN NS dns2.rma.com.pl. 1.0.0.127.in-adr.arpa IN PTR localhost. 2002020801 ; Serial 3h ; Refresh 1h ; Retry 1w ; Expire 1h ) ; Minimum