Version courte
Avant septembre 2012 Après septembre 2012
Priorité Préfixe Priorité Préfixe
---------- ------------- ---------- -------------
50 ::1/128 Boucle IPv6 50 ::1/128 Boucle IPv6
40 ::/0 IPv6 natif 40 ::/0 IPv6 natif
40 fc00::/7 Adresses locales uniques 35 ::ffff:0:0/96 IPv4
40 fec0::/10 Zone locale 30 2002::/16 6to4
40 3ffe::/16 6bone 5 2001::/32 Teredo
30 2002::/16 6to4 3 fc00::/7 Adresses locales uniques
20 ::/96 IPv4compatibilité 1 fec0::/10 Zone locale
10 ::ffff:0:0/96 IPv4 1 3ffe::/16 6bone
5 2001::/32 Teredo 1 ::/96 IPv4compatibilité
Version longue
RFC6724 a défini un changement dans la façon dont les adresses devraient ê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é "corrigée" par un RFC de septembre 2012. Selon votre version de Windows, vous aviez soit cette nouvelle politique directement en place (Windows 8.1), soit déjà livrée via une mise à jour (Windows 8, Windows 7, Windows Vista).
Nous sommes ici parce que nous voulons utiliser IPv6 ; nous voulons annuler ce changement.
Comment la rétablir
Si vous obtenez plusieurs adresses IP pour un seul hôte, votre machine doit décider quelle adresse elle utilisera. Un classement exemple pourrait être :
- Boucle IPv6
- IPv6 natif
- Adresses locales uniques (ULAs), p. ex. fdxx::
- Zone locale, p. ex. fec0
- 6bone
- 6to4
- IPv4compatibilité
- IPv4
- Teredo, p. ex. 2001
Sur votre machine Windows, ce classement est appelé la politique de préfixe.
Politique de préfixe
Vous pouvez voir la politique de préfixe de votre ordinateur en exécutant :
>netsh int ipv6 show prefixpolicies
Dans le temps ancien (initialement défini par RFC 3484), la politique de préfixe était :
Priorité Préfixe
---------- -------------
50 ::1/128 Boucle IPv6
40 ::/0 IPv6 natif
40 fc00::/7 ULAs
40 fec0::/10 Zone locale
40 3ffe::/16 6bone
30 2002::/16 6to4
20 ::/96 IPv4compatibilité
10 ::ffff:0:0/96 IPv4
5 2001::/32 Teredo
Ainsi, vous voyez qu'il utilisera presque toujours IPv6 (hourra !) :
- Boucle IPv6
- IPv6 natif, ULAs, zone locale, 6bone
- 6to4
- IPv4compatibilité
- IPv4
- Teredo
Si vous avez fait l'effort de déployer IPv6 : ça a juste fonctionné.
Nouvelle Politique de Préfixe
En 2012, un nouvel ordre de préférence a été défini par RFC6724. Aujourd'hui, la politique de préfixe assure presque toujours que vous n'utiliserez jamais IPv6 :
Priorité Préfixe
---------- -------------
50 ::1/128
40 ::/0 IPv6 natif
35 ::ffff:0:0/96 IPv4
30 2002::/16
5 2001::/32
3 fc00::/7 ULAs
1 fec0::/10 Zone locale
1 3ffe::/16
1 ::/96
Vous verrez que vous ne pourrez jamais utiliser vos adresses uniques locales, ou l'adresse de zone locale ; c'est perpétuellement cassé :
- Boucle IPv6
- IPv6 natif
- IPv4
- 6to4
- Teredo
- ULAs
- Zone locale
- 6bone
- IPv6compatibilité
Comment le réparer ?
Ce que nous voulons, c'est réparer IPv6 pour que les ULAs soient préférées par rapport à IPv4. Au moins, nous voulons favoriser l'utilisation des ULAs (fc00::/7
) par rapport à celle d'IPv4 :
Priorité Préfixe
---------- -------------
50 ::1/128
40 ::/0 IPv6 natif
37 fc00::/7 ULAs <---------- de 3 à 37
35 ::ffff:0:0/96 IPv4
30 2002::/16
5 2001::/32
1 fec0::/10 Zone locale
1 3ffe::/16
1 ::/96
Ce qui est fait par :
>netsh interface ipv6 set prefixpolicy prefix=fc00::/7 precedence=37 label=13 store=active
Cela ne sera actif que jusqu'au prochain redémarrage. Pour rendre le changement permanent :
>netsh interface ipv6 set prefixpolicy fc00::/7 37 13
Si j'ai :
- fourni un préfixe Global ULA pour mon /48
- et choisi un ID de sous-réseau pour mon /64
- et déployé les ULAs sur chaque machine de l'entreprise
- et mis à jour les serveurs DNS pour renvoyer des adresses ULA IPv6 en plus des adresses IPv4
le moins que l'ordinateur pourrait faire est d'avoir la courtoisie d'utiliser cette adresse.
Contenu supplémentaire
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é de ce que le fc
serait bon pour, il reste donc là.
Les adresses fd
sont définies comme suit :
fd
[40 bits GlobalID aléatoires]
[16 bits de sous-réseau]
[64 bits pour l'assignation d'hôte]
Donc, si vous avez généré a4d7f6dd66
comme votre GlobalID aléatoire cryptographique de 40 bits, 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
en tant qu'adresse IP hôte
SixXS maintenait une base de données publique des préfixes GlobalID d'adresses locales uniques afin de réduire les risques de collision, p. ex. :
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 de l'utilisation décroissante, et de la valeur douteuse au départ, SixXS a interrompu le service en 2018.
Lecture supplémentaire