sobota, 22 maja 2010

DNS w praktyce, czyli system nazw domenowych dla sieci internet


Krótko o systemie DNS
System nazw domenowych odpowiada za prawidłowe funkcjonowanie cał sieci Internet.Idea działania system DNS (ang. Domain Name System) jest następująca: w sieci Internet komputery porozumiewają się z pomocą liczb (adresów).Dla człowieka natomiast łatwiej jest zapamiętać tekst niż liczbę.Z tego powodu powstał system DNS, odpowiedzialny m.in. za tłumaczenie adresów IP na nazwy.



DNS to nie tylko system tłumaczenia nazw domenowych.DNS to także oznaczenie dla protokołu komunikacyjnego oraz sieć serwerów.Działanie całej sieci Internet opiera się na istnieniu 13 głównych serwerów DNS, tzw. root serwers.DNS ma budowę hierarchiczną, co oznacza, że główne serwery "wiedzą", kto obsługuje podrzędne domeny.Przykładowo, wpisując w przeglądarce adres www.wp.pl komunikacja z serwerami DNS przebiega następująco:

  • przeglądarka odczytuje adres DNS Twojego providera internetu 
  • przeglądarka wysyła zapytanie do tego serwera DNS: "czy znasz adres serwera www.wp.pl ?"
  • Serwer DNS providera pyta któryś z głównych serwerów DNS: "czy znasz adres serwera www.wp.pl ?"
  • Główny serwer główny DNS odpowiada: "Nie znam, ale wiem kto zna"
  • Serwer DNS providera wysyła więc ponownie zapytanie "czy znasz adres serwera www.wp.pl ?", ale tym razem do serwera DNS otrzymanego w poprzedniej odpowiedzi (serwera odpowiedzialnego za domeny .pl)
  • Serwer DNS właściwy dla danej strefy odpowiada serwerowi DNS providera: "Adres IP serwera www.wp.pl to 212.77.100.101"
  • Serwer DNS providera zwraca ten wynik do przeglądarki klienta
  • Przeglądarka łączy się ze stroną www.wp.pl

Adres DNS swojego komputera można sprawdzić wpisując w konsoli (w Windowsie i Linuxie) polecenie nslookup, np. nslookup, a potem www.wp.pl.
Otrzymamy następującą odpowiedź:

root@doctor-laptop:/home/doctor/Pulpit# nslookup
> wp.pl
Server:        194.204.152.34
Address:    194.204.152.34#53

Non-authoritative answer:
Name:    wp.pl
Address: 212.77.100.101

Jak dowiedzieliśmy się powyżej, główne serwery DNS wiedzą, które podrzędne serwery DNS są odpowiedzialne za obsługę danej domeny.Z tego wynikają dwa wnioski: system DNS ma budowę hierarchiczną oraz każdy serwer DNS zarządza jedynie pewnym zbiorem domen internetowych.
Główne serwery DNS obsługują m.in. domeny najwyższego rzędu .com.DNS nie jest więc systemem scentralizowanym.Każda domena powinna posiadać conajmniej 2 serwery DNS ją obsługujące.Komunikacja DNS odbywa się za pomocą protokołu UDP na porcie 53.Natomiast przesyłanie danych pomiędzy serwerami DNS odbywa się za pomocą protokołu TCP na porcie 53.

Protokół DNS został opracowany w 1982 r (RFC 819).Z tego powodu jest obecnie przestarzały i nie spełnie wszystkich oczekiwań w nim pokładanych

Rodzaje odpowiedzi DNS
Serwery DNS mogą podawać odpowiedzi autorytatywne lub nieautorytatywne.Różnica jest następująca: odpowiedź autorytatywna to odpowiedź prawidłowa, dostarczona przez serwer właściwy dla obsługi danej domeny.Natomiast odpowiedź nieautorytatywna to odpowiedź uzyskana z serwera nie obsługującego danej strefy.

Narzędzia DNS w Linuxie
W Linuxie mamy do dyspozycji kilka narzędzie przeznaczonych do pracy z DNS.Opisany wyżej program nslookup zwraca adres ustawionego serwera DNS w naszym komputerze (tego serwera używamy do uzyskania odpowiedzi) oraz adres IP serwera obsługującego domenę.Kolejny program DNS w systemie Linux to host.Program ten również zwraca adres IP serwera obsługującego domenę, ale nie tylko.Aby wyświetlić więcej informacji o hoscie, należy użyć przełącznika -v, np. host -v www.wp.pl
Przełącznik -v zwraca m.in. informacje o adresach IP serwów DNS dostarczających autorytatywne informacje o domenie (rekord SOA).Kolejnym programem DNS w systemie Linux jest dig.Program ten jest często wykorzystywany przez administratorów do rozwiązywania problemów z DNS, a dostarcza informacji o wybranych rekordach DNS.Program ten uruchamiamy z następującymi flagami (najczęściej, flag jest dużo więcej):
dig [@server] [type]
gdzie:
@server to adres IP serwera lub nazwa domenowa,
name jest typem rekordu, który chcemy odczytać (ANY, A, MX, TXT).

Aby uzyskać szczegółowe informacje o funkcjach programu dig, wpisz w konsoli man dig.

W Linuxie mamy plik /etc/resolv.conf, który zawiera informacje o ustawionych serwerach DNS (podstawowym i zapasowym).Podejrzeć zawartość tego pliku można wpisując w konsoli:
doctor@doctor-laptop:~/Pulpit$ cat /etc/resolv.conf
search provider.pl
nameserver 194.204.152.34
nameserver 192.168.0.1
 Nazwa domenowa może wskazywać na wiele adresów IP.

Przykład 1
Sprawdźmy, jakie adresy IP ma domena www.google.pl


 Przykład 2
Ostatnio Google dodało w narzędziach dla webmasterów opcję weryfikowania własności witryny poprzez dodanie rekordu DNS.Dokładnie rekordu DNS typu TXT.Spróbujemy teraz odczytać taki rekord, z serwisu wp.pl.
doctor@doctor-laptop:~/Pulpit$ dig wp.pl TXT


Co kilka lat zdarzają się duże ataki na serwery DNS.Celem takich działań może być zakłócenie sieci Internet, wysyłanie spamu czy kradzież poufnych informacji.Nadzór nad systemem DNS sprawują organizacje ICANN-IANA.Nadzorują one rozdział domen na poszczególne kraje lub organizacje i przekazują im prawa do zarządzania nimi.

0 komentarzy:

Prześlij komentarz