Zum Inhalt springen

Postfix mit kleinem DNS Problem

In letzter Zeit haben sich im Postfix Logfile folgende Meldungen gehäuft:

Dec 4 13:40:53 rom postfix/smtp[1474]: 4431B08: to=<xyz@example.com>,
relay=none, delay=0, status=bounced (Host or domain name not found. Name service error for name=example.com type=A: Host found but no data record of requested type)

Betroffen hat es nur ein paar Domains, aber der Sache muss doch nachgegangen werden, die Mails kommen ja nicht an! 🙂

Rein vom Inhalt der Fehlermeldung tippt man natürlich gleich mal auf ein DNS Problem, aber DNS funktioniert auf dem Server ohne Probleme – jeder einzelne in der /etc/resolv.conf Datei eingetragene DNS Server liefert die passenden Antworten (dig @nameserver-ip example.com mx) bei der Frage nach dem Mailserver bzw. MX Record.

Auch Postfix hat in der Datei /var/spool/postfix/etc/resolv.conf eine korrekte Kopie der /etc/resolv.conf und verwendet diese auch. Das löschen des DNS Cache mit „rndc flush“ hat leider auch keine Linderung gebracht.

Meine vorläufige Lösung für dieses Problem ist wie folgt:

Da der Server ein Root-Server ist und der vorhandene DNS Server alle Anfragen nach fremden Domains von aussen blockt und nur die gehosteten Domains beantwortet, muss erst mal eine View her die vom lokal laufenden Postfix genutzt werden kann.

/etc/bind/named.conf.local:

acl „trusted“ {

localhost;

};

view „internal-in“ in {
match-clients { trusted; };
recursion yes;
additional-from-auth yes;
additional-from-cache yes;

zone „.“ in {
// Link in the root server hint file.
type hint;
file „/etc/bind/db.root“;
};

};

Durch diesen Eintrag kann nur von der IP-Adresse 127.0.0.1 eine Anfrage abseits der gehosteten Domains an den DNS Server gestellt werden, die Datei /etc/bind/db.root enthält eine Liste der aktuellen Root-DNS-Server und kann mit „dig ns . @a.root-servers.net > /etc/bind/db.root“ aktualisiert werden (sollte sie auch von Zeit zu Zeit, sonst ändern sich zu viele Root-DNS-Server-Adressen und der DNS Server findet keine mehr).

In der Datei /etc/resolv.conf füge ich in der ersten Zeile jetzt noch „nameserver 127.0.0.1“ ein und schon gehen alle DNS Anfragen vom lokalen Rechner nicht mehr über die DNS Server des Providers sonder über den lokalen DNS Server.

Nach dem Starten von Postfix verwendet auch der Mailserver die entsprechende resolv.conf und somit den lokalen DNS Server.

Und ab dem Moment funktionierte auch das Zustellen an die vorher fehlerhaften Domains wieder!
Etwas schade bei der Lösung ist, dass mir nach wie vor nicht wirklich klar ist warum es vorher teilweise nicht funktioniert hat – da ja der „dig“ immer korrekte antworten geliefert hat.

Ein passendes Sprichwort dazu: Der Zweck heiligt die Mittel!

Schlagwörter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert