En casa, estoy conectado con una dirección IPv6 y, además, mi proveedor proporciona una configuración similar a la NAT a través de la cual recibo una dirección IPv4 pública que comparto con otros clientes (la razón es obviamente que nos estamos quedando sin direcciones IPv4).
Como resultado, no puedo acceder a mis dispositivos en casa (por ejemplo, mi puerta de enlace VPN) cuando estoy en una red IPv4. Sin embargo, tengo un servidor que tiene una dirección IPv4 y una dirección IPv6. Por lo tanto, debería ser posible llegar a mis dispositivos domésticos si paso por mi servidor.
Esto es lo que tengo en mente hasta ahora: dado que en IPv6, cada dispositivo tiene su propia IP, mi servidor en casa recibe una IP estática IPv6. Mi servidor remoto ya tiene IPv4 estático e IPv6.
Cuando ahora quiero llegar a mi servidor OpenVPN en casa, anteriormente abriría el puerto 1194 en mi enrutador y NAT pasaría las conexiones al servidor allí. En mi nuevo escenario, quiero conectarme al puerto 1194 (o diferente, no importa) en mi servidor remoto y debería tomar esa conexión y hacer un túnel a mi servidor doméstico (ya que ambos tienen IPv6).
Gráficamente, esto significaría:
Dispositivo móvil (IPv4) -> Servidor remoto (IPv4 + IPv6) -> Servidor doméstico (IPv6)
Pero esto solo debería suceder en puertos seleccionados (¿o hay incluso una forma más inteligente que seleccionar por puerto?).
Mi pregunta es, ¿cómo puedo lograr esta configuración?
¿A qué nivel debería funcionar esto? Si quiero hacerlo por puerto, obviamente tengo que reenviar el paquete a la capa TCP / UDP. Mi primera idea sería iptables, pero ¿pueden iptables reenviar un paquete a una IP remota? ¿O hay otro software que pueda? ¿O debería crear un túnel entre los dos servidores y luego reenviarlo localmente? ¿Cómo iba a hacer eso?