Warum können MX-Einträge nicht auf eine IP-Adresse verweisen?

89

Ich verstehe Sie nicht einen MX - Eintrag zu einer IP - Adresse direkt zeigen, aber soll es stattdessen auf einen Punkt ADatensatz, der in Kurven, die IP - Adresse verweist auf Ihrem E - Mail - Server.

Aber warum ist das im Prinzip erforderlich?

Dayuloli
quelle
Wenn Sie einen MX-Datensatz einrichten können, können Sie auch einen A-Datensatz einrichten. Ich sehe das Problem hier nicht.
Joshudson
26
@joshudson Es ist überhaupt kein Problem, nur ich versuche zu verstehen, warum, anstatt einfach zu folgen, was alle anderen tun.
Dayuloli
Ich habe es gerade in CloudFlare versucht. Es akzeptiert keine IP-Adresse als Wert für den MX-Eintrag.
LinuxBabe
Ich hatte mich nie darum gekümmert, bis ich einen SPF-Datensatz hinzugefügt hatte und zu viele Suchanfragen hatte. Musste einen anderen Weg finden, um einige auszuschneiden.
gbryant

Antworten:

90

Die gesamte Idee hinter dem MX-Eintrag besteht darin, einen Host oder Hosts anzugeben , die E-Mails für eine Domain akzeptieren können. Wie in RFC 1035 angegeben , enthält der MX-Eintrag einen Domänennamen. Es muss also auf einen Host verweisen, der selbst im DNS aufgelöst werden kann. Eine IP-Adresse kann nicht verwendet werden, da sie als nicht qualifizierter Domänenname interpretiert wird, der nicht aufgelöst werden kann.

Die Gründe dafür in den 1980er Jahren, als die Spezifikationen ursprünglich geschrieben wurden, sind fast dieselben wie heute: Ein Host kann mit mehreren Netzwerken verbunden sein und mehrere Protokolle verwenden.

In den 80er Jahren war es nicht ungewöhnlich, Mail-Gateways zu haben, die sowohl mit dem (relativ neuen) Internet, das TCP / IP verwendete, als auch mit anderen Legacy-Netzwerken, die häufig andere Protokolle verwendeten, verbunden waren. Wenn Sie MX auf diese Weise angeben, sind DNS-Einträge zulässig, die angeben, wie ein solcher Host in einem anderen Netzwerk als dem Internet, z. B. Chaosnet, erreicht werden kann . In der Praxis passierte dies jedoch so gut wie nie. Praktisch jeder hat seine Netzwerke überarbeitet, um stattdessen Teil des Internets zu werden.

Heutzutage kann ein Host über mehrere Protokolle (IPv4 und IPv6) und über mehrere IP-Adressen in jedem Protokoll erreicht werden. Ein einzelner MX-Eintrag kann möglicherweise nicht mehr als eine Adresse auflisten. Daher besteht die einzige Möglichkeit darin, auf einen Host zu verweisen, auf dem alle Adressen dieses Hosts nachgeschlagen werden können. (Zur Leistungsoptimierung sendet der DNS-Server die Adressdatensätze für den Host im zusätzlichen Antwortabschnitt mit, wenn er über autorisierende Datensätze verfügt, wodurch ein Roundtrip gespeichert wird.)

Es gibt auch eine Situation, in der Ihre Mail-Austauscher von Dritten (z. B. Google Apps oder Office 365) bereitgestellt werden. Sie verweisen Ihre MX-Einträge auf ihre Hostnamen, aber es kann vorkommen, dass der Dienstanbieter die IP-Adressen der Mailserver ändern muss. Da Sie auf einen Host hingewiesen haben, kann der Dienstanbieter dies transparent ausführen und Sie müssen keine Änderungen an Ihren Datensätzen vornehmen.

Michael Hampton
quelle
2
Dies verhindert die Kompatibilität mit IP-Adressen nicht wirklich. Tatsächlich funktionieren die meisten SMTP-Server / -Clients mit IP-Adressen in MX-Einträgen nach den wenigen Tests, die ich durchgeführt habe, einwandfrei. Ich denke, die Absicht war es, die Branche davon abzuhalten, massenweise IP-Adressen zu verwenden - was wahrscheinlich geschehen wäre, wenn diese Regel nicht angegeben worden wäre - und nicht von Fall zu Fall. Daher "sollte" im Gegensatz zu "muss". +1 für die tolle Info. Daran hatte ich nie gedacht.
Zenexer
16
@Zenexer Verkehrsregeln gibt es nicht für die Unannehmlichkeiten relativ weniger erfahrener Fahrer, die genau wissen, was sicher ist und was nicht. Sie existieren wegen der viel größeren Menge verdammter Idioten, die glauben, sie wissen, was sie tun, aber nicht.
Shadur
7
@ Zenexer Möglicherweise werden Sie feststellen, dass ein bestimmter MTA dies heute und morgen nicht toleriert. Es ist schließlich kein vom Standard zugelassenes Verhalten. Und natürlich wird dies nicht von allen MTAs unterstützt. Wenn Sie dies tun, können Sie sicher sein, dass Sie E-Mails verlieren.
Michael Hampton
1
@MichaelHampton: Wenn ein MX - Eintrag sollte einen Host - Namen anstelle einer IP - Adresse enthält, dann ein MTA muss eine IP - Adresse akzeptieren. Hypothetisch, wenn ein MX - Eintrag muss einen Hostnamen enthält dann ein MTA sollte eine IP - Adresse akzeptieren. So funktioniert RFC. Die Gegenpartei einer "SOLL" -Umsetzungsempfehlung optimiert möglicherweise die Annahme, dass die Empfehlung befolgt wird, aber das ist so ziemlich alles, was Sie damit tun können.
MSalters
2
@MSalters Ich denke, Sie sind verwirrt. Ich habe nie gesagt, sollte etwas. In der Tat, ich sagte, dass der MX-Eintrag einen Hostnamen enthalten muss, was auch in den RFCs steht.
Michael Hampton
18

DNS als Protokoll hat verschiedene Arten von Werten, die nicht austauschbar sind.

Es ist wichtig zu beachten, dass DNS ein binäres Protokoll mit strengen Zuordnungen zwischen dem Datensatztyp und dem Datentyp ist, den ein solcher Datensatz enthält.

Beispiel:
Ein ADatensatz enthält eine IPv4-Adresse (4 Datenbytes, feste Länge).
Ein AAAADatensatz enthält eine IPv6-Adresse (16 Byte Daten, feste Länge).

Ein MXDatensatz enthält dagegen einen Namen (eine Folge von Bezeichnungen im Format <int number of bytes> <label> <int number of bytes> <label> <int 0>, variable Länge).

Es ist nicht möglich, dass ein MXDatensatz eine IP-Adresse als Daten hat.

Håkan Lindqvist
quelle
Sie könnten das Label zur Textdarstellung einer IP-Adresse machen, aber es würde keinen Sinn machen, dies zu tun, da es nicht als Hostname aufgelöst werden kann.
Michael Hampton
@MichaelHampton In der Tat ist es möglich, einen Namen mit ausschließlich numerischen Bezeichnungen zu haben, der in der normalen, menschenfreundlichen Darstellung auf den ersten Blick wie eine IPv4-Adresse aussieht. Das ändert aber nichts an der Frage, denn es wäre immer noch ein Name und wird daher wie ein Name behandelt (ein Name, der zumindest im öffentlichen Internet nur sein wird NXDOMAIN).
Håkan Lindqvist
Dies beantwortet die Frage des OP nicht wirklich. Sie sagen im Grunde "weil es so ist" .
dr01
@ dr01 In Anbetracht der Tatsache, dass die Frage deutlich macht, dass Sie nicht wissen, wie sie ist ("Sie sollten einen MX-Eintrag nicht direkt auf eine IP-Adresse verweisen, sondern auf einen A-Eintrag", wenn dies tatsächlich nicht möglich ist Ich glaube nicht, dass es unangebracht ist, darauf hinzuweisen, wie die Dinge sind und warum dies jede andere Option unmöglich macht. Ich habe das Gefühl, dass Sie viel in der Frage lesen, die eigentlich nicht da ist.
Håkan Lindqvist
@ dr01 Das heißt, die Frage liest sich nicht als akademische Frage zu den Entwurfsentscheidungen in den Anfängen von DNS oder ähnlichem, sondern nur als Frage, wie die MXtatsächlich auf der Welt vorhandenen Datensätze verwendet werden können oder sollten.
Håkan Lindqvist
6

Ich werde dies als eine Vermutung werfen. Natürlich bin ich mit der Grippe zuhause, also bin ich vielleicht verrückt.

RFC 974 besagt:

Der erste Schritt für den Mailer bei LOCAL ist die Abfrage von MX-RRs für REMOTE. Es wird dringend empfohlen, diesen Schritt jedes Mal durchzuführen, wenn ein Mailer versucht, die Nachricht zu senden. Die Hoffnung ist, dass Änderungen in der Domänendatenbank von Mailern schnell verwendet werden und Domänenadministratoren so in der Lage sind, Nachrichten während der Übertragung für defekte Hosts umzuleiten, indem sie einfach ihre Domänendatenbanken ändern.

Durch die Forderung nach einem Namen anstelle von IP wird diese Praxis nachdrücklich gefördert. Die Namen können gleich bleiben, und im Falle eines Lastenausgleichs oder einer DR müssen Sie sich nicht darum kümmern, den MX-Eintrag selbst zu ändern und auf die DNS-Weitergabe zu warten.

Der Reiniger
quelle
8
Beantworten von Stapelaustauschfragen an Ihrem freien Tag, während Sie an der Grippe erkrankt sind ... Ich tippe meinen Hut auf Sie, guter Herr!
Mike B
3

Einige E-Mail-Server (z. B. exim) erlauben das Senden an MX-Einträge, die auf eine reine IP-Adresse verweisen, nicht. Sie müssen daher einen vollqualifizierten Domänennamen verwenden, um die Konformität zu gewährleisten. Dies liegt daran, dass die meisten Server erwarten, dass der MX-Eintrag einen Hostnamen und keine IP-Adresse enthält (wofür sind A-Einträge gedacht).

Bearbeiten: Im DNS hat jeder Datensatz strenge Anforderungen an die Art der Daten, die jeder Datensatz enthalten kann. Im Fall von MX - Records, dann ist es ein Hostname nur .

Nathan C
quelle
Warum hat exim nicht zugelassen, dass MX-Einträge überhaupt auf die IP-Adresse verweisen? Kommt mir komisch vor! Ich verstehe, dass ich nicht wegen Konventionen sollte, aber ich verstehe nicht, warum es illegal gemacht wird .
Dayuloli
1
Ich sehe nicht, wie ein MTA dies unterstützen könnte, da ein MXDatensatz möglicherweise keine IP-Adresse als Wert haben kann.
Håkan Lindqvist
@ HåkanLindqvist Deine Antwort oben hat diesen Punkt für mich geklärt! Danke!
Dayuloli
2

IN RFC 1025 zeigen MX-Einträge nur auf einen RR (Ressourceneintrag) eines A-Eintrags oder eines CNAME.

Der Mail-Server, der die Mail sendet, fragt nach dem RR eines MX-Eintrags, der mx-Eintrag listet A-Einträge von Servern auf, der Mail-Server führt eine Forward-Suche durch, um einen A-Eintrag zu erhalten, und leitet die Mail dann über smtp an den Service-Host weiter, der als aufgeführt ist Ein Mailserver, der Mail für diese Domain empfangen möchte.

Ihre Frage - Warum kann keine E-Mail an eine IP-Adresse gesendet werden?

Antwort - Wegen des Vertrauens

Viele der geltenden Regeln für E-Mails wurden weiterentwickelt, um das Vertrauen zwischen den Domänen zu wahren, in denen die hin und her gesendeten Nachrichten tatsächlich gültig sind. All dies soll letztendlich SPAM reduzieren.

  • Reverse IP Lookups
  • Ein Forward Name Lookup für diese Angelegenheit

All diese wesentlichen Komponenten für eine Grundlage, auf der ein Mail-Server aufgebaut werden kann, bestehen zumindest aus einer kleinen Komponente, die darauf beruht, eine vertrauenswürdige Kommunikation herzustellen und nicht vertrauenswürdige Kommunikation zu reduzieren.

Referenz - RFC 1035 und 974

https://www.ietf.org/rfc/rfc1035.txt35

https://www.ietf.org/rfc/rfc974.txt

Bürger
quelle
2

Der Zweck von MXAufzeichnungen besteht darin, dass eine Anwendung (E-Mail-Übertragung) Informationen über den zu verwendenden Host erhalten kann. Auf Anwendungsebene, Host - Namen sind genau das Richtige (nicht IP addresss) zu verwenden.

Das Hinzufügen des Konzepts eines Variantentypdatensatzes zu DNS führt außerdem zu einer gewissen Komplikation und damit zu einem Einstiegspunkt für Probleme, Implementierungspannen und Sicherheitsherausforderungen. Zum Beispiel 1.2.3.4.example.com.ist es ein gültiger Hostname (ja, auch im Lichte von RFC1034, 3.5). Das Angeben dieses Hosts MXin einer Bindekonfigurationsdatei für example.com könnte folgendermaßen aussehen

.  MX 10  1.2.3.4

und vermutlich ist das genau das gleiche, wie ein MX-Eintrag mit einer IP aussehen sollte. Und selbst um die Informationen in ein DNS-Datagramm zu übertragen, sind einige skurrile Zusatzinformationen erforderlich. Der einfachste Weg wäre die Einführung eines neuen Ressourceneintragstyps MXA, beispielsweise zur Disambiguierung. Aber warum dann die Bürde so einen neuen Rekordtyp einführen, wenn

. MXA 10 5.6.7.8

könnte immer durch ersetzt werden

. MX 10 dummy
dummy A 5.6.7.8

(und würde auch von DNS-Clients unterstützt, die nichts über MXADatensätze wissen )?

Hagen von Eitzen
quelle