Désactiver IPv6 sur l'adresse de bouclage (Localhost, nom de l'ordinateur,…)

15

Nous avons essayé d'installer un produit logiciel tiers sur une nouvelle machine Windows Server 2008 R2 et avons constaté que tout fonctionne sauf pour accéder aux services locaux via des adresses de bouclage telles que localhostou le nom de l'ordinateur (ex: VPS-Webqui se résout en localhost). Nous n'utilisons pas IPv6 et souhaitons le désactiver jusqu'à ce que le logiciel soit compatible.

J'ai essayé d'utiliser ces instructions pour désactiver IPv6 sur Windows 2008 R2 mais cela n'a pas désactivé le protocole pour localhost. Pinging localhostou VPS-Webreviendra toujours ::1:au lieu de 127.0.0.1. Je peux utiliser ping localhost -4pour obtenir l'adresse correcte, mais IPv6 a priorité sur IPv4, le logiciel tiers n'obtient que l'adresse IPv6.

Greg Bray
la source
Avez-vous essayé de contacter le fournisseur pour voir s'il a une solution? Ping demande l'adresse IPv6, donc il obtiendra :: 1, les applications qui ne prennent pas en charge IPv6 n'obtiendront cependant pas ces adresses.
Chris S
Le logiciel est une abomination de divers composants (JAVA, Tomcat, Apache, MSSQL, SAP, JDBC, WMI) dont l'un pourrait être le problème. Je n'utilise pas IPv6, je voudrais donc le désactiver. Cela m'inquiète également qu'il ne semble pas y avoir d'option pour le faire pour l'adaptateur de bouclage.
Greg Bray

Réponses:

12

J'avais initialement vérifié le fichier hôte comme le suggérait SilverbackNet, mais sur un serveur Windows 2008 R2, c'est le fichier par défaut:

# localhost name resolution is handled within DNS itself.
#   127.0.0.1       localhost
#   ::1             localhost

#indique un commentaire dans le fichier hôte, donc toutes les entrées sont mises en commentaire et la première ligne est un peu déroutante. J'ai ensuite remarqué qu'il y avait deux entrées pour localhost qui ont été commentées, alors j'ai essayé de ne pas commenter l'IPv4 et cela a fonctionné! J'aurais dû essayer ça d'abord mais j'ai été éjecté par la première ligne. En utilisant le fichier hôte ci-dessous, cingler le nom de l'ordinateur ou localhost retournera toujours une adresse IPv4, ce qui résout le problème avec le logiciel tiers!

# localhost name resolution is handled within DNS itself.
#   ::1         localhost
127.0.0.1       localhost
127.0.0.1       VPS-Web
Greg Bray
la source
Cela a-t-il supprimé l'écoute ipv6 ([::]) dans netstat?
Jared Burrows
Ce ne est pas. [::] est l'équivalent IPv6 de 0.0.0.0, qui représente toutes les adresses IP disponibles sur le système. Le correctif ci-dessus concerne spécifiquement l'adresse de bouclage localhost. J'ai les deux paramètres ci-dessus ainsi que la clé de registre DisabledComponents = 0xffffffff et je vois toujours des applications écouter sur [::]. Je ne sais pas s'il existe un moyen de désactiver complètement IPv6.
Greg Bray
Merci d'avoir confirmé mon problème! Je m'assurais juste :)
Jared Burrows
Ça n'a pas marché pour moi. J'ai vidé le cache DNS et redémarré, mais il renvoie toujours une adresse IPv6 ...
jj_
5

Définition de "DisabledComponents" = 0x20 sous

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip6 \ Parameters \

définira cette machine pour utiliser IPv4 au lieu d'IPv6 dans les stratégies de préfixe.

Créez la clé de registre si elle n'existe pas.

Un gars
la source
2

Le thread initial de ServerFault sur l'utilisation de la DisabledComponentsvaleur de registre est vraiment la meilleure façon de procéder. L'ajustement des fichiers des hôtes ne devrait jamais être nécessaire dans un réseau qui fonctionne bien. Le réglage du registre est également beaucoup plus facile à déployer et à rétablir via une stratégie de groupe si vous disposez d'un Active Directory.

La raison pour laquelle cela n'a pas fonctionné est que ce DisabledComponentsparamètre de registre est lu comme un ensemble d'indicateurs de bits et non simplement activé ou désactivé. Voici la documentation officielle de Microsoft sur le sujet:
Comment désactiver IP version 6 (IPv6) ou ses composants spécifiques dans Windows 7, Windows Vista, Windows Server 2008 R2 et Windows Server 2008

La version courte est celle pour désactiver complètement IPv6 sur Vista / 2008 et au-delà, définissez la valeur de DisabledComponentssur 0xff. Je le fais sur toutes les machines que je gère où nous n'utilisons pas explicitement IPv6. Cela a pour effet secondaire de raccourcir considérablement la sortie de la ipconfigcommande.

Ryan Bolger
la source
2
Selon votre lien ( support.microsoft.com/kb/929852#letmefixit ) cette entrée de registre permet de désactiver IPv6 à de nombreux endroits SAUF le bouclage ...
Frank Nocke
1
Vous avez raison. Cependant, il existe des valeurs qui modifient la fonctionnalité réseau par défaut pour préférer IPv4 à IPv6, ce qui résoudra efficacement les problèmes de l'OP avec la connexion à localhost ou le nom de l'ordinateur NetBIOS.
Ryan Bolger du
Aucun de ceux-ci n'a réellement fonctionné pour moi dans Windows Server 2012R2. Cela comprend la modification des hôtes, le paramètre de registre DisabledComponents en plus de nombreuses autres idées que j'ai vues ailleurs. Fonctionne sur Windows Server 2008 mais je n'ai pas de solution pour 2012R2.
Scott White
Vous devez redémarrer après avoir modifié la valeur DisabledComponents. Si vous l'avez défini sur 0xffffffff, il n'y a aucun moyen que cela ne fonctionne pas, même sur 2012R2. Les résultats de l'exécution d'un ipconfig ne doivent renvoyer rien qui soit lié à IPv6 et en tant que tel, le ping localhost doit pinguer l'adresse v4.
Ryan Bolger
Une nouvelle découverte montre que la valeur correcte doit être 0xFF au lieu de 0xFFFFFFF pour éviter un délai de démarrage de 5 secondes. Voir le Microsoft KB929852 mis à jour (cela ne désactive cependant pas le bouclage)
wandersick
2

Avez-vous essayé de supprimer l'entrée du fichier hosts dans% systemroot% \ system32 \ drivers \ etc? Cela devrait le faire, si vous avez juste besoin que "localhost" soit toujours IPv4. Cependant, s'il est basé sur le nom du serveur, cela ne fonctionnera probablement pas.

SilverbackNet
la source
1
Le fichier hosts sous Windows est sous% systemroot% \ system32 \ drivers \ etc et même s'il ne contient pas de référence ipv6 pour le ping localhost, localhost obtiendra une réponse :: 1.
Helvick
Vous obtiendrez une réponse 127.0.0.1, si vous mappez localhost à cela (et UNIQUEMENT à cela, pas à IPv6)
Frank Nocke
0

Vous pouvez également accéder aux propriétés de la carte réseau elle-même et décocher la case IPv6, en laissant IPv4 activé. Devrait faire l'affaire.

JohnThePro
la source
3
Ne fonctionne pas pour l'adresse de bouclage ...
Greg Bray
awww! :( haha ​​!!
JohnThePro
Cela désactive uniquement l'interface LAN. Le tunnel et le bouclage sont toujours connectés ici (vérifier via l'interface netsh ipv6> afficher l'interface)
Chadddada
-3

Essayez d'ajouter une ligne à votre fichier d'hôtes comme:

::1 VPW-Web

Cela devrait permettre au résolveur d'obtenir VPW-Webun nom pour le bouclage IPv6.

BillThor
la source