Estou executando um servidor acessível externamente dentro de uma VM. Meu roteador local está configurado para usar DDS para mapear meu endereço IP para um domínio de minha propriedade e encaminhar pacotes para as portas 80 e 443 para meu PC com Windows. A VM VirtualBox está configurada com rede NAT e seguindo regras de encaminhamento de porta:
Até recentemente, tudo funcionava perfeitamente com o IPv4. Infelizmente, mudei recentemente de provedor DSL e eles usam o túnel DS Lite, o que significa que não tenho um endereço IPv4 público, apenas IPv6. Assim, reconfigurei minhas regras DDNS para mapear meu domínio para meu endereço IP dinâmico. Parece que os pacotes chegam ao meu PC*, mas não são encaminhados para a VM.
Por que? Preciso configurar o IPv6 em algum lugar e/ou usar um tipo de rede diferente no menu suspenso "Anexado a:"? Posso de alguma forma encaminhar pacotes IPv6 para endereços IPv4 dentro da VM?
* na verdade, ao executar um servidor no host, também não consigo acessá-lo através do meu endereço IPv6 externo. Em vez disso, sou redirecionado para a página do meu roteador. Então, talvez eu também precise consertar a configuração do meu roteador de alguma forma. Acho que está relacionado ao "Prefixo IPv6" e este é um conceito novo para mim. Aparentemente, também há um endereço IPv6 dedicado para o meu PC nas configurações de encaminhamento de porta, o que parece implicar que há vários endereços IPv6 externos atribuídos a mim. Parece que preciso ler mais sobre isso.
Embora possa ser, em teoria, possível que a implementação NAT do VirtualBox encaminhe conexões IPv6 para um host IPv4, tal tradução de protocolo tende a introduzir muitas complicações, como "qual endereço de origem IPv4 o host de destino deve ver?" (já que o endereço v6 original, é claro, não cabe no cabeçalho IPv4). Portanto, as únicas opções na prática são v4 para v4 e v6 para v6.
A rede NAT padrão no VirtualBox não suporta IPv6. Você precisará abrir “Ferramentas → Rede” na janela principal do VirtualBox e criar lá uma rede NAT customizada , habilitando o IPv6 e configurando algum prefixo de endereço; então você verá que a guia "Port Forwarding" agora possui subguias 'IPv4' e 'IPv6'.
Em seguida, nas configurações da VM, mude a interface de rede de “NAT” para “NAT Network” e selecione a rede que você acabou de criar.
(Ao contrário do modo NAT padrão, essas redes NAT personalizadas podem ser compartilhadas entre várias VMs, portanto, o encaminhamento de porta é configurado por meio de configurações de rede e não por meio de configurações de VM.)
Opção B: Em vez do modo NAT, use o modo “Bridged” que permite que a VM esteja diretamente presente na sua LAN principal. A VM terá então seu próprio endereço IPv6 (e seu próprio endereço LAN IPv4), da mesma forma que seu host Windows, portanto você não precisará de nenhuma configuração de encaminhamento de porta.
Opção C: Existem proxies reversos HTTP e proxies TCP que podem ser executados no host Windows, fazendo proxy das conexões para uma VM (por meio de "encaminhamento de porta" VBox NAT ou por meio de uma interface "somente host"). Os proxies podem traduzir entre IPv4 e IPv6, pois não tentam preservar o endereço IP original; eles apenas fazem uma nova conexão a partir do próprio IP do host. (O IP do cliente original seria fornecido por meio de X-Forwarded-For ou métodos semelhantes.)
Opção D: O Windows possui um serviço de proxy TCP integrado que oferece suporte semelhante à retransmissão entre IPv4 e IPv6. Você pode encontrá-lo
netsh
abaixointerface portproxy
(tente oadd
comando). Não suporta X-Forwarded-For ou algo assim.