Moin!
Ich habe in Kürze die Möglichkeit, bei Vodafone eine statische IPv4-Adresse und einen statischen IPv6-Präfix zu bekommen. Momentan habe ich nur eine dynamische IPv4-Adresse. Nun bin ich dabei, das Netzwerk unter den geänderten Voraussetzungen zu planen.
Ist-Zustand
Die dynamische IPv4-Adresse wird mit einem dyndns-Anbieter auf eine Subdomain ebendieses Anbieters gemappt. Diese Subdomain habe ich wiederum als CNAME-Record meiner eigenen Domain eingetragen. Das läuft seit Jahren stabil, allerdings will der dyndns-Anbieter eine monatliche Ich-bin-kein-Roboter-CAPTCHA-Bestätigung, dass der Eintrag noch genutzt wird und das nervt
In meinem LAN laufen diverse Server, u.a. mehrere Apache- und SSH-Server. Das Problem ist das Altbekannte: Ich kann auf meinem Router nur einmal Port 443 oder 80 oder 22 weiterleiten. Zwar gibt es für Apache Reverse-Proxy-Lösungen, aber die beißen sich mit einem Teil meines Sicherheitskonzepts: Ich will die Server in VMs voneinander trennen. Wenn ich einen gemeinsamen Apache-Reverse-Proxy verwenden würde, dann könnte ich auch gleich alle Webserver auf einem Apache und damit auf einem System laufen lassen.
Außerdem greift die Lösung für SSH nicht. Hier muss ich schon längst eine Reihe unkonventioneller Ports auf jeweils Port 22 des Hosts im internen Netz weiterleiten. Das führt z.B. auch dazu, dass ich für mein Backupprogramm, das über SSH läuft nicht einfach einen Host eintragen kann, weil die konkrete Portnummer davon abhängt, ob ich gerade im LAN oder im WAN bin. Es mag hier Workarounds geben, aber es bleiben eben Workarounds
Idee für ein neues Setup
Mit einer statischen IPv4-Adresse und einer einem statischen IPv6-Präfix sind die Karten nun neu gemischt: Dyndns fällt schon einmal erstatzlos weg, was natürlich schön ist. Und mit IPv6 kann ich intern ja IP-Adressen verteilen, wie ich lustig bin und die entsprechenden Hosts direkt ansprechen. Das gilt sowohl für Aufrufe aus dem LAN, die dann ja direkt geroutet werden können als auch für Aufrufe von extern, die ebenso direkt und ohne NAT geroutet werden können. Insofern hätte sich Problem der mehrfachen Belegung von Ports auch erledigt.
Problem
Die Lösung funktioniert zwar mit IPv6, aber auch nur mit IPv6. Wenn jetzt ein Client von einem IPv4-Netz - das könnte ich sein, wenn ich unterwegs sein - auf einen der Server zugreifen will, dann musst an irgendeiner Stelle von IPv4 in IPv6 übersetzt werden. Da scheint es diverse Dienste zu geben, die das anbieten, aber die Initiative muss (offenbar) von demjenigen Teilnehmer im IPv4-Netz ausgehen, der ins IPv6-Netz will. Insofern sind solche Dienste nicht transparent, sondern erfordern ein aktives Eingreifen des Clients.
Super wäre natürlich, wenn es für Server eine Art IPv6-to-IPv4-Reverse-Proxy gäbe. Und in der Tat scheint es das seit längerer Zeit bei Cloudflare zu geben. Sogar für Gratis-Nutzer. Auf deren Übersichtsseite wird allerdings nicht genau erklärt, welche Übersetzungsstrategie dort eingesetzt wird. Ich stelle mir das so vor, dass ein IPv4-Client bei Cloudflare nach dem A-Record einer Domain fragt und dann eine dynamische, von Cloudflare generierte IPv4-Adresse zurückbekommt, über die er seine Anfrage stellt. Cloudflare müsste dann bei Anfragen an diese dynamische IP entweder die IPv4-Header in IPv6-Header umschreiben oder IPv4-Pakete komplett in IPv6-Pakete einpacken und dann an meinen Server, dessen AAAA-Record sie dann hätte, weiterleiten.
Nun stellen sich mir mehrere Fragen:
Ich finde dieses Prinzip in keinem der im Wikipedia aufgeführten Standardmethoden so richtig wieder. Das kann einerseits bedeuten, dass meine Mutmaßung, wie das funktioniert falsch ist. Immerhin müsste dann zumindest kurzzeitig jede IPv6-Adresse einer IPv4-Adresse von Cloudflare zugewiesen sein. Und damit kann man ja den Adressnostand nicht in den Griff bekommen. Oder: Sie sich ihre eigene Methode ausgedacht haben, wie die Übersetzung laufen kann.
Ich würde gerne deshalb wissen, welches Prinzip da angewendet wird, damit ich zielgerichtet danach suchen kann. ob es Alternativen zu Cloudflare gibt. Alle meine suchen nach IPv6-/IPv4-{Gateway,Translation,NAT} etc. förderten Ergebnisse zutage, die, wenn ich es richtig eingeordnet habe, nicht auf genau das verweisen, was Cloudflare tut - nämlich einen lediglich im IPv6-Netz angebotenen Server im IPv4-Netz transparent erreichbar zu machen.
Ein weiteres Problem übrigens wäre die Privatsphäre. Wenn das alles so funktionieren sollte, dann brauche ich ja überhaupt keine statische IPv4-Adresse. Und dann will ich auch keine. ☺ Lieber leite ich grundsätzlich verschlüsselten Server-Traffic über Cloudflare-Server, als dass alle Clients in meinem lokalen Netz selbst im IPv4-Internet dauerhaft dieselbe IP-Adresse haben. Da werde ich Vodafone aber einfach mal fragen, ob es möglich ist, die IPv4-Adresse dynamisch zu beziehen, den IPv6-Präfix aber statisch.