Konfiguruję DNS niemal przy każdym projekcie: przy podpinaniu domeny pod nowy serwer, przenoszeniu poczty, wdrażaniu certyfikatu czy zmianie hostingu. To kilka linijek w panelu, ale błąd w jednej z nich potrafi wyłączyć stronę albo sprawić, że wiadomości z firmowej skrzynki zaczną trafiać do spamu. W tym wpisie pokazuję, jak ustawiam najważniejsze rekordy, w jakiej kolejności to robię i jak sprawdzam efekty.
Gdzie właściwie zmieniasz DNS
Pierwsza rzecz, którą ustalam, to gdzie znajduje się strefa DNS domeny. Nie zawsze jest to miejsce, w którym domena została kupiona. Rekordy edytuje się tam, gdzie wskazują serwery nazw, czyli rekordy NS domeny. Jeśli domena jest zarejestrowana u jednej firmy, a serwery nazw wskazują np. na hosting albo Cloudflare, to zmiany wprowadzone u rejestratora nie będą miały żadnego efektu.
Sprawdzam to jednym poleceniem:
dig +short NS twojadomena.pl
Przy zmianie serwerów nazw, np. przy przejściu na CDN zarządzający DNS, najpierw odtwarzam w nowym miejscu wszystkie istniejące rekordy, łącznie z pocztą i weryfikacjami usług, a dopiero potem zmieniam NS. Najczęstsza awaria, jaką widzę, to strona, która po zmianie działa, i poczta, która przestała, bo nikt nie przeniósł rekordów MX.
Rekordy A, AAAA i CNAME, czyli kierowanie domeny na serwer
Rekord A wskazuje adres IPv4 serwera, na którym działa strona. Adres dostajesz od firmy hostingowej. Typowa konfiguracja dla domeny głównej i wersji z www wygląda tak:
twojadomena.pl. 3600 IN A 203.0.113.10
www.twojadomena.pl. 3600 IN CNAME twojadomena.pl.
Rekord AAAA to odpowiednik dla adresów IPv6. Jeśli serwer ich nie obsługuje, nie dodaję go wcale. Błędny rekord AAAA jest zdradliwy, bo strona działa u części użytkowników, a u innych nie, w zależności od ich łącza.
Rekord CNAME to alias, który mówi „ta nazwa ma ten sam adres co inna nazwa”. Ma dwie zasady, o których łatwo zapomnieć:
- Nie można go ustawić dla domeny głównej, czyli
twojadomena.plbez przedrostka. Tam musi być rekord A. Niektórzy dostawcy omijają to ograniczenie własnym typem rekordu, np. ALIAS, ale to rozwiązanie konkretnego dostawcy, a nie standard. - Nazwa z rekordem CNAME nie może mieć żadnych innych rekordów. Nie dodasz więc do tej samej subdomeny CNAME i np. MX.
Sam rekord A to jednak dopiero połowa pracy. Po stronie serwera trzeba jeszcze dodać domenę w panelu hostingu i wystawić certyfikat, dlatego zmianę DNS planuję razem z wyborem hostingu i przygotowaniem serwera.
Rekordy MX i TXT, czyli poczta, która dochodzi
Rekord MX wskazuje serwery obsługujące pocztę dla domeny. Każdy ma priorytet: im niższa liczba, tym wyższy priorytet. MX musi wskazywać nazwę serwera, a nie adres IP, i ta nazwa nie powinna być aliasem CNAME. Dostawcy poczty firmowej podają gotowe wartości, które wystarczy przepisać, ale zawsze usuwam stare rekordy MX poprzedniego dostawcy, żeby część poczty nie trafiała w dwa miejsca.
Rekordy TXT odpowiadają za to, czy Twoje wiadomości będą uznawane za wiarygodne. Ustawiam trzy:
- SPF – lista serwerów, które mogą wysyłać pocztę w imieniu domeny. Domena może mieć tylko jeden rekord SPF. Jeśli korzystasz
z kilku usług, np. poczty firmowej i systemu do newsletterów, łączysz je w jednym rekordzie:
v=spf1 include:_spf.dostawca-poczty.pl include:newsletter.example ~all. Rekord ma też limit 10 zapytań DNS, więc nie dokładam do niego wszystkiego „na wszelki wypadek”. - DKIM – klucz, którym serwer podpisuje wysyłane wiadomości. Wartość generuje dostawca poczty, a wpisuje się ją pod nazwą
w rodzaju
selektor._domainkey.twojadomena.pl. - DMARC – polityka, co robić z wiadomościami, które nie przeszły weryfikacji SPF i DKIM. Zaczynam od trybu obserwacji
v=DMARC1; p=none; rua=mailto:dmarc@twojadomena.pl, analizuję raporty i dopiero potem zaostrzam politykę doquarantinelubreject.
Od 2024 roku Google i Yahoo wymagają od nadawców wysyłających dużą liczbę wiadomości poprawnego SPF, DKIM i DMARC. Nawet przy małej skali brak tych rekordów to najczęstszy powód, dla którego wiadomości ofertowe lądują w spamie.
Rekordy TXT i CAA do weryfikacji i certyfikatów
Rekordy TXT służą też do potwierdzania własności domeny, np. w Google Search Console. Takie wpisy zostawiam na stałe, bo ich usunięcie może po czasie odebrać dostęp do usługi.
Przy certyfikatach SSL DNS przydaje się na dwa sposoby. Certyfikat na wszystkie subdomeny, czyli typu wildcard, wymaga weryfikacji
przez rekord _acme-challenge, co jest typowe dla darmowego certyfikatu
Let's Encrypt. Z kolei rekord CAA określa, które urzędy certyfikacji mogą wystawiać certyfikaty dla domeny. Jest to
dobre zabezpieczenie, ale źle ustawiony CAA blokuje odnowienie certyfikatu i jest jedną z mniej oczywistych przyczyn
błędów certyfikatu SSL.
TTL i propagacja, czyli dlaczego zmiany nie działają od razu
Każdy rekord ma TTL, czyli czas w sekundach, przez jaki serwery pośredniczące mogą trzymać jego kopię. Po zmianie rekordu część użytkowników przez ten czas nadal trafia pod stary adres. To właśnie nazywa się propagacją.
Dlatego przy każdej planowanej zmianie, np. podczas migracji strony, obniżam TTL zmienianych rekordów do kilku minut, np. 300 sekund, co najmniej dobę wcześniej. Po przełączeniu i sprawdzeniu, że wszystko działa, przywracam wyższą wartość. Zmiana serwerów nazw trwa dłużej, bo TTL rekordów NS ustala rejestr domeny, i tu trzeba liczyć się nawet z 24–48 godzinami.
Jak sprawdzam konfigurację
Po każdej zmianie sprawdzam rekordy bezpośrednio, a nie tylko w przeglądarce, bo przeglądarka i system też trzymają kopię odpowiedzi:
dig +short A twojadomena.pl
dig +short MX twojadomena.pl
dig +short TXT twojadomena.pl
dig +short TXT _dmarc.twojadomena.pl
dig @1.1.1.1 +short A twojadomena.pl
Ostatnie polecenie odpytuje konkretny publiczny serwer DNS, co pozwala sprawdzić, co widzą użytkownicy innych sieci. Do podglądu propagacji na serwerach w różnych krajach używam whatsmydns.net.
Na koniec przechodzę przez krótką listę: domena główna i wersja z www otwierają stronę po HTTPS, poczta przychodzi i wychodzi, testowa wiadomość wysłana na zewnętrzną skrzynkę przechodzi weryfikację SPF, DKIM i DMARC w nagłówkach, a weryfikacje usług takich jak Search Console nadal działają. Dopiero wtedy uznaję zmianę za zakończoną.