Frage Warum können MX-Datensätze nicht auf eine IP-Adresse verweisen?


Ich verstehe dich sollte nicht Richten Sie einen MX-Eintrag direkt auf eine IP-Adresse, aber sollte Zeigen Sie stattdessen auf ein A Datensatz, der wiederum auf die IP-Adresse Ihres Mailservers zeigt.

Aber im Prinzip Warum ist das erforderlich?


83
2018-01-28 17:13


Ursprung


Wenn Sie einen MX-Eintrag einrichten können, können Sie auch einen A-Eintrag einrichten. Ich sehe das Problem hier nicht. - joshudson
@ 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


Antworten:


Die ganze Idee hinter dem MX-Record besteht darin, a anzugeben Wirt oder Gastgeber Das kann Mail für eine Domain akzeptieren. Wie in RFC 1035, der MX-Eintrag enthält einen Domänennamen. Sie muss daher auf einen Host verweisen, der selbst im DNS aufgelöst werden kann. Eine IP-Adresse konnte nicht verwendet werden, da sie als nicht qualifizierter Domänenname interpretiert würde, 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 die Gründe dafür: 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 oft andere Protokolle verwendeten, verbunden waren. Das Angeben von MX auf diese Weise ermöglichte DNS-Einträge, die identifizieren könnten, wie man einen solchen Host in einem anderen Netzwerk als dem Internet erreicht, wie z Chaosnet. In der Praxis geschah dies jedoch fast nie. praktisch jeder überarbeitete seine Netzwerke neu, um stattdessen Teil des Internets zu werden.

Heutzutage kann ein Host über mehrere Protokolle (IPv4 und IPv6) und mehrere IP-Adressen in jedem Protokoll erreicht werden. Ein einzelner MX-Eintrag kann unmöglich mehr als eine Adresse auflisten. Daher besteht die einzige Möglichkeit darin, auf einen Host zu zeigen, auf dem alle Adressen dieses Hosts nachgeschlagen werden können. (Zur Leistungsoptimierung sendet der DNS-Server die Adressdatensätze für den Host im Abschnitt für zusätzliche Antworten, wenn für ihn autoritative Datensätze vorhanden sind, und speichert einen Roundtrip.)

Es gibt auch die Situation, die entsteht, wenn Ihre Mail-Exchanger von einer dritten Partei (z. B. Google Apps oder Office 365) bereitgestellt werden. Sie verweisen Ihre MX-Datensätze auf ihre Hostnamen, aber es kann vorkommen, dass der Service-Provider die IP-Adressen der Mail-Server ändern muss. Da Sie auf einen Host verwiesen haben, kann der Service Provider dies transparent durchführen und Sie müssen keine Änderungen an Ihren Datensätzen vornehmen.


84
2018-01-28 17:36



Das verhindert nicht wirklich die Kompatibilität mit IP-Adressen. Tatsächlich funktionieren die meisten SMTP-Server / Clients problemlos mit IP-Adressen in MX-Datensätzen aus den kleinen Tests, die ich gemacht habe. Ich denke, die Absicht war, die Industrie davon abzuhalten, IP-Adressen massenhaft zu verwenden - was wahrscheinlich passiert wäre, wenn diese Regel nicht angegeben worden wäre - und nicht von Fall zu Fall. Daher sollte "sollte" im Gegensatz zu "müssen". +1 für die tolle Info. Das meiste hatte ich nie in Erwägung gezogen. - Zenexer
@Zenexer Verkehrsregeln sind nicht für die Unannehmlichkeiten von relativ wenigen Experten Treibern, die genau wissen, was ist sicher und was nicht. Sie existieren wegen der viel größeren Untergruppe von verdammten Idioten, die denken Sie wissen, was sie tun, aber nicht. - Shadur
@Zenexer Sie können feststellen, dass eine bestimmte MTA es heute toleriert und nicht morgen. Es ist schließlich kein vom Standard zugelassenes Verhalten. Und natürlich werden nicht alle MTAs dies unterstützen, was bedeutet, dass Sie garantiert Ihre Post verlieren. - Michael Hampton♦
@MichaelHampton: Wenn ein MX-Eintrag SOLLTE Geben Sie anstelle einer IP-Adresse einen Hostnamen und dann einen MTA ein MUSS Akzeptiere eine IP-Adresse. Hypothetisch, wenn ein MX-Record MUSS einen Hostnamen und dann einen MTA enthalten SOLLTE Akzeptiere eine IP-Adresse. So funktioniert RFC. Der Kontrahent eines "SOLL" Implementierungsberichts kann unter der Annahme optimieren, dass der Rat befolgt wird, aber das ist so gut wie alles, was Sie damit tun können. - MSalters
@MSalters Ich denke du bist verwirrt. Ich habe nie etwas gesagt. Tatsächlich habe ich gesagt, dass der MX-Eintrag einen Hostnamen enthalten muss, was auch die RFCs sagen. - Michael Hampton♦


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

Es ist wichtig zu beachten, dass DNS ein binäres Protokoll mit strikten Zuordnungen zwischen dem Typ des Datensatzes und dem Typ der Daten ist, die ein solcher Datensatz enthält.

Zum Beispiel:
Ein A record enthält eine IPv4-Adresse (4 Byte Daten, feste Länge).
Ein AAAArecord enthält eine IPv6-Adresse (16 Byte Daten, feste Länge).

Ein MX record andererseits hält a Name (eine Sequenz von Etiketten auf dem Format <int number of bytes> <label> <int number of bytes> <label> <int 0>, variable Länge).

Es ist nicht möglichfür ein MX aufzeichnen, um eine IP-Adresse als seine Daten zu haben.


16
2018-01-28 17:34



Sie könnten die Beschriftung zur textuellen Darstellung einer IP-Adresse machen, aber dies wäre nicht sinnvoll, da sie nicht als Hostname aufgelöst werden kann. - Michael Hampton♦
@MichaelHampton Tatsächlich ist es möglich, einen Namen mit all-numerischen Bezeichnungen zu haben, die in der normalen menschenfreundlichen Darstellung auf den ersten Blick wie eine IPv4-Adresse aussehen. 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 einfach sein wird) NXDOMAIN). - Håkan Lindqvist
Dies beantwortet die Frage des OP nicht wirklich. Das sagst du grundsätzlich "Denn so ist es". - dr01
@ dr01 Wenn man bedenkt, dass die Frage deutlich zeigt, dass sie nicht weiß, "wie es ist" ("Sie sollten einen MX-Eintrag nicht direkt auf eine IP-Adresse verweisen, sondern stattdessen auf einen A-Eintrag zeigen"), obwohl dies tatsächlich nicht möglich ist einen anderen Wert als einen Namen haben), ich denke nicht, dass es fehl am Platz ist, auf die Art und Weise zu verweisen, wie die Dinge sind, und warum dies jede andere Option unmöglich macht. Ich habe das Gefühl, dass Sie viel in die Frage hineinlesen, die eigentlich nicht da ist. - Håkan Lindqvist
@ d01 Dh, denke nicht, dass die Frage als akademische Frage über die Designentscheidungen in den frühen Tagen von DNS oder ähnlichem liest, sondern einfach eine Frage darüber, wie MX Aufzeichnungen, die tatsächlich in der Welt existieren, können oder sollten verwendet werden. - Håkan Lindqvist


Ich werfe das als Vermutung aus. Natürlich bin ich zuhause mit der Grippe, also bin ich vielleicht verrückt.

RFC 974 besagt:

Der erste Schritt für den Mailer bei LOCAL besteht darin, eine Anfrage für MX-RRs zu stellen      für REMOTE. Es wird dringend empfohlen, diesen Schritt jedes Mal zu unternehmen      Ein Mailer versucht, die Nachricht zu senden. Die Hoffnung ist, dass sich Änderungen in      Die Domain-Datenbank wird schnell von Mailern und damit Domain verwendet      Administratoren können Nachrichten für unterwegs umleiten      defekte Hosts durch einfaches Ändern ihrer Domain-Datenbanken.

Indem man statt IP einen Namen verlangt, fördert es diese Praxis nachdrücklich. Die Namen können gleich bleiben, und im Fall von Lastenausgleich oder DR müssen Sie sich nicht darum sorgen, den MX-Eintrag selbst zu ändern und auf die DNS-Verbreitung zu warten.


6
2018-01-28 17:40



Antworten Stapel tauschen Fragen an Ihrem freien Tag, während Sie an der Grippe krank sind ... Ich tippe meinen Hut zu Ihnen, guter Herr! - Mike B
@MikeB danke ... - TheCleaner


Einige E-Mail-Server (wie z. B. exim) erlauben ausdrücklich nicht das Senden an MX-Datensätze, die auf eine reine IP-Adresse verweisen. Daher müssen Sie stattdessen einen vollqualifizierten Domänennamen verwenden, um kompatibel zu sein. Dies liegt daran, dass die meisten Server erwarten, dass der MX-Eintrag einen Hostnamen und keine IP enthält (dafür gibt es A-Datensätze).

Bearbeiten: Um zu erarbeiten, in DNS jeder Datensatz hat strenge Anforderungen für die Art der Daten, die jeder Datensatz enthalten kann. Bei MX-Datensätzen handelt es sich um einen Hostnamen nur.


2
2018-01-28 17:29



Warum hat exim MX-Records nicht auf die IP-Adresse verweisen lassen? Es kommt mir merkwürdig vor! Ich verstehe ich sollte nicht wegen der Konvention, aber ich verstehe es nicht Warum Es ist gemacht illegal. - dayuloli
Ich sehe nicht, wie irgendeine MTA dies unterstützen könnte MX Datensatz kann möglicherweise keine IP-Adresse als Wert haben. - Håkan Lindqvist
@ HåkanLindqvist Ihre Antwort oben verdeutlicht diesen Punkt für mich! Vielen Dank! - dayuloli


IN RFC 1025 MX-Datensätze zeigen nur auf einen RR (Ressourceneintrag) eines A-Datensatzes oder CNAME.

So fragt der Mail-Server, der die Mail sendet, nach dem RR eines MX-Eintrags, der MX-Eintrag listet A-Einträge von Servern auf, der Mail-Server führt eine Vorwärtssuche durch, um einen A-Eintrag zu erhalten, und leitet die Mail dann über smtp an den als Host aufgelisteten Diensthost weiter ein Mail-Server, der bereit ist, Mail für diese Domain zu empfangen.

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

Antwort - Wegen des Vertrauens

Viele der geltenden Regeln in Bezug auf E-Mail haben sich entwickelt, um das Vertrauen zwischen Domänen aufrecht zu erhalten, dass die zurückgesendeten Nachrichten tatsächlich gültig sind. All dies soll SPAM reduzieren.

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

Alle diese essentiellen Komponenten für eine Basis zum Aufbau eines Mail-Servers haben zumindest eine kleine Komponente, die darauf beruht, vertrauenswürdige Kommunikation zu schaffen 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


2
2018-01-28 17:42





Der Zweck von MXAufzeichnungen ist das ein Anwendung (Mail-Transfer) kann über den zu verwendenden Host erfahren. Auf Anwendungsebene Host Namen sind das richtige zu verwenden (nicht IP-Adressen).

Auch das Hinzufügen des Konzepts des Variantentyp-Datensatzes zu DNS führt zu einem Komplikationsfaktor und somit zu einem Einstiegspunkt für Probleme, Implementierungsfehlschläge und Sicherheitsherausforderungen. Zum Beispiel, 1.2.3.4.example.com. ist ein gültiger Hostname (ja, es ist, auch im Lichte von RFC1034, 3.5). Angeben dieses Hosts als MX in einer Bind-Konfigurationsdatei für example.com könnte aussehen

.  MX 10  1.2.3.4

und vermutlich ist das genau so, wie ein MX-Record mit einer IP aussehen sollte. Und selbst die Informationen in einem DNS-Datagramm zu übertragen, erfordert einige schrullige Additionen; Der einfachste Weg wäre die Einführung eines Neu Ressourcendatensatztyp, MXA sagen wir, für die Disambiguierung. Aber dann wieder, warum die Last solch eine neue Rekordart wann einführen

. MXA 10 5.6.7.8

könnte immer mit ersetzt werden

. MX 10 dummy
dummy A 5.6.7.8

(und würde auch von DNS-Clients unterstützt werden, die nichts davon wissen MXA Aufzeichnungen)?


2
2018-01-31 21:49