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.
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).
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
Respostas:
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
:Então, você precisa ser root nas duas máquinas. Você se conecta ao servidor usando:
Após a conexão, use o comando
ip link
nos 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:
No cliente:
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.
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).
fonte
ip
comando, então defina o endereço IP comsudo ifconfig tun0 inet6 fec0:1::2/112 up
e defina a rota comsudo route add -inet6 -mtu 1280 default fec0:1::1