Por que meu Windows possui centenas de endereços IPv6 temporários?

17

Meu ISP ativou o IPv6 para mim há algumas semanas. Agora, notei que o Windows (8.1) obtém muitos endereços IPv6 temporários. ipconfigtem 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 são provenientes. Meu Mac OS X na mesma rede não tem problemas com endereços IPv6 temporários. Além de ser uma questão estranha, 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á causando esse comportamento e como evitá-lo. Eu não gostaria de desativar completamente os endereços IPv6 temporários, se possível.

fschoenm
fonte
Enquanto escrevia essa pergunta, meu Windows conseguiu cerca de 50 endereços IPv6 temporários a mais.
precisa saber é
11
Você tem um programa abrindo conexões e mantendo-as abertas ? Essa é a causa usual disso. Além disso, nenhum desses endereços é realmente válido; 2012::/8ainda não foi alocado. Isso também pode ser um problema.
Michael Hampton
@ MichaelHampton: Desculpe, ofusquei os endereços um pouco. Os loc são válidos, você tem que acreditar em mim :)
fschoenm
6
(BTW, se você quer ofuscar os seus endereços IPv6, use sempre 2001:db8::/32, ( RFC 3849 ), que vai deixar claro que eles são exemplos de endereços.)
Michael Hampton
11
Os próprios endereços são parcialmente gerados aleatoriamente. Leia a Randomly generated interface identifierseção: msdn.microsoft.com/en-us/library/aa915616.aspx
Brian

Respostas:

14

Alguém tem uma idéia do que está causando esse comportamento e como evitá-lo?

No link fornecido por Brian, "Endereços temporários são gerados para prefixos de endereços públicos que usam a configuração automática de endereços sem estado".

Mais especificamente, cada processo gera uma solicitação de recurso e o sistema operacional entrega. O IPv6 SAA é definido no RFC 2462 , mas o "Endereço IPv6 temporário" é causado pela implementação do RFC 4941 no Windows . Portanto, a questão passa a ser qual processo é responsável por iniciar uma solicitação do SO para abrir um soquete que possui essas extensões de privacidade.

Para responder à sua pergunta sobre o que está causando isso, vejamos hardware e software.

OS

O Windows gerencia endereços temporários com os parâmetros definidos em netsh interface ipv6 show privacy. Para modificarnetsh 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 distribuição sysctl -a --pattern ^net\..*ipv?6.*temp.*e alterar 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 netstat -besalguns minutos um do outro e veja qual é a diferença entre os blocos * v6.

Embora suponha que possa haver um problema de hardware, pois o firmware da NIC está falhando ao lidar com o ipv6, é mais provável que o SO / processo do software seja o gatilho. Se for de hardware, o lado do software pode não estar lidando com a interrupção normalmente e não pode 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 de 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, talvez você não esteja vendo um processo em execução atual com uma conexão aberta no NTV se o soquete fechar imediatamente.

Para isso, use o Process Explorer ( http://live.sysinternals.com/tools/procexp.exe ) e o destaque de diferença (Opções> Duração do realce da diferença> 9) e 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 plug-ins, você precisará depurar qual plugin ou javascript do site pode estar causando o problema iniciando o navegador no modo de segurança e ativando o plugin por plug-in.

Adão
fonte
Obrigado, vou tentar algumas dessas coisas. No entanto, após uma reinicialização, meu Windows não tem mais nenhum endereço IPv6 temporário, então tenho que esperar. Isso é realmente frustrante.
precisa saber é
11
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 o Wireshark nem o NetworkTrafficView porque os dois travaram ao iniciar. Eu reinstalei o WinPcap e, desde então, tudo parece funcionar perfeitamente!
precisa saber é
1

Como os identificadores de endereço 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 ao longo do tempo. O protocolo IPv6 para Windows cria endereços temporários para prefixos de endereços globais por padrão.

Não recomendo desativar endereços IPv6 temporários. No entanto, você pode desativar os 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 Server 2016, você pode usar o cmdlet PowerShell Set-NetIPv6Protocol 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>

Faça o download do SysMon e instale o arquivo de configuração:

SysMon -i IPv6.xml

Isso registrará as 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 "Identificação do evento 3", receberá os eventos da rede, com detalhes como os seguintes:

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
fonte
-3

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

Marca
fonte
2
Não há necessidade de apostar. O navegador não está obtendo nenhum endereço IPv6, simplesmente porque não pode.
21716 Daniel B