Warum ist RFC 7505 (Null MX) notwendig?

18

IETF RFC 7505 beschreibt MX-Einträge für eine Domain / einen Host, die / der explizit keine E-Mails erhalten soll. Dies wird erreicht, indem der MX auf den Domain Name System-Stamm zeigt. Beispielsweise,

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

Warum ist das nötig? Nach meinem Verständnis ist eine explizite Widerlegung durch die Verwendung von Domains unter der TLD möglich invalid. Beispielsweise,

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

Ich sehe, dass RFC 2782, DNS SRV, ebenfalls "Ein Ziel von" angibt. bedeutet, dass der Dienst auf dieser Domain definitiv nicht verfügbar ist. " Ich nehme also an, meine Frage ist:

Warum sollten wir den DNS-Stamm verwenden, um "nicht verfügbar" zu bedeuten, wenn invaliddiese Funktion bereits ausgeführt wird?

Alpha Whisky
quelle
2
Dies ist jedoch keine explizite Widerlegung! Es sind nur ungültige Daten.
Michael Hampton

Antworten:

21

Weil das nicht das ist, wofür du es verwenden sollst .invalid. Wie .examplees ist für lokale Tests und Dokumentation gedacht.

Darüber hinaus führt die Verwendung von " .invalidStill" zu zusätzlichen Ereignissen: Zusätzliche DNS-Suchvorgänge und das Anstehen auf dem Mailserver für Wiederholungsversuche.

Die Verwendung des "."Formats sollte einen sofortigen Hard-Fail verursachen. Das MTA wird veranlasst, den Zustellversuch sofort abzubrechen. Zumindest liest sich das Intro zum RFC so.

Zypher
quelle
2
Vielen Dank. Das but BCP: 32 / RFC 2606 Section 2 lautet: ".invalid" (Ungültig) ist für die Online-Erstellung von Domain-Namen vorgesehen, die mit Sicherheit ungültig sind und die auf den ersten Blick offensichtlich ungültig sind. " 2606 sagt nichts, um anzuzeigen, dass ".invalid" nur für lokale Tests ist. Es ist für jede Domain, die auch ungültig sein muss
Alpha Whisky
Ok, ich kann sehen, warum etwas, das so aussieht, als könnte es der Name eines Hosts sein, im Vergleich zu "." Nachteilig ist.
Alpha Whisky
1
@AlphaWhiskey Es sind Menschen, die einen Blick auf etwas werfen und Schlussfolgerungen ziehen können. Computer benötigen explizite Anweisungen.
Michael Hampton
3
Um fair zu sein, ist es nicht gerade schwierig, Computern in diesem speziellen Fall explizite Anweisungen zu erteilen.
muhmuhten
@res Es ist noch einfacher , Computern keine expliziten Anweisungen zu erteilen.
Musik
9

Die Frage als Ganzes berührt einige verschiedene Aspekte, die alle berücksichtigt werden müssen, um zu beantworten, warum RFC7505 etwas Nützliches hinzufügt.


Erstens kann in der Definition der E-Mail-Zustellung vor RFC7505 nicht eindeutig angegeben werden, dass für einen Namen mit Adressdatensätzen keine E-Mail-Zustellungsversuche durchgeführt werden sollten.

Aus RFC7505 Abschnitt 1 :

SMTP-Clients haben eine vorgeschriebene Reihenfolge zum Identifizieren eines Servers, der E-Mails für eine Domain akzeptiert. Abschnitt 5 von [RFC5321] behandelt dies im Detail. Im Wesentlichen schlägt der SMTP-Client zuerst eine DNS-MX-RR nach und greift auf eine DNS-A- oder AAAA-RR zurück, wenn diese nicht gefunden wird. Daher wird ein DNS-Eintrag (der eine andere primäre Aufgabe hat) mit einer E-Mail-Dienstsemantik überladen.

Wenn für eine Domain keine MX-Einträge vorhanden sind, versuchen die Absender, E-Mails an die Hosts an den Adressen in den A- oder AAAA-Einträgen der Domain zuzustellen. Wenn an den A / AAAA-Adressen keine SMTP-Listener vorhanden sind, wird die Nachrichtenübermittlung über einen längeren Zeitraum, normalerweise eine Woche, wiederholt, bevor der sendende Mail Transfer Agent (MTA) aufgibt. Dies verzögert die Benachrichtigung des Absenders bei fehlgeleiteten E-Mails und beansprucht Ressourcen beim Absender.

In diesem Dokument wird ein Null-MX definiert, bei dem alle E-Mail-Zustellungsversuche an eine Domäne sofort fehlschlagen, ohne dass Domänen SMTP-Listener erstellen müssen, um Zustellungsversuche zu verhindern.


Dann ist da noch die Frage, wie RFC7505 dies implementiert ( IN MX 0 .).

Aus RFC7505 Abschnitt 3 :

  1. MX-Ressourceneinträge mit Angabe von Null-MX

    Um anzuzeigen, dass eine Domain keine E-Mails akzeptiert, wirbt sie für eine einzelne MX-RR (siehe Abschnitt 3.3.9 von [RFC1035]) mit einem RDATA-Abschnitt, der aus der Präferenznummer 0 und einer Bezeichnung mit der Länge Null besteht und in Masterdateien als "geschrieben ist. msgstr "" "als Austauschdomäne, um anzuzeigen, dass für eine Domäne kein Mail - Austauscher vorhanden ist. Schon seit "." ist kein gültiger Hostname, ein Null-MX-Eintrag kann nicht mit einem normalen MX-Eintrag verwechselt werden. Die Verwendung von "." Als Pseudo-Hostname bedeutet, dass kein verfügbarer Dienst auf der SRV-RR [ RFC2782 ] modelliert ist, wo er eine ähnliche Bedeutung hat.

    Eine Domain, die einen Null-MX annonciert, DARF KEINE andere MX-RR annoncieren.

(Betonung hinzugefügt)

Wie hier angemerkt, basieren die Implementierungsdetails für den "Null-MX" auf einem bereits festgelegten Muster vom SRVRR-Typ. Es ist sinnvoll, dies nachzuahmen, da der SRVRR-Typ mehr oder weniger eine verallgemeinerte Version des MXRR-Typs ist.

Die Entscheidung wurde also im Wesentlichen bereits bei der Definition des SRVRR-Typs getroffen .


Warum also nicht nutzen .invalid?

Aus RFC2606 Abschnitt2 :

".invalid" ist für die Online-Erstellung von Domain-Namen vorgesehen, die mit Sicherheit ungültig sind und auf den ersten Blick offensichtlich ungültig sind.

Wie hier zu sehen ist, ist diese reservierte TLD für den menschlichen Verzehr bestimmt. Es gibt keinen Präzedenzfall dafür, eine spezielle Behandlung in Software zu definieren.

Sicherlich hätte es auf andere Weise implementiert werden können, aber sie entschieden sich für den minimalen Ansatz der Verwendung ., der kein gültiger Hostname ist und daher die normale Verwendung sowieso nicht beeinträchtigt.

Håkan Lindqvist
quelle
Soweit ich weiß, gibt es keinen technischen Grund, .der nicht als MX-Eintrag verwendet werden könnte, wenn A- oder AAAA-Einträge im Stammverzeichnis veröffentlicht worden wären. Wenn ich telnet . 25tippe, sucht es sicher nach A- und AAAA-Einträgen im Stammverzeichnis.
Kasperd
1
@kasperd Obwohl das DNS-Protokoll es mit Sicherheit darstellen kann, glaube ich nicht, dass Adressdatensätze bei .oder (vor RFC7505), die .als EXCHANGEWert für einen MXDatensatz angegeben werden, tatsächlich gültig sind. (Es ist kein gültiger Hostname.)
Håkan Lindqvist
Gültig oder nicht - Ich kann mir leicht vorstellen, dass Implementierungen, die auf einen MX-Eintrag verweisen, der auf eine Domain ohne A-Einträge verweist, die Zustellung tagelang wiederholen, bevor sie aufgeben.
Kasperd