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

11

Gostaria de chegar a esse endereço por meio de um endereço IPv6:
http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/

Nos roteadores Freifunk, não há DNS disponível; portanto, o nome downloads.openwrt.orgnão pode ser resolvido. Todos os servidores na Internet são acessíveis apenas através 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 isso à nossa configuração, por exemplo:

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

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

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

rubo77
fonte
2
Por algum motivo, esse site não possui um endereço IPv6. Talvez você deva explicar qual é o seu problema real e não o que você acha que é a solução ?
Michael Hampton
Por que via IPv6? Em que sistema operacional você está?
JakeGould
@MichaelHampton: Eu adicionei a razão ty minha pergunta
rubo77
Editei o título para explicar qual é a pergunta real, já que é fácil deixar de fazer parte do corpo da pergunta.
Michael Hampton

Respostas:

12

Você não pode simplesmente "adicionar" um endereço IPv6 para alcançar um host disponível apenas via IPv4. Estes são dois protocolos completamente diferentes e incompatíveis.

Para que sua rede somente IPv6 possa acessar endereços IPv4, é necessário um gateway que tenha acesso ao IPv4. Isso geralmente é feito com um gateway NAT64 / DNS64, que converte endereços IPv4 em endereços IPv6 "falsos" e aceita conexões com esses endereços IPv6 "falsos" e converte as conexões com a rede IPv4. Esses endereços IPv6 estarão no 64:ff9b::/96intervalo.

No OpenWrt, o NAT64 é feito com o Tayga e o DNS64 com o bind. Mais informações sobre como configurá-las estão disponíveis no wiki do 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, usando 464xlat . O 464xlat usa as mesmas ferramentas. (mencionado acima, mas apenas de uma maneira diferente). Com o 464xlat, você também pode acessar URLs com IPs literais.

Michael Hampton
fonte
2

O domínio downloads.openwrt.orgtem um endereço IPv4, mas nenhum endereço IPv6. Portanto, você não pode alcançá-lo pelo IPv6, a menos que use um mecanismo de conversão. Você pode usar o NAT64 para 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 uma pilha dupla é uma boa idéia, mas, por enquanto, somente o IPv6 é realmente útil apenas para testes para aqueles que conhecem as limitações introduzidas em um mundo que possui muitos hosts apenas para IPv4.

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

Seu cliente HTTP pode enviar apenas esse cabeçalho, se souber o nome do domínio a ser enviado. Portanto, é melhor informar o cliente sobre o URL original e, de alguma forma, dar acesso a ele para resolver esse nome em um endereço IP. Se precisar 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 possa alcançar vários domínios sem precisar colocar todos e cada um deles /etc/hostscom um endereço NAT64, é necessário converter dinamicamente os endereços. É para isso que serve o DNS64.

Agora, se o cliente tiver acesso IPv4 e faltar apenas o DNS, a resposta se tornará muito mais simples. Basta colocar o endereço IPv4 /etc/hostscomo sugerido pela davidgo. Obviamente, você precisará atualizar esse arquivo sempre que o endereço IP do servidor for alterado, o que, esperamos, não será com muita frequência.

Kasperd
fonte
Certamente, "fazer empilhamento duplo é uma boa idéia", mas nem todo mundo pode simplesmente "fazer empilhamento duplo". Se meu provedor me fornecer apenas um ou outro, não há muito o que fazer sobre isso.
paolo
@paolo Se você está falando de servidores, pode escolher um provedor de hospedagem que suporte dual stack. Há um número tão grande de provedores concorrentes para escolher que insistir no suporte a pilha dupla apenas torna a escolha um pouco mais fácil, cortando a lista de provedores para escolher. Se estamos falando de redes com usuários finais, há menos concorrência, pois você se limita aos ISPs na sua área geográfica. Nesse caso, seguir o que o ISP fornece funcionará, desde que os serviços nos quais você confia sejam de pilha dupla como deveriam ser.
kasperd
@paolo Se você está falando de redes em que os usuários são desenvolvedores, administradores de sistema ou outros que precisam de pilha dupla para desenvolver / oferecer suporte à infraestrutura de pilha dupla, você realmente deve usar a pilha dupla e usar um túnel se o ISP não suporte IPv6. Você pode ter quase certeza de que o ISP fornece uma maneira de alcançar serviços somente IPv4, possivelmente por meio do NAT64 ou outro mecanismo de transição.
kasperd
Aparentemente, esse site está habilitado para IPv6 agora (meu navegador se conecta a um IP real e não à minha conexão 6to4 padrão)
Paul Stelian
1

Eu 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 da maneira oposta, ou seja, um domínio é resolvido em um ou mais hosts.

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

davidgo
fonte
era isso que eu tinha em mente. mas como não há endereço IP6 "apropriado", pensei em redirecioná-lo de alguma forma. Eu adicionei à pergunta #
rubo77 16/05