Spis treści

Domain Name System - odpytywanie serwerów

FQDN

Nazwa domenowa składa się z etykiet oddzielanych kropkami – np. www.cs.put.poznan.pl.
Nazwy domenowe są zorganizowane hierarchicznie (w drzewo), stąd należy je "czytać" od końca.

Skrajnie prawa etykieta nazywana jest domeną najwyższego poziomu (TLD, Top Level Domain).
Domeny są podzielone na krajowe (ccTLD, np. .pl, .va, stworzone od dwuliterowego kodu kraju) oraz generyczne (gTLD, np. .cern, .family) i sponsorowane (sTLD, np. .edu, .gov). Lista TLD jest jawna.

Nad domenami TLD znajduje się korzeń DNS (pusta etykieta).
O warunkach rejestracji poddomen w danej domenie decyduje jej właściciel.

Nazwy domenowe mogą być pełne kwalifikowane (FQDN, fully qualified domain name) lub względne (podobnie jak np. ścieżki do plików).

Zadanie 1 Porównaj wynik poniższych poleceń:

$ ping -c4 lab-net-55
$ ping -c4 lab-net-55.cs.put.poznan.pl

Drzewo DNS a serwery DNS

Znając adresy IP serwerów odpowiedzialnych za korzeń można kolejno odpytywać serwery o ich poddomeny i w ten sposób znaleźć serwer odpowiedzialny za poszukiwaną nazwę domenową.

Role serwerów DNS

Serwery nazw można podzielić ze względu na pełnione zadanie na:

Zapytania DNS

Klienci odpytujący DNS korzystają zwykle z UDP.

Do odpytywania serwerów DNS można używać np. komend:

Zadanie 2 Przetestuj poniższe zapytania:

host lab-net-1.cs.put.poznan.pl

dig +short lab-net-1.cs.put.poznan.pl
dig +noall +answer lab-net-1.cs.put.poznan.pl
dig lab-net-1.cs.put.poznan.pl

dig www.cs.put.edu.pl
dig wp.pl
host student.put.poznan.pl

Rodzaje rekordów

Ważniejsze typy rekordów:

NS Wskazuje serwer nazw dla domeny
SOA Start of Authority, istotny dla konfiguracji serwerów nazw
CNAME Alias na inną nazwę domenową ( np. )
A Adres IPv4
AAAA Adres IPv6
MX Serwer odbierający pocztę dla domeny ( np. )
TXT Dowolny tekst (dosłownie dowolny).
Używany np. na potrzeby mechanizmów walki ze spamem – SPF, DKIM i DMARC) ( przykłady: )
PTR Nazwa domenowa odpowiadająca (odpowiednio zakodowanemu) adresowi IP

Więcej o różnych rodzajach rekordów możesz przeczytać tutaj.

Pytanie o wskazany typ rekordu:

Pytanie o "wszystkie" rekordy:

Zadanie 3 Odpytaj kilka domen o wszystkie rekordy. Jakie typy rekordów głównie widzisz? Czy są to wszystkie rekordy dla tej domeny?

Zadanie 4 Wykonaj zapytania o odwzorowanie odwrotne (zapytanie o rekord PTR):

host 150.254.30.233
dig -x 150.254.30.233

Jak adres IP jest przetwarzany na nazwę domenową o którą jest wysyłane zapytanie?

Zadanie 5 Zadaj zapytania odwrotne o adres IPv6. Jaka domena jest użyta?

Kogo pytamy?

System operacyjny Linux używa serwera DNS skonfigurowanego w pliku /etc/resolv.conf. Dokumentacja możliwych wpisów w tym pliku jest w podręczniku systemowym (man resolv.conf).

W narzędziach dig i host można ręczne wybrać serwer do którego kierowane są zapytania:

Przykładowe adresy publicznych serwerów DNS:

Serwery authoritative i caching – przypomnienie.

Zadanie 6 Porównaj rekordy zwrócone przez następujące wywołania programu dig:

dig +noall +answer @cns1a.atman.pl    poznan.pl
dig +noall +answer @ordns.he.net      poznan.pl
dig +noall +answer @bilbo.nask.org.pl poznan.pl

Czy ponowne wykonanie tych poleceń zwróci takie same rekordy? Co oznacza druga kolumna wyników?

Zadanie 7 Znajdź w wynikach dig informację o tym, czy serwer ustawił flagę aa (authoritative answer) wskazującą że uznaje siebie za serwer authoritative dla wskazanej domeny.

Zadanie 8 Porównaj wynik zapytania o adres dowolnej strony z listy: https://hazard.mf.gov.pl/ pytając poniższe serwery DNS:
    1.0.0.1     ordns.he.net    dns.tpsa.pl    netia-dns1.inetia.pl
oraz serwer ustawiony jako domyślny w systemie operacyjnym.

DNS wysyła zapytania otwartym tekstem co nie zapewnia prywatności, oraz używa protokołu UDP co upraszcza spoofing.

Przykłady odpowiedzi na zapytania

Przykłady odpowiedzi na zapytania