TCP / IPv6 a través del túnel ssh

10

Me pregunto cómo hacer un túnel del tráfico tcp / ipv6 sobre el túnel ssh / ipv4 (conexión ptp). ¿Es posible? ¿Cómo puedo lograr eso?


fuente
¿Estás tratando de hacer un túnel del tráfico IPv6 SOLO sobre el túnel? Como su túnel SSH le permitirá usar IPV5 o V6 sobre él sin problemas, suponiendo que la red en ambos extremos lo admita.
Sam Cogan
2
TCP sobre TCP no suele ser una buena idea: sites.inka.de/sites/bigred/devel/tcp-tcp.html TCP sobre TCP sobre TCP: no suena mejor
Reece45

Respuestas:

15

Sí, es posible y no demasiado difícil, pero la solución es muy subóptima, ya que SSH se ejecuta a través de TCP y tiene una sobrecarga sensible.

El servidor debe tener en su archivo de configuración sshd_config:

PermitTunnel point-to-point

Entonces, debes ser root en ambas máquinas. Te conectas al servidor usando:

ssh -w any root@server

Después de la conexión, use el comando ip linken ambos sistemas para saber qué dispositivo tunN se creó en cada uno, y úselo en los siguientes comandos. Tenga en cuenta que estoy usando ejemplos de direcciones locales del sitio, que están obsoletas, pero está bien para esta introducción.

En el servidor:

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

En el cliente:

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

Esto es suficiente para que pueda hacer ping al otro lado a través del túnel, si no hay bloqueo de la regla de firewall. El siguiente paso es establecer rutas sobre el túnel (no olvide net.ipv6.conf.default.forwarding = 1), y luego ajuste el MTU de enlace para obtener un rendimiento óptimo.

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

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

Esto permitirá que su cliente haga ping a otras redes a las que el servidor tiene acceso, dado que los destinos tienen rutas de regreso a su cliente remoto.

También tendrá que arreglar el enlace MTU para que el cliente no envíe paquetes que el servidor no podrá transmitir. Esto depende de la MTU del enlace IPv6 del servidor en sí. No confíe en el descubrimiento de MTU de ruta ya que no funcionará correctamente en el túnel SSH. En caso de duda, comience con un valor de MTU bajo, como 1280 (MTU mínimo permitido para IPv6).

Juliano
fuente
1
La MTU mínima que admite IPv6 es 1280 (en contraste con IPv4, que admite una MTU mínima de 576). Advertencia: si configura su MTU por debajo de 1280, sus direcciones IPv6 desaparecerán y no podrán volver a agregarse hasta que reinicie SSH.
Jeremy Visser
1
OS X no tiene el ipcomando, así que configure la dirección IP con sudo ifconfig tun0 inet6 fec0:1::2/112 up y configure la ruta con sudo route add -inet6 -mtu 1280 default fec0:1::1
larsr