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

Domäne
für welche der Eintrag ist
Klasse
IN (Internet)
Typ
MX (Mail Exchange) – Liste
Priorität
Gibt die Priorität des Eintrags an (Einträge mit niedrigeren Werten werden bevorzugt, zulässig sind Werte zwischen 0 und 65535[1])
Mail-Server
Name des Mail-Servers

Beispiel

Soll eine Mail an <[email protected]> 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.

  • RFC 974 – Mail Routing and the Domain System. Januar 1986 (veraltet, englisch).
  • RFC 2821 – Simple Mail Transfer Protocol. (veraltet, englisch).
  • RFC 5321 – Simple Mail Transfer Protocol. (englisch).
  • RFC 7505 – A “Null MX” No Service Resource Record for Domains That Accept No Mail. (englisch).
  • Other Trick For Blocking Spam. apache.org – Anleitung: Fake MX-Record, um Spam zu blocken (englisch)

Einzelnachweise

  1. “unsigned 16-bit integer”. RFC 974 – Mail Routing and the Domain System. Januar 1986, S. 2 (englisch).