DNS, domeny i routing internetowy
DNS łączy nazwy domen z usługami działającymi w sieci. W praktyce trzeba umieć oddzielić problem DNS od problemu routingu, firewalla, reverse proxy albo samej aplikacji.
Powiązane tematy: Sieci komputerowe dla developera, nginx i reverse proxy oraz HTTP, HTTPS i TLS.
1. Po co to znać
Jeśli publikujesz stronę, API albo aplikację na VPS, musisz rozumieć drogę od wpisania example.com w przeglądarce do odpowiedzi serwera. W praktyce oznacza to znajomość domen, DNS, adresów IP, routingu, NAT i podstaw IPv4/IPv6.
To kompendium skupia się na praktyce developera i osoby wdrażającej rozwiązania cyfrowe.
2. Domena a DNS
Domena to czytelna nazwa, np.:
example.com
api.example.com
www.example.com
DNS zamienia nazwę na dane potrzebne klientowi, najczęściej adres IP.
Typowa ścieżka:
przeglądarka
↓
resolver DNS
↓
serwery root
↓
serwery TLD (.com, .pl)
↓
autorytatywny DNS domeny
↓
rekord A / AAAA
↓
adres IP serwera
3. Najważniejsze rekordy DNS
A
Wskazuje adres IPv4.
example.com. 300 IN A 203.0.113.10
AAAA
Wskazuje adres IPv6.
example.com. 300 IN AAAA 2001:db8::10
CNAME
Alias jednej nazwy do innej.
www.example.com. IN CNAME example.com.
Nie stosuj CNAME jako zamiennika wszystkiego. CNAME nie powinien współistnieć z innymi rekordami tej samej nazwy.
MX
Serwery obsługujące pocztę.
example.com. IN MX 10 mail.example.com.
Niższa liczba oznacza wyższy priorytet.
TXT
Dowolny tekst. Używany m.in. przez:
- SPF,
- DKIM,
- DMARC,
- weryfikację domeny,
- różne usługi SaaS.
NS
Informuje, które serwery DNS są autorytatywne dla domeny.
PTR
Reverse DNS: adres IP → nazwa.
Najczęściej ustawia go operator VPS lub hostingu, nie rejestrator domeny.
4. TTL
TTL określa, jak długo resolver może przechowywać odpowiedź w cache.
Przykład:
300 sekund = 5 minut
3600 sekund = 1 godzina
86400 sekund = 1 dzień
Przed migracją warto wcześniej zmniejszyć TTL.
5. Delegacja domeny
Kupując domenę u rejestratora, ustawiasz serwery NS, np.:
ns1.provider.net
ns2.provider.net
Od tej chwili rekordami zarządzasz u operatora DNS.
Domena i DNS nie muszą być w tej samej firmie.
6. Subdomeny
Możesz prowadzić wiele usług:
www.example.com
api.example.com
admin.example.com
status.example.com
cdn.example.com
Każda może wskazywać na ten sam lub inny serwer.
7. Narzędzia
dig
dig example.com
dig A example.com
dig AAAA example.com
dig MX example.com
dig TXT example.com
dig NS example.com
Krótka odpowiedź:
dig +short example.com
Sprawdzenie konkretnego serwera DNS:
dig @1.1.1.1 example.com
Śledzenie delegacji:
dig +trace example.com
host
host example.com
host -t MX example.com
nslookup
Starsze, ale nadal popularne:
nslookup example.com
8. IPv4 i IPv6
IPv4:
192.0.2.10
IPv6:
2001:db8::10
Adresy prywatne IPv4:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
Loopback:
127.0.0.1
::1
9. CIDR
Przykład:
192.168.1.0/24
/24 oznacza 24 bity części sieciowej.
Typowa sieć /24 ma 256 adresów.
Przykłady:
/32 - pojedynczy adres IPv4
/24 - 256 adresów
/16 - 65536 adresów
10. Routing
Routing określa, którędy ma zostać wysłany pakiet.
Linux:
ip route
Typowy wynik:
default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel
default to trasa używana, gdy nie ma bardziej szczegółowej.
11. Gateway
Brama domyślna to router, który przekazuje ruch poza lokalną sieć.
Przykład:
host: 192.168.1.20
gateway: 192.168.1.1
12. NAT
NAT pozwala wielu urządzeniom korzystać z jednego publicznego IPv4.
Typowy dom:
PC 192.168.1.10 ┐
telefon ├─ router NAT ─ publiczny IP
serwer domowy ┘
13. Port forwarding
Jeżeli serwer stoi za NAT-em, router może przekierować port:
publiczne_IP:443 → 192.168.1.50:443
Na VPS zwykle nie potrzebujesz domowego NAT-u.
14. Propagacja DNS
„Propagacja” to w praktyce wygasanie cache u resolverów.
Zmiana może być widoczna: - natychmiast u jednego resolvera, - po kilku minutach u drugiego, - dopiero po wygaśnięciu starego TTL gdzie indziej.
15. DNSSEC
DNSSEC podpisuje kryptograficznie odpowiedzi DNS.
Chroni przed podmianą odpowiedzi DNS, ale nie szyfruje DNS.
16. DNS i poczta
SPF:
v=spf1 include:_spf.example.net -all
DKIM: - wiadomość podpisywana kluczem prywatnym, - klucz publiczny publikowany w DNS.
DMARC:
v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com
17. Typowe błędy
- zły rekord A,
- CNAME wskazujący w złe miejsce,
- zbyt długi TTL podczas migracji,
- stary rekord AAAA,
- brak odpowiedniego
Hostw reverse proxy, - domena wskazuje na właściwy serwer, ale firewall blokuje port,
- DNS działa, lecz aplikacja nie nasłuchuje.
18. Checklista uruchomienia domeny
- Kup domenę.
- Ustaw NS.
- Dodaj rekord A i opcjonalnie AAAA.
- Sprawdź:
dig +short example.com
- Sprawdź routing i firewall.
- Skonfiguruj nginx.
- Wystaw HTTPS.
- Zweryfikuj:
curl -I https://example.com
19. Przykład praktyczny
Masz VPS:
203.0.113.20
Chcesz:
example.com
api.example.com
DNS:
example.com A 203.0.113.20
api.example.com A 203.0.113.20
Obie domeny mogą trafiać do tego samego nginx, który na podstawie nagłówka Host kieruje ruch do różnych aplikacji.
20. Co trzeba umieć
Po opanowaniu tego kompendium powinieneś:
- rozumieć drogę domena → DNS → IP → serwer,
- umieć diagnozować DNS przez dig,
- rozumieć rekordy A, AAAA, CNAME, MX, TXT i NS,
- rozumieć NAT, routing i port forwarding,
- umieć przygotować domenę pod VPS i reverse proxy.
Oficjalne źródła
- RFC 1034 - Domain Names: Concepts and Facilities: https://www.rfc-editor.org/rfc/rfc1034
- RFC 1035 - Domain Names: Implementation and Specification: https://www.rfc-editor.org/rfc/rfc1035
- RFC 7766 - DNS Transport over TCP: https://www.rfc-editor.org/rfc/rfc7766