Derzeit habe ich ein Setup, bei dem aufgrund der Konfiguration, deren Behebung ewig dauern würde, ein Server vorhanden ist, auf den nur ipv4 zugreifen kann. Ich habe jedoch auch einen Server, auf den ipv6 zugreifen kann. Ich habe mich gefragt, ob ich iptables verwenden kann, um den IPv6-Verkehr auf einem bestimmten Port von einem der Server auf einen anderen Server mit IPv4-Verkehr weiterzuleiten.
15
Antworten:
IPtables kann dies derzeit nicht ausführen. Sie benötigen daher einen Userspace-Prozess, um die Verbindungen per Proxy zu übertragen. socat ist dafür ein geeignetes Werkzeug:
quelle
Wie in den Kommentaren zu Ihrer Frage erwähnt , ist NAT64 auch nach 3 Jahren noch lange nicht bereit.
Sie könnten es jedoch versuchen
6tunnel
, wie durch Verwirrung nahegelegt.Glücklicherweise ist es in den Debian- und Ubuntu-Repositories vorhanden, so dass Sie es sehr einfach mit installieren können
sudo apt-get install 6tunnel
. Wenn Sie ein anderes System verwenden, müssen Sie es aus dem Quellcode erstellen .Es ist wirklich nicht schwer, aus dem Quellcode zu erstellen, sondern es müssen lediglich einige Befehle ausgeführt werden (als root):
Hier ist die Syntax vereinfacht:
[-4|-6]
ist optional und lässt Sie angeben, ob Sie IPv4 bzw. IPv6 binden (abhören) möchten.-l
ist auch optional. Hier können Sie auswählen, an welche Adresse (IPv4 oder IPv6) Sie binden möchten.Wenn Sie beispielsweise zulassen möchten, dass auf einen IPv4-Server, der Port 1337 überwacht, über IPv6 zugegriffen werden kann, verwenden Sie Folgendes:
Der obige Befehl überwacht Port 1337 auf IPv6 und leitet den Datenverkehr über IPv4 an Port 1337 auf demselben Computer weiter. Es wird dann im Hintergrund ausgeführt, sodass Sie sich darüber keine Gedanken machen müssen.
Eigentlich sollten Sie einen Cron-Job einrichten, um sicherzustellen, dass er noch ausgeführt wird.
6tunnel
bietet ein Beispiel für Ihre Bequemlichkeit! Es sollte auch keine schlechte Idee sein, es beim Booten laufen zu lassen.Weitere Dokumentation erhalten Sie, wenn Sie
6tunnel -h
oder ausführenman 6tunnel
.quelle
Neuere Versionen von
xinetd
können auch IPv6 abhören und die Verbindung dann an eine IPv4-Adresse weiterleiten.Eine Beispielkonfiguration, die auf IPv6-Verbindungen an Port 3389 wartet und diese an Port 3389 einer internen IPv4-Adresse weiterleitet:
Dies kann in eingeschränkteren Umgebungen hilfreich sein, da
xinetd
es wahrscheinlich mit Ihrem Basissystem installiert wird oder in genehmigten Vendor-Repositorys verfügbar ist.quelle
Ich wollte Leo Lams Antwort kommentieren und meine Meinung verbessern, aber ich habe nicht genug Ansehen. Zunächst einmal: Vielen Dank Leo Lam!
Für alle, die diesem Thread folgen: Mein ISP hat mit Dual Stack Lite meine Verbindung von IPv4 auf IPv6 geändert, was bedeutet, dass ich keine eigene IPv4-Adresse mehr habe. Dies war ein Problem, da ich von jedem Ort, an dem IPv6 nicht unterstützt wird, auf meine IP-Kamera zugreifen möchte. Um dies zu beheben, habe ich Folgendes versucht:
sudo 6tunnel -6 99 192.168.178.35 80
sudo 6tunnel -4 99 IPV6PREFIXROUTER:IPV6INTERFACEIDUUBUNTUMACHINE 99
Das IPv6-Präfix wurde in meinem Router angegeben und die Schnittstellen-ID wurde im IPv6-Weiterleitungsprozess zugeordnet.
Jetzt kann ich von überall mit der vServer-Domain example.com:99 auf die Kamera zugreifen. Perfekt! Ich plane, entweder eine Himbeere zu bekommen, die diesen Job erfüllt, oder eine Bananen-Pi-M3 für andere Aufgaben.
quelle
Mehr zum Nutzen der Leute, die diese Seite als das OP notwendigerweise finden (ich kam hierher auf der Suche nach einer Lösung für die IPv6-Konnektivität für eine IPv4 (Twisted) -Anwendung), eine Möglichkeit ist die Anwendung 6tunnel, lauscht auf IPv6 und leitet Anfragen an eine andere Schnittstelle weiter und Hafen.
quelle