Version courte
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
Version longue
RFC6724 a défini un changement dans la façon dont les adresses doivent être préférées. Avec ce changement, IPv6 n'est plus l'adresse préférée dans presque tous les cas :(
Cette question, qui a été posée en juin 2012, a été “fixée” par un RFC à partir de septembre 2012. Selon votre version de Windows, vous aviez soit cette nouvelle politique prête à l'emploi (Windows 8.1), soit probablement déjà fournie par une mise à jour (Windows 8, Windows 7, Windows Vista).
Nous sommes ici parce que nous voulons utiliser IPv6 ; nous voulons que ce changement soit annulé.
Comment le remettre
Si vous obtenez plusieurs adresses IP pour un seul hôte, votre machine doit décider quelle adresse elle utilisera. Un exemple de classement pourrait être :
- Boucle IPv6
- IPv6 native
- Adresses locales uniques (ULA), par exemple fdxx::
- Site local, par exemple fec0
- 6bone
- 6to4
- IPv4compat
- IPv4
- Teredo, par exemple 2001
Sur votre machine Windows, ce classement est appelé politique de préfixation.
Politique de préfixe
Vous pouvez voir la politique de préfixe de votre ordinateur en exécutant :
>netsh int ipv6 show prefixpolicies
Dans l'ancien temps (défini à l'origine par la RFC 3484 ), la politique de préfixe était :
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
Donc vous voyez qu'elle utiliserait toujours IPv6 (yay !):
- Boucle IPv6
- Native IPv6, ULAs, site-local, 6one
- 6to4
- IPv4compat
- IPv4
- Teredo
Si vous avez fait l'effort de déployer IPv6 : ça a marché.
New Prefix Policy
En 2012, un nouvel ordre de préférence a été défini par RFC6724 . Aujourd'hui, la politique des préfixes garantit que vous n'utiliserez jamais l'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
Vous verrez que vous ne pourrez jamais utiliser vos adresses locales uniques, ou adresse locale de site ; elle est perpétuellement cassée :
- Boucle IPv6
- IPv6 natif
- IPv4
- 6à4
- Teredo
- ULA
- site-local
- 6bone
- IPv6compat
Comment le réparer ?
Ce que nous voulons, c'est corriger IPv6 pour que les ULA soient préférées à IPv4. Au minimum, nous voulons pousser l'utilisation des ULA (fc00::/7
) au-dessus de celle d'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
Ce qui est fait par :
>netsh interface ipv6 set prefixpolicy prefix=fc00::/7 precedence=37 label=13 store=active
Qui ne restera actif que jusqu'au prochain redémarrage. Pour rendre le changement permanent :
>netsh interface ipv6 set prefixpolicy fc00::/7 37 13
Si i :
- a fait l'effort de générer un préfixe global ULA pour mon /48
- et de choisir un identifiant de sous-réseau pour mon /64
- et de déployer des ULA sur chaque machine de l'entreprise
- et de mettre à jour les serveurs DNS pour renvoyer les adresses IPv6 ULA en plus des adresses IPv4
le moins que l'ordinateur puisse faire est d'avoir la courtoisie commune d'utiliser l'adresse.
Bonus Chatter
La plage fc00::/7
est divisée en deux parties :
fd00::/8
- Préfixe GlobalID généré localement
fc00::/8
- ? ??
Personne n'a jamais vraiment décidé que fc
serait bon pour, et reste donc assis là.
Les adresses fd
sont définies comme :
fd
[40-bit random GlobalID]
[16-bit subnet]
[64-bits for host assignment]
Donc si vous avez généré a4d7f6dd66
comme votre GlobalID cryptoghpcallly random 40-bit, cela vous donne votre /48 :
fda4:d7f5:dd66::
/48
fda4:d7f5:dd66:face::
/64 (dans le sous-réseau face
)
fda4:d7f5:dd66:face::825
comme adresse IP hôte
SixXS a maintenu une base de données publique de préfixes GlobalID d'adresses locales uniques afin de réduire les risques de collisions, e. g. :
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
Mais en raison du ralentissement de l'utilisation, et de la valeur douteuse en premier lieu, SixXS a interrompu le service en 2018.
Lecture de bonus