Czym jest strefa DNS?
Strefa DNS to wyodrębniona część przestrzeni nazw DNS zarządzana przez konkretną organizację lub administratora. Zawiera rekordy DNS dla jednej domeny lub wielu domen i jest obsługiwana przez autorytatywne serwery nazw. Domena jest nazwą w drzewie DNS, natomiast strefa wyznacza granicę administracyjną określającą, które serwery nazw odpowiadają za zapytania.
Domena a strefa
Zrozumienie tej różnicy ma kluczowe znaczenie:
Domena
Domena jest nazwą w hierarchii DNS:
example.com (domain)
└── www.example.com (subdomain)
└── blog.example.com (subdomain)
└── api.example.com (subdomain)
Strefa
Strefa oznacza administracyjną kontrolę nad rekordami:
Jedna strefa domeny i poddomen:example.com zone contains:
- example.com
- www.example.com
- blog.example.com
- api.example.com
Managed by: ns1.example.com, ns2.example.com
Delegowana strefa poddomeny:
example.com zone contains:
- example.com
- www.example.com
- Delegation: api.example.com → different nameservers
api.example.com zone (separate) contains:
- api.example.com
- v1.api.example.com
- v2.api.example.com
Managed by: ns1.apihost.com, ns2.apihost.com
Składniki strefy
Plik strefy
Plik tekstowy zawierający wszystkie rekordy DNS strefy:
; example.com zone file
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
; Nameserver records
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
; A records
@ IN A 203.0.113.50
www IN A 203.0.113.50
blog IN A 203.0.113.51
; MX records
@ IN MX 10 mail.example.com.
mail IN A 203.0.113.52
; CNAME records
ftp IN CNAME www.example.com.
; TXT records
@ IN TXT "v=spf1 include:_spf.google.com ~all"
Rekord SOA (Start of Authority)
Każda strefa musi mieć dokładnie jeden rekord SOA:
example.com. IN SOA ns1.example.com. admin.example.com. (
2024010101 ; Serial
7200 ; Refresh
3600 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
Pola SOA:
| Pole | Zastosowanie | Przykładowa wartość |
|---|---|---|
| Primary NS | Główny serwer nazw | ns1.example.com |
| Admin Email | Kontakt (@ → .) | admin.example.com ([email protected]) |
| Serial | Numer wersji strefy | 2024010101 |
| Refresh | Interwał sprawdzania secondary NS | 7200 s (2 godziny) |
| Retry | Interwał ponowienia po nieudanym odświeżeniu | 3600 s (1 godzina) |
| Expire | Czas do rezygnacji secondary NS | 1209600 s (14 dni) |
| Minimum TTL | Czas ujemnego cache | 3600 s (1 godzina) |
Rekordy NS (serwery nazw)
Określają, które serwery są autorytatywne dla strefy:
example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
Informują cały internet, których serwerów używać do zapytań o rekordy tej strefy.
Typy stref
Strefa primary (master)
Autorytatywne źródło, w którym edytuje się rekordy strefy:
ns1.example.com (primary)
→ Zone file edited here
→ Changes made directly
→ Notifies secondaries of updates
Strefa secondary (slave)
Kopie tylko do odczytu replikowane z primary:
ns2.example.com (secondary)
→ Retrieves zone data from primary
→ Cannot be edited directly
→ Automatically syncs based on SOA refresh interval
Transfer strefy (AXFR):
1. Secondary checks SOA serial number
2. If primary serial is higher → request full zone transfer
3. Primary sends entire zone
4. Secondary updates its copy
Transfer przyrostowy (IXFR):
1. Secondary requests only changes since last serial
2. Primary sends diff
3. More efficient for large zones with small changes
Strefa do przodu
Mapuje nazwy domen na adresy IP (najczęstszy typ):
example.com → 203.0.113.50
www.example.com → 203.0.113.50
Strefa odwrotna
Mapuje adresy IP na nazwy domen (rekordy PTR):
50.113.0.203.in-addr.arpa → example.com
Zastosowania:
- Weryfikacja serwera pocztowego
- Logowanie i bezpieczeństwo
- Diagnostyka
Delegowanie strefy
Delegowanie tworzy osobne strefy dla poddomen:
Strefa nadrzędna (example.com)
; example.com zone
@ IN A 203.0.113.50
www IN A 203.0.113.50
; Delegate api.example.com to different nameservers
api IN NS ns1.apihost.com.
api IN NS ns2.apihost.com.
; Glue records (if needed)
ns1.api IN A 198.51.100.1
ns2.api IN A 198.51.100.2
Delegowana strefa (api.example.com)
Całkowicie oddzielny plik strefy na innych serwerach nazw:
; api.example.com zone (on ns1.apihost.com)
@ IN A 198.51.100.10
v1 IN A 198.51.100.11
v2 IN A 198.51.100.12
Dlaczego delegować?
- Organizacyjnie: Różne zespoły zarządzają różnymi strefami
- Technicznie: Korzystanie z różnych dostawców DNS (np. API w AWS, witryna w Cloudflare)
- Wydajność: Rozłożenie obciążenia DNS
- Bezpieczeństwo: Izolowanie wrażliwych usług
Zarządzanie strefą
Zarządzanie numerem seryjnym
Numery seryjne śledzą wersje strefy (zwykle format RRRRMMDDnn):
2024010101 ; January 1, 2024, version 01
2024010102 ; January 1, 2024, version 02
2024010201 ; January 2, 2024, version 01
Zasada krytyczna: Numer seryjny musi rosnąć przy każdej zmianie, inaczej secondary nie zostaną zaktualizowane.
Bezpieczeństwo transferu strefy
Problem: Transfery stref ujawniają wszystkie rekordy DNS Rozwiązanie: Ogranicz transfery stref do autoryzowanych secondary Konfiguracja BIND:zone "example.com" {
type master;
file "/var/named/example.com.zone";
allow-transfer { 203.0.113.52; 203.0.113.53; }; // Secondary IPs only
notify yes;
};
TSIG (Transaction Signature): Uwierzytelniaj transfery stref za pomocą współdzielonych kluczy:
key "transfer-key" {
algorithm hmac-sha256;
secret "base64-encoded-key";
};
allow-transfer { key transfer-key; };
Sprawdzanie konfiguracji strefy
Zapytanie o rekord SOA
dig example.com SOA
; ANSWER SECTION:
example.com. 3600 IN SOA ns1.example.com. admin.example.com. (
2024010101 7200 3600 1209600 3600 )
Zapytanie o rekordy NS
dig example.com NS
; ANSWER SECTION:
example.com. 86400 IN NS ns1.example.com.
example.com. 86400 IN NS ns2.example.com.
Żądanie transferu strefy (AXFR)
dig @ns1.example.com example.com AXFR
# If allowed, returns entire zone
# If denied, returns transfer failed
Większość publicznych serwerów nazw odmawia AXFR, aby zapobiegać ujawnianiu informacji.
Typowe konfiguracje stref
Prosta witryna
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
@ MX 10 mail.example.com
mail A 203.0.113.51
@ TXT "v=spf1 mx -all"
Strefa wielu usług
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
blog CNAME hosting.wordpress.com.
shop CNAME shops.myshopify.com.
cdn CNAME d111111abcdef8.cloudfront.net.
@ MX 10 aspmx.l.google.com.
Delegowane poddomeny
example.com zone:
@ A 203.0.113.50
www A 203.0.113.50
; Delegate api to AWS Route 53
api NS ns-123.awsdns-01.com.
api NS ns-456.awsdns-02.net.
; Delegate cdn to Cloudflare
cdn NS ns1.cloudflare.com.
cdn NS ns2.cloudflare.com.
Najlepsze praktyki plików stref
1. Zawsze zwiększaj serial: Po każdej zmianie, inaczej secondary nie zostaną zaktualizowane
2. Używaj seriali opartych na dacie: Format RRRRMMDDnn ułatwia orientację
3. Ograniczaj transfery stref: Zezwalaj tylko autoryzowanym secondary
4. Używaj wielu serwerów nazw: Co najmniej 2, najlepiej w różnych sieciach
5. Ustaw odpowiednie TTL: Zrównoważ korzyści cache z szybkością zmian
6. Testuj przed zastosowaniem: Zweryfikuj składnię pliku przed załadowaniem
7. Monitoruj transfery stref: Upewnij się, że secondary są synchronizowane
8. Dokumentuj delegacje: Zapisz, które strefy i dokąd są delegowane
9. Twórz kopie plików stref: Regularne kopie zapobiegają utracie danych
10. Używaj kontroli wersji: Śledź zmiany plików stref w czasie
Zaawansowane funkcje stref
DNSSEC (podpisywanie strefy)
Podpisuj rekordy strefy kryptograficznie:
example.com. IN A 203.0.113.50
example.com. IN RRSIG A 8 2 3600 (
signature-data-here )
Chroni to przed zatruciem cache i manipulacją.
Dynamiczny DNS (DDNS)
Umożliwia programowe aktualizacje strefy:
# Update A record dynamically
nsupdate -k Kupdate.key <<EOF
server ns1.example.com
update delete www.example.com A
update add www.example.com 300 A 203.0.113.51
send
EOF
Zastosowania:
- Aktualizowanie domowego adresu IP
- Infrastruktura automatycznego skalowania
- Wykrywanie usług
Widoki stref (DNS split horizon)
Udostępnia różne dane strefy zależnie od adresu IP klienta:
Internal clients: example.com → 10.0.0.50 (internal)
External clients: example.com → 203.0.113.50 (public)
Zastosowania:
- Wewnętrzne i zewnętrzne wersje witryny
- Prywatne zasoby sieciowe
- Odpowiedzi zależne od położenia geograficznego
Rozwiązywanie problemów stref
Błędy transferu strefy
Objaw: Secondary nie są zsynchronizowane Sprawdź:# Check if primary allows transfers
dig @ns1.example.com example.com AXFR
# Check secondary logs for errors
tail -f /var/log/named.log
Rozwiązania:
- Zweryfikuj ustawienia allow-transfer
- Sprawdź łączność sieciową między serwerami
- Upewnij się, że numer seryjny został zwiększony
Numer seryjny nie rośnie
Objaw: Zmiany nie propagują się do secondary Rozwiązanie: Zawsze zwiększaj numer seryjny przy każdej edycji strefyDelegowanie nie działa
Objaw: Poddomena się nie rozwiązuje Sprawdź:# Verify delegation
dig example.com NS
dig api.example.com NS
# Should show different nameservers for delegated subdomain
Rozwiązania:
- Zweryfikuj rekordy NS w strefie nadrzędnej
- Sprawdź rekordy glue, jeśli serwery nazw znajdują się w poddomenie
- Potwierdź konfigurację strefy podrzędnej
Strefy DNS są fundamentem rozproszonego zarządzania DNS. Zrozumienie ich struktury, delegowania i obsługi pozwala skutecznie projektować DNS dla organizacji dowolnej wielkości.