Dlaczego mój system Windows ma setki tymczasowych adresów IPv6?

17

Mój dostawca usług internetowych włączył dla mnie IPv6 kilka tygodni temu. Teraz zauważyłem, że Windows (8.1) otrzymuje wiele tymczasowych adresów IPv6. ipconfigma następujące dane wyjściowe (rzeczywiste adresy są zaciemnione):

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

Naprawdę nie mam pojęcia, skąd pochodzą te wszystkie adresy. Mój Mac OS X w tej samej sieci nie ma problemów z tymczasowymi adresami IPv6. Oprócz tego, że jestem dziwnym problemem, uważam, że ilość adresów IPv6 spowalnia moją wydajność sieci w systemie Windows.

Czy ktoś ma pojęcie, co powoduje takie zachowanie i jak temu zapobiec. Nie chciałbym całkowicie wyłączać tymczasowych adresów IPv6, jeśli to możliwe.

fschoenm
źródło
Właśnie podczas pisania tego pytania mój system Windows uzyskał około 50 tymczasowych adresów IPv6 więcej.
fschoenm
1
Czy masz program otwierający połączenia i utrzymujący je otwarte ? To jest zwykła przyczyna tego. Ponadto żaden z tych adresów nie jest w rzeczywistości prawidłowy; 2012::/8nie został jeszcze przydzielony. To też może stanowić problem.
Michael Hampton
@MichaelHampton: Przepraszam, nieco zaciemniłem adresy.
Adres
6
(BTW, jeśli chcesz zaciemnić swoje adresy IPv6, zawsze używaj 2001:db8::/32, ( RFC 3849 ), co wyjaśni, że są to adresy przykładowe.)
Michael Hampton
1
Same adresy są częściowo generowane losowo. Przeczytaj Randomly generated interface identifiersekcję: msdn.microsoft.com/en-us/library/aa915616.aspx
Brian

Odpowiedzi:

14

Czy ktoś ma pojęcie, co powoduje takie zachowanie i jak temu zapobiec?

Z linku podanego przez Briana: „Adresy tymczasowe są generowane dla prefiksów adresów publicznych, które używają autokonfiguracji adresów bezstanowych”.

Mówiąc dokładniej, każdy proces generuje żądanie zasobów, a system operacyjny dostarcza. SAA IPv6 jest zdefiniowany w RFC 2462 , ale „Tymczasowy adres IPv6” wynika z implementacji RFC 4941 w systemie Windows . Powstaje więc pytanie, jaki proces jest odpowiedzialny za zainicjowanie żądania systemu operacyjnego w celu otwarcia gniazda z tymi rozszerzeniami prywatności.

Aby odpowiedzieć na pytanie, co to powoduje, spójrzmy na sprzęt i oprogramowanie.

OS

Windows zarządza adresami tymczasowymi za pomocą parametrów zdefiniowanych w netsh interface ipv6 show privacy. Modyfikowaćnetsh interface ipv6 set privacy ?

Aby sprawdzić, na czym są ustawione na komputerze z systemem Linux, należy sprawdzić zmienne jądra w /proc/sys/net. Możesz znaleźć odpowiednie wartości dla swojej dystrybucji sysctl -a --pattern ^net\..*ipv?6.*temp.*i zmienić pożądaną zmienną za pomocą sysctl -w foo.bar.var=<new value>(powinno być podobnie na twoim komputerze Apple, sprawdź man sysctl)

Sprzęt / system operacyjny

Zrobiłeś to netstat -p TCPv6, ale może to nie być połączenie TCP.

Zrób netstat -beskilka minut od siebie i zobacz, jaka jest różnica między blokami * v6.

Chociaż przypuszczam, że może to być problem sprzętowy, ponieważ oprogramowanie układowe karty sieciowej nie radzi sobie z obsługą protokołu ipv6, jednak bardziej prawdopodobne jest, że system operacyjny / proces będzie wyzwalaczem. Jeśli jest to sprzęt, strona oprogramowania może nie poradzić sobie z przerwą w sesji i nie może wznowić połączenia z poprzedniego adresu IP. Zatem zidentyfikowanie go jako problemu z oprogramowaniem niekoniecznie wyklucza problem ze sprzętem.

Procesy i usługi systemu oprogramowania / systemu operacyjnego

W tym celu przejrzyj ruch sieciowy za pomocą http://www.nirsoft.net/utils/network_traffic_view.html w celu zidentyfikowania procesu.

Ponieważ adresy te z definicji są tymczasowe, mogą pozostać tymczasowo po zakończeniu procesu, więc może nie być wyświetlany bieżący, uruchomiony proces z otwartym połączeniem w NTV, jeśli gniazdo zostanie natychmiast zamknięte.

W tym celu użyj Eksploratora procesów ( http://live.sysinternals.com/tools/procexp.exe ) i podświetlania różnic (Opcje> Czas podświetlania różnic> 9), a następnie przewiń do nowych procesów (Widok> Przewiń do nowych procesów). Cały wiersz zielony / czerwony pokazuje odpowiednio proces utworzony lub zniszczony w ciągu ostatnich 9 sekund.

Po zidentyfikowaniu procesu, jeśli jest to przeglądarka lub jakakolwiek aplikacja z wtyczkami, będziesz musiał debugować, która wtyczka lub javascript witryny może być przyczyną problemu, uruchamiając przeglądarkę w trybie awaryjnym i włączając wtyczkę przez wtyczkę.

Adam
źródło
Dzięki, spróbuję tych rzeczy. Jednak po ponownym uruchomieniu mój system Windows nie ma już tymczasowego adresu IPv6, więc muszę czekać. To jest naprawdę frustrujące.
fschoenm
1
Myślę, że znalazłem problem: próbując użyć NetworkTrafficView, jak sugerowałeś, zauważyłem, że moja instalacja WinPcap była w jakiś sposób uszkodzona. Nie mogłem użyć ani Wireshark, ani NetworkTrafficView, ponieważ oba zawieszały się podczas uruchamiania. Ponownie zainstalowałem WinPcap i od tego czasu wszystko działa bez zarzutu!
fschoenm
1

Ponieważ identyfikatory adresów IPv6 pozostają statyczne, ze względów bezpieczeństwa używane są adresy tymczasowe. Adresy tymczasowe to identyfikatory interfejsu IPv6, które zapewniają poziom anonimowości. Adresy te mogą być generowane losowo i zmieniane z czasem. Protokół IPv6 dla Windows domyślnie tworzy adresy tymczasowe dla globalnych prefiksów adresów.

Nie polecam wyłączania tymczasowych adresów IPv6. Można jednak wyłączyć tymczasowe adresy IPv6 za pomocą następujących poleceń i ponownego uruchomienia

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

W systemach Windows 10 i Server 2016 można użyć polecenia cmdlet PowerShell Set-NetIPv6Protocol do ustawienia limitów:

# 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

Aby znaleźć proces korzystający z adresu tymczasowego, zaznacz element z kolumną adresu lokalnego pasującą do twojego adresu tymczasowego w danych wyjściowych netstat:

netstat -p tcpv6 -o -f -b

Jeśli to nie znajdzie niczego, musisz użyć narzędzia do śledzenia, takiego jak Sysmon

Aby to zrobić za pomocą SysMon, utwórz plik XML IPv6.xml z następującym tekstem:

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

Następnie pobierz SysMon i zainstaluj plik konfiguracyjny:

SysMon -i IPv6.xml

Spowoduje to zarejestrowanie połączeń IPv6 w dzienniku zdarzeń systemu Windows w obszarze Dzienniki aplikacji i usług / Microsoft / Windows / Sysmon / Operational

Po zakończeniu monitorowania zatrzymaj monitorowanie:

SysMon -u

Jeśli filtrujesz według „Identyfikatora zdarzenia 3”, otrzymasz zdarzenia sieciowe, ze szczegółami takimi jak poniżej:

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
źródło
-3

Założę się, że oglądasz Netflix i / lub Amazon Prime Video, a Twoja przeglądarka ustawia tymczasowy adres v6 dla każdego strumienia.

znak
źródło
2
Nie musisz stawiać. Przeglądarka nie uzyskuje żadnych adresów IPv6, po prostu dlatego, że nie może.
Daniel B