Pourquoi mon Windows possède-t-il des centaines d'adresses IPv6 temporaires?

17

Mon FAI a activé IPv6 pour moi il y a quelques semaines. Maintenant, j'ai remarqué que Windows (8.1) obtient beaucoup d'adresses IPv6 temporaires. ipconfiga la sortie suivante (les adresses réelles sont obscurcies):

Windows IP Configuration

Ethernet adapter Ethernet:

    Connection-specific DNS Suffix  . : fritz.box
    IPv6 Address. . . . . . . . . . . : 2012:65:fd85:5712:e0ca:9e76:661f:c4f1
    Temporary IPv6 Address. . . . . . : 2012:65:fd85:5712:74:5cd9:163c:69ef
    Temporary IPv6 Address. . . . . . : 2012:65:fd85:5712:89:8f2:7643:e51e
    Temporary IPv6 Address. . . . . . : 2012:65:fd85:5712:e3:52fd:b15f:6d7d
    [...over 600 more entries...]
    Temporary IPv6 Address. . . . . . : 2012:65:fd85:5712:fda8:816e:6d3:7713
    Temporary IPv6 Address. . . . . . : 2012:65:fd85:5712:fdc9:7a6b:d2c5:e880
    Temporary IPv6 Address. . . . . . : 2012:65:fd85:5712:fdf4:11ed:9aba:9e27
    Link-local IPv6 Address . . . . . : fe80::e0ca:9e76:661f:c4f1%3
    IPv4 Address. . . . . . . . . . . : 192.168.178.22
    Subnet Mask . . . . . . . . . . . : 255.255.255.0
    Default Gateway . . . . . . . . . : fe80::a96:d7ff:fe1f:cb26%3
                                        192.168.178.1

Je n'ai vraiment aucune idée d'où viennent toutes ces adresses. Mon Mac OS X sur le même réseau n'a aucun problème avec les adresses IPv6 temporaires. En plus d'être un problème étrange, je crois que la quantité d'adresses IPv6 ralentit mes performances réseau sous Windows.

Quelqu'un a-t-il une idée de ce qui déclenche ce comportement et comment le prévenir? Je ne voudrais pas désactiver complètement les adresses IPv6 temporaires si possible.

fschoenm
la source
Juste en écrivant cette question, mon Windows a obtenu environ 50 adresses IPv6 temporaires supplémentaires.
fschoenm
1
Avez-vous un programme qui ouvre des connexions et les garde ouvertes ? C'est la cause habituelle de cela. De plus, aucune de ces adresses n'est réellement valide; 2012::/8n'a pas encore été attribué. Cela pourrait aussi être un problème.
Michael Hampton
@MichaelHampton: Désolé, j'ai quelque peu obscurci les adresses. L'adresse est valide, vous devez me croire :)
fschoenm
6
(BTW, si vous voulez obscurcir vos adresses IPv6, utilisez toujours 2001:db8::/32, ( RFC 3849 ) qui indiquera clairement que ce sont des exemples d'adresses.)
Michael Hampton
1
Les adresses elles-mêmes sont générées partiellement de manière aléatoire. Lisez la Randomly generated interface identifiersection de: msdn.microsoft.com/en-us/library/aa915616.aspx
Brian

Réponses:

14

Quelqu'un a-t-il une idée de ce qui déclenche ce comportement et comment le prévenir?

À partir du lien que Brian vous a donné, «Les adresses temporaires sont générées pour les préfixes d'adresse publique qui utilisent la configuration automatique des adresses sans état».

Plus précisément, chaque processus génère une demande de ressources et le système d'exploitation les délivre. L'IPv6 SAA est défini dans la RFC 2462 , mais l '"adresse IPv6 temporaire" est due à l'implémentation Windows de la RFC 4941 . La question est donc de savoir quel processus est responsable du lancement d'une demande de système d'exploitation pour ouvrir un socket doté de ces extensions de confidentialité.

Pour répondre à votre question sur ce qui déclenche cela, examinons le matériel et les logiciels.

OS

Windows gère les adresses temporaires avec des paramètres définis dans netsh interface ipv6 show privacy. Modifiernetsh interface ipv6 set privacy ?

Pour vérifier ce qu'ils sont définis sur une machine Linux, vous devez vérifier les variables du noyau dans /proc/sys/net. Vous pouvez trouver les valeurs pertinentes pour votre distribution avec sysctl -a --pattern ^net\..*ipv?6.*temp.*et modifier la variable souhaitée avec sysctl -w foo.bar.var=<new value>(elle devrait être similaire sur votre machine Apple, vérifiez man sysctl)

Matériel / OS

Vous l'avez fait netstat -p TCPv6, mais il ne s'agit peut-être pas d'une connexion TCP.

Faites netstat -besquelques minutes les uns des autres et voyez ce qui diffère entre les blocs * v6.

Bien que je suppose que cela pourrait être un problème matériel dans la mesure où le micrologiciel NIC ne parvient pas à gérer ipv6, il est plus probable que le système d'exploitation / processus logiciel soit le déclencheur. S'il s'agit de matériel, le côté logiciel peut ne pas gérer correctement l'interruption de la session et ne peut pas reprendre la connexion sur l'IP précédente. L'identifier comme un problème logiciel n'empêche donc pas nécessairement un problème matériel.

Processus et services du logiciel / système d'exploitation

Pour cela, consultez le trafic réseau avec http://www.nirsoft.net/utils/network_traffic_view.html pour identifier le processus.

Étant donné que ces adresses, par définition, sont temporaires, elles peuvent le rester temporairement après la fin du processus, il est donc possible que vous ne voyiez pas un processus en cours d'exécution avec une connexion ouverte dans NTV si le socket se ferme immédiatement.

Pour cela, utilisez Process Explorer ( http://live.sysinternals.com/tools/procexp.exe ) et la mise en évidence des différences (Options> Durée de mise en surbrillance des différences> 9), puis faites défiler jusqu'à de nouveaux processus (Affichage> Faire défiler jusqu'à de nouveaux processus). Une ligne entière verte / rouge montre un processus créé ou détruit, respectivement, au cours des 9 dernières secondes.

Une fois que vous avez identifié le processus, s'il s'agit d'un navigateur ou d'une application avec des plugins, vous devrez déboguer quel plugin ou site Web javascript pourrait éventuellement causer le problème en démarrant le navigateur en mode sans échec et en activant plugin par plugin.

Adam
la source
Merci, je vais essayer certaines de ces choses. Cependant, après un redémarrage, mon Windows n'a plus d'adresse IPv6 temporaire, je dois donc attendre. C'est vraiment frustrant.
fschoenm
1
Je pense avoir trouvé mon problème: en essayant d'utiliser NetworkTrafficView comme vous l'avez suggéré, j'ai remarqué que mon installation WinPcap était en quelque sorte corrompue. Je ne pouvais ni utiliser Wireshark ni NetworkTrafficView car ils se bloquaient tous les deux au démarrage. J'ai réinstallé WinPcap et depuis lors, tout semble fonctionner parfaitement!
fschoenm
1

Étant donné que les identifiants d'adresses IPv6 restent statiques, pour des raisons de sécurité, des adresses temporaires sont utilisées. Les adresses temporaires sont des identifiants d'interface IPv6 qui fournissent un niveau d'anonymat. Ces adresses peuvent être générées aléatoirement et modifiées au fil du temps. Le protocole IPv6 pour Windows crée par défaut des adresses temporaires pour les préfixes d'adresses globales.

Je ne recommande pas de désactiver les adresses IPv6 temporaires. Cependant, vous pouvez désactiver les adresses IPv6 temporaires avec les commandes suivantes et un redémarrage

netsh interface ipv6 set global randomizeidentifiers=disabled
netsh interface ipv6 set privacy state=disabled

Dans Windows 10 et Server 2016, vous pouvez utiliser l' applet de commande PowerShell Set-NetIPv6Protocol pour définir les limites:

# The computer always generates temporary addresses by using random numbers. 
Set-NetIPv6Protocol -UseTemporaryAddresses Always

# The computer generates temporary addresses by using the interface identifier. 
# You typically use this identifier for test purposes. 
Set-NetIPv6Protocol -UseTemporaryAddresses Counter

# The computer does not use temporary addresses. 
Set-NetIPv6Protocol -UseTemporaryAddresses Disabled

# The computer uses temporary addresses.
Set-NetIPv6Protocol -UseTemporaryAddresses Enabled

Pour trouver quel processus utilise l'adresse temporaire, vérifiez l'élément avec la colonne d'adresse locale correspondant à votre adresse temporaire dans la sortie netstat:

netstat -p tcpv6 -o -f -b

Si cela ne trouve rien, vous devez utiliser un outil de traçage, tel que Sysmon

Pour effectuer cela avec SysMon, créez un fichier XML IPv6.xml avec le texte suivant:

<Sysmon schemaversion="3.2">
<EventFiltering>
    <NetworkConnect onmatch="include">
        <SourceIsIpv6>true</SourceIsIpv6>
    </NetworkConnect>
</EventFiltering>
</Sysmon>

Téléchargez ensuite SysMon et installez le fichier de configuration:

SysMon -i IPv6.xml

Cela enregistrera les connexions IPv6 dans le journal des événements Windows sous Journaux des applications et des services / Microsoft / Windows / Sysmon / Operational

Lorsque la surveillance est terminée, arrêtez la surveillance:

SysMon -u

Si vous filtrez par "ID d'événement 3", vous obtiendrez les événements du réseau, avec des détails tels que ci-dessous:

Log Name:      Microsoft-Windows-Sysmon/Operational
Source:        Microsoft-Windows-Sysmon
Date:          9/01/2018 9:55:08 PM
Event ID:      3
Task Category: Network connection detected (rule: NetworkConnect)
Level:         Information
Keywords:      
User:          SYSTEM
Computer:      DESKTOP-RTTN04O
Description:
Network connection detected:
UtcTime: 2018-01-09 10:55:06.915
ProcessGuid: {14ab83bf-c0d9-5a52-0000-00102da40e00}
ProcessId: 3628
Image: C:\Windows\System32\svchost.exe
User: NT AUTHORITY\SYSTEM
Protocol: tcp
Initiated: true
SourceIsIpv6: true
SourceIp: 2001:8003:550d:d400:b81c:a2ed:f99a:b31f
SourceHostname: DESKTOP-RTTN04O.gateway
SourcePort: 55723
SourcePortName: 
DestinationIsIpv6: true
DestinationIp: 2001:8006:3510:393:0:0:0:25bb
DestinationHostname: 
DestinationPort: 443
DestinationPortName: https
Malcolm McCaffery
la source
-3

Je parie que vous regardez Netflix et / ou Amazon Prime Video et que votre navigateur définit une adresse v6 temporaire pour chaque flux.

marque
la source
2
Pas besoin de parier. Le navigateur n'obtient aucune adresse IPv6, simplement parce qu'il ne le peut pas.
Daniel B