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.
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).
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
Odpowiedzi:
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
:Następnie musisz być rootem na obu komputerach. Łączysz się z serwerem za pomocą:
Po połączeniu użyj polecenia
ip link
w 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:
Na kliencie:
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ść.
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).
źródło
ip
polecenia, 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