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
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ą.
Serwery nazw można podzielić ze względu na pełnione zadanie na:
Klienci odpytujący DNS korzystają zwykle z UDP.
Do odpytywania serwerów DNS można używać np. komend:
dig -h
nslookup
(zacznij od przeczytania man nslookup
)dnstracer
(pozwala przejść całe drzewo DFSem, np: dnstracer -c -o -s . assets.publishing.service.gov.uk.
)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
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:
host -t typ nazwa_domenowa
np: host -t MX put.poznan.pl
dig nazwa_domenowa typ
np: dig put.poznan.pl AAAA
Pytanie o "wszystkie" rekordy:
host -a [-v] nazwa_domenowa
dig nazwa_domenowa any
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?
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:
host name server
, np: host pl.wikipedia.org dns.tpsa.pl
host pl.wikipedia.org one.one.one.one
dig @server name
, np: dig @netia-dns1.inetia.pl pl.wikipedia.org
dig @dns9.quad9.net pl.wikipedia.org
Przykładowe adresy publicznych serwerów DNS:
9.9.9.9
IBM (Quad9)
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.