Versão curta
Before September 2012 After September 2012
Precedence Prefix Precedence Prefix
---------- ------------- ---------- -------------
50 ::1/128 IPv6 loopback 50 ::1/128 IPv6 loopback
40 ::/0 Native IPv6 40 ::/0 Native IPv6
40 fc00::/7 ULAs 35 ::ffff:0:0/96 IPv4
40 fec0::/10 site-local 30 2002::/16 6to4
40 3ffe::/16 6bone 5 2001::/32 Teredo
30 2002::/16 6to4 3 fc00::/7 ULAs
20 ::/96 IPv4compat 1 fec0::/10 site-local
10 ::ffff:0:0/96 IPv4 1 3ffe::/16 6bone
5 2001::/32 Teredo 1 ::/96 IPv4compat
Versão longa
O RFC6724 definiu uma alteração na forma como os endereços devem ser preferidos. Com essa alteração, o IPv6 não é mais o endereço preferido em quase todos os casos :(
Esta pergunta, que foi feita em junho de 2012, foi "corrigida" por uma RFC a partir de setembro de 2012. Dependendo da versão do Windows, você tinha essa nova política pronta para uso (Windows 8.1) ou provavelmente já foi entregue por meio de uma atualização ( Windows 8, Windows 7, Windows Vista).
Estamos aqui porque queremos usar o IPv6; queremos que essa mudança seja desfeita.
Como colocar de volta
Se você obtiver vários endereços IP para um único host, sua máquina precisará decidir qual endereço será usado. Um exemplo de classificação pode ser:
- Loopback IPv6
- IPv6 nativo
- Endereços locais únicos (ULAs), por exemplo, fdxx ::
- Local do site, por exemplo, fec0
- 6bone
- 6to4
- IPv4compat
- IPv4
- Teredo, por exemplo, 2001
Na sua máquina Windows, essa classificação é chamada de política de prefixo .
Política de prefixo
Você pode visualizar a política de prefixo do seu computador executando:
>netsh int ipv6 show prefixpolicies
Nos tempos antigos (originalmente definido pela RFC 3484 ), a política de prefixo era:
Precedence Prefix
---------- -------------
50 ::1/128 IPv6 loopback
40 ::/0 Native IPv6
40 fc00::/7 ULAs
40 fec0::/10 site-local
40 3ffe::/16 6bone
30 2002::/16 6to4
20 ::/96 IPv4compat
10 ::ffff:0:0/96 IPv4
5 2001::/32 Teredo
Então, você vê que ele sempre usaria o IPv6 (yay!):
- Loopback IPv6
- IPv6 nativo, ULAs, local do site, 6 um
- 6to4
- IPv4compat
- IPv4
- Teredo
Se você passou pelo esforço de implantar o IPv6: simplesmente funcionou.
Nova política de prefixo
Em 2012, uma nova ordem de preferência foi definida pela RFC6724 . Atualmente, a política de prefixos garante praticamente que você nunca usará o IPv6:
Precedence Prefix
---------- -------------
50 ::1/128
40 ::/0 Native IPv6
35 ::ffff:0:0/96 IPv4
30 2002::/16
5 2001::/32
3 fc00::/7 ULAs
1 fec0::/10 site-local
1 3ffe::/16
1 ::/96
Você verá que nunca poderá usar seus endereços locais exclusivos ou o endereço local do site; está perpetuamente quebrado:
- Loopback IPv6
- IPv6 nativo
- IPv4
- 6to4
- Teredo
- ULAs
- site-local
- 6bone
- IPv6compat
Como corrigi-lo?
O que queremos é corrigir o IPv6 para que os ULAs sejam preferidos ao IPv4. No mínimo, queremos enfatizar o uso de ULAs ( fc00::/7
) acima do IPv4:
Precedence Prefix
---------- -------------
50 ::1/128
40 ::/0 Native IPv6
37 fc00::/7 ULAs <---------- from 3 up to 37
35 ::ffff:0:0/96 IPv4
30 2002::/16
5 2001::/32
1 fec0::/10 site-local
1 3ffe::/16
1 ::/96
O que é feito por:
>netsh interface ipv6 set prefixpolicy prefix=fc00::/7 precedence=37 label=13 store=active
Isso o manterá ativo até a próxima reinicialização. Para tornar a alteração permanente:
>netsh interface ipv6 set prefixpolicy fc00::/7 37 13
Se eu:
- passou pelo esforço de gerar um prefixo global de ULA para meu / 48
- e escolha um ID de sub-rede para o meu / 64
- e implantar ULAs em todas as máquinas da empresa
- e atualize os servidores DNS para retornar endereços IPv6 ULA, além de endereços IPv4
o mínimo que o computador poderia fazer é ter a cortesia comum de usar o endereço.
Bônus Chatter
O fc00::/7
intervalo é dividido em duas partes:
fd00::/8
- prefixo GlobalID gerado localmente
fc00::/8
- ???
Ninguém realmente decidiu fc
que seria bom, então fica lá.
Os fd
endereços são definidos como:
fd
[40-bit random GlobalID]
[16-bit subnet]
[64-bits for host assignment]
Portanto, se você gerou a4d7f6dd66
como seu GlobalID de 40 bits aleatoriamente criptografado , isso fornece seu / 48:
fda4:d7f5:dd66::
/ 48
fda4:d7f5:dd66:face::
/ 64 (na face
sub - rede)
fda4:d7f5:dd66:face::825
como um endereço IP do host
O SixXS mantinha um banco de dados público de prefixos GlobalID de Endereço Local Único, a fim de reduzir a chance de colisões, por exemplo:
fdee:e004:2208::/48
: Apple Inc - Leopard OSX
fdd4:43c8:ba34::/48
: TekSavvy - Danny Murray
fdac:afbd:fea1::/48
: IBM Rational Build Forge - Chris Fuller
Mas, devido à lentidão no uso e ao valor duvidoso, o SixXS interrompeu o serviço em 2018.
Leitura de bônus
netsh interface ipv6 show prefixpolicy
. Eu posso postar uma resposta mais detalhada amanhã.