Ich frage mich, wie man TCP / IPv6-Verkehr über den SSH / IPv4-Tunnel (PTP-Verbindung) tunnelt. Ist es möglich? Wie kann ich das erreichen?
Ich frage mich, wie man TCP / IPv6-Verkehr über den SSH / IPv4-Tunnel (PTP-Verbindung) tunnelt. Ist es möglich? Wie kann ich das erreichen?
Antworten:
Ja, es ist möglich und nicht zu schwierig, aber die Lösung ist sehr suboptimal, da SSH über TCP läuft und einen vernünftigen Overhead hat.
Der Server muss in seiner Konfigurationsdatei Folgendes enthalten sshd_config
:
PermitTunnel point-to-point
Dann müssen Sie auf beiden Computern root sein . Sie stellen eine Verbindung zum Server her, indem Sie:
ssh -w any root@server
Verwenden Sie nach dem Verbinden den Befehl ip link
in beiden Systemen, um festzustellen , welches tunN- Gerät in jedem System erstellt wurde, und verwenden Sie ihn in den folgenden Befehlen. Beachten Sie, dass ich Beispiel-Site-Local-Adressen verwende, die veraltet sind, aber für diese Einführung in Ordnung sind.
Auf dem Server:
server# ip link set tun0 up
server# ip addr add fec0:1::1/112 dev tun0
Auf dem Client:
client# ip link set tun0 up
client# ip addr add fec0:1::2/112 dev tun0
Dies reicht aus, damit Sie die andere Seite durch den Tunnel pingen können, wenn keine Firewall-Regel blockiert ist. Der nächste Schritt besteht darin, Routen über den Tunnel festzulegen (net.ipv6.conf.default.forwarding = 1 nicht vergessen) und dann die Verbindungs-MTU anzupassen, um eine optimale Leistung zu erzielen.
server# sysctl net.ipv6.conf.all.forwarding=1
client# ip -6 route add default via fec0:1::1
Auf diese Weise kann Ihr Client andere Netzwerke anpingen, auf die der Server Zugriff hat, da die Ziele Routen zurück zu Ihrem Remoteclient haben.
Sie müssen auch die Verbindungs-MTU reparieren, damit der Client keine Pakete sendet, die der Server nicht weiterleiten kann. Dies hängt von der MTU der IPv6-Verbindung des Servers selbst ab. Verlassen Sie sich nicht auf die Pfad-MTU-Erkennung, da diese über den SSH-Tunnel nicht ordnungsgemäß funktioniert. Beginnen Sie im Zweifelsfall mit einem niedrigen MTU-Wert wie 1280 (für MTv6 zulässige Mindest-MTU).
ip
Befehl nicht, also setzen Sie die IP-Adresse mit sudo ifconfig tun0 inet6 fec0:1::2/112 up
und die Route mit sudo route add -inet6 -mtu 1280 default fec0:1::1