Como encapsular de forma transparente uma porta do IPv4 para um dispositivo IPv6 remoto?

11

Em casa, estou conectado a um endereço IPv6 e, além disso, meu provedor fornece uma configuração semelhante a NAT, através da qual recebo um endereço IPv4 público que eu compartilho com outros clientes (o motivo é obviamente que estamos com poucos endereços IPv4).

Como resultado, não consigo acessar meus dispositivos em casa (por exemplo, meu gateway VPN) quando estou em uma rede IPv4. No entanto, eu tenho um servidor que possui um endereço IPv4 e um endereço IPv6. Assim, deve ser possível acessar meus dispositivos domésticos se eu passar pelo meu servidor.

Aqui está o que tenho em mente até agora: Como no IPv6, cada dispositivo obtém seu próprio IP, meu servidor em casa obtém um IP IPv6 estático. Meu servidor remoto já possui IPv4 e IPv6 estáticos.

Quando agora quero acessar meu servidor OpenVPN em casa, anteriormente eu abriria a porta 1194 no meu roteador e o NAT passaria as conexões para o servidor lá. No meu novo cenário, quero conectar-me na porta 1194 (ou diferente, não importa) no meu servidor remoto e deve pegar essa conexão e encapsulá-la no meu servidor doméstico (visto que ambos têm IPv6).

Graficamente, isso significaria:

Dispositivo móvel (IPv4) -> servidor remoto (IPv4 + IPv6) -> servidor doméstico (IPv6)

Mas isso só deve acontecer em portas selecionadas (ou existe uma maneira ainda mais inteligente do que selecionar por porta?).

Minha pergunta é: como faço para obter essa configuração?

Em que nível isso deve operar? Se eu quiser fazer isso por porta, obviamente tenho que encaminhar o pacote na camada TCP / UDP. Minha primeira idéia seria o iptables, mas o iptables pode encaminhar um pacote para um IP remoto? Ou existe outro software que possa? Ou devo criar um túnel entre os dois servidores e encaminhá-lo localmente? Como eu faria isso?

javex
fonte
11
Você já pensou em usar um broker de túnel IPv6 para o seu laptop?
Michael Hampton
@ MichaelHampton, obrigado pela sugestão, mas eu gostaria muito de ter uma maneira que não precise de alterações no dispositivo, pois também pretendo fazer conexão com meu telefone (android) e provavelmente com outros dispositivos. A configuração deve ser tão simples quanto antes da perspectiva dos dispositivos.
Javex

Respostas:

13

Finalmente encontrei uma solução com o encaminhamento de portas IPv4 para hosts somente IPv6, que basicamente usa socat:

socat TCP4-LISTEN:22,fork,su=nobody TCP6:[2a01:198:79d:1::8]:22

Minha solução é basicamente a mesma, exceto que eu uso um nome de host, exceto por um IP estático. Tome cuidado para não usar colchetes com um nome de host, pois ele será interpretado como um IP.

javex
fonte