Dlaczego RFC 7505 (Null MX) jest potrzebny?


18

IETF RFC 7505 opisuje rekordy MX dla domeny / hosta, które wyraźnie nie powinny otrzymywać wiadomości e-mail. Odbywa się to poprzez wskazanie MX w katalogu głównym systemu nazw domen. Na przykład,

nomail.example.com. 86400 IN MX 0 "."

Dlaczego jest to potrzebne? W moim rozumieniu, wyraźne odrzucenie jest możliwe przy użyciu domen pod TLD invalid. Na przykład,

nomail.example.com. 86400 IN MX 0 "spam.invalid."
nomail.example.com. 86400 IN MX 10 "null.invalid."

Widzę, że RFC 2782, DNS SRV, również określa, że ​​„Obiekt docelowy”. oznacza, że ​​usługa jest zdecydowanie niedostępna w tej domenie. ” Przypuszczam, że moje pytanie brzmi:

Dlaczego powinniśmy używać katalogu głównego DNS, aby oznaczać „niedostępny”, gdy invalidjuż pełni tę funkcję?


2
Nie jest to jednak wyraźne obalenie! To tylko nieprawidłowe dane.
Michael Hampton

Odpowiedzi:


21

Ponieważ nie jest to do czego powinieneś używać .invalid. Podobnie .examplejak jest przeznaczony do lokalnych testów i dokumentacji.

Ponadto używanie .invalidnadal powoduje dodatkowe rzeczy - dodatkowe wyszukiwania DNS i kolejkowanie na serwerze pocztowym w celu ponownych prób dla jednej z moich głów.

Użycie tego "."formatu powinno spowodować natychmiastową poważną awarię. Powodowanie MTA, aby natychmiast przerwać próbę dostawy. Przynajmniej tak brzmi wprowadzenie do RFC.


2
Dzięki. Ale BCP: 32 / RFC 2606 sekcja 2 brzmi: „.invalid” jest przeznaczony do stosowania w internetowej budowie nazw domen, które z pewnością będą nieprawidłowe i na pierwszy rzut oka widać, że są nieprawidłowe. ” 2606 nic nie wskazuje na to, że „.invalid” służy tylko do testowania lokalnego. To dla każdej domeny, która musi być, no cóż, nieprawidłowa
Alpha Whisky

Ok, rozumiem, dlaczego coś, co wygląda na nazwę hosta, byłoby niekorzystne w porównaniu do „.”.
Alpha Whisky

1
@AlphaWhiskey To ludzie mogą „zerknąć” na coś i wyciągnąć wnioski. Komputery potrzebują wyraźnych instrukcji.
Michael Hampton

3
prawdę mówiąc, w tym konkretnym przypadku nie jest trudno przekazać komputerom wyraźne instrukcje.
muhmuhten

@res Jeszcze łatwiej jest nie dać komputerom takich wyraźnych instrukcji.
musiKk

9

Pytanie jako całość dotyczy kilku różnych aspektów, które należy wziąć pod uwagę, aby odpowiedzieć na pytanie, dlaczego RFC7505 dodaje coś pożytecznego.


Po pierwsze, definicja RFC7505 wcześniejsza niż RFC7505 nie ma sposobu, aby jednoznacznie wskazać, że nie należy podejmować prób dostarczenia poczty dla nazwy, która ma rekordy adresu.

Z RFC7505 sekcja 1 :

Klienci SMTP mają ustaloną sekwencję identyfikującą serwer, który akceptuje pocztę e-mail dla domeny. Rozdział 5 [RFC5321] szczegółowo to omawia; w gruncie rzeczy klient SMTP najpierw wyszukuje RR DNS DNS, a jeśli nie zostanie znaleziony, wraca do wyszukiwania DNS A lub AAAA RR. W związku z tym powoduje to przeciążenie rekordu DNS (który ma inną podstawową misję) semantyczną usługą e-mail.

Jeśli domena nie ma rekordów MX, nadawcy podejmą próbę dostarczenia poczty do hostów na adresy w rekordach A lub AAAA domeny. Jeśli nie ma detektorów SMTP pod adresami A / AAAA, próba dostarczenia wiadomości będzie powtarzana przez długi okres, zwykle na tydzień, zanim wysyłający agent przesyłania poczty (MTA) zrezygnuje. Spowoduje to opóźnienie powiadomienia nadawcy w przypadku źle skierowanej poczty i zużyje zasoby u nadawcy.

W tym dokumencie zdefiniowano zerową wartość MX, która spowoduje natychmiastowe niepowodzenie wszystkich prób dostarczenia poczty do domeny, bez konieczności tworzenia przez domeny detektorów SMTP dedykowanych do zapobiegania próbom dostarczenia.


Następnie jest kwestia tego, jak RFC7505 implementuje to ( IN MX 0 .).

Z RFC7505 sekcja 3 :

  1. Rekordy zasobów MX określające zerową wartość MX

    Aby wskazać, że domena nie przyjmuje wiadomości e-mail, reklamuje pojedynczą RR RR (patrz sekcja 3.3.9 [RFC1035]) z sekcją RDATA składającą się z liczby preferencji 0 i etykiety o zerowej długości, zapisanych w plikach głównych jako „. ”, jako domena wymiany, aby wskazać, że nie istnieje wymiennik poczty dla domeny. Od "." nie jest prawidłową nazwą hosta, pustego rekordu MX nie można pomylić ze zwykłym rekordem MX. Sposób użycia "." jako pseudo-nazwa hosta, co oznacza, że ​​żadna usługa nie jest modelowana na SRV RR [ RFC2782 ], gdzie ma podobne znaczenie.

    Domena reklamująca zerową wartość MX NIE MUSI reklamować żadnej innej wartości RR RR.

(podkreślenie dodane)

Jak zauważono tutaj, szczegóły implementacji „zerowego MX” są oparte na już ustalonym wzorcu z SRVtypu RR. Naśladowanie tego ma sens, ponieważ SRVtyp RR mniej więcej jest uogólnioną wersją MXtypu RR.

Tak więc decyzja została podjęta już podczas definiowania SRVtypu RR .


Dlaczego więc nie skorzystać .invalid?

Z sekcji RFC2606 2 :

„.invalid” jest przeznaczony do użycia w internetowej budowie nazw domen, które z pewnością będą nieprawidłowe i które na pierwszy rzut oka są oczywiste, są nieprawidłowe.

Jak widać tutaj, ta zarezerwowana TLD jest przeznaczona do spożycia przez ludzi. Nie ma precedensu definiowania specjalnej obsługi tego w oprogramowaniu.

Z pewnością mógł zostać zaimplementowany w inny sposób, ale wybrali minimalne podejście do używania ., które nie jest prawidłową nazwą hosta, a zatem i tak nie zakłóca normalnego użytkowania.


O ile mi wiadomo, nie ma technicznego powodu, .aby nie można było użyć go jako rekordu MX, gdyby rekordy A lub AAAA zostały opublikowane w katalogu głównym. Kiedy piszę telnet . 25, z pewnością szuka rekordów A i AAAA w katalogu głównym.
kasperd

1
@kasperd Chociaż protokół DNS z pewnością może go reprezentować, nie sądzę, aby posiadanie rekordów adresów w .lub (wcześniejszych niż RFC7505) określających .jako EXCHANGEwartość dla MXrekordu faktycznie było prawidłowe. (To nie jest poprawna nazwa hosta.)
Håkan Lindqvist

Prawidłowe czy nie - mogę łatwo wyobrazić sobie implementacje, które w obliczu rekordu MX wskazującego na domenę bez rekordów A ponawiają próbę dostarczenia na kilka dni przed rezygnacją.
kasperd
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.