DNS
Z Wikipedii
DNS (ang. Domain Name System, system nazw domenowych) to system serwerów oraz protokół komunikacyjny zapewniający 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 145.97.39.135.
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.
DNS to złożony system komputerowy oraz prawny. Zapewnia z jednej strony rejestrację nazw domen internetowych i ich powiązanie z numerami IP. Z drugiej strony realizuje bieżącą obsługę komputerów odnajdujących adresy IP odpowiadające poszczególnym nazwom.
Spis treści |
[edytuj] 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 'onet.pl', 'zus.pl' czy 'olechowski.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 'ż', ale większość współczesnych programów nie przewiduje możliwości wykorzystania takich funkcji. 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.
[edytuj] 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. Jednak te dwie instytucje nie są w stanie zajmować się całym światem i dlatego cedują swoje uprawnienia na szereg lokalnych instytucji i firm. 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 popularnej domeny i zwróci ją administratorowi DNS, to może się spodziewać, że trafi ona w niepowołane ręce.
[edytuj] 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
- 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: rejestracja i nadzór nad domenami "krajowymi", np. .pl (zwykle rządy poszczególnych krajów przekazują ten nadzór wyspecjalizowanym instytucjom)
[edytuj] Instytucje administrujące DNS w Polsce
- NASK - nadzór nad domeną .pl jako całością, oraz obsługa rejestrowania domen: .com.pl, .biz.pl, .org.pl, .net.pl oraz kilkudziesięciu innych domen "funkcjonalnych" (łącznie z np. sex.pl) oraz części domen lokalnych, np. .waw.pl.
- IPPT PAN - rejestracja domeny .gov.pl;
- ICM - .art.pl, .mbone.pl;
- Stowarzyszenie Klon/Jawor - .ngo.pl;
- TASK - .med.pl, .gda.pl, .gdansk.pl, .gdańsk.pl, .sopot.pl, .gdynia.pl;
- SGH - .irc.pl;
- Politechnika Wrocławska – .usenet.pl.
Oprócz tego wiele domen typu nazwa-firmy.pl wykupiły od NASK rozmaite firmy i zarządzają tymi domenami we własnym zakresie.
Dokładne informacje o rejestracji domen .pl znajdują się na stronie: http://www.dns.pl/
[edytuj] Techniczna strona DNS
[edytuj] Ogólny zarys
Podstawą technicznego systemu DNS jest ogólnoświatowa sieć serwerów. Przechowują one informację na temat adresów domen. Każdy wpis zawiera nazwę oraz odpowiadający jej adres IP. Wpisy udostępniane są automatycznie, co pozwala na pracę Internetu.
DNS to również protokół komunikacyjny. Opisuje on 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. Po całym świecie rozsiane są DNS, które odpowiadają za obsługę poszczególnych adresów internetowych. Listę 13 głównych serwerów odpowiedzialnych za obsługę poszczególnych domen najwyższego poziomu można pobrać z ftp://ftp.rs.internic.net/domain/named.root
Może być tak, że przy wywołaniu adresu www.example.com serwer odpowiedzialny za obsługę .com powie Ci żebyś zapytał dns.example.com. I tutaj powstaje problem, bo aby uzyskać adres dns.example.com musisz zapytać dns.example.com itd. Powstaje pętla. Rozwiązaniem problemu jest tak zwany glue record. Glue record jest rekordem typu A umieszczonym na tym samym serwerze nazw, który obsługuje delegację domeny. Jest on tworzony przez registrara Twojej domeny. W tym wypadku serwer obsługujący .com poda adres dns.example.com, który z kolei po odpytaniu poda adres www.example.com i będzie można nawiązać połączenie. Problem może się pojawić jeśli glue record dla dns.example.com wskazuje na adres IP np 1.2.3.4, a sam serwer BIND jest skonfigurowany tak, że jako dns.example.com podaje np. IP 2.3.4.5. W tym wypadku większość (ale nie wszystkie) odwołań do dns.example.com będzie się odnosiło do numeru IP 1.2.3.4 (czyli glue record "ma przewagę").
[edytuj] 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 serwerów rozrzuconych na różnych kontynentach.
- Serwery DNS przechowują dane tylko wybranych domen.
- Każda domena ma 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.
- Serwery DNS przechowują 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.
- Każdy komputer może mieć wiele różnych nazw. Na przykład komputer o adresie IP 207.142.131.245 ma nazwę pl.wikipedia.org oraz de.wikipedia.org
- Czasami pod jedną nazwą może kryć się więcej niż 1 komputer po to, aby jeśli jeden z nich zawiedzie, inny mógł spełnić jego rolę.
- Jeśli chcemy przenieść serwer WWW na inny szybszy komputer, z lepszym łączem ale z innym adresem IP, to nie musimy zmieniać adresu WWW strony, a jedynie w serwerze DNS obsługującym domenę poprawiamy odpowiedni wpis.
- Protokół DNS posługuje się do komunikacji głównie protokołem UDP.
- Serwery DNS działają na porcie numer 53.
[edytuj] RFC
Podstawy protokołu DNS zostały opisane w 1982 roku w dokumencie IETF - RFC 819 przez Jona Postela i Zaw-Sing Su. Dokumenty z 1983 r. - RFC 882 i RFC 883 były oficjalną specyfikacją DNS aż do roku 1989. Nowa, aktualna specyfikacja DNS jest zawarta w RFC 1034 i RFC 1035. W 1996 wydano jeszcze RFC 1918, które wprowadziło zasady "Internet Best Current Practices" oraz dodało do specyfikacji pulę adresów IP przeznaczoną na tzw. prywatne podsieci.
[edytuj] Przykład działania systemu DNS
Oto przykład działania systemu DNS. Użytkownik komputera wpisuje w swojej przeglądarce stron WWW adres internetowy pl.wikipedia.org. Przeglądarka musi poznać adres IP komputera będącego serwerem WWW dla tej strony. Cały proces przebiega zgodnie z tabelą.
Wysyła | Odbiera | Komunikat | Uwagi |
---|---|---|---|
Przeglądarka | Serwer DNS providera (194.204.152.34) | Czy znasz adres IP komputera pl.wikipedia.org? | Przeglądarka wysyła pakiet UDP z pytaniem do serwera DNS zdefiniowanego w konfiguracji systemu operacyjnego - najczęściej jest to serwer DNS providera Internetu, (dla TPSA jest to np. 194.204.152.34). |
Serwer DNS providera (194.204.152.34) | Główny serwer DNS (198.41.0.4) | Czy znasz adres IP komputera pl.wikipedia.org? | Serwer DNS providera (194.204.152.34) wysyła zapytanie do jednego z 13 serwerów głównych (np. tego o adresie IP 198.41.0.4). |
Główny serwer DNS (198.41.0.4) | Serwer DNS providera (194.204.152.34) | Nie znam, ale dla domeny org serwerami są 204.74.112.1 i 204.74.113.1. | Zapytany serwer główny (198.41.0.4) odpowiada na zapytanie serwera providera. |
Serwer DNS providera (194.204.152.34) | Serwer DNS domeny "org" (204.74.112.1) | Czy znasz adres IP komputera pl.wikipedia.org? | Serwer DNS wysyła do jednego z tych 2 serwerów (np. tego o adresie IP 204.74.112.1) zapytanie. |
Serwer DNS domeny "org" (204.74.112.1) | Serwer DNS providera (194.204.152.34) | Nie znam, ale dla domeny wikipedia.org serwerami są 216.21.226.87 i 216.21.234.87. | Serwer domeny "org" odpowiada. |
Serwer DNS providera (194.204.152.34) | Serwer domeny "wikipedia.org" (216.21.226.87) | Czy znasz adres IP komputera pl.wikipedia.org? | Serwer DNS wysyła do jednego z tych 2 serwerów, np. tego o adresie IP 216.21.226.87 zapytanie. |
Serwer DNS domeny "wikipedia.org" (216.21.226.87) | Serwer DNS providera (194.204.152.34) | pl.wikipedia.org ma adres IP 207.142.131.245. | Serwer domeny "wikipedia.org" (216.21.226.87) odpowiada. |
Serwer DNS providera (194.204.152.34) | Przeglądarka | pl.wikipedia.org ma adres IP 207.142.131.245. | Serwer DNS TPSA (194.204.152.34) odpowiada przeglądarce. |
Przeglądarka | Serwer "pl.wikipedia.org" (207.142.131.245) | Transakcja pobrania strony WWW. | Przeglądarka łączy się serwerem "pl.wikipedia.org" (o adresie IP 207.142.131.245) i wyświetla otrzymaną stronę. |
[edytuj] Typy rekordów DNS
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 specyfikacji Sender Policy Framework.
Inne typy rekordów dostarczają informacje o położeniu hosta (np. rekord LOC), lub o danych eksperymentalnych.
[edytuj] DNS w domu
[edytuj] Diagnostyka
Użytkownik komputera ma kilka narzędzi przydatnych do sprawdzenia, dlaczego jakaś nazwa mnemoniczna nie jest poprawnie zamieniana na adres IP.
[edytuj] Program host
W systemie Linux korzystając z konsoli można do tego użyć polecenia host. Dla przykładu po wpisaniu:
host pl.wikipedia.org
otrzymamy listę adresów IP komputerów, które obsługują stronę internetową pl.wikipedia.org:
Komputer# host pl.wikipedia.org pl.wikipedia.org is an alias for rr.gdns.wikimedia.org. rr.gdns.wikimedia.org is an alias for rr.knams.wikimedia.org. rr.knams.wikimedia.org has address 145.97.39.136 rr.knams.wikimedia.org has address 145.97.39.137 rr.knams.wikimedia.org has address 145.97.39.138 rr.knams.wikimedia.org has address 145.97.39.139 rr.knams.wikimedia.org has address 145.97.39.134 rr.knams.wikimedia.org has address 145.97.39.135
[edytuj] Program dig
Po wydaniu polecenia, z typem zwracanych rekordów ustawionym na ANY:
root@komp:~# dig wikipedia.pl ANY
otrzymamy:
; <<>> DiG 9.3.2 <<>> wikipedia.pl any ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62732 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;wikipedia.pl. IN ANY ;; ANSWER SECTION: wikipedia.pl. 86400 IN SOA nsa.rozeta.com.pl. hostmaster.rozeta.com.pl. 2006120104 10800 3600 604800 86400 wikipedia.pl. 86400 IN MX 10 mail.wikipedia.pl. wikipedia.pl. 44504 IN A 145.97.39.155 wikipedia.pl. 86400 IN NS nsb.rozeta.com.pl. wikipedia.pl. 86400 IN NS nsa.rozeta.com.pl. ;; AUTHORITY SECTION: wikipedia.pl. 86400 IN NS nsa.rozeta.com.pl. wikipedia.pl. 86400 IN NS nsb.rozeta.com.pl. ;; ADDITIONAL SECTION: nsa.rozeta.com.pl. 15077 IN A 212.12.114.14 nsb.rozeta.com.pl. 15077 IN A 81.3.18.135 ;; Query time: 62 msec ;; SERVER: 10.8.0.2#53(10.8.0.2) ;; WHEN: Mon Dec 18 13:14:23 2006 ;; MSG SIZE rcvd: 221
Jeżeli chcemy uzyskać odpowiedz z serwera autorytatywnego dla danej strefy (w tym przypadku nsa.rozeta.com.pl) wpisujemy:
root@komp:~# dig @nsa.rozeta.com.pl wikipedia.pl any ; <<>> DiG 9.3.2 <<>> @nsa.rozeta.com.pl wikipedia.pl any ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34597 ;; flags: qr aa rd; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;wikipedia.pl. IN ANY ;; ANSWER SECTION: wikipedia.pl. 86400 IN A 145.97.39.155 wikipedia.pl. 86400 IN NS nsa.rozeta.com.pl. wikipedia.pl. 86400 IN NS nsb.rozeta.com.pl. wikipedia.pl. 86400 IN MX 10 mail.wikipedia.pl. wikipedia.pl. 86400 IN SOA nsa.rozeta.com.pl. hostmaster.rozeta.com.pl. 2006120104 10800 3600 604800 86400 ;; Query time: 36 msec ;; SERVER: 212.12.114.14#53(212.12.114.14) ;; WHEN: Mon Dec 18 13:26:19 2006 ;; MSG SIZE rcvd: 178
W tym przypadku otrzymaliśmy pięć odpowiedzi od serwera autorytatywnego:
- A - numer IP domeny wikipedia.pl
- NS - adresy serwerów nazw nsa.rozeta.com.pl oraz nsb.rozeta.com.pl
- MX - adres poczty elektronicznej
- SOA - początek danych dotyczących domeny. Następujące po nich cyfry oznaczają kolejno
- 2006120104 - numer seryjny, (dzisiejsza data i numer zmiany)
- 10800 - czas odświeżania, (sekundy)
- 3600 - czas powtórzenia, w przypadku błędu połączenia, (sekundy)
- 604800 - czas przedawnienia, (sekundy)
- 86400 - minimalny czas życia TTL, (sekundy)
[edytuj] Konfiguracja
Zwykle dane o konfiguracji protokołu DNS w domowym komputerze przekazywane są przez dostawcę Internetu (ISP). Większość operatorów udostępnia w swojej sieci protokół DHCP. Dzięki niemu komputer automatycznie może pobrać adres serwera DNS operatora. Serwer ISP działa najszybciej, bo ma zgromadzone w swojej pamięci najważniejsze adresy i jest blisko użytkownika Internetu. Serwery DNS Telekomunikacji Polskiej to 194.204.152.34 oraz 194.204.159.1. Kiedy system automatycznego pobierania adresów serwera DNS nie działa, można je wprowadzić ręcznie. W systemie GNU/Linux pozwala na to plik:
/etc/resolv.conf
który zawiera listę serwerów DNS. Dla przykładu, jeżeli chcemy ręcznie ustawić serwery TPSA jako aktywne to możemy wpisać do tego pliku ich adresy:
nameserver 194.204.152.34 nameserver 194.204.159.1
i wtedy komputer wykorzysta je do odnajdywania nazw DNS.
W GNU/Linuksie i innych wersjach Uniksa istnieje plik:
/etc/hosts
który zawiera listę zdefiniowanych przez użytkownika nazw komputerów:
127.0.0.1 localhost #adres lokalnego interfejsu sieciowego 192.168.0.1 brama #serwer dostępu do sieci 192.168.0.2 kasia #inne komputery w sieci lokalnej 192.168.0.3 janek
W systemach Windows NT, Windows 2000 oraz Windows XP plik taki można znaleźć w:
%SYSTEMROOT%\system32\drivers\etc\hosts
najczęściej odpowiada to ścieżce:
C:\WINDOWS\system32\drivers\etc\hosts
Użytkownik może do tego pliku wpisać własne nazwy dla komputerów lokalnych. Dzięki temu nie będzie musiał wpisywać ich adresów IP, tylko łatwe do zapamiętania nazwy. Nazwa mnemoniczna localhost oznacza komputer, na którym pracujemy.
Jeżeli użytkownik chce w swojej sieci lokalnej uruchomić własny serwer DNS może posłużyć się programem BIND. Jednak jest on dosyć skomplikowany w użytkowaniu i podatny na atak. Z tego względu lepiej jest uruchomić własny serwer DHCP, który wszystkim komputerom w sieci lokalnej przekaże właściwe adresy DNS.
[edytuj] Bezpieczeństwo
Należy zdać sobie sprawę, że system DNS został zaprojektowany wiele lat temu przez naukowców. Nie przewidzieli oni 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.
Wyobraźmy sobie Alicję, która jest użytkownikiem e-banku o adresie tanibank.pl. Alicja płaci przez Internet swoje rachunki i obserwuje, jak rośnie jej debet. W tym momencie pojawia się Paweł i wysyła do Alicji list, podając się za Tani Bank SA i prosi ją, żeby weszła na stronę tanibank.pt i zaktualizowała dane, bo inaczej skasuje jej konto. Zdenerwowana Alicja wchodzi na stronę tanibank.pt podaje swoje hasła i wpisuje jeszcze raz swoje dane. Adres tanibank.pt naprawdę prowadzi do komputera Pawła, który korzystając z hasła Alicji robi jej naprawdę spory debet.
Błąd Alicji polegał na tym, że zaufała systemowi DNS. Oczywiście komputery zadziałały poprawnie. Alicja nie zauważyła, że przesłany przez Pawła adres różni się ostatnią literą. Administrator domeny .pt przyznał Pawłowi domenę tanibank.pt, nie zdając sobie sprawy z istnienia strony tanibank.pl. Jeżeli Alicja chce być pewna, że nie zostanie oszukana, musi posłużyć się oprócz DNS jakimś systemem kryptografii, np. SSL. Klucze cyfrowe pozwalają na weryfikację tożsamości banku. Przeglądarka internetowa zazwyczaj informuje użytkownika, że strona WWW jest autentyczna odpowiednią ikoną, zwykle w kształcie kłódki.
[edytuj] Zobacz też
[edytuj] Linki zewnętrzne
- ICANN - organizacja koordynująca przydział domen najwyższego poziomu
- NASK - zarządca domeny .pl
- Serwisy zajmujące się rejestracją domen
- DotCenter.com - wyszukiwarka domen i serwis WHOIS
- Domeny internetowe - elementy nazwy
- dns.org.pl Serwis dotyczący wszelkich aspektów związanych z DNS
Warstwa aplikacji
ADSP • APPC • AppleTalk • AFP • DAP • DLC • DNS(53) • ed2k • FTAM • FTP(20,21) • HTTP(80) • HTTPS(443) • IMAP(143) • IRC(194,529) • Named Pipes • NCP(524) • NetBIOS(137,138,139) •
NWLink • NBT • NNTP(119) • NTP(123) • PAP • POP3(110) • RPC • SNMP(161,162) • SMTP(25) • SMB • SSL/TLS • SSH(22) • TDI • Telnet(23) • X.400 • X.500 • XDR • ZIP
(Cyfry w nawiasach oznaczają numery portu)
Warstwa transportowa
AEP • ATP • NBP • NetBEUI • RTMP • RTP • SPX • TCP • UDP
Warstwa sieciowa
ARP • IP • ICMP • IPsec • NAT • NWLink • NetBEUI • DDP
Warstwa dostępu do sieci
10BASE-T • 802.11 WiFi • ADSL • Ethernet • EtherTalk • Fibre Channel • ISDN • LocalTalk • NDIS • ODI • PPP • RS-232 •
SLIP • Token Ring • TokenTalk • V.90