Danke Unitymedia/Vodafone! Danke BIND9

Während das erstere eher ironisch gemeint ist, es das zweite ein ganz ehrlicher Dank. Aber wieso schreibe ich das so? Eine kurze Geschichte, wie ich mal meinen Unitymedia-Anschluss auf eine höhere Geschwindigkeit umstellen wollte.

Die Vorgeschichte

Ich bin nunmal Informatiker. Das bedeutet, ich probiere gerne Dinge aus. So habe ich auch einen kleinen Raspberry, auf dem ich eine private Cloud (Nextcloud) verwende. Um von außen dranzukommen, klar, habe ich eben eine DynDNS-Weiterleitung auf die öffentliche IP meines Hausanschlusses bei Unitymedia und entsprechende Portfreigaben. Alles funktioniert.

Nun hatte ich die Idee, ich könnte Geld sparen, da ich immer weniger klassisch fernsehe und immer mehr streame – also weg mit dem HD-Tarif und her mit mehr Geschwindigkeit. Im Rahmen des Telefonats mit der netten Dame von Vodafone/Unitymedia habe ich dann mehrfach nachgefragt, ob nicht doch aus meinem IPv4-Tarif plötzlich ungewollt DSLite wird. „Nein“, so sagte die Dame, „alles bleibt wie bisher“.

Das Unheil

Und weil ich mich ja auf mein 2-wöchiges Widerrufsrecht berufen kann, habe ich das mal bestellt. Trotz angekündigter Wartezeit wegen hoher Nachfrage trudelte bereits 2 Tage später das neue Kabelmodem, eine so genannte Vodafone Easybox, bei mir ein. Erstmal nur den Rechner angeschlossen, alles mögliche wieder so eingestellt, wie bereits am alten Router (insbesondere die Portweiterleitungen) und dann: Stecker raus, neues Gerät hingestellt, Stecker rein. Und siehe da: Nach einigen Minuten bangen Wartens funktionierten nicht nur Internet, sondern auch das Telefon. Das war ja schon mal schön.

Aber was war das?

Meine Cloud (und noch ein weitere Dienst, den ich nach außen bereitstelle) waren hingegen nicht mehr erreichbar. Einfach tot. Von keinem PC und keinem Handy mehr erreichbar. Na gut, dachte ich, da warte ich nochmal ein bisschen. Beim Einkaufen probierte ich dann den Zugriff auf meiner Cloud nochmal von unterwegs und siehe da, sie war online! Hurra!

Wieder zuhause: Kein Zugriff. Komisch. Also, WLAN am Handy nochmal deaktiviert: Zugriff möglich. WLAN am Handy wieder aktiviert: Kein Zugriff. Sprich: Zugriff von außerhalb möglich, aber von innerhalb desselben LAN nicht? Das gab’s ja noch nie! Normalerweise ist es immer umgekehrt!

Nach langem Googeln dann:

Die Lösung

Die tolle Vodafone Easybox unterstützt (im Gegensatz zu allen mir bisher bekannten Routern)  kein NAT-Loopback! Sprich: Sobald eine Anfrage aus dem internen Netz nach außen erfolgt und wieder zurückkommt, wie in diesem Fall, streckt die Easybox die Flügel und verwirft die ganze Anfrage. Super! Was jetzt?

Nun, die Lösung ließ sich ebenfalls mit einigem Zeitaufwand ergoogeln. Ein eigener Nameserver muss her und der muss dafür sorgen, dass die Anfragen auf den entsprechenden Domainnamen eben nicht mehr auf die externe IP verweisen, sondern auf die interne IP im LAN. BIND9 ist auf dem Raspberry ja schnell aufgesetzt. Dann definiert man noch eine Response Policy Zone und schon geht’s.

Im Detail

Man lege zunächst eine Konfiguration für die RPS an namens db.rpz im Ordner /etc/bind:

Hierdurch werden quasi Einträge der eigentlichen DNS-Antwort „überschrieben“. Dadurch erfolgt eine Umleitung auf interne IP-Adressen anstatt auf die externe IP-Adresse des Routers. Hat man diese Konfiguration angelegt, muss man in der lokalen Konfiguration noch eine entsprechende Zone anlegen:

Schlussendlich müssen wir die Zone noch in den Optionen aktivieren:

Startet man dann den Dienst neu funktioniert sowohl von außerhalb des LAN als auch von innerhalb alles wie vorher.