web-dev-qa-db-ja.com

Windowsに何百もの一時的なIPv6アドレスがあるのはなぜですか?

私のISPは数週間前にIPv6を有効にしました。 Windows(8.1)が多くの一時的なIPv6アドレスを取得することに気づきました。 ipconfigの出力は次のとおりです(実際のアドレスは難読化されています)。

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

私はこれらのアドレスすべてがどこから来ているのか本当に知りません。同じネットワーク上の私のMac OS Xは一時的なIPv6アドレスで問題はありません。奇妙な問題であることに加え、IPv6アドレスの量がWin​​dowsでのネットワークパフォーマンスを低下させていると思います。

誰もがこの動作を引き起こしているものとそれを防ぐ方法を知っていますか?可能であれば、一時的なIPv6アドレスを完全に無効にしたくありません。

17
fschoenm

誰かがこの動作を引き起こしている原因とそれを防ぐ方法を知っていますか?

ブライアンからのリンクから、「ステートレスアドレス自動構成を使用するパブリックアドレスプレフィックスに対して一時アドレスが生成されます。」

具体的には、各プロセスがリソース要求を生成し、OSが配信します。 IPv6 SAAは RFC 2462 で定義されていますが、「一時IPv6アドレス」はWindowsでの RFC 4941 の実装が原因です。したがって、問題は、これらのプライバシー拡張機能を備えたソケットを開くOS要求を開始する責任があるプロセスになります。

これを引き起こしているものの質問に答えるために、ハードウェアとソフトウェアを見てみましょう。

[〜#〜] os [〜#〜]

Windowsは、netsh interface ipv6 show privacyで定義されたパラメーターを使用して一時アドレスを管理します。 netsh interface ipv6 set privacy ?を変更するには

Linuxマシンでの設定を確認するには、/proc/sys/netのカーネル変数を確認します。 sysctl -a --pattern ^net\..*ipv?6.*temp.*を使用してディストリビューションに適切な値を見つけ、sysctl -w foo.bar.var=<new value>を使用して目的の変数を変更することができます(Appleマシンで同様である必要があります。man sysctlを確認してください)

ハードウェア/ OS

netstat -p TCPv6を実行しましたが、TCP接続ではない可能性があります。

互いに数分netstat -besを実行し、* v6ブロック間の相違点を確認します。

NICファームウェアがipv6の処理に失敗しているという点で、ハードウェアの問題である可能性がありますが、トリガーであるソフトウェアOS /プロセスである可能性が高くなります。ハードウェアの場合、ソフトウェア側はセッションの中断を適切に処理していない可能性があり、以前のIPで接続を再開できないため、ソフトウェアの問題として識別しても、必ずしもハードウェアの問題が排除されるわけではありません。

ソフトウェア/ OSシステムプロセスおよびサービス

このため、ネットワークトラフィックを http://www.nirsoft.net/utils/network_traffic_view.html で表示して、プロセスを特定します。

これらのアドレスは定義上一時的なものであるため、プロセスの終了後も一時的に残る可能性があります。そのため、ソケットがすぐに閉じた場合、NTVで開いている接続で現在実行中のプロセスが表示されないことがあります。

これには、Process Explorer( http://live.sysinternals.com/tools/procexp.exe )と差分強調表示([オプション]> [差分強調表示の継続時間]> 9)を使用し、新しいプロセスにスクロールします([表示]>新しいプロセスまでスクロールします)。緑/赤の行全体は、最後の9秒間にそれぞれ作成または破棄されたプロセスを示します。

プロセスを特定したら、それがブラウザまたはプラグインを備えたアプリである場合、セーフモードでブラウザを起動し、プラグインでプラグインを有効にすることにより、どのプラグインまたはWebサイトJavaScriptが問題を引き起こしている可能性があるかをデバッグする必要があります。

15
adam

IPv6アドレス識別子は静的なままであるため、セキュリティ上の理由から、一時アドレスが使用されます。一時アドレスは、匿名性のレベルを提供するIPv6インターフェース識別子です。これらのアドレスはランダムに生成され、時間の経過とともに変更されます。 WindowsのIPv6プロトコルは、デフォルトでグローバルアドレスプレフィックスの一時アドレスを作成します。

一時的なIPv6アドレスを無効にすることはお勧めしません。ただし、次のコマンドと再起動で一時的なIPv6アドレスを無効にすることができます

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

Windows 10およびServer 2016では、PowerShell Set-NetIPv6Protocol コマンドレットを使用して制限を設定できます。

# 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

一時アドレスを使用しているプロセスを見つけるには、netstatの出力でローカルアドレス列が一時アドレスと一致する項目を確認します。

netstat -p tcpv6 -o -f -b

それが見つからない場合は、トレースツールを使用する必要があります Sysmon など。

SysMonでこれを実行するには、次のテキストを含むXMLファイルIPv6.xmlを作成します。

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

次に、SysMonをダウンロードして構成ファイルをインストールします。

SysMon -i IPv6.xml

これにより、アプリケーションとサービスログ/ Microsoft/Windows/Sysmon/Operationalの下のWindowsイベントログにIPv6接続が記録されます

監視が完了したら、監視を停止します。

SysMon -u

「イベントID 3」でフィルタリングすると、以下のような詳細を含むネットワークイベントが表示されます。

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
1