Questão Por que meu Windows tem centenas de endereços IPv6 temporários?


Meu ISP habilitou o IPv6 para mim algumas semanas atrás. Agora eu notei que o Windows (8.1) recebe muitos endereços IPv6 temporários. ipconfig tem a seguinte saída (endereços reais são ofuscados):

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

Eu realmente não tenho idéia de onde todos esses endereços estão vindo. Meu Mac OS X na mesma rede não tem problemas com endereços IPv6 temporários. Além de ser um problema estranho, acredito que a quantidade de endereços IPv6 está diminuindo o desempenho da minha rede no Windows.

Alguém tem uma idéia do que está provocando esse comportamento e como evitá-lo. Eu não gostaria de desativar completamente os endereços IPv6 temporários, se possível.


14


origem


Apenas enquanto escrevia esta pergunta, meu Windows recebeu mais de 50 endereços IPv6 temporários. - fschoenm
Você tem um programa abrindo conexões e mantê-los abertos? Essa é a causa usual disso. Além disso, nenhum desses endereços é realmente válido; 2012::/8 ainda não foi alocado. Isso poderia ser um problema também. - Michael Hampton
@ MichaelHampton: Desculpe, eu ofusquei os endereços um pouco. O endereço é válido, você tem que acreditar em mim :) - fschoenm
@ MichaelHampton: Vou tentar descobrir se tenho um programa que está abrindo conexões. Mas eu me pergunto por que isso exigiria novas conexões se as anteriores ainda fossem deixadas em aberto. - fschoenm
(BTW, se você quiser ofuscar seus endereços IPv6, use sempre 2001:db8::/32, (RFC 3849) que deixará claro que são endereços de exemplo.) - Michael Hampton


Respostas:


Alguém tem uma idéia do que está provocando esse comportamento e como   previna-se?

No link que Brian forneceu, "endereços temporários são gerados para prefixos de endereços públicos que usam a autoconfiguração de endereços sem estado".

Mais especificamente, cada processo gera uma solicitação de recurso e o SO é entregue. O SAA IPv6 é definido em RFC 2462, mas o "Endereço IPv6 Temporário" é devido à implementação do Windows RFC 4941. Portanto, a questão se torna qual processo é responsável por iniciar uma solicitação do sistema operacional para abrir um soquete que tenha essas extensões de privacidade.

Para responder à sua pergunta o que está provocando isso, vamos ver o hardware e o software.

OS

O Windows gerencia endereços temporários com parâmetros definidos em netsh interface ipv6 show privacy. Para modificar netsh interface ipv6 set privacy ?

Para verificar o que eles estão configurados em uma máquina Linux, você deve verificar as variáveis ​​do kernel /proc/sys/net. Você pode encontrar os valores pertinentes para sua distro com sysctl -a --pattern ^net\..*ipv?6.*temp.* e altere a variável desejada com sysctl -w foo.bar.var=<new value> (deve ser semelhante em sua máquina Apple, verifique man sysctl)

Hardware / SO

Você fez netstat -p TCPv6, mas pode não ser uma conexão TCP.

Faça um netstat -bes alguns minutos um do outro e ver o que é diff entre os blocos * v6.

Embora eu suponha que poderia ser um problema de hardware em que o firmware da NIC está falhando ao lidar com o ipv6, é mais provável que o software OS / process seja o gatilho. Se for hardware, o lado do software pode não estar manipulando a quebra na sessão normalmente e não poderá retomar a conexão no IP anterior. Portanto, identificá-lo como um problema de software não exclui necessariamente um problema de hardware.

Processos e serviços do sistema de software / SO

Para isso, visualize o tráfego de rede com http://www.nirsoft.net/utils/network_traffic_view.html para identificar o processo.

Como esses endereços, por definição, são temporários, eles podem permanecer temporariamente após o término do processo, portanto, você pode não estar vendo um processo atual em execução com uma conexão aberta no NTV se o soquete for fechado imediatamente.

Para isso, use o Process Explorer (http://live.sysinternals.com/tools/procexp.exe) e realce de diferença (Opções> Diferença de realce de duração> 9) e, em seguida, role para novos processos (Exibir> Rolar para novos processos). Uma linha inteira verde / vermelha mostra um processo criado ou destruído, respectivamente, nos últimos 9 segundos.

Depois de identificar o processo, se for um navegador ou qualquer aplicativo com plugins, você terá que depurar qual plug-in ou site javascript poderia estar causando o problema, iniciando o navegador no modo de segurança e habilitando o plug-in pelo plug-in.


13



Obrigado, vou experimentar algumas dessas coisas. No entanto, após uma reinicialização, meu Windows não tem mais nenhum endereço IPv6 temporário, portanto, preciso aguardar. Isso é realmente frustrante. - fschoenm
Acho que encontrei o meu problema: Ao tentar usar o NetworkTrafficView como você sugeriu, notei que minha instalação do WinPcap estava de alguma forma corrompida. Não pude usar nem o Wireshark nem o NetworkTrafficView porque os dois ficaram suspensos quando foram iniciados. Eu reinstalei o WinPcap e desde então tudo parece funcionar perfeitamente! - fschoenm


Como os identificadores de endereços IPv6 permanecem estáticos, por motivos de segurança, endereços temporários são usados. Endereços temporários são identificadores de interface IPv6 que fornecem um nível de anonimato. Esses endereços podem ser gerados aleatoriamente e alterados com o tempo. O protocolo IPv6 para Windows cria endereços temporários para prefixos de endereços globais por padrão.

Eu não recomendo desabilitar endereços IPv6 temporários. No entanto, você pode desativar endereços IPv6 temporários com os seguintes comandos e uma reinicialização

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

No Windows 10 e no Server 2016, você pode usar o PowerShell Set-NetIPv6Protocol cmdlet para definir 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

Para descobrir qual processo está usando o endereço temporário, verifique o item com a coluna de endereço local correspondente ao seu endereço temporário na saída netstat:

netstat -p tcpv6 -o -f -b

Se isso não conseguir encontrar nada, você precisará usar uma ferramenta de rastreamento, como Sysmon

Para fazer isso com o SysMon, crie um arquivo XML IPv6.xml com o seguinte texto:

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

Então baixe o SysMon e instale o arquivo de configuração:

SysMon -i IPv6.xml

Isso registrará conexões IPv6 no log de eventos do Windows em Logs de Aplicativos e Serviços / Microsoft / Windows / Sysmon / Operational

Quando o monitoramento estiver concluído, pare o monitoramento:

SysMon -u

Se você filtrar por "ID do Evento 3", você receberá os eventos de rede, com detalhes, como abaixo:

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

0





Minha aposta é que você está assistindo Netflix e / ou Amazon Prime Video e seu navegador está definindo um endereço temp v6 para cada fluxo.


-3



Não precisa apostar. O navegador não está obtendo nenhum endereço IPv6, simplesmente porque não pode. - Daniel B