Neulich war ich mal wieder in der Situation, ein seltsames eMail-Zustellungsproblem debuggen zu müssen. Genau genommen hatte mir jemand eine eMail geschickt, die aber nie bei mir angekam. Statt dessen erhielt er nach zwei Tagen eine Bouncemail und wandte sich daraufhin an mich mit der Frage, warum unser Server seine eMail nicht angenommen hätte. Ich ließ mir die Bouncemail zeigen und schon bald stellt sich heraus, daß er sich bei meiner eMail-Adresse vertippt hatte (genau genommen bei der Domain). Das Rätsel war nun, warum ihm sein Mail-Programm dies nicht sofort oder zumindest sehr zeitnah nach dem Absenden der Mail mitgeteilt hat. Des Rätsels Lösung erfordert einen kleinen Exkurs:
Es ist seit einigen Jahren leider üblich geworden, daß Provider an der DNS-Infrastruktur des Internets rumpfuschen. Das Domain Name System (DNS) ist bekanntlich dafür verantwortlich Hostnamen wie blog.jonaspasche.com
in IP-Adressen aufzulösen. Dieser Dienst ist für das Funktionieren des Internets wie wir es kennen so essentiell, daß Störungen und Manipulationen am DNS in der Regel mit der sonst allzu oft bemühten Umschreibung „das Internet ist kaputt“ in der Tat ausnahmsweise gut umschrieben sind. Zuletzt spürbar wurde dies, als die für den „.de“-Bereich zuständige DENIC im Sommer dieses Jahres eine massive Störung hatte die dazu führte, daß DNS Server für den größten Teil der Domains im „.de“-Bereich fälschlicherweise die Information ausgaben, die Domains existieren schlicht nicht. Sehr viele deutsche Webseiten waren nicht mehr erreichbar und etliche eMails gingen verloren, es dauerte in den meisten Fällen Stunden, vereinzelt sogar Tage, bis alle Folgen der Störung behoben waren — und das bei einer Störung die offenbar in unter einer Stunde bemerkt und behoben wurde. Das DNS ist in der Tat eines der kritischsten Systeme im Internet.
Was genau tun nun also Provider, das man als herumpfuschen bezeichnen könnte und was ist die Folge, wenn das DNS doch so wichtig ist? Nun, es geht dabei um einen speziellen Fall im DNS, der immer dann eintritt wenn jemand versucht einen Hostnamen aufzulösen, den es nicht gibt. Die korrekte Antwort die man in so einem Fall von DNS erhalten möchte ist natürlich, daß es den Hostnamen nicht gibt, technisch: NXDOMAIN (für Deutsche gut als NIX-DOMAIN zu merken). Die meisten modernen Browser melden dies dem User mittlerweile mit einer verständlichen Fehlermeldung, einige bieten sogar direkt an nach ähnlichen Hostnamen in den einschlägig bekannten Suchmaschinen zu suchen.
Vor einigen Jahren erregte Verisign (deren Geschäft ist neben dem Ausstellen von Sicherheitszertifikaten z.B. für den bekannten HTTPS-Service vor allem der Betrieb eines guten Teil der DNS-Infrastruktur) großes Aufsehen, als sie damit begannen bei nicht existenten Hostnamen nicht mehr korrekt NXDOMAIN zu melden, sondern statt dessen die IP-Adresse eines ihrer Server herausgaben. Wenn man zufällig versucht hatte, mit dem Browser einen Hostnamen für eine Webseite aufzulösen, bekam man dann eine andere Webseite als die gewünschte angezeigt auf der einem die nicht gefundene Domain zum Kauf angeboten wurde. Alle anderen User (z.B. diejenigen die gerade eine Mail senden wollten) schauten in die Röhre, denn ihr Programm hat diese „Serviceleistung“ von Verisign natürlich nicht verstanden und es kam zu Fehlern. Das Ende vom Lied war, daß Verisign diesen „Service“ nach langen Protesten schließlich wieder eingestellt hat.
Aber weil schlechte Beispiele nunmal Schule machen, kamen seitdem haufenweise Netzzugangsprovider auf die glorreiche Ideen den Unsinn nachzumachen und ihrerseits den Usern ungefragt Domains zum Kauf anzubieten oder auch schlicht ihnen unerwünschte Werbung anzuzeigen. Das ganze wäre lediglich ärgerlich, wenn es nicht haufenweise Fehler verursachen würde. Eines der anschaulichsten Beispiele ist die Problematik bei eMails, die auch bei meinem Bekannten zugeschlagen hatte. Dessen Mailprogramm hat nämlich den vertippten Hostnamen aufgelöst und statt einer korrekten Fehlermeldung (NXDOMAIN eben) eine IP erhalten –- und folgerichtig versucht die eMail dorthin zuzustellen. Nur antwortete unter dieser Adresse natürlich kein Mailserver, also hat es die Mail zurückgestellt und es später nochmal versucht. Dieses Spiel wiederholte sich dann zwei Tage lang, bis das Mailprogramm schließlich aufgegeben hat und die Mail bouncen lies. Hätte der Netzzugangsprovider meines Bekannten nicht im DNS rumgepfuscht, hätte es schon kurz nach dem Absenden der Mail eine Fehlermeldung gegeben, die in (hoffentlich) etwas verständlicheren Worten ausgedrückt hätte, was NXDOMAIN nunmal bedeutet: die Domain die Du da genannt hast gibt es nicht. — Meinem Bekannten wäre der Fehler dann vermutlich sogar aufgefallen.
Wie schon angedeutet können derartige Manipulationen am DNS noch ganz andere Fehler zur Folge haben, die sich von Anwendung zu Anwendung zum Teil stark unterscheiden. Unter anderem wird auch eine bestimmte Methode der Spam-Bekämpfung dadurch behindert, bei der der empfangende Mailserver im DNS nachschaut, ob der andere Server der sich da gerade bei ihm gemeldet hat im DNS verzeichnet ist und daher eventuell kein Spammer sein könnte.
Letztlich gibt es zu dieser Marketing-Idee nur zu sagen, daß es auf Sabotage hinausläuft. Jeder der so etwas implementiert und nicht frei von Sachverstand ist, sollte nach kurzem Nachdenken bemerken, was für eine schlechte Idee das ist.
Was kann man also tun? Nun, wenn man statt eines kleinen Plasterouters zum Beispiel einen Mini-PC oder etwas in der Art als Router betreibt, kann man darauf einen lokalen DNS Resolver betreiben. Der übernimmt dann die Aufgabe der normalerweise vom Netzzugangsprovider bereitgestellten DNS Resolver und ist frei von solchen Manipulationen, da er die DNS Resolver des Providers gar nicht fragt, sondern alles selbst auflöst. (Diese Methode schützt allerdings nicht vor Manipulationen durch Verisign oder andere Betreiber von Root-Nameservern — aber bei denen sind diese Manipulationen zum Glück wieder unüblich geworden.)
Wer nur einen Plastikrouter hat, kann überlegen diesen mit DD-WRT oder OpenWRT zu bespielen (dabei geht allerdings die Garantie verloren) und kann dann dort einen DNS Resolver installieren. Anleitungen gibt es im Internet zuhauf. Für unsere Lieblings-DNS-Software djbdns gibt es sie hier (vorher muß man djbdns natürlich erstmal installieren). Alternativ hat man auch die Möglichkeit auf seinem eigenen Rechner lokal einen Resolver zu betreiben.
Und es gibt für einige Kunden von Netzzugangsprovidern noch einen dritten Weg: OptOut. Ich hab zufällig einen Heise-Artikel zum Thema entdeckt, auf dessen letzter Seite erwähnt wird, daß man bei T-Online, Alice und Versatel im Kunden-Webinterface diese Manipulation abstellen kann. Das ist immerhin etwas, auch wenn ich natürlich finde, wenn dann sollte es hier eins OptIns bedürfen und nicht umgekehrt.
Erfreulicherweise hab ich bei dieser Gelegenheit festgestellt, daß die Versatel diese Funktion bei mir schon von vornherein abgestellt hat — was daran liegen könnte, daß ich beim Bestellen des Anschlusses erwähnt habe, daß ich ITler bin und über diesen Anschluß arbeiten werde. Vielleicht war es auch nur ein Zufall, vielleicht verfährt die Versatel mittlerweile auch immer so, was ich natürlich sehr begrüßen würde.
Einen lokalen DNS Resolver betreibe ich natürlich trotzdem, schon alleine aus Sicherheitsgründen und damit DNS in meinem Heimnetzwerk performanter läuft. Ein Nebeneffekt der ganzen Geschichte wäre auch gewesen, daß mich das sogenannte „Zugangserschwerungsgesetz“ nicht betroffen hätte, wenn es denn umgesetzt worden wäre. Aber ich betreibe den DNS Resolver nicht deswegen und hab ihn auch schon viel länger als es dieses dumme Gesetz gibt.
Meine eMails kommen jedenfalls an oder bouncen, so wie es sich gehört.