TCP / IPv6 através do túnel ssh

10

Eu estou querendo saber como encapsular o tráfego tcp / ipv6 sobre o túnel ssh / ipv4 (conexão ptp). É possível? Como posso conseguir isso?


fonte
Você está tentando encapsular apenas o tráfego IPV6 no túnel? Como seu túnel SSH permitirá que você use o IPV5 ou V6 sobre ele sem problemas, assumindo que a rede nas duas extremidades o suporte.
Sam Cogan 23/02
2
TCP sobre TCP geralmente não é uma boa idéia: sites.inka.de/sites/bigred/devel/tcp-tcp.html TCP sobre TCP sobre TCP: Não soa melhor
Reece45

Respostas:

15

Sim, é possível e não muito difícil, mas a solução é muito abaixo do ideal, pois o SSH é executado sobre o TCP e possui uma sobrecarga sensata.

O servidor deve ter em seu arquivo de configuração sshd_config:

PermitTunnel point-to-point

Então, você precisa ser root nas duas máquinas. Você se conecta ao servidor usando:

ssh -w any root@server

Após a conexão, use o comando ip linknos dois sistemas para saber qual dispositivo tunN foi criado em cada um e use-o nos seguintes comandos. Observe que estou usando exemplos de endereços locais do site, obsoletos, mas ok para esta introdução.

No servidor:

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

No cliente:

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

Isso é suficiente para que você possa executar ping no outro lado através do túnel, se não houver bloqueio de regras de firewall. O próximo passo é definir rotas sobre o túnel (não se esqueça de net.ipv6.conf.default.forwarding = 1) e, em seguida, ajuste o link MTU para obter o desempenho ideal.

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

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

Isso permitirá que seu cliente efetue ping em outras redes às quais o servidor tem acesso, uma vez que os destinos têm rotas de volta para o cliente remoto.

Você também precisará corrigir o link MTU para que o cliente não envie pacotes que o servidor não poderá transmitir adiante. Isso depende da MTU do link IPv6 do próprio servidor. Não confie no caminho MTU discovery, pois ele não funcionará corretamente no túnel SSH. Em caso de dúvida, comece com um valor baixo de MTU, como 1280 (MTU mínimo permitido para IPv6).

Juliano
fonte
1
O MTU mínimo suportado pelo IPv6 é 1280 (em contraste com o IPv4, que suporta um MTU mínimo de 576). Aviso: se você definir seu MTU abaixo de 1280, seus endereços IPv6 desaparecerão e não poderão ser adicionados novamente até que você reinicie o SSH!
Jeremy Visser
1
O OS X não possui o ipcomando, então defina o endereço IP com sudo ifconfig tun0 inet6 fec0:1::2/112 up e defina a rota com sudo route add -inet6 -mtu 1280 default fec0:1::1
larsr