Acessando o servidor da web não-port80 usando o IPv6

7

Em uma rede IPv4 normal, posso entrar em qualquer navegador, como o Firefox, e procurar um servidor em um endereço IPv4 não hospedado na porta 80:

http://192.168.42.6:8080/

Isso acessa o servidor na porta 8080 em 192.168.42.6 . No entanto, se eu tentar isso com um IP IPv6, não tenho sorte. Isso tenta acessar a porta 8080 em fe80::520:ff0f:ece0:1 :

http://[fe80::520:ff0f:ece0:1]:8080/

O Firefox "corrigirá" automaticamente esse URL para:

http://[www.fe80::520:ff0f:ece0:1.com]:8080/

que não me ajuda a acessá-lo. Então, ou eu estou fazendo algo realmente errado OU há algo realmente errado com o IPv6. Não foi possível encontrar nada que ajudasse remotamente na Internet. (E sim, há um servidor rodando no IPv6 em questão.)

    
por logain 05.02.2011 / 22:02

1 resposta

5

Primeiro de tudo: não sou especialista em IPv6.

Se você não puder adicionar um nome DNS (ou quiser garantir que o IPv6 seja usado 1 ), por que não usar o endereço real, em vez do endereço fe80 link-local? Em um Mac com OS X e no Windows XP Home Edition, isso (com um endereço IPv6 real 2 ) funciona bem para mim, em todos os navegadores:

http://[2001:db8::216:cbff:xx:xx]:8080/

(Observe que alguns navegadores não prefixam automaticamente a parte http:// para endereços IPv6. Adicionando um nome fictício em seu O arquivo hosts para somente o endereço IPv6 torna a vida ainda mais fácil.

Para fe80 endereços, provavelmente não é apenas o número da porta que está causando problemas; ao usar a porta padrão 80, você provavelmente não pode se conectar, a menos que você também especifique o índice da zona. (Assim: a interface de saída que deve fazer a conexão, como Ethernet com fio ou sem fio, que pode ser diferente em cada computador que você usa.)

No Windows XP Home Edition, tanto com fio ethernet como sem fio (o último sendo inativo), o seguinte funciona bem para mim no Firefox 3.5 e 3.6. Aqui, 4 é o meu índice de interface de rede 3 :

http://[fe80::216:cbff:xx:xx%4]/
http://[fe80::216:cbff:xx:xx%4]:8080/

No Internet Explorer 8, o percentual de caracteres deve ser percent-codificado em %25 :

http://[fe80::216:cbff:xx:xx%254]:8080/

(Para mim, isso não funciona sem o %4 ou %254 ; se isso acontecer em outras instalações, talvez o Windows ou o IE prefira conexões externas , e essa instalação tem apenas um único interface de rede?)

Em um Mac, o seguinte funciona bem no Firefox:

http://[fe80::216:cbff:xx:xx%en0]:8080/

A especificação de um índice de zona usando a notação percentual é problemática, considerando o conflito com as notações de URL 4 . Não consegui obter as informações acima para funcionar no Chrome 8 e 9 no Windows XP, nem no Safari ou Chrome em um Mac.

Em um Mac, em vez da sintaxe % , você pode (ab) usar o índice de escopo (a segunda palavra ou o terceiro e o quarto bytes) para especificar o índice da interface de rede. Como fe80:0004 funciona bem em todos os meus navegadores:

http://[fe80:4::216:cbff:xx:xx]/
http://[fe80:4::216:cbff:xx:xx]:8080/

Note, no entanto, que duvido que isso seja oficialmente suportado , pois isso não funciona no meu Windows XP, e alguma documentação afirma que as alternativas devem sempre ser usadas em seu lugar. Como:

ping6 -I en0 fe80::216:cbff:xx:xx  (en0 = wired ethernet on my Mac)
ping6 fe80::216:cbff:xx:xx%en1     (en1 = wireless)

... em vez de:

ping6 fe80:4::216:cbff:xx:xx
ping6 fe80:6::216:cbff:xx:xx

Nota final: pode-se enganar usando :: ou ::ffff: seguido por um endereço IPv4, conforme especificado em RFC 4291 . Mas, na verdade, isso não usa IPv6, apesar de dar uma resposta no meu Mac:

http://[::ffff:192.168.178.25]:8080/

Isso também pode usar uma notação hexadecimal, e alguns navegadores irão reescrevê-lo automaticamente:

http://[::ffff:c0a8:b219]:8080/

Mas não importa o quê: isso usa uma conexão IPv4 nos meus Macs. Nos meus Macs, [::192.168.178.25] não funciona. Não consegui obter nenhum formulário para funcionar no Windows XP.

1 Alguns navegadores preferem IPv4 por IPv6. Veja test-ipv6.com . Isso também depende da plataforma.
2 No IPv6, os servidores da web podem veja o endereço MAC do seu computador , sendo 216:cbff:xx:xx nestes exemplos. Eu prefiro não publicar este super cookie na net. Consulte também Como evitar a exposição do meu endereço MAC ao usar o IPv6 ?
3 Em um Mac: procure o valor para scopeid na saída de ifconfig . No Windows : veja o valor de Idx na saída de netsh interface ipv6 show interface . Eu vi esse número mudar após as reinicializações!
4 Parece que isso já levou a uma RFC que nunca saiu do rascunho. Este rascunho propõe que use o caractere mais, mas isso não funciona nos meus Macs ou Windows XP também.

    
por 06.02.2011 / 17:48