Domain Name System
DNS (ang. Domain Name System, system nazw domenowych) to system serwerów, protokół komunikacyjny oraz usługa zapewniająca 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 Usługa DNS warstwy aplikacji modelu TCP/IP, jest związana z portem 53 TCP/UDP.
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.
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 Internationalized Domain Name (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 – Internet Assigned Numbers Authority (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 , np.: .pl, .gov, .com
- VeriSign Global Registry Services – rejestracja i nadzór nad domenami: .net, .com
- Public Interest Registry - rejestracja i nadzór nad domeną – .org
- Rząd USA – rejestracja i nadzór nad domenami – .mil i .gov
- NeuLevel – rejestracja i nadzór nad domeną – .biz
- Institute of Electrical and Electronics Engineers (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)
Instytucje administrujące DNS w Polsce:
- Naukowa i Akademicka Sieć Komputerowa (NASK) – nadzór nad domeną .pl jako całością, oraz obsługa rejestrowania domen: .com.pl, .biz.pl, .org.pl, .net.pl oraz części domen lokalnych, np. .waw.pl.
- Polska Akademia Nauk(PAN) – rejestracja domeny .gov.pl;
Techniczna strona DNS
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ć z ftp://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ą typu slave 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 slave odbywa się protokołem TCP na porcie 53.
Główne serwery DNS
DNS opiera się na 13 głównych serwerach, zwanych po angielsku root-servers, posiadającymi nazwy od a.root-servers.net do m.root-servers.net. Nie może być ich więcej, ograniczenie wynika z tego, że pojedynczy pakiet UDP o standardowej wielkości 1500 bajtów mieści właśnie informacje o maksymalnie 13 serwerach. Ponieważ główne serwery DNS są podstawą działania Internetu i otrzymują ogromne ilości zapytań, zostały one skopiowane. Kopie głównych serwerów umieszczone są w różnych częściach świata (posiadają te same adresy IP co serwery główne). Użytkownicy z reguły łączą się z najbliższym im serwerem.
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.
Protokół DNS
Zapytania i odpowiedzi DNS są najczęściej transportowane w pakietach UDP. Każdy komunikat musi się zawrzeć w jednym pakiecie UDP (standardowo 512 oktetów, ale wielkość tę można zmieniać pamiętając również o ustawieniu takiej samej wielkości w Maximum Transmission Unit (MTU). W innym przypadku przesyłany jest protokołem TCP i poprzedzony dwubajtową wartością określającą długość zapytania i długość odpowiedzi (bez wliczania tych dwóch bajtów). Format komunikatu DNS został zdefiniowany w RFC 1035.
Format komunikatu DNS:
NAGŁÓWEK – (Header) |
---|
ZAPYTANIE – (Question) do serwera nazw |
ODPOWIEDŹ – (Answer) zawiera rekordy będące odpowiedzią |
ZWIERZCHNOŚĆ – (Authority) wskazuje serwery zwierzchnie dla domeny |
DODATKOWA – (Additional) sekcja informacji dodatkowych |
Forma nagłówka, który określa rolę całego komunikatu:
Sekcja nagłówka występuje zawsze. W sekcji zapytania zawsze znajduje się jedno zapytanie zawierające nazwę domenową, żądany typ danych i klasę (IN). Sekcja odpowiedzi zawiera rekordy zasobów stanowiące odpowiedź na pytanie.
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ID | |||||||||||||||
QR | OPCODE | AA | TC | RD | RA | Z | RCODE | ||||||||
QDCOUNT | |||||||||||||||
ANCOUNT | |||||||||||||||
NSCOUNT | |||||||||||||||
ARCOUNT |
- ID [16 bitów] – (IDentifier) – identyfikator tworzony przez program wysyłający zapytanie; serwer przepisuje ten identyfikator do swojej odpowiedzi, dzięki czemu możliwe jest jednoznaczne powiązanie zapytania i odpowiedzi
- QR [1 bit] – (Query or Response) – określa, czy komunikat jest zapytaniem (0) czy odpowiedzią (1)
- OPCODE [4 bity] – określa rodzaj zapytania wysyłanego od klienta, jest przypisywany przez serwer do odpowiedzi. Wartości:
0 – QUERY – standardowe zapytanie,
1 – IQUERY – zapytanie zwrotne,
2 – STATUS – pytanie o stan serwera,
3-15 – zarezerwowane do przyszłego użytku
- AA [1 bit] – (Authoritative Answer) – oznacza, że odpowiedź jest autorytatywna.
- TC [1 bit] – (TrunCation) – oznacza, że odpowiedź nie zmieściła się w jednym pakiecie UDP i została obcięta.
- RD [1 bit] – (Recursion Desired) – oznacza, że klient żąda rekurencji – pole to jest kopiowane do odpowiedzi
- RA [1 bit] – (Recursion Available) – bit oznaczający, że serwer obsługuje zapytania rekurencyjne
- Z [3 bity] – zarezerwowane do przyszłego wykorzystania. Pole powinno być wyzerowane.
- RCODE [4 bity] – (Response CODE) kod odpowiedzi. Przyjmuje wartości:
0 – brak błędu
1 – błąd formatu – serwer nie potrafił zinterpretować zapytania
2 – błąd serwera – wewnętrzny błąd serwera
3 – błąd nazwy – nazwa domenowa podana w zapytaniu nie istnieje
4 – nie zaimplementowano – serwer nie obsługuje typu otrzymanego zapytania
5 – odrzucono – serwer odmawia wykonania określonej operacji, np. transferu strefy
6-15 – zarezerwowane do przyszłego użytku
- QDCOUNT [16 bitów] – określa liczbę wpisów w sekcji zapytania
- ANCOUNT [16 bitów] – określa liczbę rekordów zasobów w sekcji odpowiedzi
- NSCOUNT [16 bitów] – określa liczbę rekordów serwera w sekcji zwierzchności
- ARCOUNT [16 bitów] – określa liczbę rekordów zasobów w sekcji dodatkowej
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ę z serwerem "pl.wikipedia.org" (o adresie IP 207.142.131.245) i wyświetla otrzymaną stronę. |
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 oraz jego priorytet.
- rekord PTR lub rekord wskaźnika (ang. pointer record) mapuje adres IPv4 lub IPv6 na nazwę kanoniczną hosta. Określenie rekordu PTR dla nazwy hosta (ang. hostname) w domenie in-addr.arpa (IPv4), bądź ip6.arpa (IPv6), który odpowiada adresowi IP, pozwala na implementację Reverse DNS (odwrotnej translacji adresów DNS).
- 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, łącznie z jej parametrami (np. TTL).
- 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.
Inne typy rekordów dostarczają informacje o położeniu hosta (np. rekord LOC), lub o danych eksperymentalnych.
DNS w domu
Diagnostyka
Użytkownik komputera ma kilka narzędzi przydatnych do sprawdzenia, dlaczego jakaś nazwa mnemoniczna nie jest poprawnie zamieniana na adres IP.
Program nslookup
W systemie Windows można użyć polecenia nslookup. Dla przykładu po wpisaniu:
nslookup pl.wikipedia.org
otrzymamy adres IP naszego ustawionego serwera DNS oraz IP serwera obsługującego stronę pl.wikipedia.org:
Komputer# nslookup pl.wikipedia.org Server: openrg.home #nazwa naszego serwera DNS Address: 192.168.1.1 #adres IP naszego serwera DNS Name: pl.wikipedia.org Address: 91.198.174.2 #adres IP dla pl.wikipedia.org
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
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 ;; 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 serwera poczty elektronicznej
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 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.
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 atakach DDoS – 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 Mbps takich 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.
Na podstawie [1]