Czym są rekordy DNS i skąd bierzemy odpowiedź
System nazw domenowych zamienia nazwy zrozumiałe dla ludzi na dane potrzebne programom, czyli adresy serwerów, nazwy serwerów poczty i krótkie teksty konfiguracyjne. Komplet wpisów jednej domeny tworzy strefę DNS, a pojedynczy wpis w tej strefie jest rekordem DNS określonego typu. Sprawdzenie rekordu to zwykłe pytanie zadane rozwiązywaczowi, czyli usłudze, która albo zna odpowiedź z własnej pamięci, albo pyta o nią serwery autorytatywne danej domeny.
Zapytania idą przez nasz serwer do publicznych rozwiązywaczy działających po HTTPS, zwykle w sieci anycast. Kierowanie ich przez backend zamiast prosto z przeglądarki daje pamięć podręczną respektującą czas życia rekordu i ogranicza liczbę zapytań z jednego adresu. Narzędzia sieciowe są w tym serwisie jedynym wyjątkiem od zasady liczenia wszystkiego w przeglądarce, bo cudzej strefy DNS nikt nie odczyta bez zapytania wysłanego z serwera.
Rekordy NS, serwery nazw i delegacja domeny
Rekord NS wskazuje serwery nazw odpowiedzialne za strefę DNS domeny. Tę samą listę trzyma u siebie rejestr domeny i to ona rozstrzyga o delegacji domeny, więc po przenosinach obie muszą się zgadzać. Kiedy w panelu rejestratora wpisujesz adres serwera DNS nowego operatora, przenosisz razem z nim całą konfigurację domeny, a rekordy z poprzedniego panelu, choć nadal tam widoczne i nadal edytowalne, przestają cokolwiek znaczyć dla reszty świata.
Rekord SOA zamyka strefę od strony administracyjnej. Podaje serwer główny, adres kontaktowy administratora i numer seryjny podnoszony przy każdej zmianie. Serwery podrzędne pobierają nową kopię strefy dopiero wtedy, gdy zobaczą wyższy numer.
Chcesz zarządzać strefą DNS poza panelem hostingu? Wskaż w rejestrze zewnętrzne serwery DNS, a od tej chwili nowe rekordy dodajesz wyłącznie tam. Dwa miejsca, w których można dodać rekord, kończą się zwykle tym, że połowa zespołu edytuje strefę, o którą świat już nie pyta.
TTL, czyli dlaczego zmiana nie działa od razu
Każdy rekord ma czas życia (TTL) podany w sekundach. Tyle wolno trzymać odpowiedź w pamięci podręcznej, zanim rozwiązywacz zapyta ponownie. TTL 3600 oznacza, że przez godzinę po zmianie część świata może widzieć jeszcze poprzednią wartość i jest to normalne działanie systemu, nie awaria.
Stąd praktyczna reguła przy przenosinach - obniż TTL na dobę przed zmianą, na przykład do 300 sekund. Stary, długi TTL zdąży wtedy wygasnąć w rozwiązywaczach na całym świecie, a sama zmiana rozejdzie się w kilka minut. Po zakończeniu przenosin podnieś TTL z powrotem, bo krótki czas życia oznacza więcej zapytań do serwerów nazw i minimalnie wolniejsze pierwsze wejście na stronę.
SPF, DKIM i DMARC, czyli ochrona poczty e-mail
SPF to rekord TXT wymieniający serwery, które mają prawo wysyłać pocztę w imieniu domeny. Kończy się mechanizmem „all” z przedrostkiem mówiącym odbiorcy, co zrobić z wiadomością z serwera spoza listy. Zapis -all oznacza twardą odmowę, ~all odmowę miękką kończącą się najczęściej folderem spamu, ?all nie rozstrzyga niczego, a +all wpuszcza każdego i jest po prostu błędem konfiguracji. Osobne ograniczenie dotyczy rozmiaru rekordu, bo jego rozwinięcie nie może wymagać więcej niż dziesięciu zapytań DNS.
DKIM to podpis kryptograficzny doklejany do każdej wysyłanej wiadomości. Klucz publiczny leży w rekordzie TXT pod nazwą złożoną z selektora, członu _domainkey i domeny. Selektora nie da się zgadnąć ani odpytać, musisz go znać. Najprościej odczytać go z nagłówka DKIM-Signature wiadomości wysłanej z tej domeny.
DMARC spina obie techniki i w rekordzie pod nazwą _dmarc.domena określasz jego politykę. Wartość p=none tylko obserwuje, p=quarantine kieruje podejrzane wiadomości do spamu, p=reject każe je odrzucać. Znacznik rua podaje adres, na który mają trafiać zbiorcze raporty. Rozsądna kolejność wdrożenia zaczyna się od none na kilka tygodni, potem czytasz raporty, przechodzisz na quarantine, na końcu ustawiasz reject.
Rzadsze typy rekordów i reverse DNS
Rekord AAAA robi to samo co rekord A, tylko dla adresu IPv6. Rekord SRV opisuje usługę pod konkretną nazwą hosta razem z portem i priorytetem, a korzystają z niego komunikatory, telefonia SIP i część usług Microsoftu. Rekord CAA wymienia urzędy certyfikacji, które mają prawo wystawić certyfikat dla domeny lub subdomeny, i jego dopisanie zajmuje minutę.
Rekord PTR działa w drugą stronę - z adresu IP robi nazwę i odpowiada za reverse DNS. Nie dodasz go we własnej strefie, bo mieszka w strefie odwrotnej należącej do właściciela adresacji, czyli zwykle do operatora albo dostawcy serwera. Przy serwerze pocztowym ma to znaczenie praktyczne, bo część odbiorców odrzuca wiadomości z adresu bez poprawnego wpisu PTR.
Najczęstsze błędy w konfiguracji rekordów domeny
Pierwszy to dwa rekordy SPF na jednej domenie. Norma dopuszcza dokładnie jeden, przy dwóch część odbiorców uznaje wynik za trwały błąd i odrzuca pocztę. Jeśli dopisujesz kolejnego nadawcę, dołóż mechanizm include: do istniejącego rekordu zamiast tworzyć nowy.
Drugi to CNAME na domenie głównej. Rekord CNAME z definicji wyklucza istnienie innych rekordów tej samej nazwy, a domena główna musi mieć rekordy NS i SOA. Przekierowanie domeny robi się wtedy rekordem A ze wskazaniem adresu albo mechanizmem, który część dostawców oferuje pod nazwą ALIAS lub ANAME.
Trzeci to rekordy pozostawione po dawnym dostawcy. Stary wpis MX kierujący na wyłączony serwer, wpis TXT z weryfikacją usługi, z której już nie korzystasz, wpis A wskazujący adres sprzed przenosin. Nie psują niczego od razu, ale przy awarii potrafią skierować ruch w miejsce, którego nikt już nie pilnuje. Przegląd całej strefy raz na rok wystarcza, żeby ich uniknąć.