2012-06-13 23:34:40 +0000 2012-06-13 23:34:40 +0000
33
33

Priorité à IPv4 par rapport à IPv6 dans Windows 7

Je dispose d'une connectivité IPv6 grâce au tunnel Hurricane Electric. Depuis la journée IPv6 de cette année, de nombreux services (google.com, facebook.com, etc.) ont activé l'IPv6 sur leurs principaux domaines. Sur ma machine Windows, l'IPv6 est préféré à l'IPv4. Cela signifie que chaque fois que je visite Google, tout le trafic passe par mon tunnel vers l'ouragan électrique, ce qui augmente la latence de plus de 100 % :

C:\> ping www.google.com

Pinging www.l.google.com [2001:4860:8005::68] with 32 bytes of data:
Reply from 2001:4860:8005::68: time=85ms
Reply from 2001:4860:8005::68: time=84ms
Reply from 2001:4860:8005::68: time=112ms
Reply from 2001:4860:8005::68: time=86ms

Ping statistics for 2001:4860:8005::68:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 84ms, Maximum = 112ms, Average = 91ms

C:\> ping -4 www.google.com

Pinging www.l.google.com [173.194.79.103] with 32 bytes of data:
Reply from 173.194.79.103: bytes=32 time=28ms TTL=48
Reply from 173.194.79.103: bytes=32 time=28ms TTL=48
Reply from 173.194.79.103: bytes=32 time=55ms TTL=46
Reply from 173.194.79.103: bytes=32 time=29ms TTL=46

Ping statistics for 173.194.79.103:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 28ms, Maximum = 55ms, Average = 35ms

**Question : Comment faire pour que Windows 7 préfère toujours IPv4, alors que les enregistrements IPv4 et IPv6 sont tous deux disponibles pour un nom de domaine spécifique ?

Réponses (5)

45
45
45
2012-06-14 18:15:03 +0000

Solution #1 : Ajouter une politique de préfixe pour préférer les adresses IPv4 aux adresses IPv6

La table de politique de préfixe est similaire à une table de routage, elle détermine quelles adresses IP sont préférées lors de l'établissement d'une connexion. Notez que la priorité supérieure dans les politiques de préfixes est représentée par une valeur de “priorité” plus élevée, exactement à l'opposé de la valeur de “coût” de la table de routage.

Table de politique de préfixes Windows par défaut :

C:\> netsh interface ipv6 show prefixpolicies
Querying active state...

Precedence Label Prefix
---------- ----- --------------------------------
        50 0 ::1/128
        40 1 ::/0
        30 2 2002::/16
        20 3 ::/96
        10 4 ::ffff:0:0/96
         5 5 2001::/32

Notez que les adresses IPv6 (::/0) sont préférées aux adresses IPv4 (::/96, ::ffff:0:0/96).

Nous pouvons créer une politique qui rendra le tunnel IPv6 de Hurricane Electric moins favorable que toute adresse IPv4 :

netsh interface ipv6 add prefixpolicy 2001:470::/32 3 6

2001:470::/32 est le préfixe de Hurricane Electric, 3 est une Précédence (très faible) et 6 est une Étiquette.

J'aurais pu utiliser un préfixe plus générique, mais je voulais m'assurer que si et quand j'obtiendrai une connectivité IPv6 directe d'un FAI, elle aura la priorité sur IPv4.

Si vous adaptez cette solution, vous devez remplacer mon préfixe Hurricane Electric par un préfixe IPv6 approprié.

Solution n°2 : modifier le registre pour que Windows préfère toujours IPv4 à IPv6

Cette solution est plus générique, mais plus invasive et moins conforme aux normes. Au final, Windows modifiera toujours le tableau des politiques de préfixes pour vous.

  • Ouvrez RegEdit, naviguez jusqu'à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters
  • Créez la valeur de registre DisabledComponents DWORD, fixez sa valeur à 20 (Hexadécimal). Voir Microsoft KB 929852 pour plus d'informations sur cette clé de registre, en particulier si DisabledComponents existe déjà sur votre système.
  • Redémarrer.
23
23
23
2014-05-15 12:13:20 +0000

Si le texte monospace et les tableaux avec des chiffres et des symboles étranges vous font peur, vous pouvez le faire avec Microsoft Fix-its, de simples installateurs de Microsoft qui effectuent les changements de configuration pour vous.

Ces fix-its proviennent de KB 2533454 , ce qui explique que vous voudriez le faire si votre connectivité IPv6 est rompue. Vous devez être un administrateur pour exécuter la correction ; après le téléchargement, cliquez avec le bouton droit de la souris et sélectionnez Exécuter en tant qu'administrateur.

7
7
7
2014-05-15 08:58:51 +0000

La manière la plus simple, et celles-ci sont toujours si simples qu'on les oublie…

  1. réseau ouvert et centre de partage.

  2. Là, cliquez sur Modifier les paramètres de l'adaptateur

  3. Dans la “Barre de menu”, cliquez sur Avancé. **NNota : Si vous ne voyez que “Organiser”, cliquez dessus, puis choisissez “Mise en page - Barre de menu”

  4. Après avoir cliqué sur “Avancé” à l'étape précédente, cliquez sur “Paramètres avancés” à cette étape (une boîte s'ouvrira sur votre écran)

  5. Ce qui est affiché, ce sont les adaptateurs et les paramètres et l'adaptateur que vous utilisez actuellement sera déjà mis en évidence dans la moitié supérieure et sa répartition représentative en dessous (vous devriez voir les fixations de cet adaptateur). Mettez en évidence l'une des fixations de la liste et vous devriez remarquer que les flèches vers la droite s'allument, utilisez ces flèches pour modifier l'ordre des fixations selon vos préférences, puis choisissez “ok” dans la partie inférieure.

  6. Notez que tout comme lorsque vous installez un protocole, un service ou un client dans les propriétés de votre adaptateur. La même chose s'applique ici, c'est-à-dire que vous changez un adaptateur, et les autres suivent. Ainsi, par exemple, si vous choisissez IPV6 plutôt que 4 sur votre adaptateur sans fil, votre adaptateur LAN change également.

C'est la façon la plus simple à laquelle je puisse penser pour effectuer cette tâche particulière sans avoir à trop réfléchir, ou à avoir trop de connaissances sur le routage des paquets sur un réseau inter.

2
2
2
2018-10-31 02:38:41 +0000

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 !):

  1. Boucle IPv6
  2. Native IPv6, ULAs, site-local, 6one
  3. 6to4
  4. IPv4compat
  5. IPv4
  6. 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 :

  1. Boucle IPv6
  2. IPv6 natif
  3. IPv4
  4. 6à4
  5. Teredo
  6. ULA
  7. site-local
  8. 6bone
  9. 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

0
0
0
2019-03-27 20:53:05 +0000

Il y a une méthode plus facile qui fonctionne pour moi. Je viens de modifier la métrique de l'interface # pour déterminer sa priorité. J'avais déjà utilisé cette méthode dans le passé pour changer la priorité des adaptateurs réseau (priorité de la carte réseau sans fil en premier, priorité de la carte réseau locale en second), mais j'ai découvert qu'elle fonctionne aussi bien sur TCP/IPv4 que sur TCP/IPv6. Dans ce cas, j'ai changé la métrique d'interface de TCP/IPv4 de Automatique à 5, et la métrique d'interface de TCP/IPv6 de Automatique à 10. Plus le chiffre de la métrique est bas, plus sa priorité est élevée. Ensuite, redémarrez votre PC. Désormais, chaque fois que je fais un ping en utilisant le nom d'hôte, il répondra par IPv4, au lieu de Ipv6.

Voici une instruction plus détaillée https://www.windowscentral.com/how-change-priority-order-network-adapters-windows-10