Actualmente tengo una configuración en la que, debido a la configuración que tardaría una eternidad en solucionar, tengo un servidor al que solo se puede acceder por ipv4. Sin embargo, también tengo un servidor al que se puede acceder por ipv6. Me preguntaba si podría usar iptables para reenviar tráfico ipv6 en un determinado puerto desde uno de los servidores a otro servidor que use tráfico ipv4.
15
Respuestas:
IPtables actualmente no puede hacer esto, por lo que necesita un proceso de espacio de usuario para proxy de las conexiones. socat es una herramienta adecuada para esto:
fuente
Como se señaló en los comentarios sobre su pregunta , NAT64 está lejos de estar listo, incluso 3 años después.
Sin embargo, podría intentarlo
6tunnel
, como sugiere la perplejidad.Afortunadamente, está presente en los repositorios de Debian y Ubuntu, por lo que puede instalarlo muy fácilmente
sudo apt-get install 6tunnel
. Si está utilizando otro sistema, deberá compilarlo desde la fuente .Construir desde la fuente realmente no es difícil, y solo es cuestión de ejecutar algunos comandos (como root):
Aquí está su sintaxis, simplificada:
[-4|-6]
es opcional y le permite especificar si vinculará (escuchará) en IPv4 o IPv6 (respectivamente).-l
También es opcional. Le permite elegir en qué dirección (IPv4 o IPv6) desea vincular.Por ejemplo, si desea permitir que se acceda a un servidor solo IPv4, que escucha en el puerto 1337, a través de IPv6, use:
El comando anterior escuchará en el puerto 1337 en IPv6 y reenviará el tráfico al puerto 1337 en la misma máquina a través de IPv4. Luego se ejecutará en segundo plano, por lo que no tiene que preocuparse por eso.
En realidad, debe configurar un trabajo cron para asegurarse de que todavía se esté ejecutando.
6tunnel
¡proporciona un ejemplo para su conveniencia! Ejecutarlo en el arranque tampoco debería ser una mala idea.Para más documentación, ejecute
6tunnel -h
oman 6tunnel
.fuente
Las versiones recientes de
xinetd
también pueden escuchar en IPv6 y luego reenviar la conexión a una dirección IPv4.Una configuración de muestra que escucha las conexiones IPv6 en el puerto 3389 y las reenvía al puerto 3389 de una dirección IPv4 interna:
Esto puede ser útil en entornos más restringidos, ya que
xinetd
es probable que se instale con su sistema base o esté disponible en repositorios de proveedores aprobados.fuente
Quería comentar sobre la respuesta y voto de Leo Lams, pero no tengo suficiente reputación. Antes que nada: ¡Muchas gracias Leo Lam!
Para cualquiera que se acerque a este hilo: mi ISP cambió mi conexión de IPv4 a IPv6 con Dual Stack Lite, lo que significa que ya no tengo mi propia dirección IPv4. Este fue un problema ya que quiero acceder a mi cámara IP desde cualquier lugar que no sea compatible con IPv6. Para resolver esto probé lo siguiente:
sudo 6tunnel -6 99 192.168.178.35 80
sudo 6tunnel -4 99 IPV6PREFIXROUTER:IPV6INTERFACEIDUUBUNTUMACHINE 99
El prefijo ipv6 se denotó en mi enrutador y la identificación de la interfaz se asignó en el proceso de reenvío de IPv6.
Ahora puedo acceder a la cámara desde cualquier lugar utilizando el dominio vServer example.com:99 .. ¡Perfecto! Planeo obtener una frambuesa que cumpla este trabajo o un plátano pi m3 para otras tareas también.
fuente
Más para el beneficio de las personas que encuentran esta página que el OP necesariamente (vine aquí buscando una solución para la conectividad IPv6 para una aplicación IPv4 (Twisted)), una posibilidad es la aplicación 6tunnel, escucha IPv6 y reenvía solicitudes a otra interfaz y Puerto.
fuente