TCP / IPv6 przez tunel ssh


10

Zastanawiam się, jak tunelować ruch TCP / IPV6 przez tunel SSH / IPV4 (połączenie PTP). Czy to możliwe? Jak mogę to osiągnąć?

linux  ssh  ipv6 

Czy próbujesz tunelować ruch JUST ipV6 przez tunel? Ponieważ twój tunel SSH pozwoli ci na używanie IPV5 lub V6 bez problemu, zakładając, że sieć na obu końcach go obsługuje.
Sam Cogan

2
TCP przez TCP zwykle nie jest dobrym pomysłem: sites.inka.de/sites/bigred/devel/tcp-tcp.html TCP przez TCP przez TCP: Nie brzmi lepiej
Reece45

Odpowiedzi:


15

Tak, jest to możliwe i niezbyt trudne, ale rozwiązanie jest bardzo nieoptymalne, ponieważ SSH działa przez TCP i ma rozsądny narzut.

Serwer musi mieć w swoim pliku konfiguracyjnym sshd_config:

PermitTunnel point-to-point

Następnie musisz być rootem na obu komputerach. Łączysz się z serwerem za pomocą:

ssh -w any root@server

Po połączeniu użyj polecenia ip linkw obu systemach, aby dowiedzieć się, które urządzenie tunN zostało utworzone w każdym z nich, i użyj go w poniższych poleceniach. Zauważ, że używam przykładowych adresów lokalnych, które są przestarzałe, ale w porządku dla tego wprowadzenia.

Na serwerze:

server# ip link set tun0 up
server# ip addr add fec0:1::1/112 dev tun0

Na kliencie:

client# ip link set tun0 up
client# ip addr add fec0:1::2/112 dev tun0

To wystarczy, abyś mógł pingować drugą stronę przez tunel, jeśli nie ma blokowania reguł zapory. Następnym krokiem jest ustawienie tras w tunelu (nie zapomnij net.ipv6.conf.default.forwarding = 1), a następnie dostosowanie MTU łącza, aby uzyskać optymalną wydajność.

server# sysctl net.ipv6.conf.all.forwarding=1

client# ip -6 route add default via fec0:1::1

Umożliwi to Twojemu klientowi pingowanie innych sieci, do których serwer ma dostęp, biorąc pod uwagę, że cele mają trasy z powrotem do Twojego zdalnego klienta.

Będziesz także musiał naprawić MTU łącza, aby klient nie wysyłał pakietów, których serwer nie będzie mógł przesłać dalej. Zależy to od MTU łącza IPv6 samego serwera. Nie polegaj na wykrywaniu MTU ścieżki, ponieważ nie będzie działać poprawnie w tunelu SSH. W razie wątpliwości zacznij od niskiej wartości MTU, takiej jak 1280 (minimalna dozwolona MTU dla IPv6).


1
Minimalna MTU obsługiwana przez IPv6 wynosi 1280 (w przeciwieństwie do IPv4, który obsługuje minimalną MTU 576). Ostrzeżenie: jeśli ustawisz MTU poniżej 1280, twoje adresy IPv6 znikną i nie będzie można ich ponownie dodać, dopóki nie uruchomisz ponownie SSH!
Jeremy Visser

1
OS X nie ma tego ippolecenia, więc ustaw adres IP za pomocą sudo ifconfig tun0 inet6 fec0:1::2/112 up i ustaw trasę za pomocą sudo route add -inet6 -mtu 1280 default fec0:1::1
larsr
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.