Como faço para acessar endereços IPv4 em uma rede somente IPv6?

Como faço para acessar endereços IPv4 em uma rede somente IPv6?

Gostaria de chegar a este endereço através de um endereço IPv6:
http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/

Nos nossos roteadores Freifunk não há DNS disponível, portanto o nome downloads.openwrt.orgnão pode ser resolvido. Todos os servidores na Internet só podem ser acessados ​​por meio de endereços IPv6. Agora não podemos acessar esse espelho de pacote de dentro do roteador para instalar pacotes via opkg install.

Seria uma solução, se pudéssemos adicionar isto à nossa configuração, por exemplo:

http://[2001:db8::1]/attitude_adjustment/12.09/ar71xx/generic/packages/

Nossos roteadores estão executando OpenWRT e são somente IPv6 e gostaria de adicionar uma entrada /etc/hostspara que o nome de domínio downloads.openwrt.orgseja resolvido para um endereço IPv6 apropriado

É possível redirecionar um IPv6 para um domínio?

Responder1

Você não pode simplesmente “adicionar” um endereço IPv6 para acessar um host que só está disponível via IPv4. Estes são dois protocolos completamente diferentes e incompatíveis.

Para que seu IPv6-apenasrede para poder alcançar endereços IPv4, é necessário um gateway que tenha acesso ao IPv4. Isso geralmente é feito com um gateway NAT64/DNS64, que traduz endereços IPv4 em endereços IPv6 "falsos" e aceita conexões com esses endereços IPv6 "falsos" e traduz as conexões para a rede IPv4. Esses endereços IPv6 estarão no 64:ff9b::/96intervalo.

No OpenWrt, o NAT64 é feito com Tayga e o DNS64 com bind. Mais informações sobre como configurá-los sãodisponível no wiki OpenWrt. Você precisará de ajuste de atitude ou disjuntor de barreira; as versões anteriores do OpenWrt não tinham suporte suficientemente completo para IPv6 e outras tecnologias.

Você pode adicionar resolvedores DNS64/NAT64 públicos ao seu /etc/resolv.conf:

nameserver 2001:67c:2b0::4
nameserver 2001:67c:2b0::6

Você também pode "reverter" a tradução no site do cliente, usando464xlat. 464xlat usa as mesmas ferramentas. (mencionado acima, mas apenas de uma maneira diferente). Com 464xlat você também pode acessar URLs com IPs literais.

Responder2

O domínio downloads.openwrt.orgpossui um endereço IPv4, mas nenhum endereço IPv6. Portanto, você não pode acessá-lo pelo IPv6, a menos que use um mecanismo de tradução. Você poderia usar o NAT64 para poder criar uma conexão TCP com esse servidor somente IPv4 a partir de um cliente somente IPv6.

Mas por que você usaria um cliente somente IPv6? Adotar dual stack é uma boa ideia, mas por enquanto somente IPv6 é realmente útil apenas para testes para aqueles que conhecem as limitações que isso introduz em um mundo que tem muitos hosts somente IPv4.

Se você conseguir abrir uma conexão TCP com o servidor, enfrentará outro desafio. A versão HTTP 1.1 exige que o cliente envie o nome do servidor que está contatando pela conexão HTTP. E muitos sites, inclusive, downloads.openwrt.orgexigem que esse cabeçalho seja enviado.

Seu cliente HTTP só pode enviar esse cabeçalho se souber o nome de domínio a ser enviado. Portanto, seria melhor informar ao cliente o URL original e, de alguma forma, conceder-lhe acesso para resolver esse nome para um endereço IP. Se tiver que ser IPv6, isso ainda significa que você precisará do NAT64. No entanto, um mapeamento do nome de domínio para o endereço IP NAT64 pode ser inserido /etc/hostse deve funcionar perfeitamente.

Isso pode funcionar bem para um nome de domínio individual. Mas se você deseja que um host somente IPv6 seja capaz de alcançar vários domínios sem ter que colocar cada um deles /etc/hostscom um endereço NAT64, você precisa de uma tradução dinâmica dos endereços. É para isso que serve o DNS64.

Agora, se o cliente tiver acesso IPv4 e só estiver faltando DNS, a resposta se tornará muito mais simples. Basta colocar o endereço IPv4 /etc/hostscomo sugerido por Davidgo. É claro que você precisará atualizar esse arquivo sempre que o endereço IP do servidor for alterado, o que esperamos que não aconteça com muita frequência.

Responder3

Acho que você pode estar fazendo a pergunta errada - você não pode redirecionar um endereço IPv6 para um domínio porque o processo funciona de maneira oposta, ou seja, um domínio é resolvido em [ou muitos] hosts.

Não consegui encontrar nenhuma informação sobre o seu roteador, mas se ele estiver executando o OpenWRT, você poderá adicionar uma entrada em /etc/hosts para que o nome do domínio seja resolvido para o endereço IP apropriado.

informação relacionada