MX Resource Record
Ein MX Resource Record (englisch MX-Eintrag, eigentlich Mail Exchange Resource Record, MX-RR) einer Domain ist ein Resource Record im Domain Name System, der sich ausschließlich auf den Dienst E-Mail bezieht.
Ein MX-Record sagt aus, unter welchem Fully Qualified Domain Name (FQDN) der Mail-Server zu einer Domäne oder Subdomäne erreichbar ist. Es ist üblich, für eine Domäne mehrere MX-Records zu definieren mit unterschiedlichen Prioritäten, so dass bei Ausfall eines Mail-Servers ein anderer die E-Mails entgegennehmen kann. Dies erhöht die Wahrscheinlichkeit, dass eine Mail trotzdem an die Empfängerdomain zugestellt werden kann.
Schließlich ermöglicht dieses Verfahren, einzelne (physisch getrennte) Mailserver für Wartungsarbeiten vom Netz zu nehmen, ohne den Empfang von Mails zu gefährden.
Beim Versand einer E-Mail fragt der Ausgangs-Mailserver zunächst den MX-RR der Domain (der Teil der E-Mail-Adresse nach dem „@“) ab, dem die Empfängeradresse zugeordnet ist. Im Regelfall existiert mindestens ein MX-RR zu jeder Domain (auch Sub-Domains). Der Ausgangsserver baut dann eine SMTP-Verbindung mit dem ersten gelisteten Mailserver der Eingangsdomain auf. Falls kein MX-RR vorhanden ist, versucht der Mailserver den A Resource Record (die IP-Adresse) der Domain festzustellen. Wenn das DNS auf diese Anfrage eine IP-Adresse zurückgibt, versucht der Mailserver zu dieser IP-Adresse eine SMTP-Verbindung aufzubauen. Gelingt auch das nicht, meldet er einen Fehler (Host unknown).
Falls ein MX-RR vorhanden ist, schickt er die E-Mail an den Mailserver, der dort vermerkt ist. Falls mehrere MX-RRs vorhanden sind, wird die E-Mail an den Mailserver mit der niedrigsten Wertigkeit („preference“) gesendet. Daher wird diese Wertigkeit auch häufig als Distanz bezeichnet. Falls dieser nicht erreichbar ist, versucht der Mailserver den nächsten Mailserver in der MX-Liste zu erreichen usw. Dadurch kann der Ausfall eines Mailservers relativ einfach kompensiert werden.
Aufbau
Beispiel
Soll eine Mail an <Mary.Smith@wikipedia.org> versendet werden, überprüft der Mailserver des Absenders zunächst den MX-Record von wikipedia.org. Er bekommt folgende Mailserver genannt:
wikipedia.org preference = 10, mail exchanger = mchenry.wikimedia.org wikipedia.org preference = 50, mail exchanger = lists.wikimedia.org
Nun erkundigt er sich nach dem AAAA-Record und dem A-Record des Servers mit der höchsten Priorität (d. h. kleinsten Zahl), um ihm die zugehörige IP-Adresse zu entnehmen. Er bekommt folgende Auskunft:
mchenry.wikimedia.org internet address = 208.80.152.186 mchenry.wikimedia.org AAAA IPv6 address = 2620:0:860:2:219:b9ff:fedd:c027
Bei dieser Adresse versucht er nun, die Nachricht abzuliefern; misslingt dies, versucht er es anschließend mit der Alternative lists.wikimedia.org.
Manuelle Überprüfung von MX-Einträgen
Normalerweise tätigen Mailserver entsprechende DNS-Anfragen nach MX-Records beim Versenden von E-Mails.
MX-Records lassen sich händisch mit DNS-Abfragetools abfragen. Da diese jedoch meist standardmäßig nur A-Records abfragen, muss in diesem Fall der Anfragetyp explizit angegeben werden.
Windows / Unix (samt Mac OS X)
Unter Microsoft Windows, Unix sowie Mac OS X kann mit dem mitgelieferten Kommandozeilen-Tool nslookup ein MX-Record abgefragt werden. Das Setzen des Types geschieht mit set type=MX
.
nslookup > set type=MX > wikipedia.org Server: verwendeter Nameserver, aufgelöster Name Address: verwendeter Nameserver, IP-Adresse
Nicht-autorisierende Antwort: wikipedia.org MX preference = 10, mail exchanger = mchenry.wikimedia.org wikipedia.org MX preference = 50, mail exchanger = lists.wikimedia.org
mchenry.wikimedia.org internet address = 208.80.152.186 mchenry.wikimedia.org AAAA IPv6 address = 2620:0:860:2:219:b9ff:fedd:c027 lists.wikimedia.org internet address = 208.80.154.4 > exit
Unix Erweitert
Unter Unix- und Linux-Derivaten gibt es verschiedene Möglichkeiten, MX-Records abzufragen. Das Programm dig gibt die vollständige Antwort des DNS-Servers zurück:
$ dig -t MX wikipedia.org
; <<>> DiG 9.4.2 <<>> -t MX wikipedia.org
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61573
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2
;; QUESTION SECTION:
;wikipedia.org. IN MX
;; ANSWER SECTION:
wikipedia.org. 2481 IN MX 10 mchenry.wikimedia.org.
wikipedia.org. 2481 IN MX 50 lists.wikimedia.org.
;; ADDITIONAL SECTION:
mchenry.wikimedia.org. 2164 IN A 208.80.152.186
lists.wikimedia.org. 2164 IN A 91.198.174.5
lists.wikimedia.org. 550 IN AAAA 2620:0:862:1::25:1
...
$
Eine Schnell-Abfrage ist auch mit dem Programm host möglich:
$ host wikipedia.org wikipedia.org has address 208.80.152.2 wikipedia.org mail is handled by 50 lists.wikimedia.org. wikipedia.org mail is handled by 10 mchenry.wikimedia.org. $
Abfragen sind auch mit dem Programm nslookup interaktiv möglich.
$ nslookup <<EOT > set type=MX > wikipedia.org > EOT Server: verwendeter Nameserver, aufgelöster Name Address: verwendeter Nameserver, IP-Adresse
Nicht autorisierte Antwort: wikipedia.org MX preference = 10, mail exchanger = mchenry.wikimedia.org wikipedia.org MX preference = 50, mail exchanger = lists.wikimedia.org
mchenry.wikimedia.org internet address = 208.80.152.186 lists.wikimedia.org internet address = 91.198.174.5 lists.wikimedia.org has AAAA address 2620:0:862:1::25:1 $
Die Abfrage lautet im nicht-interaktiven Modus:
$ nslookup -querytype=MX wikipedia.org ... $
Reverse MX Record
Eine spezielle Form von MX-RRs sind Reverse-MX-RRs. Hierbei handelt es sich um die Domain-Name-System-Einträge der versendenden Mailserver. Diese Einträge werden z. B. bei der Sender Policy Framework Technology verwendet.
Priorität und Preference
Der Mailserver mit der höchsten Priorität ist derjenige mit dem niedrigsten Preference-Wert.
Eine bei Spammern beliebte Methode ist, eine Verbindung zu demjenigen Mailserver aufzubauen, der in der MX-Liste mit der geringsten Priorität angegeben ist (derjenige mit dem höchsten numerischen Wert). Hierdurch sollen Spamfilter umgangen werden, die auf dem Mailserver mit der höchsten Priorität laufen.
Weblinks
- RFC 974 – Mail Routing and the Domain System (veraltet)
- RFC 2821 – Simple Mail Transfer Protocol (veraltet)
- RFC 5321 – Simple Mail Transfer Protocol
- RFC 7505 – A "Null MX" No Service Resource Record for Domains That Accept No Mail
- Other Trick For Blocking Spam – Anleitung: Fake MX-Record, um Spam zu blocken (englisch)