Kategorien
Tutorials

Server im Heimnetz über FRITZ!Box mit DS-Lite aus dem Internet erreichen

Wer zuhause einen Server betreibt, möchte wahrscheinlich auch von unterwegs auf diesen zugreifen. Seit IPv6 und Dual Stack Lite (DS-Lite) ist dies nicht mehr so einfach möglich wie früher unter IPv4, da beispielsweise viele Mobilfunknetze noch immer mit IPv4-Adressen ausgestattet sind und eine Kommunikation zwischen IPv4 und IPv6 nicht möglich ist. Mit etwas Aufwand lässt sich ein solches Setup dennoch realisieren.

Getestet wurde dieser Artikel mit der FRITZ!Box 6490 und FRITZ!OS 06.50.
Dieser Artikel setzt einen fertig konfigurierten Server mit IPv6-Adresse voraus.

Technischer Hintergrund

Zu IPv4-Zeiten hätte man für einen Server, der im Internet erreichbar sein soll, einfach eine Portweiterleitung im Router eingerichtet. Der Server wäre dann über die öffentliche IPv4-Adresse des Router mit Angabe des Ports erreichbar. Mit IPv6 hat sich einiges geändert. Beispielsweise gibt es keine Portweiterleitungen mehr, da die Geräte über eine öffentliche IPv6-Adresse (Global Unicast) verfügen und somit (theoretisch) direkt im Internet ansprechbar sind. Mit IPv6 ändert sich außerdem, dass der Router nicht mehr nur eine Adresse, sondern einen ganzen Adressblock bekommt, sodass alle Geräte hinter dem Router über eine eigene öffentliche IPv6-Adresse erreichbar sein können. Theoretisch muss man also nur eine Portfreigabe in der Firewall des Routers konfigurieren und der Server ist im Internet erreichbar.

Da viele Internetanschlüsse aber keine feste, sondern eine dynamische IPv6-Adresse vom Privider erhalten, kann sich die öffentliche IPv6-Adresse der im Heimnetz befindlichen Server ebenfalls ändern. Hier kommt dann wieder DynDNS für die IPv6-Server ins Spiel: https://nocksoft.de/tutorials/dyndns-fuer-ipv6-server-hinter-fritzbox-konfigurieren/

In der Theorie ist der Server nach der Portfreigabe in der Firewall direkt im Internet erreichbar. In der Praxis gibt es allerdings das Problem, dass eine Kommunikation nur zwischen IPv4 und IPv4 bzw. IPv6 und IPv6 möglich ist. Da viele Server, Firmen und Mobilfunknetze allerdings immer noch ausschließlich mit IPv4-Adressen arbeiten, wäre eine Kommunikation nicht immer möglich. Daher wurde die Technik Dual Stack bzw. Dual Stack Lite eingeführt. Hat man einen Dual Stack Anschluss, verfügt man über eine IPv4- und eine IPv6-Adresse. Bei einem Dual Stack Lite Anschluss hingegen hat man nur eine IPv6-Adresse. Anfragen zu IPv4-Servern werden dann getunnelt. Allerdings funktioniert dieses Tunnelverfahren nur in die eine Richtung. Wenn man jetzt also auf einen IPv6-Server hinter einem Dual Stack Lite Anschluss zugreifen möchte und eine IPv4-Adresse nutzt, muss man auf einen Portmapper ausweichen, um die IPv4-Pakete in IPv6-Pakete zu verpacken.

Woher weiß ich, ob ich Dual Stack Lite verwende?

Wenn man sich nicht sicher ist, ob man Dual Stack Lite verwendet, kann man dies in der Übersicht der FRITZ!Box sehen (FRITZ!Box verwendet einen DS-Lite-Tunnel):

Fritzbox Dual Stack Lite
In diesem Beispiel verwendet die FRITZ!Box einen DS-Lite-Tunnel.

Was ist ein Portmapper?

Da wir immer auf unseren Heimserver zugreifen möchten, benötigen wir, wie oben beschrieben einen Portmapper. Dies ist nötig, da unser Heimserver bei einem Dual Stack Lite Anschluss nur über IPv6 erreichbar ist und wir unterwegs oft nur eine IPv4-Adresse nutzen können. Der Portmapper ist ein Server, der sich in die Kommunikation zwischen Client (IPv4) und Heimserver (IPv6) schaltet. Er übersetzt quasi, wenn man so will.

IPv4 IPv6 Portmapper für Dual Stack Lite
Der Portmapper vermittelt zwischen IPv4-Client und IPv6-Server.

Öffentliche IPv6-Adresse des Servers herausfinden

Am wichtigsten für die Konfiguration ist natürlich die IPv6-Adresse, unter die der Heimserver im Internet erreichbar ist. Konkret handelt es sich dabei um die öffentliche IPv6-Adresse (Global Unicast) des Heimservers. Um die öffentliche IPv6-Adresse des Heimservers zu ermitteln, kann vom Heimserver aus die URL https://www.wieistmeineip.de/ aufgerufen werden, sofern der Heimserver eine GUI mit Browser hat. Sollte keine GUI mit Browser zur Verfügung stehen, kann eine Eingabeaufforderung verwendet werden.
Eingabeaufforderung unter Windows:

Windows IPv6-Adresse ermitteln
Per ipconfig kann die IPv6-Adresse ermittelt werden.

Es werden die Einträge "IPv6-Adresse" und "Temporäre IPv6-Adresse" angezeigt. Beides sind global routbare IPv6-Adressen und funktionieren daher für unser Vorhaben. Die temporäre IPv6-Adresse (Privacy Extension) wechselt jedoch nach einer Zeit. Ihr Interface Identifier wird zufällig erzeugt. Dies soll Datenschutz und Privatsphäre stärken.
Eingabeaufforderung unter Linux:

Ubuntu IPv6-Adresse ermitteln
Unter Ubuntu kann mit ifconfig die IPv6-Adresse ermittelt werden.
Die IPv6-Adresse, die mit fe80 beginnt, kann nicht verwendet werden, da diese nur lokal routbar ist (Site Local Unicast).

Port in der Firewall (FRITZ!Box) freigeben

Im Router muss schließlich eine Portfreigabe für den Heimserver erstellt werden. Das geht unter Internet -> Freigaben -> IPv6:

Fritzbox IPv6 Portfreigabe
Grundvoraussetzung für den Zugriff auf einem IPv6-Server im Heimnetz ist eine Portfreigabe in der Firewalll des Routers.

Dort ist schließlich auf "Neues Gerät" zu klicken und entsprechend auszufüllen (bezüglich Interface-ID siehe Hinweis weiter unten). Ich richte in diesem Test eine Freigabe für einen Webserver ein, daher Port 80:

Fritzbox IPv6 Portfreigabe

Jetzt ist der Heimserver bereits (von IPv6 Clients) im Internet erreichbar.

Die FRITZ!Box verlangt die Interface-ID des Heimservers. Die Interface-ID entspricht den letzten 64 Bit, also den letzten vier Blöcken, der öffentlichen IPv6-Adresse des Heimservers.

Portmapper einrichten

Ein Portmapper kann beispielsweise über Anbieter wie Feste-IP.NET eingerichtet werden. Allerdings fallen dort geringe Gebühren an (pro Tag und Portmapper 1 Credit. 365 Credits kosten 4,95€ (Stand 27.10.2016)). Nachdem man dort einen Account erstellt hat (50 Credits gibt es kostenlos), kann man unter Mein Account -> Universelle Portmapper einen neuen Eintrag anlegen. Dort ist ein Alias zu wählen, über den der Heimserver später auch von IPv4-Clients erreichbar ist, die IPv6-Adresse des Heimservers und der entsprechende Port anzugeben:

IPv4 IPv6 Portmapper

In der Portmapper-Übersicht sieht man schließlich alle angelegten Portmapper. Links die IPv6-Adresse des Heimservers und rechts die Adresse, über die der Heimserver auch von IPv4-Clients erreicht werden kann.

IPv4 IPv6 Portmapper
Bei meinen Tests kam es gelegentlich vor, dass die FRITZ!Box eine Freigabe nicht sofort übernommen hat. Es kann in solchen Fällen helfen, erneut auf "Übernehmen" zu klicken oder die Freigabe zu deaktivieren und erneut zu aktivieren.
Wer in seinem Heimnetz einen Server betreibt, der auch im Internet erreichbar ist, sollte sich einmal über DMZs schlau machen, um das eigene Heimnetz nicht zu gefährden.

Weiterführende Links
http://www.ipv6-portal.de/
http://www.elektronik-kompendium.de/sites/net/1902111.htm
https://de.wikipedia.org/wiki/IPv6
http://www.ipv6-portal.de/glossar/dual-stack.html
http://www.feste-ip.net/dslite-ipv6-portmapper/allgemeine-informationen/
http://www.ipv6-portal.de/informationen/technik/interface-identifier.html
http://www.feste-ip.net/
http://www.feste-ip.net/fileadmin/FIP-Book.pdf
https://de.wikipedia.org/wiki/Demilitarized_Zone

Seit mehreren Jahren begeistere ich mich privat und beruflich für die IT. Das habe ich dann auch zum Anlass genommen, diesen Blog ins Leben zu rufen, um dort praxisnahe Tutorials über verschiedene IT-Themen zu schreiben und meine selbst geschriebene Software zu veröffentlichen.

4 Antworten auf „Server im Heimnetz über FRITZ!Box mit DS-Lite aus dem Internet erreichen“

Guten Tag,

ist kein richtiger Kommentar, eher ein Hilferuf :-)..Vielleicht hört ihn ja jemand.

Ich bin auf den Beitrag gestoßen, weil ich PLEX mit Fernzugriff aus dem localNetwork verfügbar machen will....PLEX läuft auf einem MacMini (Aktuelles OS). Nun habe ich das ganze mal mit Feste-IP.net in Verbindung mit MyFritz-Freigabe gemacht...Na ja geht so halb, da ich immer noch Firewallsperre von Feste-IP.net bekomme..geht über PLEX nur ein indirekter Zugriff, falls jemand PLEX kennt, der weiß was ich meinte.

Will hier auch nicht weiter ins Detail gehen. 🙂

Fakt ist ich habe dann herausgefunden, dass es an der MyFritz-Freigabe liegt, die ja automatisch eine IPv6 Freigabe erzeugt. Da ich hier in dem Beitrag gesehen habe, dass eine 6490 FritzBox verwendet wird, welche ich auch habe, dachte ich, mir kann vielleicht jemand helfen.

Nun endlich meine Frage....

Die IPv6 Freigabe wird ja auf ein Gerät gemünzt, und die Interface ID direkt gezogen. Wenn ich diese nun ändere, dann ändert sich nach einer Weile auch die Interface-ID wieder zurück. Wie bekomme ich es hin, dass dies so geht, wie in dem Beitrag? Sie haben ja ein eigenes Gerät hinterlegt, sehe ich das richtig? Vielleicht kann mir jemand helfen...

Hallo,
auch kein richtiger Kommentar sondern eher eine Anfrage zur Unterstützung. Ich möchte einen Server aus dem Internet erreichbar machen. Mein DSL und FB laufen im DS-Lite-Modus. Die Portfreigabe auf der FB habe ich entsprechend eingerichtet und wollte den Zugriff erst mal via IPv6 testen. (IPv4 ist mir egal bzw. wollte ich später über einen Portmapper machen.)
Doch ich komme vom Internet nicht auf den Host (Test mittels Telnet). Ich habe von verschiedenen fremden IPv6-Internetzugängen getestet. Man kann auch keinen Ping oder Traceroute auf die IPv6 des Hosts machen. "Ping6 freigeben" oder "Dieses Gerät komplett für den Internetzugriff über IPv6 freigeben (Exposed Host)." brachte keine Besserung. Auf dem Host beobachte ich den eingehenden Traffic mit einem Packet-Analyzer und sehe nichts! Die hostbased Firewall hat entsprechende FW-Regeln für den Zugriff. Ich habe bereits ein Packetcapture am Internet-Interface der FB gemacht und sehe die eingehenden Anfragen! Doch beim Server kommt nichts an. Ich bin jedoch kein NW-Profi, um dies vollständig richtig zu interpretieren.
Support des Providers verweist mich an AVM. AVM verweist auf ihre Dokumente und end-of-support meines FB-Modells. Doch mir scheint der 1st Level hat das Problem gar nicht verstanden.
Würde mich über eine Rückmeldung freuen.
Vielen Dank

Hallo Marco,
das ist aus der Ferne natürlich schwer zu sagen. Aber in der Theorie braucht man nur die FB-Firewall und die Firewall des Hosts anzupassen. So hat es bei mir zumindest immer funktioniert. Wenn beim Server nichts ankommt, bleibt ja nur noch die FB-Firewall, die warum auch immer die Pakete nicht durchlässt.
LG Rafael

Eine andere Lösung besteht daran ein virtueller Server zu mieten, so etwas erhält man ab 1 Euro pro Monat.
Der V-Server muss lediglich als Wireguard Server eingerichtet werden.
Im LAN muss ein Wireguard Client laufen. Einfache Routing Regeln reichen, damit der Verkehr zum/vom Heim-LAN geleitet wird, aus. Auf der Fritz!Box ist eine Route einzutragen und schon sind alle Geräte im LAN erreichbar.
Sollten Web-Dienste erreichbar sein, kann Sniproxy auf der V-Server eingerichtet werden.
Sollten andere Dienste des LAN erreicht werden können, kann beispielsweise socat bemüht werden.

Schreibe einen Kommentar

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