Versuchen Sie, NUR IPV6-Verkehr über den Tunnel zu tunneln? Da Sie in Ihrem SSH-Tunnel problemlos IPV5 oder V6 verwenden können, wird davon ausgegangen, dass das Netzwerk an beiden Enden dies unterstützt.
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 linkin 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).
Die von MTv6 unterstützte Mindest-MTU beträgt 1280 (im Gegensatz zu IPv4, das eine Mindest-MTU von 576 unterstützt). Warnung: Wenn Sie Ihre MTU unter 1280 einstellen, verschwinden Ihre IPv6-Adressen und können erst nach einem Neustart von SSH erneut hinzugefügt werden!
Jeremy Visser
1
OS X hat den ipBefehl 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
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
:Dann müssen Sie auf beiden Computern root sein . Sie stellen eine Verbindung zum Server her, indem Sie:
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:
Auf dem Client:
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.
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).
quelle
ip
Befehl nicht, also setzen Sie die IP-Adresse mitsudo ifconfig tun0 inet6 fec0:1::2/112 up
und die Route mitsudo route add -inet6 -mtu 1280 default fec0:1::1