Warum hat mein Windows Hunderte temporärer IPv6-Adressen?

17

Mein ISP hat vor ein paar Wochen IPv6 für mich aktiviert. Jetzt habe ich gemerkt, dass Windows (8.1) viele temporäre IPv6-Adressen bekommt. ipconfighat die folgende Ausgabe (reale Adressen sind verschleiert):

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

Ich habe wirklich keine Ahnung, wo all diese Adressen herkommen. Mein Mac OS X im selben Netzwerk hat keine Probleme mit temporären IPv6-Adressen. Ich glaube, dass die Anzahl der IPv6-Adressen nicht nur ein seltsames Problem darstellt, sondern auch die Netzwerkleistung unter Windows beeinträchtigt.

Hat jemand eine Idee, was dieses Verhalten auslöst und wie man es verhindert. Ich möchte temporäre IPv6-Adressen nach Möglichkeit nicht vollständig deaktivieren.

schönm
quelle
Gerade als ich diese Frage schrieb, bekam mein Windows mehr als 50 temporäre IPv6-Adressen.
Schönm
1
Haben Sie ein Programm, das Verbindungen öffnet und offen hält ? Das ist die übliche Ursache dafür. Außerdem ist keine dieser Adressen tatsächlich gültig. 2012::/8wurde noch nicht vergeben. Das könnte auch ein Problem sein.
Michael Hampton
@MichaelHampton: Sorry, ich habe die Adressen etwas verschleiert. Die Adresse ist gültig, du musst mir glauben :)
Schönm
6
(Übrigens, wenn Sie Ihre IPv6-Adressen verschleiern möchten, verwenden Sie immer 2001:db8::/32( RFC 3849 ), um zu verdeutlichen, dass es sich um Beispieladressen handelt.)
Michael Hampton
1
Die Adressen selbst werden teilweise zufällig generiert. Lesen Sie den Randomly generated interface identifierAbschnitt von: msdn.microsoft.com/en-us/library/aa915616.aspx
Brian

Antworten:

14

Hat jemand eine Idee, was dieses Verhalten auslöst und wie es verhindert werden kann?

Über den Link, den Brian Ihnen gegeben hat, "werden temporäre Adressen für öffentliche Adresspräfixe generiert, die die automatische Konfiguration zustandsloser Adressen verwenden."

Insbesondere generiert jeder Prozess eine Ressourcenanforderung und das Betriebssystem liefert. Der IPv6-SAA ist in RFC 2462 definiert , die "temporäre IPv6-Adresse" ist jedoch auf die Windows-Implementierung von RFC 4941 zurückzuführen . Die Frage lautet also, welcher Prozess für die Initiierung einer Betriebssystemanforderung zum Öffnen eines Sockets mit diesen Datenschutzerweiterungen verantwortlich ist.

Um Ihre Frage zu beantworten, was dies auslöst, schauen wir uns Hardware und Software an.

OS

Windows verwaltet temporäre Adressen mit den in definierten Parametern netsh interface ipv6 show privacy. Ändernnetsh interface ipv6 set privacy ?

Um zu überprüfen, auf welche Einstellungen sie auf einem Linux-Computer festgelegt sind, müssen Sie die Kernelvariablen in einchecken /proc/sys/net. Möglicherweise finden Sie die relevanten Werte für Ihre Distribution mit sysctl -a --pattern ^net\..*ipv?6.*temp.*und ändern die gewünschte Variable mit sysctl -w foo.bar.var=<new value>(sollte auf Ihrem Apple-Computer ähnlich sein, überprüfen Sie man sysctl).

Hardware / Betriebssystem

Sie haben dies getan netstat -p TCPv6, aber möglicherweise handelt es sich nicht um eine TCP-Verbindung.

Nehmen Sie sich ein netstat -bespaar Minuten Zeit und sehen Sie, wie sich die * v6-Blöcke unterscheiden.

Ich nehme an, es könnte ein Hardwareproblem sein, da die NIC-Firmware nicht mit ipv6 umgehen kann. Es ist jedoch wahrscheinlicher, dass das Software-Betriebssystem / der Prozess der Auslöser ist. Wenn es sich um Hardware handelt, behandelt die Softwareseite die Sitzungsunterbrechung möglicherweise nicht ordnungsgemäß und kann die Verbindung auf der vorherigen IP-Adresse nicht wiederherstellen. Die Identifizierung als Software-Problem schließt ein Hardware-Problem nicht unbedingt aus.

Software / OS-Systemprozesse und -dienste

Zeigen Sie dazu den Netzwerkverkehr mit http://www.nirsoft.net/utils/network_traffic_view.html an, um den Prozess zu identifizieren.

Da diese Adressen per definitionem temporär sind, können sie nach Beendigung des Prozesses temporär bleiben, sodass möglicherweise kein aktueller, laufender Prozess mit einer offenen Verbindung in NTV angezeigt wird, wenn der Socket sofort geschlossen wird.

Verwenden Sie dazu den Prozess-Explorer ( http://live.sysinternals.com/tools/procexp.exe ) und die Differenzhervorhebung (Optionen> Differenzhervorhebungsdauer> 9) und blättern Sie zu neuen Prozessen (Ansicht> Zu neuen Prozessen blättern). Eine ganze Reihe grün / rot zeigt einen Prozess an, der in den letzten 9 Sekunden erstellt bzw. zerstört wurde.

Sobald Sie den Prozess identifiziert haben, müssen Sie, wenn es sich um einen Browser oder eine App mit Plugins handelt, debuggen, welches Plugin oder Website-Javascript möglicherweise das Problem verursacht, indem Sie den Browser im abgesicherten Modus starten und Plugins für Plugins aktivieren.

Adam
quelle
Danke, ich werde einiges davon probieren. Nach einem Neustart hat mein Windows jedoch überhaupt keine temporäre IPv6-Adresse mehr, sodass ich warten muss. Das ist wirklich frustrierend.
Schönm
1
Ich glaube, ich habe mein Problem gefunden: Beim Versuch, NetworkTrafficView wie von Ihnen vorgeschlagen zu verwenden, ist mir aufgefallen, dass meine WinPcap-Installation irgendwie beschädigt ist. Ich konnte weder Wireshark noch NetworkTrafficView verwenden, da beide beim Starten hängen blieben. Ich habe WinPcap neu installiert und seitdem scheint alles einwandfrei zu funktionieren!
Schönm
1

Da IPv6-Adressenkennungen aus Sicherheitsgründen statisch bleiben, werden temporäre Adressen verwendet. Temporäre Adressen sind IPv6-Schnittstellenkennungen, die einen Grad an Anonymität bieten. Diese Adressen können zufällig generiert und im Laufe der Zeit geändert werden. Das IPv6-Protokoll für Windows erstellt standardmäßig temporäre Adressen für globale Adresspräfixe.

Es wird nicht empfohlen, temporäre IPv6-Adressen zu deaktivieren. Sie können temporäre IPv6-Adressen jedoch mit den folgenden Befehlen und einem Neustart deaktivieren

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

In Windows 10 und Server 2016 können Sie mithilfe des PowerShell -Cmdlets Set-NetIPv6Protocol folgende Grenzwerte festlegen:

# 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

Um herauszufinden, welcher Prozess die temporäre Adresse verwendet, überprüfen Sie das Element mit der lokalen Adressenspalte, die Ihrer temporären Adresse in der Netstat-Ausgabe entspricht:

netstat -p tcpv6 -o -f -b

Sollte dies nicht der Fall sein, müssen Sie ein Tracing-Tool wie Sysmon verwenden

Um dies mit SysMon durchzuführen, erstellen Sie eine XML-Datei IPv6.xml mit folgendem Text:

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

Laden Sie dann SysMon herunter und installieren Sie die Konfigurationsdatei:

SysMon -i IPv6.xml

Dadurch werden IPv6-Verbindungen im Windows-Ereignisprotokoll unter Programme und Dienste / Microsoft / Windows / Sysmon / Operational protokolliert

Wenn die Überwachung abgeschlossen ist, beenden Sie die Überwachung:

SysMon -u

Wenn Sie nach "Ereignis-ID 3" filtern, werden die Netzwerkereignisse mit folgenden Details angezeigt:

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

Ich wette, Sie sehen Netflix und / oder Amazon Prime Video und Ihr Browser stellt für jeden Stream eine temporäre v6-Adresse ein.

Kennzeichen
quelle
2
Keine Notwendigkeit zu wetten. Der Browser erhält keine IPv6-Adressen, nur weil dies nicht möglich ist.
Daniel B