1/50
DNS - system nazw domenowych

Wprowadzenie do systemu DNS

Rekurencja, iteracja, strefy, rekordy i konfiguracja BIND9

  • DNS (Domain Name System) to hierarchiczny, rozproszony system tłumaczenia nazw domenowych na adresy IP, stanowiący fundament działania Internetu
  • Opiera się na drzewiastej strukturze domen, rekordy różnych typów (A, AAAA, CNAME, MX, TXT, NS) oraz wyspecjalizowane serwery (root, TLD, autorytatywne, rekurencyjne)
  • Prezentacja obejmuje rekurencję i iterację zapytań, budowę stref DNS, typy rekordów oraz praktyczną konfigurację serwera BIND9 w systemie Linux
  • Materiał zawiera również troubleshooting najczęstszych problemów DNS oraz zestawienie narzędzi diagnostycznych (dig, nslookup, named-checkconf)
DNS - grafika tytułowa
2/50
Architektura rozproszonego systemu domen

Jak zorganizowana jest globalna przestrzeń nazw?

Jak zorganizowana jest globalna przestrzeń nazw?

  • DNS to największa rozproszona baza danych na świecie - zdecentralizowana, hierarchiczna, odporna na awarie
  • System opiera się na drzewiastej strukturze (namespace tree) z korzeniem oznaczonym kropką "." na samej górze
  • Każdy węzeł drzewa odpowiada strefie (zone) zarządzanej przez inny podmiot - od ICANN po pojedynczego administratora
  • Brak pojedynczego punktu awarii - uszkodzenie jednego serwera nie paraliżuje całego systemu
Architektura DNS
3/50
Agenda tematów

Plan wykładu o DNS

Plan wykładu - część trzecia cyklu ASK

  • Slajdy 4–12: Struktura globalnej przestrzeni domen - root serwery, TLD, serwery autorytatywne, FQDN
  • Slajdy 13–20: Rekurencja a iteracja - anatomia zapytań DNS, rola resolvera, publiczne DNS
  • Slajdy 21–30: Typy rekordów - A, AAAA, CNAME, MX, TXT, NS, SOA - znaczenie i praktyczne użycie
  • Slajdy 31–44: Konfiguracja BIND9 od podstaw - instalacja, pliki konfiguracyjne, strefy master/slave, plik strefy
  • Slajdy 45–50: Laboratorium i troubleshooting - dig +trace, named-checkconf, rndc reload, NXDOMAIN
Agenda
4/50
Hierarchiczna struktura DNS

Drzewo przestrzeni nazw DNS

Drzewo przestrzeni nazw - od korzenia do hosta

  • DNS ma strukturę odwróconego drzewa - korzeń (.) na górze, gałęzie rozchodzą się w dół
  • Każdy węzeł to domena - etykieta oddzielona kropką od poziomu nadrzędnego
  • Pełna ścieżka od węzła do korzenia to FQDN (Fully Qualified Domain Name) z kropką na końcu
  • Maksymalna głębokość drzewa: 127 poziomów, maksymalna długość FQDN: 253 znaki
Hierarchia DNS
5/50
Root serwery - korzeń globalnego DNS

13 serwerów u podstaw wszystkiego

13 logicznych serwerów, setki instancji fizycznych

  • Istnieje dokładnie 13 logicznych root serverów, oznaczonych literami A–M (a.root-servers.net do m.root-servers.net)
  • Dzięki technologii anycast każdy logiczny serwer ma wiele instancji fizycznych - łącznie ponad 1500 lokalizacji na świecie
  • Root serwery nie znają adresów IP poszczególnych domen - odpowiadają tylko za wskazanie serwerów TLD
  • Zarządzane przez różne organizacje: Verisign (A), USC/ISI (B), Cogent (C), ICANN (L), NASA (E) i inne
Root serwery
6/50
Warstwa TLD - domeny najwyższego poziomu

gTLD, ccTLD i nowe domeny

gTLD, ccTLD i nowe generyczne domeny

  • gTLD (generic TLD): .com, .org, .net, .info - dostępne globalnie, bez ograniczeń geograficznych
  • ccTLD (country code TLD): .pl (Polska/NASK), .de (Niemcy), .uk (Wielka Brytania) - przypisane do państw
  • Nowe gTLD (od 2012): .dev, .app, .cloud - ponad 1200 nowych domen najwyższego poziomu
  • Każda TLD ma własny rejestr (registry) oraz zestaw serwerów autorytatywnych obsługujących zapytania o domeny w tej TLD
TLD
7/50
Strefa .PL - polska domena krajowa

Polska domena pod zarządem NASK

NASK jako rejestr domen .pl

  • Domena .pl jest polską domeną krajową (ccTLD), zarządzaną przez NASK (Naukowa i Akademicka Sieć Komputerowa)
  • NASK odpowiada za utrzymanie rejestru domen .pl - bazy danych wszystkich zarejestrowanych domen oraz serwerów autorytatywnych dla strefy .pl
  • Serwery DNS dla strefy .pl: dns.nask.pl, dns2.nask.pl oraz kilka serwerów rozproszonych geograficznie
  • Polska jest w czołówce Europy pod względem liczby zarejestrowanych domen - ponad 2,5 mln aktywnych domen .pl
Domena .pl
8/50
Serwery autorytatywne - źródło prawdy o domenie

Ostateczna odpowiedź o strefie DNS

Ostatni poziom hierarchii przed odpowiedzią

  • Serwer autorytatywny (authoritative nameserver) posiada pełną i oryginalną wiedzę o konkretnej strefie DNS
  • Jego odpowiedzi są oznaczone flagą AA (Authoritative Answer) w nagłówku DNS - oznaka "prawdy absolutnej"
  • Dzielą się na master (primary) - zawierający edytowalne pliki strefy, oraz slave (secondary) - replikę z mastera
  • Każda strefa powinna mieć minimum 2 serwery autorytatywne (zalecane 3–4) dla zapewnienia redundancji
Serwery autorytatywne
9/50
FQDN - w pełni kwalifikowana nazwa domenowa

Pełna nazwa domenowa i jej znaczenie

Dlaczego kropka na końcu ma znaczenie?

  • FQDN (Fully Qualified Domain Name) to pełna, absolutna nazwa domenowa określająca dokładne położenie hosta w hierarchii DNS
  • Składa się z: nazwy hosta + domen + kropki końcowej (.) symbolizującej korzeń drzewa DNS
  • Przykład: www.example.com. - kropka na końcu oznacza "ta nazwa jest absolutna, nie dopełniaj jej"
  • Brak kropki końcowej oznacza nazwę względną - system dopełni ją według konfiguracji (domena wyszukiwania)
FQDN
10/50
Delegacja stref - przekazywanie odpowiedzialności

Mechanizm delegacji w hierarchii DNS

Jak root serwer "wie", gdzie szukać dalej?

  • Delegacja (delegation) to mechanizm, w którym strefa nadrzędna wskazuje, które serwery są autorytatywne dla strefy podrzędnej
  • Root zawiera rekordy NS dla każdej TLD; TLD zawiera rekordy NS dla domen drugiego poziomu; i tak dalej
  • Każda delegacja wymaga dwóch rzeczy: rekordu NS (wskaźnik na serwer) i opcjonalnie glue record (adres IP serwera)
  • Glue record to rekord A/AAAA dla serwera NS, gdy jego nazwa znajduje się w delegowanej strefie - zapobiega pętli
Delegacja stref
11/50
Zapytania DNS - podstawy komunikacji

Jak klient pyta, a serwer odpowiada?

Jak klient pyta, a serwer odpowiada?

  • Zapytania DNS są wysyłane na port UDP 53 (domyślnie), a przy odpowiedziach większych niż 512 bajtów (lub przy transferze strefy) na TCP 53
  • Nagłówek DNS zawiera m.in. flagi: QR (query/response), RD (recursion desired), RA (recursion available), AA (authoritative answer)
  • Każde zapytanie zawiera Transaction ID (16-bitowy identyfikator) umożliwiający dopasowanie odpowiedzi do zapytania
  • Istnieją dwa główne typy zapytań: rekurencyjne (serwer wykonuje pracę) i iteracyjne (serwer zwraca referencje)
Zapytania DNS
12/50
Flagi DNS - znaczenie bitów w nagłówku

Co oznaczają flagi w pakiecie DNS?

QR, AA, RD, RA - co oznaczają w praktyce?

  • QR (0 = zapytanie, 1 = odpowiedź) określa kierunek komunikacji
  • AA (Authoritative Answer) ustawiona, gdy odpowiedź pochodzi z serwera autorytatywnego dla danej strefy
  • RD (Recursion Desired) - klient prosi o rekurencyjne rozwiązanie zapytania
  • RA (Recursion Available) - serwer informuje, że akceptuje zapytania rekurencyjne
  • Pozostałe flagi: TC (truncated - odpowiedź przycięta), RCODE (kod odpowiedzi: 0=OK, 3=NXDOMAIN, 5=SERVFAIL)
Flagi DNS
13/50
Zapytanie rekurencyjne - ktoś wykonuje pracę za nas

Tryb domyślny dla klientów końcowych

Tryb domyślny dla klientów końcowych

  • W zapytaniu rekurencyjnym klient ustawia flagę RD=1 i oczekuje, że serwer sam znajdzie odpowiedź
  • Resolver (np. 8.8.8.8) wykonuje całą robotę: przechodzi przez root → TLD → autorytatywny - zwraca wynik
  • Klient nie musi znać ani rozumieć struktury DNS - po prostu dostaje odpowiedź lub błąd
  • Resolver cachuje wyniki - kolejne zapytania o tę samą nazwę są obsługiwane z pamięci (milisekundy)
Zapytanie rekurencyjne
14/50
Zapytanie iteracyjne - każdy serwer daje referencje

Serwer nie szuka dalej - zwraca referencje

Serwer nie szuka dalej - zwraca namiary (odesłanie)

  • W zapytaniu iteracyjnym serwer DNS nie wykonuje pracy za klienta - zwraca najlepszą odpowiedź, jaką ma
  • Jeśli serwer nie zna odpowiedzi, zwraca referral - listę serwerów, które mogą wiedzieć więcej (NS + glue)
  • Root serwery zawsze odpowiadają iteracyjnie - nie wykonują rekurencji dla klientów
  • Resolver rekurencyjny używa zapytań iteracyjnych wewnętrznie do zbierania informacji z różnych serwerów
Zapytanie iteracyjne
15/50
Porównanie: rekurencja a iteracja

Który typ zapytania jest lepszy?

Który typ zapytania jest lepszy i kiedy?

  • CechaRekurencyjneIteracyjne
    Kto wykonuje pracę?Serwer (resolver)Klient (sam musi pytać dalej)
    Flaga RD1 (ustawiona)0 (nieustawiona)
    Obciążenie serweraWysokieNiskie
    CachingTak (na serwerze)Nie (klient musi sam)
    Kto używa?Klienci końcowiResolvery, root serwery
Porównanie rekurencji i iteracji
16/50
Stub resolver - DNS w systemie operacyjnym

Cienki klient DNS w każdym systemie

Cienki klient DNS wbudowany w każdy system

  • Stub resolver (resolver "kikut") to minimalna implementacja DNS w systemie operacyjnym (biblioteka C - glibc, mswsock)
  • Jego zadaniem jest przyjęcie zapytania od aplikacji, wysłanie go do skonfigurowanego serwera DNS i zwrócenie wyniku
  • Nie wykonuje własnych zapytań iteracyjnych - jest "ślepy" na hierarchię DNS, deleguje wszystko do resolvera
  • Konfiguracja w Linux: /etc/resolv.conf (nameserver, search, domain); w Windows: właściwości TCP/IP karty sieciowej
Stub resolver
17/50
Serwer autorytatywny - "właściciel" strefy

Publikuje oficjalne informacje o domenie

Publikuje oficjalne informacje o domenie

  • Serwer autorytatywny przechowuje główną kopię (master) lub replikę (slave) strefy DNS
  • Odpowiada z flagą AA (Authoritative Answer) = 1, co oznacza "mam autorytatywną informację dla tej strefy"
  • Nie musi wykonywać rekurencji - zna tylko własne strefy i to w nich jest niekwestionowanym autorytetem
  • Role: master (primary) - edytowalna kopia główna; slave (secondary) - kopia tylko do odczytu, replikowana z mastera
Serwer autorytatywny
18/50
Serial number i transfer strefy

Jak slave wie, że master ma nowszą wersję?

Jak slave wie, że master ma nowszą wersję?

  • W rekordzie SOA (Start of Authority) znajduje się serial number - numer wersji strefy (zwykle w formacie YYYYMMDDNN)
  • Slave okresowo sprawdza serial mastera - jeśli jest wyższy, inicjuje transfer strefy
  • Transfer AXFR (Full Zone Transfer) - pełna kopia całej strefy; IXFR (Incremental Zone Transfer) - tylko zmienione rekordy
  • Parametry czasu w SOA: Refresh (jak często sprawdzać), Retry (co robić przy niepowodzeniu), Expire (kiedy uznać strefę za nieaktualną)
Serial number i transfer strefy
19/50
Rekord A - najważniejszy rekord DNS

Mapuje nazwę hosta na adres IPv4

Mapuje nazwę hosta na adres IPv4

  • Rekord A (Address) łączy nazwę (FQDN) z adresem IPv4 (32 bity, np. 192.168.1.1)
  • Przykład: www.example.com. IN A 192.0.2.1 - nazwa www.example.com otrzymuje adres 192.0.2.1
  • Jeden wpis A może być użyty przez wiele rekordów (różne nazwy wskazują na ten sam IP), lub wiele rekordów A dla jednej nazwy (round robin DNS)
  • Alternatywa dla IPv6: rekord AAAA (Quad-A) - adres 128-bitowy (np. 2001:db8::1)
Rekord A
20/50
Rekord CNAME - aliasowanie nazw

Wiele nazw, jeden cel

Wiele nazw, jeden cel

  • Rekord CNAME (Canonical Name) tworzy alias - nazwa jest przekierowywana na inną (kanoniczną) nazwę
  • Przykład: www.example.com. IN CNAME example.com. - www.example.com to alias dla example.com
  • Rekord CNAME nie może współistnieć z innymi rekordami dla tej samej nazwy (nie można mieć CNAME i MX dla tej samej nazwy)
  • Współczesne implementacje: CNAME-flattening (alias na poziomie strefy) używany przez CDN (Cloudflare)
Rekord CNAME
21/50
Rekord MX - routing poczty e-mail

Który serwer odbiera pocztę dla domeny?

Który serwer odbiera pocztę dla domeny?

  • Rekord MX (Mail Exchange) wskazuje serwer pocztowy odpowiedzialny za odbiór poczty dla domeny
  • Zawiera priorytet (preferencję) - niższa liczba = wyższy priorytet (próba w kolejności od najniższej)
  • Przykład: example.com. IN MX 10 mail1.example.com. i MX 20 mail2.example.com. - najpierw mail1, potem mail2
  • Rekord MX nie może wskazywać na CNAME - musi wskazywać na rekord A/AAAA (zgodnie z RFC 974)
Rekord MX
22/50
Rekord NS - delegacja stref

Jak znaleźć serwer odpowiedzialny za strefę?

Jak znaleźć serwer odpowiedzialny za strefę?

  • Rekord NS (Name Server) wskazuje, które serwery są autorytatywne dla danej strefy
  • Delegacja działa w dół hierarchii: strefa nadrzędna (np. .com) zawiera NS dla strefy podrzędnej (np. example.com)
  • Przykład: example.com. IN NS ns1.example.com. i IN NS ns2.example.com.
  • Do NS potrzebne są glue records (dodatkowe rekordy A/AAAA) - adresy IP serwerów NS, by uniknąć cyklu zależności
Rekord NS
23/50
Rekord SOA - nagłówek strefy

Metadane strefy DNS

Start of Authority - metadane strefy DNS

  • Rekord SOA (Start of Authority) to pierwszy rekord w każdej strefie DNS - zawiera podstawowe informacje zarządcze
  • Pola: MNAME (primary nameserver), RNAME (e-mail administratora, z @ zamienionym na .)
  • Pola czasowe: Serial (wersja strefy), Refresh (interwał sprawdzania przez slave), Retry, Expire, Minimum TTL
  • Przykład: example.com. IN SOA ns1.example.com. admin.example.com. (2026052801 7200 3600 1209600 3600)
Rekord SOA
24/50
Rekord TXT - dowolne dane tekstowe

Elastyczny rekord do przechowywania metadanych

Elastyczny rekord do przechowywania metadanych

  • Rekord TXT (Text) przechowuje dowolny tekst związany z domeną - maksymalnie 255 znaków na segment (RFC 1035)
  • Najczęstsze zastosowania: SPF (weryfikacja nadawcy poczty), DKIM (podpisy wiadomości), DMARC (polityka raportowania)
  • Rekord SPF: example.com. IN TXT "v=spf1 mx include:_spf.google.com ~all" - autoryzuje serwery Google do wysyłania poczty
  • Weryfikacja własności domeny przez Google/Microsoft: dodają unikalny TXT, aby potwierdzić, że kontrolujesz domenę
Rekord TXT
25/50
Rekord PTR - odwrotne odwzorowanie

Z adresu IP na nazwę - reverse DNS

Z adresu IP na nazwę - reverse DNS

  • Rekord PTR (Pointer) wykonuje odwrotne mapowanie: adres IP → nazwa FQDN
  • Odwrotna strefa DNS: adres 192.0.2.1 jest zapisywany jako 1.2.0.192.in-addr.arpa (IPv4)
  • Dla IPv6: adres 2001:db8::1 znajduje się w strefie ip6.arpa (z odwrotną kolejnością nibble (półbajtów))
  • Zastosowanie: autoryzacja serwerów SMTP (wiele serwerów odrzuca pocztę bez poprawnego PTR), logi, narzędzia diagnostyczne
Rekord PTR
26/50
Tabela różnych typów rekordów DNS

Pełny przegląd typów rekordów z RFC

Pełny przegląd typów rekordów z RFC

  • Rekordy DNS dzielą się na kategorie: podstawowe (A, AAAA, CNAME), usługowe (MX, SRV), administracyjne (SOA, NS) i bezpieczeństwa (TXT, SPF, DKIM, DMARC)
  • SRV (Service) - wskazuje serwer dla konkretnej usługi/protokołu; format: _service._proto.name IN SRV priority weight port target
  • NAPTR (Naming Authority Pointer) - używany w ENUM (numerach telefonów) i SIP; umożliwia transformację nazw opartą na regułach regex
  • CAA (Certification Authority Authorization) - kontrola, które CA mogą wydawać certyfikaty SSL/TLS dla domeny
Rekordy DNS
27/50
FQDN - w pełni kwalifikowana nazwa domenowa

Kropka na końcu zmienia wszystko

Dlaczego kropka na końcu jest ważna?

  • FQDN (Fully Qualified Domain Name) to pełna, jednoznaczna nazwa domeny kończąca się kropką (np. www.example.com.)
  • Kropka na końcu oznacza root strefę DNS - bez niej nazwa jest względna i dopełniana przez search listę
  • Różnica: www.example.com. (FQDN, absolutna) a www.example.com (względna, może być dopełniona o .sub.example.com)
  • W plikach konfiguracyjnych BIND brak kropki na końcu w rekordzie $ORIGIN może prowadzić do błędów; BIND dopełnia $ORIGIN przy nazwach bez kropki
FQDN
28/50
DNS w Windows Server - rola serwera DNS

Integracja DNS z Active Directory

Integracja z Active Directory

  • DNS w Windows Server jest głównym serwerem nazw dla domen AD - klienci używają DNS do znajdowania kontrolerów domeny i usług (SRV _ldap, _kerberos)
  • Rolę DNS instaluje się przez Server Manager lub PowerShell: Install-WindowsFeature DNS
  • DNS może być zintegrowany z AD - strefy są przechowywane w Active Directory Database (replikacja przez AD, bezpieczeństwo ACL)
  • Strefy DNS w AD: Primary (tradycyjny plik), Active Directory-Integrated (replikacja AD), Secondary (kopia z mastera)
DNS w Windows Server
29/50
Wyszukiwanie w DNS - szczegółowy proces

Co dokładnie dzieje się od enter do otwarcia strony?

Co dokładnie dzieje się od enter do otwarcia strony?

  • 1. Przeglądarka sprawdza własny cache DNS (Chrome ma chrome://net-internals/#dns)
  • 2. System pyta stub resolver (funkcja getaddrinfo()), który sprawdza plik hosts i lokalny cache DNS
  • 3. Jeśli nie ma w cache, zapytanie idzie do resolvera ISP (lub publicznego DNS 8.8.8.8 z flagą RD=1)
  • 4. Resolver iteracyjnie przechodzi: rootTLDautorytatywny, cachując na każdym poziomie; wynik wraca do aplikacji
Wyszukiwanie DNS
30/50
dig - narzędzie do diagnozowania DNS

Podstawowe komendy i interpretacja wyników

Podstawowe komendy i interpretacja wyników

  • dig example.com - standardowe zapytanie, zwraca sekcję ANSWER z adresem IP
  • dig @8.8.8.8 example.com A - zapytanie do konkretnego serwera o konkretny typ rekordu
  • dig +trace example.com - symuluje iteracyjną ścieżkę od root do celu (pokazuje każdy krok)
  • dig -x 8.8.8.8 - reverse DNS lookup (odwrotne mapowanie IP na nazwę)
dig
31/50
nslookup - klasyczne narzędzie DNS

Dostępne w każdym systemie narzędzie DNS

Dostępne w każdym systemie, prostsze niż dig

  • nslookup example.com - podstawowe zapytanie, zwraca adres IP i serwer NS
  • nslookup -type=MX example.com - zapytanie o konkretny typ rekordu
  • nslookup -server=8.8.8.8 example.com - zapytanie do konkretnego serwera DNS
  • Tryb interaktywny: nslookup (Enter), potem server 8.8.8.8, potem set type=AAAA, potem example.com
nslookup
32/50
host - szybkie zapytanie DNS

Najprostsze narzędzie do pojedynczych zapytań

Najprostsze narzędzie do pojedynczych zapytań

  • host example.com - najprostsze zapytanie, zwraca adres IP
  • host -t MX example.com - zapytanie o konkretny typ rekordu
  • host -a example.com - zapytanie o wszystkie typy rekordów (all)
  • host -l example.com ns1.example.com - próba transferu strefy (AXFR)
host
33/50
DNSSEC - bezpieczeństwo DNS

Podpisywanie rekordów, by zapobiec spoofingowi

Podpisywanie rekordów, by zapobiec spoofingowi

  • DNSSEC (DNS Security Extensions) dodaje podpisy kryptograficzne do rekordów DNS (RFC 4033-4035)
  • Zapobiega atakom cache poisoning i DNS spoofing - odbiorca może zweryfikować autentyczność odpowiedzi
  • Kluczowe rekordy DNSSEC: DNSKEY (klucz publiczny strefy), RRSIG (podpis rekordu), DS (Delegation Signer), NSEC/NSEC3 (next secure)
  • Walidacja DNSSEC: resolver sprawdza łańcuch zaufania od root (root KSK) aż do strefy docelowej, używając DS/DNSKEY/RRSIG
DNSSEC
34/50
DNS cache poisoning - atak na resolver

Jak atakujący może zatruć cache DNS?

Jak atakujący może zatruć cache DNS?

  • Cache poisoning polega na wstrzyknięciu fałszywej odpowiedzi do cache resolvera, która przekierowuje użytkowników na złośliwą stronę
  • Atakujący wysyła fałszywe odpowiedzi DNS, próbując zgadnąć Transaction ID (16-bitowy, tylko 65536 kombinacji)
  • Klasyczny atak Kaminsky'ego (2008) pokazał, że można szybko zatruć cache resolvera, wysyłając wiele zapytań z różnymi Transaction ID
  • Zabezpieczenia: randomizacja portów (UDP source port), DNSSEC (podpisy kryptograficzne), 0x20 encoding (mieszanie wielkości liter)
DNS cache poisoning
35/50
Dynamic DNS (DDNS) - automatyczna aktualizacja

Klient sam rejestruje swoją nazwę w DNS

Klient sam rejestruje swoją nazwę w DNS

  • Dynamic DNS (DDNS) umożliwia klientom automatyczną aktualizację rekordów A/PTR w DNS
  • Zastosowania: hosty z dynamicznym adresem IP (DHCP), urządzenia mobilne, serwery w chmurze
  • W BIND: allow-update { key ...; }; lub update-policy (TSIG/TKEY dla bezpieczeństwa)
  • W Active Directory: secure dynamic updates - tylko autoryzowane komputery mogą aktualizować swoje rekordy
Dynamic DNS
36/50
Split-brain DNS - różne odpowiedzi w zależności od źródła

Inna odpowiedź dla sieci wewnętrznej, inna dla internetu

Inna odpowiedź dla sieci wewnętrznej, inna dla internetu

  • Split-brain DNS (Split-horizon DNS, Split-view DNS) zwraca różne odpowiedzi w zależności od adresu IP klienta
  • Zastosowanie: serwer firmowy ma prywatny IP (10.x.x.x) w sieci wewnętrznej i publiczny IP dla klientów z internetu
  • W BIND: view - definiuje się osobne strefy wewnętrzne i zewnętrzne z różnymi danymi; widoki są dopasowywane na podstawie adresu źródłowego
  • Dla użytkowników z wewnątrz firmy: mail.firma.pl -> 10.0.1.5 (bezpośredni dostęp do serwera wewnętrznego); dla świata: mail.firma.pl -> 203.0.113.5 (publiczny IP)
Split-brain DNS
37/50
DNS troubleshooting - najczęstsze problemy

Jak diagnozować i rozwiązywać problemy DNS?

Jak diagnozować i rozwiązywać problemy DNS?

  • NXDOMAIN - domena nie istnieje: sprawdź pisownię, delegację NS, czy domena jest aktywna
  • SERVFAIL - serwer nie może rozwiązać zapytania: sprawdź łańcuch delegacji (root -> TLD -> autorytatywny), firewalle (UDP 53, TCP 53)
  • Timeout - serwer nie odpowiada: sprawdź czy serwer DNS działa (dig @server), czy firewall nie blokuje portu 53
  • Błędne delegacje (lame delegation) - NS wskazują na serwery, które nie są autorytatywne dla strefy: sprawdź zgodność strefy nadrzędnej z podrzędną
DNS troubleshooting
38/50
DNS monitoring i analiza ruchu

Jak monitorować wydajność i bezpieczeństwo DNS?

Jak monitorować wydajność i bezpieczeństwo DNS?

  • RTT (Round Trip Time) - czas odpowiedzi serwera DNS; monitoruj opóźnienia dla każdego resolvera (powinny być poniżej 50 ms)
  • Narzędzia: dnstop (statystyki zapytań w czasie rzeczywistym), dnstap (szczegółowy log zapytań), tcpdump/Wireshark (analiza pakietów DNS)
  • DNS query logging - logowanie wszystkich zapytań do serwera DNS (przydatne przy analizie incydentów, wykrywaniu malware)
  • Wykrywanie anomalii: gwałtowny wzrost zapytań do konkretnej domeny może oznaczać atak DDoS lub działanie botnetu (DNS tunneling, data exfiltration)
DNS monitoring
39/50
DNS w chmurze - AWS Route53, Cloudflare DNS

Nowoczesne usługi DNS w architekturze chmurowej

Nowoczesne usługi DNS w architekturze chmurowej

  • AWS Route53 - zarządzany DNS w chmurze AWS; obsługuje routing geolokalizacyjny, latency-based, failover, weight-based
  • Cloudflare DNS - szybki publiczny resolver (1.1.1.1) + zarządzanie strefami; ochrona DDoS, proxy CDN, CNAME flattening dla apex
  • Azure DNS - integracja z Azure AD i Private Link; obsługa private zones wewnątrz sieci wirtualnych
  • Google Cloud DNS - skalowalny DNS zarządzany, integracja z GCP VPC, obsługa DNSSEC i routing policies
DNS w chmurze
40/50
DNS w sieci domowej - praktyczne wskazówki

Jak skonfigurować DNS w domu i małej firmie?

Jak skonfigurować DNS w domu i małej firmie?

  • W większości sieci domowych DNS jest dostarczany przez router (DHCP) - zazwyczaj router pełni rolę forwardera (przekazuje zapytania do ISP)
  • Zmiana na publiczny DNS (1.1.1.1, 8.8.8.8) może przyspieszyć działanie internetu i zwiększyć bezpieczeństwo (Cloudflare + DNSSEC)
  • W małej firmie warto rozważyć lokalny resolver rekurencyjny (Pi-hole, AdGuard Home) - blokuje reklamy, przyspiesza, dodaje bezpieczeństwo
  • Do lokalnych nazw (serwer plików, drukarka) można użyć mDNS (zeroconf/Bonjour) lub lokalnego DNS na serwerze domowym
DNS w domu
41/50
DNS API i automatyzacja

Zarządzanie DNS przez skrypty i API

Zarządzanie DNS przez skrypty i API

  • REST API dostępne u dostawców DNS (Cloudflare API, AWS Route53 API, Google Cloud DNS API) - pełne zarządzanie strefami i rekordami
  • nsupdate - narzędzie do aktualizacji DNS przez TSIG; standard w BIND do automatyzacji DDNS
  • acme-dns - API do weryfikacji domen dla Let's Encrypt (ACME challenge); dedykowany serwer DNS dla certyfikatów SSL
  • Infrastructure as Code: Terraform (provider DNS, Route53, Cloudflare), Ansible (community.dns), Pulumi
DNS API
42/50
DNS a prywatność - DNS over HTTPS (DoH) i DNS over TLS (DoT)

Szyfrowanie zapytań DNS przed podsłuchem

Szyfrowanie zapytań DNS przed podsłuchem

  • DNS over HTTPS (DoH) - zapytania DNS są wysyłane przez HTTPS (port 443), nieodróżnialne od zwykłego ruchu HTTPS
  • DNS over TLS (DoT) - zapytania DNS są szyfrowane TLS na dedykowanym porcie 853
  • Różnica: DoH miesza się z ruchem HTTPS (trudniejszy do blokowania), DoT używa dedykowanego portu (łatwiejszy do monitorowania)
  • Dostawcy: Cloudflare (1.1.1.1, DoH/DoT), Google (8.8.8.8, DoH/DoT), Quad9 (9.9.9.9, DoH/DoT), AdGuard (94.140.14.14, DoH/DoT)
DoH i DoT
43/50
Anycast - jak działają globalne serwery DNS?

Wiele serwerów, jeden adres IP

Wiele serwerów, jeden adres IP

  • Anycast to technika routingu, w której ten sam adres IP jest ogłaszany z wielu lokalizacji (multiple sites)
  • Pakiety są kierowane do najbliższego geograficznie serwera (wg BGP metrics) - automatyczny failover i load balancing
  • Stosowany przez: root servery (każdy root server to wiele instancji anycast), publiczne resolvery (1.1.1.1 to 200+ lokalizacji), CDN-y
  • Zalety: niska latencja (pakiet idzie do najbliższego serwera), wysoka dostępność (automatyczny failover przy awarii jednej lokalizacji), DDoS protection (ruch rozłożony na wiele lokalizacji)
Anycast DNS
44/50
EDNS0 - rozszerzenia DNS

Jak DNS radzi sobie z nowymi wymaganiami?

Jak DNS radzi sobie z nowymi wymaganiami?

  • EDNS0 (Extension Mechanisms for DNS) zdefiniowany w RFC 6891 (aktualizacja RFC 2671) - umożliwia rozszerzenie możliwości DNS
  • Główna funkcja: zwiększenie maksymalnego rozmiaru UDP z 512 do 4096+ bajtów (lub więcej za pomocą EDNS0)
  • Dodatkowe opcje (EDNS0 flags): DNSSEC OK (DO) - klient informuje, że akceptuje odpowiedzi z DNSSEC
  • EDNS Client Subnet (ECS) - RFC 7871: resolver przekazuje część adresu IP klienta, aby serwer autorytatywny mógł zwrócić zoptymalizowaną geograficznie odpowiedź
EDNS0
45/50
DNS w kontenerach i Kubernetes

Service discovery w środowisku natywnie chmurowym

Service discovery w środowisku natywnie chmurowym

  • W Docker: wbudowany DNS na adresie 127.0.0.11 (wbudowany resolver dockera) - rozwiązuje nazwy kontenerów w tej samej sieci
  • W Kubernetes: CoreDNS (dawniej kube-dns) - wewnętrzny DNS klastra; rejestruje serwisy i pody jako rekordy A/SRV
  • Format nazw w Kubernetes: ..svc.cluster.local - np. nginx.default.svc.cluster.local
  • Kubernetes External DNS: synchronizuje rekordy DNS zewnętrzne (Cloudflare, Route53) z zasobami Ingress/Service typu LoadBalancer
Kubernetes DNS
46/50
DNS a ataki DDoS - ochrona infrastruktury

Jak bronić serwery DNS przed przeciążeniem?

Jak bronić serwery DNS przed przeciążeniem?

  • Ataki DDoS na DNS: amplification (wykorzystanie otwartych resolverów), flood (wysyłanie ogromnej liczby zapytań), NXDOMAIN attacks
  • DNS amplification: atakujący wysyła zapytanie z fałszywym IP ofiary (spoofed source IP), serwer DNS wysyła dużą odpowiedź (współczynnik amplifikacji nawet 50-70x)
  • Zabezpieczenia: rate limiting (ograniczenie liczby zapytań z jednego IP), Response Rate Limiting (RRL) w BIND, firewall blokujący spoofed IP (uRPF)
  • Architektura: wiele serwerów DNS w anycast, dedykowane DDoS protection (Cloudflare, AWS Shield, Akamai), blokada otwartych resolverów (recursion tylko dla zaufanych sieci)
DDoS a DNS
47/50
Podsumowanie DNS - kluczowe koncepcje

Co warto zapamiętać o DNS?

Co warto zapamiętać o DNS?

  • DNS to zdecentralizowana, hierarchiczna baza danych mapująca nazwy na adresy IP - "książka telefoniczna internetu"
  • Hierarchia: root → TLD → autorytatywny; proces: stub resolver → rekurencyjny resolver → iteracyjna ścieżka
  • Rekordy: A (IPv4), AAAA (IPv6), CNAME (alias), MX (poczta), NS (delegacja), SOA (metadane), TXT (dowolne), PTR (odwrotne), SRV (usługi)
  • Narzędzia: dig (szczegółowe), nslookup (uniwersalne), host (szybkie); bezpieczeństwo: DNSSEC, DoH/DoT, RRL, tsig
Podsumowanie DNS
48/50
DNS - ewolucja protokołu

Od hosts.txt do DNS over HTTPS

Od hosts.txt do DNS over HTTPS

  • 1970-1983: plik HOSTS.TXT na SRI-NIC - centralny plik mapowań nazw na IP (problem: skalowalność, aktualność)
  • 1983 (RFC 882, 883): Paul Mockapetris projektuje DNS - hierarchiczna, zdecentralizowana baza danych; pierwsza implementacja: JEEVES (projekt Mockapetrisa); równolegle powstał BIND (Berkeley Internet Name Domain)
  • 1990-2000: eksplozja internetu - nowe TLD (.biz, .info, .name, .pro, .aero), rekordy SRV (RFC 2782), DDNS (RFC 2136)
  • 2000-2026: DNSSEC (RFC 4033-4035), EDNS0 (RFC 6891), IDN (międzynarodowe nazwy domen), DoH (RFC 8484), DoT (RFC 7858), DNS w chmurze i kontenerach
Ewolucja DNS
49/50
DNS a inne protokoły sieciowe

Jak DNS integruje się z DHCP, HTTP, SMTP i VPN?

Jak DNS integruje się z DHCP, HTTP, SMTP i VPN?

  • DNS + DHCP: DHCP przekazuje adresy serwerów DNS (opcja 6), domenę (opcja 15), search list; DDNS aktualizuje DNS po zmianie IP z DHCP
  • DNS + HTTP/HTTPS: przeglądarki używają DNS do rozwiązania URL; ALPN (TLS) + DNS (SRV) określają protokół i port; HSTS wymaga DNS (zna domenę)
  • DNS + SMTP: MX rekordy kierują pocztę; SPF/DKIM/DMARC (TXT) uwierzytelniają nadawcę; PTR (reverse DNS) jest sprawdzany przez serwery SMTP
  • DNS + VPN: Split tunneling wymaga różnych resolverów DNS dla ruchu firmowego i internetowego; DNS leak (wyciek zapytań DNS poza VPN) to ryzyko bezpieczeństwa
DNS a inne protokoły
50/50
DNS - ostatnia lekcja i co dalej?

Materiały dodatkowe i praktyczne projekty

Materiały dodatkowe i praktyczne projekty

  • Zalecane lektury: RFC 1034, 1035 (podstawy DNS), DNS and BIND (O'Reilly, Cricket Liu), Pro DNS and BIND (Ron Aitchison)
  • Praktyczne projekty: uruchom własny serwer BIND na Linux, Pi-hole (blokowanie reklam), CoreDNS w Kubernetes, DNS server w Python (dnslib)
  • Narzędzia do nauki: dig +trace, Wireshark (analiza pakietów DNS), DNSViz (wizualizacja DNSSEC), dnsdumpster.com (recon domen)
  • Certyfikacja: CompTIA Network+ (podstawy DNS), LPIC-2 202 (BIND konfiguracja), Microsoft AZ-800 (DNS w AD), Certified Kubernetes Administrator (CKA) (CoreDNS)
Co dalej z DNS