Dydaktyka:
Feedbackhttp://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ą z UDP1)
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?
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 4a. 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 4b. 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 5. 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 6. Wykonaj zapytanie iteracyjne dla przykładowej nazwy domenowej
Serwery authoritative i caching – przypomnienie
Zadanie 7a.
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?
Bezpieczeństwo:
Prywatność:
Zadanie 7b. 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
Rodzaje serwerów – master (primary), slave (secondary)
W trakcie laboratoriów jest używany serwer DNS BIND w wersji 9 którego rozwój dba ISC.
BIND9 pozwala tworzyć zarówno serwery authoritative jak i caching (i serwery pełniące obie role naraz, co zwykle jest odradzane).
Standardowa nazwa głównego programu BIND to named
(od name daemon).
Inne popularne authoritative DNS to NSD i Knot DNS.
Inne popularne caching DNS to Unbound czy dnsmasq (który łączy w sobie serwer DNS i DHCP).
Format plików stref (zone files) opisujących informacje znajdujące się w DNS (a pochodzący z BIND) stał się standardem używanym do konfiguracji rekordów DNS w większości serwerów DNS.
Zadanie 8.
chmod a+w .
)named -4 -g -c bind9-caching-server.conf
Sensowniejszy przykład takiej konfiguracji jest np. tutaj.
Uwaga: przedstawione tutaj konfiguracje w wielu miejscach nie przestrzegają dobrych praktyk i zaleceń dotyczących konfigurowania serwerów DNS – zostało to zrobione celowo dla skrócenia plików konfiguracyjnych, trzymania wszystkich plików w jednym miejscu, poprawienia czytelności, skróceniu czasów do mieszczących się w trakcie zajęć et cetera.
Zadanie 9a.
named -g -c durna-konfiguracja.conf
Zadanie 9b.
/etc/rndc.key
; jeśli nie, wykonaj komendę rndc-confgen -a
rndc reload example.com
Do sprawdzenia konfiguracji serwera możesz wykonać komendę:
named-checkconf sciezka/do/pliku.conf
natomiast do sprawdzenia pliku strefy:
named-checkzone example.com sciezka/do/pliku/example.com.zone
Zadanie 10. (zadanie wykonaj w parach)
dwaserwery-master.conf
), dwaserwery-slave.conf
)rndc reload example.com
Zadanie 11. Dodaj nową domenę do konfiguracji serwera i stwórz plik strefy dla tej domeny.
Do pliku strefy dodaj kolejno przykładowe wpisy AAAA, TXT i MX (wzorując się na przykładowych wynikach dig
)
Dłuższe materiały o konfiguracji DNS są tutaj.
Serwery slave ściągają kompletny plik strefy od serwerów master wykonując tzw. zone transfer [1], czyli zapytanie AXFR.
Wymiana danych między serwerem master a serwerem slave (zone transfer) wykorzystuje TCP
Zadanie 12. Wykonaj zone transfer dla domeny zonetransfer.me i porównaj wyniki z zapytaniem o wszystkie rekordy:
host -al zonetransfer.me nsztm1.digi.ninja
dig @nsztm1.digi.ninja zonetransfer.me axfr
host -a zonetransfer.me nsztm1.digi.ninja
dig @nsztm1.digi.ninja zonetransfer.me any