Curl com ipv6 não funcionando por padrão

4

Estou tentando enrolar endereços ipv6, mas sem sucesso.

Se eu tentar, digamos:

curl https://google.com

Aguardo um tempo limite e recebo network unreachable

Se eu forçar ipv4 , tudo está bem.

curl -4 https://google.com

Então, novamente, se eu forçar o ipv6, assim:

curl -6 https://google.com

Eu recebo:

curl: (7) Failed to connect to 2800:3f0:4001:806::1005: Network is unreachable

Suponho que tenha de fazer alguma forma com a resolução de ipv6 endereços.

Eu vi que em outros computadores que têm uma versão mais nova de alguma distribuição do Linux, estes pedidos vão bem, então eu acho que tem que fazer algo comigo usando Ubuntu 10.10 , onde este problema não está resolvido. / p>

Eu quero ser capaz de curl normalmente sem usar a opção: -4 , o que eu tenho que modificar para poder usar o curl normalmente com ipv6 endereços?

    
por Zippie 15.09.2013 / 12:08

5 respostas

1

Eu tentei me conectar a outras redes e funcionou.

Nesse meio tempo eu atualizei meu sistema operacional para MINT v15 e o problema ainda permaneceu.

Na verdade, ainda ficou mais estranho porque eu poderia curl uma vez, tudo ficaria bem, do que eu faria na segunda vez e apresentaria o mesmo erro antigo.

Por fim, liguei para meu provedor e eles configuraram meu modem para as configurações de fábrica e atualizaram o software.

Agora tudo parece funcionar bem.

    
por 05.10.2013 / 17:38
6

Não é um problema com a resolução de endereços IPv6. Essa resolução de nomes está funcionando bem porque o curl reporta que não pode alcançar a rede 2800: 3f0: 4001: 806 :: 1005; Isso mostra que a tradução do nome foi bem-sucedida. Isso é diferente de um erro na pesquisa de nomes:

 $ curl -6 http://does.not.exist.foo.
 curl: (6) Couldn't resolve host 'does.not.exist.foo.'

Para alcançar um endereço IPv6, você precisa ter uma rota para o endereço de destino e muito poucas conexões possuem conectividade IPv6. Na máquina que estou escrevendo, quase não tenho rotas v6:

$ route -A inet6
Kernel IPv6 routing table
Destination                    Next Hop                   Flag Met Ref Use If
fe80::/64                      ::                         U    256 0     0 wlan0
ff00::/8                       ::                         U    256 0     0 wlan0

que diz que você sabe como acessar minha rede local e nada mais. Compare isso com minhas rotas IPv4

$ route -n 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
…

que mostra que eu tenho uma informação muito crítica sobre roteamento. Eu sei como chegar em qualquer lugar que eu não tenho uma rota explícita para entregar o pacote para o meu roteador padrão em 192.168.1.1.

A resolução do seu nome está funcionando bem. Você precisa de uma rota IPv6 para a rede de destino e poucos locais oferecem essa instalação ainda.

    
por 15.09.2013 / 13:27
1

Verifique a saída ifconfig das linhas que começam com inet6 addr . É possível que o seu computador tenha um endereço IPv6 atribuído que não funcione e que o Linux agora esteja tentando usar esse endereço não funcional em vez do endereço IPv4 em funcionamento.

    
por 15.09.2013 / 13:46
0

Se alguém encontrar isso no Google como eu fiz, para corrigir o problema, eu só tive que ajustar minhas regras de firewall para o IPv6.

Por padrão, eu bloqueei tudo na cadeia de entrada - depois que adicionei regras para permitir conexões estabelecidas, solicitações de ping e qualquer coisa das conexões IPv6 do host local começaram a funcionar!

    
por 16.07.2015 / 14:50
0

Este é um problema com o curl, que foi corrigido pelo pessoal do curl, mas muitas distribuições do sistema operacional distribuem versões antigas. Basicamente, se o curl puder encontrar um endereço ipv6 para o domínio em seu URL, ele tentará buscá-lo e, se isso falhar, o curl falhará, sem voltar a tentar o endereço IPv4. Você poderia argumentar se isso é um bug ou não, mas instalações IPv6 corrompidas são pelo menos tão comuns quanto as que funcionam.

Aqui está o meu relatório de erros para o Ubuntu. (Votos bem-vindos).

link

Seria bom saber quais outras distribuições / versões de sistema operacional têm esse problema.

Possíveis correções incluem:

  • fazendo com que o IPv6 funcione corretamente em seu sistema.
  • removendo o IPv6 do seu sistema.
  • obtendo uma versão mais recente do curl instalada (não sei de nenhum repositório alternativo para isso, então isso envolverá uma compilação de origem)
  • usando um servidor DNS configurado para não exibir informações de IPv6.
por 04.08.2015 / 16:19