Posso acessar meu site usando meu endereço IPv4, mas não meu endereço IPv6. Por quê?

0

Eu expus meu servidor web pessoal ao mundo externo abrindo a porta 80 para entrada em meus firewalls e fazendo o encaminhamento de porta adequado. Então eu fui para whatismyipaddress.com para obter o meu endereço IP externo para testar no Internet Explorer. Usando o endereço IP whatismyipaddress.com me deu (IPv6 parece) na caixa de texto do endereço IE resultou no IE fazendo uma pesquisa no Bing com o endereço. Eu tentei o endereço no Firefox com a barra de endereços de pesquisa desligada e o Firefox me deu "O endereço não é válido". Passei muito tempo certificando-me de que minhas configurações de firewall e de encaminhamento de porta estavam corretas, como estavam. Não importa o que tentei, não consegui acessar meu servidor da web usando esse endereço. Então eu fui ao canyouseeme.org que relatou o meu endereço IP como um endereço IPv4. Eu estava surpreso. Eu pensei que o IPv4 não estava mais em uso na internet. Eu tentei esse endereço no navegador e imediatamente entrei no meu site.

Por que meu endereço IPv6, conforme relatado por whatismyipaddress.com, não funciona em nenhum dos navegadores quando o IPv4 faz isso em ambos os navegadores? Eu pensei que o IPv4 era história na internet.

    
por L Fitz 01.06.2016 / 02:14

1 resposta

4

A razão pela qual seu IP IPv6 externo (aquele que se parece com XXXX:XXXX:XXXX:: ) não funciona é devido ao modo como o IPv6 funciona.

Pegue este endereço, por exemplo: 2607:5600:52c:1:: . Esse endereço é globalmente roteável e, na verdade, esse endereço pertence a mim.

Agora temos um endereço IPv6 e queremos nos conectar, por exemplo ... port 1000 .

Os URIs que estamos acostumados a ver são os seguintes: <protocol>://<host>[:<port>]/[<path>][#<hash>] , o que significa que, para um site IPv6, esperamos usar http://2607:5600:52c:1::/foo#bar . É aqui que fica interessante.

Poderíamos sempre fazer 2607:5600:52c:1::1000 , mas, na realidade, isso seria traduzido de forma transparente para 2607:5600:052c:0000:0000:0000:1000 , o que é um problema, pois isso significa que não há porta. É aqui que o RFC3986 entra em jogo. Você quer a seção 3.2.2: Host

A host identified by an Internet Protocol literal address, version 6 [RFC3513] or later, is distinguished by enclosing the IP literal within square brackets ("[" and "]"). This is the only place where square bracket characters are allowed in the URI syntax. In anticipation of future, as-yet-undefined IP literal address formats, an implementation may use an optional version flag to indicate such a format explicitly rather than rely on heuristic determination.

Ok. Você me contou sobre o porquê, então como consertá-lo?

Simples. De acordo com a RFC3986, você precisa usar esta notação: [IPv6-ADDRESS] , o que significa que, no nosso exemplo, você precisa usar isto: http://[2607:5600:52c:1::] , que funcionará. Isso também significa que podemos nos conectar à porta 1000 usando [2607:5600:52c:1::]:1000

    
por 01.06.2016 / 05:34