Zu Hause bin ich mit einer IPv6-Adresse verbunden. Außerdem bietet mein Provider ein NAT-ähnliches Setup an, über das ich eine öffentliche IPv4-Adresse erhalte, die ich mit anderen Kunden teile (der Grund dafür ist offensichtlich, dass uns die IPv4-Adressen ausgehen).
Infolgedessen kann ich meine Geräte zu Hause (z. B. mein VPN-Gateway) nicht erreichen, wenn ich mich in einem IPv4-Netzwerk befinde. Ich habe jedoch einen Server, der sowohl eine IPv4- als auch eine IPv6-Adresse hat. Daher sollte es möglich sein, meine Heimgeräte zu erreichen, wenn ich über meinen Server gehe.
Folgendes habe ich bisher im Sinn: Da unter IPv6 jedes Gerät seine eigene IP erhält, erhält mein Server zu Hause eine statische IPv6-IP. Mein Remote-Server verfügt bereits über statisches IPv4 und IPv6.
Wenn ich jetzt meinen OpenVPN-Server zu Hause erreichen möchte, habe ich zuvor Port 1194 in meinem Router geöffnet und NAT hat dort Verbindungen an den Server weitergeleitet. In meinem neuen Szenario möchte ich eine Verbindung über Port 1194 (oder einen anderen, egal) auf meinem Remote-Server herstellen. Diese Verbindung sollte auf meinen Heimserver übertragen werden (da beide über IPv6 verfügen).
Grafisch würde dies bedeuten:
Mobiles Gerät (IPv4) -> Remote-Server (IPv4 + IPv6) -> Heimserver (IPv6)
Dies sollte jedoch nur an ausgewählten Ports geschehen (oder gibt es sogar eine cleverere Möglichkeit als die Auswahl nach Port?).
Meine Frage ist, wie erreiche ich dieses Setup?
Auf welcher Ebene sollte dies funktionieren? Wenn ich es nach Port machen möchte, muss ich das Paket natürlich auf der TCP / UDP-Ebene weiterleiten. Meine erste Idee wäre iptables, aber können iptables ein Paket an eine Remote-IP weiterleiten? Oder gibt es eine andere Software, die das kann? Oder sollte ich einen Tunnel zwischen den beiden Servern erstellen und diesen dann lokal weiterleiten? Wie würde ich das machen?
Antworten:
Ich habe endlich eine Lösung gefunden, bei der IPv4-Ports an reine IPv6-Hosts weitergeleitet werden, die im Wesentlichen socat verwendet:
Meine Lösung ist im Grunde dieselbe, außer dass ich einen Hostnamen verwende, mit Ausnahme einer statischen IP. Achten Sie darauf, keine eckigen Klammern mit einem Hostnamen zu verwenden, da dieser dann als IP interpretiert wird.
quelle