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
RFC6724 definiu uma mudança na forma como os endereços devem ser preferidos. Com esta alteração o IPv6 já não é o endereço preferido em quase todos os casos :(
Esta pergunta, feita em Junho de 2012, foi “corrigida” por um RFC a partir de Setembro de 2012. Dependendo da sua versão Windows, ou tinha esta nova política fora da caixa (Windows 8.1), ou provavelmente já entregue através de uma actualização (Windows 8, Windows 7, Windows Vista).
Estamos aqui porque queremos* utilizar IPv6; queremos que essa mudança seja desfeita.
Como colocar de volta
Se obtiver múltiplos endereços IP para um único anfitrião, a sua máquina tem de decidir qual o endereço que irá utilizar. Um exemplo de classificação pode ser:
& - loopback IPv6
- Nativo IPv6
- Endereços locais únicos (ULAs), por exemplo fdxx::
- Site-local, por exemplo fec0
- 6bone
- 6to4
- IPv4compat
- IPv4
- Teredo, e.g. 2001
& Na sua máquina Windows, esta classificação é chamada de política de prefixos.
Política de prefixo
Pode ver a política de prefixo do seu computador executando:
>netsh int ipv6 show prefixpolicies
Nos velhos tempos (originalmente definidos por 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
Assim, verá que utilizaria praticamente de qualquer forma IPv6 (yay!):
- loopback IPv6
- Nativo IPv6, ULAs, site-local, 6one*
- 6to4
- IPv4compat
- IPv4*
- Teredo
Se passou pelo esforço de implementar IPv6: acabou de funcionar.
Nova Política de Prefixos
Em 2012 uma nova ordem de preferências foi definida por RFC6724 . Hoje em dia, a política de prefixos praticamente assegura que nunca usará 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
Verá que nunca poderá usar os seus Endereços Locais Únicos, ou endereço local; está perpetuamente quebrado:
- loopback IPv6
- IPv6 nativo
- IPv4
- 6to4
- Teredo
- ULAs
- site-local*
- 6bone
- IPv6compat
Como repará-lo?
O que queremos é corrigir o IPv6 para que os ULAs sejam preferidos em relação ao IPv4. No mínimo, queremos empurrar 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 só o manterá activo até à próxima reinicialização. Para que a mudança permaneça permanente:
>netsh interface ipv6 set prefixpolicy fc00::/7 37 13
Se i:
- tiver passado pelo esforço de gerar um prefixo global ULA para o meu /48
- e escolher um id de sub-rede para o meu /64
- e implementar ULAs em todas as máquinas da empresa
- e actualizar os servidores DNS para devolver endereços ULA IPv6 para além dos endereços IPv4
o mínimo que o computador pode fazer é ter a cortesia comum de usar o endereço.
Bónus Chatter
O intervalo fc00::/7
está dividido em duas partes:
fd00::/8
- fc00::/8
- Prefixo GlobalID gerado localmente
fc
- ???
& Nunca ninguém decidiu realmente que o fd
seria bom para, e por isso fica apenas aí sentado.
Os fd
endereços [40-bit random GlobalID]
são definidos como:
[16-bit subnet]
[64-bits for host assignment]
a4d7f6dd66
fda4:d7f5:dd66::
fda4:d7f5:dd66:face::
Portanto, se gerou face
como o seu GlobalID criptoghpcallly randomly 40-bit, isso dá-lhe o seu /48:
fda4:d7f5:dd66:face::825
/48
& - fdee:e004:2208::/48
/64 (na sub-rede fdd4:43c8:ba34::/48
)
fdac:afbd:fea1::/48
como endereço IP anfitrião
SixXS manteve uma base de dados pública de prefixos de Endereço Local Único GlobalID, a fim de reduzir a hipótese de colisões, e. g.:
& - 0x6&: Apple Inc - Leopard OSX
- 0x6&: TekSavvy - Danny Murray
- 0x6&: IBM Rational Build Forge - Chris Fuller
Mas devido ao uso lento, e ao valor duvidoso em primeiro lugar, SixXS descontinuou o serviço em 2018.
Leitura de Bónus