Rekord MX (mail exchanger record) to rekord DNS, który informuje resztę internetu, który serwer przyjmuje pocztę dla Twojej domeny. Gdy ktoś wysyła wiadomość na adres you@example.com, serwer nadawcy wyszukuje rekordy MX dla example.com, porządkuje je według preferencji i łączy się z hostem o najniższym numerze, aby dostarczyć wiadomość. Bez poprawnego rekordu MX poczta przychodząca albo odbija się z powrotem, albo znika bez śladu.
Odczytujemy wyłącznie publiczny DNS. Nic nie zapisujemy, dopóki nie przypiszesz domeny do konta.
Rekordy MX rządzą tylko jednym kierunkiem: pocztą przychodzącą. Nie mówią nic o tym, które serwery mogą wysyłać wiadomości w Twoim imieniu - to zadanie SPF, DKIM i DMARC. Mylenie tych dwóch spraw jest jednym z najczęstszych źródeł problemów przy konfiguracji poczty, dlatego warto precyzyjnie określić, co rekord MX robi, a czego nie robi.
Co tak naprawdę zawiera rekord MX
Rekord MX składa się z dwóch części: wartości preferencji (zwykle nazywanej priorytetem) oraz nazwy hosta wskazującej serwer odbierający pocztę. W notacji pliku strefy wygląda to tak:
example.com. 3600 IN MX 10 mail1.example.com.
example.com. 3600 IN MX 20 mail2.example.com.
Czytając od lewej do prawej: domena, której dotyczy rekord, TTL w sekundach, klasa (IN), typ (MX), wartość preferencji i docelowa nazwa hosta. Cel musi rozwiązywać się do rekordu A (IPv4) lub AAAA (IPv6), ponieważ SMTP ostatecznie potrzebuje adresu IP, aby otworzyć połączenie.
Wartość preferencji to 16-bitowa liczba całkowita bez znaku, więc mieści się w zakresie od 0 do 65535. Niższa liczba oznacza wyższy priorytet. Serwery nadawcze zawsze próbują najpierw najniższej wartości preferencji, co jest przeciwieństwem intuicji, dlatego 10 jest preferowane względem 20.
Jak wybierany jest serwer odbierający
Gdy serwer nadawczy ma wiadomość do dostarczenia, wykonuje następującą sekwencję:
- Odpytuje DNS o rekordy MX domeny odbiorcy.
- Sortuje zwrócone rekordy według wartości preferencji, od najniższej.
- Podejmuje próbę dostarczenia przez SMTP do hosta o najniższej preferencji.
- Jeśli ten host jest nieosiągalny lub zwraca tymczasowy błąd, przechodzi do kolejnej wartości preferencji i ponawia próbę.
Tak właśnie działa mechanizm awaryjny (failover). Podstawowy serwer poczty o preferencji 10 obsługuje normalny ruch, a zapasowy o wartości 20 odbiera pocztę tylko wtedy, gdy podstawowy jest niedostępny. Po przywróceniu podstawowego serwera dobrze skonfigurowany serwer zapasowy przekazuje mu z powrotem zakolejkowaną pocztę. Serwer zapasowy jest przydatny tylko wtedy, gdy potrafi przekazać pocztę do podstawowego. Wtórny MX, który nie może dotrzeć do Twoich prawdziwych skrzynek, staje się jedynie magnesem na spam, ponieważ spamerzy celowo atakują hosty o wyższej preferencji, licząc na to, że filtrują one mniej rygorystycznie.
Gdy dwa lub więcej rekordów MX ma tę samą wartość preferencji, serwer nadawczy wybiera spośród nich losowo. Rozkłada to ruch przychodzący mniej więcej równomiernie pomiędzy hosty - to prymitywna, ale skuteczna forma równoważenia obciążenia, opisana w RFC 974, a później w RFC 5321. Nie jest precyzyjna, ponieważ każdy nadawca wybiera niezależnie, ale przy wielu nadawcach rozkład się wyrównuje.
| Konfiguracja MX | Zachowanie |
|---|---|
Różne wartości preferencji (10, 20) | Failover: najpierw używana jest niższa wartość, wyższa tylko jako zapasowa |
Równe wartości preferencji (10, 10) | Równoważenie obciążenia: nadawcy wybierają między nimi losowo |
Szczególnym przypadkiem jest pusty rekord MX (null MX) zdefiniowany w RFC 7505: pojedynczy rekord MX o preferencji 0 i samą kropką (.) jako celem. Jawnie deklaruje on, że domena nie przyjmuje żadnej poczty, a domena, która go publikuje, nie może publikować żadnego innego rekordu MX. To poprawny sygnał dla domeny, na której nigdy nie chcesz odbierać poczty, na przykład domeny zaparkowanej lub służącej wyłącznie do wysyłki (zobacz DMARC dla domen zaparkowanych i niewysyłających poczty).
MX kontra A kontra PTR
Te trzy typy rekordów są często mylone, ponieważ wszystkie dotyczą serwerów pocztowych, ale każdy odpowiada na inne pytanie.
| Rekord | Pytanie, na które odpowiada | Kierunek | Znajduje się w |
|---|---|---|---|
MX | Który host przyjmuje pocztę dla tej domeny? | Przychodzący | Strefa domeny odbiorcy |
A / AAAA | Jaki adres IP ma ta nazwa hosta? | Oba | Strefa serwera pocztowego |
PTR | Jaka nazwa hosta należy do tego adresu IP? | Wychodzący | Strefa odwrotnego DNS (in-addr.arpa) |
Rekord MX wskazuje nazwę hosta, rekord A zamienia tę nazwę na adres IP, a rekord PTR wykonuje odwrotne wyszukiwanie, które uruchamia wielu odbiorców na podstawie Twojego adresu nadawczego IP. Odbiorcy sprawdzają, czy PTR rozwiązuje się do nazwy hosta, której rekord A wskazuje z powrotem na ten sam adres IP - zgodność znaną jako forward-confirmed reverse DNS. MX sprawia, że poczta do Ciebie dociera. PTR pomaga Twojej poczcie wychodzącej przejść kontrole reputacji po drugiej stronie. Aby dokładniej zapoznać się z odwrotnym DNS i tym, dlaczego odbiorcy się nim interesują, zobacz przewodnik czym jest rekord PTR.
Typowe błędy w rekordach MX
Garść błędów odpowiada za większość zepsutych konfiguracji poczty przychodzącej.
Wskazywanie MX na CNAME. RFC 2181 i RFC 5321 zabraniają, aby celem rekordu MX był CNAME. Nazwa hosta w rekordzie MX musi rozwiązywać się bezpośrednio do rekordu A lub AAAA. Rygorystyczni odbiorcy, w tym niektórzy duzi dostawcy, odmawiają dostarczenia poczty, gdy celem MX jest alias, a nawet ci bardziej pobłażliwi ponoszą koszt dodatkowych zapytań i ryzyko pętli. Jeśli dostawca poczty podaje Ci nazwę hosta, upewnij się, że jest to prawdziwy rekord adresowy, a nie alias.
Brakująca lub błędna kropka końcowa. W notacji pliku strefy nazwa hosta zakończona kropką jest w pełni kwalifikowana. Bez kropki końcowej serwer DNS dopisuje pochodzenie strefy (origin), więc mail.example.com zapisane bez kropki wewnątrz strefy example.com staje się mail.example.com.example.com., co nie istnieje. Większość hostowanych paneli DNS ukrywa to, dostarczając za Ciebie w pełni kwalifikowaną nazwę, ale jeśli edytujesz surowe pliki strefy, kropka końcowa ma znaczenie.
Używanie adresu IP jako celu. Celem MX musi być nazwa hosta, nigdy dosłowny adres IP. Jeśli dysponujesz tylko adresem IP, najpierw utwórz rekord A dla nazwy hosta, a następnie skieruj MX na tę nazwę.
Zduplikowane lub sprzeczne rekordy. Dwóch dostawców, z których każdy publikuje rekordy MX dla tej samej domeny, lub pozostałości rekordów po starym dostawcy powodują, że poczta trafia w niewłaściwe miejsce. Gdy migrujesz między dostawcami poczty, usuń stare rekordy MX zamiast pozostawiać je obok nowych.
Zakładanie, że MX wpływa na wysyłkę. Zmiana rekordu MX nie robi nic dla uwierzytelniania poczty wychodzącej. Jeśli odbiorcy odrzucają Twoją pocztę wychodzącą, rozwiązanie leży w SPF, DKIM lub DMARC, a nie w MX.
MX to poczta przychodząca, SPF to poczta wychodząca
Oto rozróżnienie, które warto sobie utrwalić. Twój rekord MX mówi innym serwerom, dokąd wysyłać pocztę adresowaną do Ciebie. Twój rekord SPF mówi innym serwerom, które adresy IP mają prawo wysyłać pocztę jako Ty. Są niezależne, a poprawne skonfigurowanie jednego nie pomaga drugiemu.
Istnieje jeden wąski obszar nakładania się, o którym warto wiedzieć: mechanizm mx w SPF. Rekord SPF może zawierać token mx, który autoryzuje hosty wymienione w Twoich rekordach MX do wysyłania poczty. Jest to wygodne, gdy Twoje serwery przychodzące i wychodzące to ta sama maszyna, ale każdy mechanizm mx kosztuje jedno zapytanie DNS względem limitu SPF wynoszącego 10, a przekroczenie tego limitu daje PermError, który całkowicie unieważnia SPF. Używaj go świadomie, a nie domyślnie. Aby zobaczyć pełny obraz tego, których rekordów potrzebuje poczta, przeczytaj jakich rekordów DNS potrzebuję dla poczty, a aby zrozumieć, jak układa się strona wychodząca, zobacz SPF, DKIM i DMARC wyjaśnione.
Rekordy MX to wpisy DNS typu MX; rekordy uwierzytelniające, które chronią Twoją pocztę wychodzącą, to wpisy typu TXT. Jeśli różnica między typami rekordów jest niejasna, przewodnik czym jest rekord DNS TXT omawia, gdzie faktycznie znajdują się SPF i DMARC oraz dlaczego dzielą jeden typ rekordu.
Weryfikacja rekordów MX
Rekordy MX możesz sprawdzić z linii poleceń:
dig MX example.com +short
Polecenie to zwraca każdą wartość preferencji i docelową nazwę hosta. Potwierdź, że każdy cel rozwiązuje się do rekordu adresowego, że wartości preferencji odzwierciedlają zamierzone przez Ciebie zachowanie failover lub równoważenia obciążenia oraz że nie pozostały żadne przestarzałe rekordy po poprzednim dostawcy. Jeśli w ogóle nie masz pewności, kto kontroluje Twoją strefę DNS, przewodnik jak znaleźć swojego dostawcę DNS przeprowadza przez jego identyfikację.
Najczęściej zadawane pytania
Czy domena może mieć wiele rekordów MX?
Tak, i większość produkcyjnych domen je ma. Wiele rekordów o różnych wartościach preferencji daje Ci failover, a wiele rekordów o tej samej wartości preferencji rozkłada ruch przychodzący. Serwery nadawcze wykorzystują wartości preferencji, aby zdecydować o kolejności prób dostarczenia.
Co się dzieje, gdy domena nie ma rekordu MX?
Zgodnie z RFC 5321, jeśli nie istnieje żaden rekord MX, serwery nadawcze wracają do rekordu A lub AAAA domeny i próbują dostarczyć tam pocztę, traktując go jako niejawny MX o preferencji 0. Ten mechanizm awaryjny jest kruchy i łatwo go błędnie skonfigurować, dlatego opublikowanie jawnego rekordu MX jest zawsze właściwym podejściem dla każdej domeny, która odbiera pocztę.
Czy zmiana rekordu MX wpływa na SPF lub DMARC?
Nie. Rekordy MX kontrolują wyłącznie routing poczty przychodzącej. SPF, DKIM i DMARC rządzą uwierzytelnianiem poczty wychodzącej i znajdują się w oddzielnych rekordach TXT. Edycja rekordu MX nie zmieni sposobu, w jaki odbiorcy uwierzytelniają wysyłaną przez Ciebie pocztę.
Dlaczego cel MX potrzebuje kropki końcowej?
W składni pliku strefy kropka końcowa oznacza nazwę hosta jako w pełni kwalifikowaną. Pomiń ją, a serwer DNS dopisze pochodzenie strefy, tworząc zepsutą nazwę w rodzaju mail.example.com.example.com.. Większość hostowanych interfejsów DNS załatwia to za Ciebie, ale ma to znaczenie przy edytowaniu surowych danych strefy.
Twoje rekordy MX decydują o tym, czy poczta do Ciebie dociera, a pojedyncza źle umieszczona kropka lub cel CNAME może po cichu zepsuć dostarczanie. Uruchom bezpłatne skanowanie za pomocą SPFWise, aby sprawdzić konfigurację MX obok rekordów SPF, DKIM i DMARC, i wychwycić problemy z pocztą przychodzącą i wychodzącą, zanim będą Cię kosztować utracone wiadomości.