Dydaktyka:
FeedbackTo jest stara wersja strony!
http://www.cs.put.poznan.pl/ddwornikowski/sieci/sieci2/dns.html
Przygotowanie do laboratoriów w salach 1.6.16 / 1.6.18
Na początku zajęć pobierz skrypt dns_lab_setup.sh i wykonaj go
z uprawnieniami roota, podając jako argument adres IP podany przez prowadzącego.
Nazwa domenowa [2]
Budowa nazwy domenowej:
struktura drzewiasta,
korzeń.
Top Level Domain
[3],
lista
(do 2012r istniały tylko funkcjonalne
i krajowe domeny;
teraz mogą też funkcjonować prawie dowolne)
Fully qualified domain name – pełna nazwa domenowa
[1]
Zadanie 1 Porównaj wynik poniższych poleceń:
$ ping -c1 lab-net-1 $ ping -c1 lab-net-1.cs.put.poznan.pl
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 host lab-net-1.cs.put.poznan.pl. host lab-net-1 dig +noall +answer lab-net-1.cs.put.poznan.pl dig lab-net-1.cs.put.poznan.pl dig +short lab-net-1.cs.put.poznan.pl dig www.cs.put.edu.pl dig wp.pl host wp.pl
Wybór typu 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?
Ważniejsze typy rekordów:
A | Adres IPv4 |
AAAA | Adres IPv6 |
NS | Serwer nazw |
SOA | Start of Authority (omówione dokładniej przy konfiguracji serwera DNS) |
MX | Serwer odbierający pocztę dla domeny ( np. host -t mx ngo.pl / dig ngo.pl mx ) |
CNAME | Alias na inną nazwę domenową ( np. host -t cname www.cs.put.edu.pl dig unixlab.cs.put.poznan.pl cname ) |
TXT | Dowolny tekst (dosłownie dowolny). Używany np. na potrzeby mechanizmów walki ze spamem – SPF, DKIM i DMARC) ( przykłady: Cokolwiek: dig akamai.net txt Cokolwiek: host -t txt lenovo.com SPF: dig student.put.poznan.pl txt DKIM: host -t txt dkim1024._domainkey.allegro.pl DMARC: dig +noall +answer _dmarc.um.poznan.pl txt ) |
SRV | Host i port usługi, ( np. dla klientów matrixa: dig -t SRV _matrix._tcp.matrix.org dla klientów minecrafta: host -t srv _minecraft._tcp.cubecraft.net w domenie AD: https://technet.microsoft.com/en-us/library/cc961719.aspx ) |
PTR | Nazwa domenowa (patrz niżej) |
Pozostałe: https://en.wikipedia.org/wiki/List_of_DNS_record_types
Zadanie 4 Wykonaj zapytania o odwzorowanie odwrotne:
host 150.254.30.43 dig -x 150.254.30.43 dig @8.8.8.8 -x 150.254.30.43 host -t ptr 43.30.254.150.in-addr.arpa dig 43.30.254.150.in-addr.arpa ptr
Zadanie 5 Zadaj zapytania odwrotne o adres IPv6. Jaka domena jest użyta?
home.cern
,
zapytam się root serwera gdzie jest serwer nazw dla cern
.
Serwer nazw jest pod adresem a2.nic.cern
,
więc żeby dowiedzieć się, gdzie jest a2.nic.cern
,
zapytam się root serwera gdzie jest serwer nazw dla cern
…“
Jeśli NS jest w tej samej domenie, którą rozwiązuje, to razem z rekordem NS w nadrzędnym serwerze nazw musi być też rekord A lub AAAA tzw. glue record
Zadanie 6 Sprawdź jak wygląda wynik komendy: dig nask.pl @a-dns.pl
. Które rekordy to glue records?
System operacyjny Linux używa serwera DNS skonfigurowanego w pliku
/etc/resolv.conf
. Dokumentacja możliwych wpisów w tym pliku: man resolv.conf
Ręczne wybranie serwera:
host name server
, np: host pl.wikipedia.org dns.tpsa.pl
host pl.wikipedia.org one.one.one.one
dig @server name
, np: dig @dns.tpsa.pl pl.wikipedia.org
dig @one.one.one.one pl.wikipedia.org
Rodzaje zapytań [1]:
dig nazwa +trace
dig @a.root-servers.net cs.put.poznan.pl
dig @a-dns.pl cs.put.poznan.pl
………
dig nazwa +recurse
Przykładowe adresy publicznych serwerów DNS:
9.9.9.9
IBM (Quad9)
Zadanie 7 Wykonaj ręcznie i automatycznie zapytanie iteracyjne dla przykładowej nazwy domenowej
Serwery authoritative i caching – przypomnienie
Zadanie 8
Porównaj odpytanie o stronę poznan.pl programem dig
następujących serwerów DNS:
cns1a.atman.pl
ordns.he.net
bilbo.nask.org.pl
Co oznacza druga kolumna wyników? Czym różnią się flagi odpowiedzi?
Zadanie 9 Znajdź w wynikach dig
informację o tym, czy serwer ustawił flagę
authoritative answer
wskazującą że uznaje siebie za serwer authoritative dla
wskazanej domeny.
Bezpieczeństwo:
Prywatność:
Zadanie 10
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
Programy korzystające z systemu DNS zgodnie ze standardami ograniczają długość wiadomości UDP do 512B. Jeśli wiadomość nie zmieści się w tym limicie, używa się TCP. Użycie TCP w systemie DNS podsumowuje RFC7766.
Zadanie 11 Zapytaj o rekord TXT dla nazwy domenowej lenovo.com
i zobacz
w Wiresharku jak wygląda wymiana pakietów. Porównaj ją z wymianą o rekord A dla
tego adresu.
Przykłady odpowiedzi na zapytania
Przykładowy wynik komendy dig
– ogólny opis sekcji:
$ dig +norecurse bip.put.poznan.pl @sol.put.poznan.pl ; <<>> DiG 9.16.48 <<>> +norecurse bip.put.poznan.pl @sol.put.poznan.pl ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54420 ;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4 ;; QUESTION SECTION: ;bip.put.poznan.pl. IN A ;; ANSWER SECTION: bip.put.poznan.pl. 86400 IN A 89.191.148.30 ;; AUTHORITY SECTION: put.poznan.pl. 86400 IN NS orion.put.poznan.pl. put.poznan.pl. 86400 IN NS sunflower.man.poznan.pl. put.poznan.pl. 86400 IN NS sol.put.poznan.pl. ;; ADDITIONAL SECTION: sol.put.poznan.pl. 86400 IN AAAA 2001:808:201::5:11 orion.put.poznan.pl. 86400 IN AAAA 2001:808:201::5:4 sol.put.poznan.pl. 86400 IN A 150.254.5.11 orion.put.poznan.pl. 86400 IN A 150.254.5.4 ;; Query time: 57 msec ;; SERVER: 2001:808:201::5:11#53(2001:808:201::5:11) ;; WHEN: Thu Jan 1 01:00:00 CET 1970 ;; MSG SIZE rcvd: 214
Przykładowy wynik komendy dig
– flagi i treść rekordu:
$ dig bip.put.poznan.pl @sol.put.poznan.pl ; <<>> DiG 9.16.48 <<>> bip.put.poznan.pl @sol.put.poznan.pl ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54144 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ;; QUESTION SECTION: ;bip.put.poznan.pl. IN A ;; ANSWER SECTION: bip.put.poznan.pl. 86400 IN A 89.191.148.30 ;; Query time: 48 msec ;; SERVER: 2001:808:201::5:11#53(2001:808:201::5:11) ;; WHEN: Thu Jan 1 01:00:00 CET 1970 ;; MSG SIZE rcvd: 62
Wybór wybranych sekcji z wyników dig
$ dig +norecurse +noall +question bip.put.poznan.pl @sol.put.poznan.pl ;bip.put.poznan.pl. IN A $ dig +norecurse +noall +answer bip.put.poznan.pl @sol.put.poznan.pl bip.put.poznan.pl. 86400 IN A 89.191.148.30 $ dig +norecurse +noall +authority bip.put.poznan.pl @sol.put.poznan.pl put.poznan.pl. 86400 IN NS orion.put.poznan.pl. put.poznan.pl. 86400 IN NS sunflower.man.poznan.pl. put.poznan.pl. 86400 IN NS sol.put.poznan.pl. $ dig +norecurse +noall +additional bip.put.poznan.pl @sol.put.poznan.pl sol.put.poznan.pl. 86400 IN AAAA 2001:808:201::5:11 orion.put.poznan.pl. 86400 IN AAAA 2001:808:201::5:4 sol.put.poznan.pl. 86400 IN A 150.254.5.11 orion.put.poznan.pl. 86400 IN A 150.254.5.4 $ dig +norecurse +noall +question +answer bip.put.poznan.pl @sol.put.poznan.pl ;bip.put.poznan.pl. IN A bip.put.poznan.pl. 86400 IN A 89.191.148.30
Wysyłanie kilku zapytań naraz
$ dig @sol.put.poznan.pl +norecurse +noall +question +answer www.put.poznan.pl A www.put.poznan.pl AAAA ;www.put.poznan.pl. IN A www.put.poznan.pl. 86400 IN CNAME maxine.put.poznan.pl. maxine.put.poznan.pl. 86400 IN A 150.254.5.114 ;www.put.poznan.pl. IN AAAA www.put.poznan.pl. 86400 IN CNAME maxine.put.poznan.pl. maxine.put.poznan.pl. 86400 IN AAAA 2001:808:201::5:114 $ dig @1.1.1.1 +noall +answer put.poznan.pl A put.poznan.pl MX put.poznan.pl TXT put.poznan.pl. 82927 IN A 150.254.5.114 put.poznan.pl. 78005 IN MX 0 sargas.put.poznan.pl. put.poznan.pl. 78005 IN MX 0 antares.put.poznan.pl. put.poznan.pl. 86398 IN TXT "v=spf1 ip4:150.254.5.18 ip4:150.254.5.16 ip4:150.254.5.15 ip4:150.254.5.14 ip4:150.254.5.28 -all" (…)
Rekordy używane przez pocztę internetową
$ dig +noall +answer sejm.gov.pl MX sejm.gov.pl. 3600 IN MX 10 mx1.sejm.gov.pl. sejm.gov.pl. 3600 IN MX 5 mx2.sejm.gov.pl. $ dig +noall +answer _dmarc.sejm.gov.pl txt _dmarc.sejm.gov.pl. 3600 IN TXT "v=DMARC1; p=reject; aspf=s; adkim=s; rua=mailto:dmarc@sejm.gov.pl; ruf=mailto:dmarc@sejm.gov.pl;fo=1" $ dig +noall +answer put.poznan.pl TXT put.poznan.pl. 86398 IN TXT "v=spf1 ip4:150.254.5.18 ip4:150.254.5.16 ip4:150.254.5.15 ip4:150.254.5.14 ip4:150.254.5.28 -all" $ cat mail.eml (…) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=smtpapi; bh=… (…) $ dig +short smtpapi._domainkey.github.com txt "k=rsa; t=s; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDPtW5iwpXVPiH5FzJ7Nrl8USzuY9zqqzjE0D1r04xDN6qwziDnmgcFNNfMewVKN2D1O+2J9N14hRprzByFwfQW76yojh54Xu3uSbQ3JP0A7k8o8GutRF8zbFUA8n0ZH2y0cIEjMliXY4W4LwPA7m4q0ObmvSjhd63O9d8z1XkUBwIDAQAB"
Odwzorowania odwrotne ("IP" na nazwę domenową)
$ dig +noall +answer -x 150.254.5.15 15.5.254.150.in-addr.arpa. 86390 IN PTR mercury.put.poznan.pl. $ dig +noall +answer -x 2001:808:201::5:29 9.2.0.0.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.2.0.8.0.8.0.1.0.0.2.ip6.arpa. 86249 IN PTR kerio.put.poznan.pl.
TTL – czas przez jaki rekord jest jeszcze ważny (i może być trzymany w cache'u)
$ for S in 1.0.0.1 ordns.he.net bilbo.nask.org.pl; do dig +noall +answer @$S nask.pl A; done nask.pl. 22 IN A 45.60.74.15 nask.pl. 579 IN A 45.60.74.15 nask.pl. 600 IN A 45.60.74.15
Serwery cache mogą być skonfigurowane tak, by nie odpowiadać na wybrane nazwy domenowe bądź zmieniać treść odpowiedzi na wybrane nazwy domenowe; np. dla walki z niepłaceniem podatków od gier hazardowych czy blokowania reklam:
$ dig +noall +answer @dns.google casino.com casino.com. 120 IN A 159.203.128.199 $ dig +noall +answer @dns.tpsa.pl casino.com casino.com. 0 IN A 145.237.235.240 $ dig +noall +answer @dns.google tpc.googlesyndication.com tpc.googlesyndication.com. 30 IN A 216.58.215.65 $ dig +noall +answer @dns.adguard-dns.com tpc.googlesyndication.com tpc.googlesyndication.com. 3600 IN A 0.0.0.0 $ dig +noall +comments @adblock.dns.mullvad.net tpc.googlesyndication.com ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 49888 ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1