web-dev-qa-db-ja.com

Windows 7におけるIPv4とIPv6の優先順位

私はハリケーン電気トンネルを通してIPv6接続を持っています。今年のIPv6の日以来、多くのサービス(google.com、facebook.comなど)がメインドメインでIPv6を有効にしていました。私のWindowsマシンでは、IPv4よりもIPv6が優先されます。つまり、Googleにアクセスするたびに、すべてのトラフィックが私のトンネルを通過してHurricane Electricに送信されるため、待ち時間が100%以上増加します。

C:\> ping www.google.com

Pinging www.l.google.com [2001:4860:8005::68] with 32 bytes of data:
Reply from 2001:4860:8005::68: time=85ms
Reply from 2001:4860:8005::68: time=84ms
Reply from 2001:4860:8005::68: time=112ms
Reply from 2001:4860:8005::68: time=86ms

Ping statistics for 2001:4860:8005::68:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 84ms, Maximum = 112ms, Average = 91ms


C:\> ping -4 www.google.com

Pinging www.l.google.com [173.194.79.103] with 32 bytes of data:
Reply from 173.194.79.103: bytes=32 time=28ms TTL=48
Reply from 173.194.79.103: bytes=32 time=28ms TTL=48
Reply from 173.194.79.103: bytes=32 time=55ms TTL=46
Reply from 173.194.79.103: bytes=32 time=29ms TTL=46

Ping statistics for 173.194.79.103:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 28ms, Maximum = 55ms, Average = 35ms

質問:IPv4とIPv6の両方のレコードが特定のドメイン名に使用できる場合、どのようにしてWindows 7が常にIPv4を優先するようにすることができますか?

31
haimg

解決策1:IPv6よりもIPv4アドレスを優先するプレフィックスポリシーを追加する

プレフィックスポリシーテーブルはルーティングテーブルに似ており、接続時にどのIPアドレスが優先されるかを決定します。プレフィックスポリシーの優先順位が高いほど、ルーティングテーブルの「コスト」値とは正反対の、大きい「優先順位」値で表されます。

デフォルトのWindowsプレフィックスポリシーテーブル:

C:\>netsh interface ipv6 show prefixpolicies
Querying active state...

Precedence  Label  Prefix
----------  -----  --------------------------------
        50      0  ::1/128
        40      1  ::/0
        30      2  2002::/16
        20      3  ::/96
        10      4  ::ffff:0:0/96
         5      5  2001::/32

IPv6アドレス(::/0)がIPv4アドレス(::/96、:: ffff:0:0/96)よりも優先されることに注意してください。

ハリケーンエレクトリックIPv6トンネルをどのIPv4アドレスよりも有利にしないというポリシーを作成することができます

netsh interface ipv6 add prefixpolicy 2001:470::/32 3 6

2001:470 ::/32はハリケーン電気の接頭辞、3は優先順位(非常に低い)、6はラベルです。

もっと一般的なプレフィックスを使用することもできましたが、ISPから直接IPv6接続を取得する場合、それがIPv4よりも優先されることを確認する必要がありました。

この解決策を採用する場合は、私のハリケーン電気の代わりに適切なIPv6プレフィックスを代用する必要があります。

解決策2:Windowsが常にIPv6よりもIPv4を優先するようにレジストリを調整する

このソリューションは、より一般的ですが、より侵襲的で標準に準拠していません。結局、Windowsはプレフィックスポリシーテーブルを変更します。

  • RegEditを開き、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parametersに移動します。
  • DWORDレジストリ値DisabledComponentsを作成し、その値を20(16進数)に設定します。このレジストリキーの詳細については、 Microsoft KB 929852 を参照してください。特にDisabledComponentsがすでにシステムに存在する場合は、この情報を参照してください。
  • リブート。
40
haimg

固定幅のテキストと奇妙な数字や記号の付いたテーブルがあなたを怖がらせるのであれば、あなたはあなたのために設定を変更するMicrosoftのFix-its、シンプルなインストーラでこれを行うことができます。

これらの修正は KB 2533454 に由来します。これは、IPv6接続が切断された場合にこれを実行することを望んでいることを説明しています。修正プログラムを実行するには管理者である必要があります。ダウンロード後、右クリックして[管理者として実行]を選択します。

20
Michael Hampton

最も単純な方法で、これらは常にとても単純なので見逃しています...

  1. オープンネットワークと共有センター。

  2. そこにアダプタの設定の変更をクリックしてください

  3. [メニューバー]で[詳細設定]をクリックします。 **注:[整理]が表示されている場合はそれをクリックし、ドロップダウンから[レイアウト - メニューバー]を選択してください。

  4. 前の手順で[詳細設定]をクリックした後、この手順で[詳細設定]をクリックします(画面にボックスが表示されます)。

  5. 表示されるのは、アダプタと設定で、現在使用しているアダプタは上半分とその下の代表的な内訳です​​でに強調表示されています(そのアダプタのバインディングが表示されます)。リスト内のいずれかのバインディングを強調表示すると、右側の矢印が点灯し、それらの矢印を使用してバインディングの順序を好みに変更してから、下から[OK]を選択します。

  6. アダプタのプロパティにプロトコル、サービス、またはクライアントをインストールしたときと同じです。ここでも同じです。それはあなたが1つのアダプターを変えるということです、そして、残りはそれに従います。したがって、たとえば、ワイヤレスアダプタでIPV6を4より優先する場合は、LANアダプタも変わります。

これは私が考えることができる最も簡単な方法です。あまり考えなくても、ネットワーク間のパケットのルーティングについてあまり多くの知識を持っていなくてもかまいません。

7
StevenRowe6

短縮版

Before September 2012                     After September 2012
Precedence  Prefix                        Precedence  Prefix       
----------  -------------                 ----------  -------------
        50  ::1/128        IPv6 loopback          50  ::1/128        IPv6 loopback
        40  ::/0           Native IPv6            40  ::/0           Native IPv6
        40  fc00::/7       ULAs                   35  ::ffff:0:0/96  IPv4
        40  fec0::/10      site-local             30  2002::/16      6to4
        40  3ffe::/16      6bone                   5  2001::/32      Teredo
        30  2002::/16      6to4                    3  fc00::/7       ULAs
        20  ::/96          IPv4compat              1  fec0::/10      site-local
        10  ::ffff:0:0/96  IPv4                    1  3ffe::/16      6bone
         5  2001::/32      Teredo                  1  ::/96          IPv4compat

ロングバージョン

RFC6724 はアドレスの優先方法の変更を定義しました。この変更により、ほとんどの場合IPv6はもはや優先アドレスではなくなりました:(

2012年6月に寄せられたこの質問は、2012年9月からのRFCによって「修正」されました。Windowsのバージョンによっては、この新しいポリシーが用意されています(Windows 8.1)。 )、またはアップデート(Windows 8、Windows 7、Windows Vista)ですでに配信されている可能性があります。

が欲しいがIPv6を使いたいからです。その変更を元に戻します。

元に戻す方法

1つのホストに対して複数のIPアドレスを取得する場合は、使用するアドレスを自分のマシンで決定する必要があります。ランキングの例は次のとおりです。

  • IPv6ループバック
  • ネイティブIPv6
  • ユニークローカルアドレス(ULA)、 fdxx ::
  • サイトローカル、例えばfec0
  • 6ボーン
  • 6to4
  • IPv4フォーマット
  • IPv4
  • Teredo、例えば2001年

Windowsマシンでは、このランク付けはプレフィックスポリシーと呼ばれます。

プレフィックスポリシー

次のコマンドを実行して、コンピュータのプレフィックスポリシーを確認できます。

>netsh int ipv6 show prefixpolicies

昔は(もともと RFC 3484 で定義されていました)、プレフィックスポリシーは次のとおりです。

Precedence  Prefix         
----------  -------------
        50  ::1/128        IPv6 loopback
        40  ::/0           Native IPv6
        40  fc00::/7       ULAs
        40  fec0::/10      site-local
        40  3ffe::/16      6bone
        30  2002::/16      6to4
        20  ::/96          IPv4compat
        10  ::ffff:0:0/96  IPv4
         5  2001::/32      Teredo

それで、あなたはそれがほとんどいつもIPv6を使うであろうと思う(yay!):

  1. IPv6ループバック
  2. ネイティブIPv6、ULA、サイトローカル、6one
  3. 6to4
  4. IPv4フォーマット
  5. IPv4
  6. テレド

あなたがIPv6を展開するための努力をしたならば:それはただうまくいった。

新しいプレフィックスポリシー

2012年には、 RFC6724 で新しい優先順位が定義されました。今日では、プレフィックスポリシーによって、IPv6を絶対に使用しないことがほぼ保証されます。

Precedence  Prefix         
----------  -------------
        50  ::1/128        
        40  ::/0           Native IPv6
        35  ::ffff:0:0/96  IPv4
        30  2002::/16      
         5  2001::/32      
         3  fc00::/7       ULAs
         1  fec0::/10      site-local
         1  3ffe::/16      
         1  ::/96          

あなたはneverにあなたの固有のローカルアドレス、またはサイトローカルアドレスを使うことができなくなるでしょう。それは永久に壊れています:

  1. IPv6ループバック
  2. ネイティブIPv6
  3. IPv4
  4. 6to4
  5. テレド
  6. ULA
  7. site-local
  8. 6ボーン
  9. IPv6compat

それを修正するには?

私たちが欲しいのは、ULAがIPv4よりも優先されるようにIPv6を修正することです。少なくとも、私たちはULA(fc00::/7)の使用をIPv4のそれよりも上にしたいのです。

Precedence  Prefix         
----------  -------------
        50  ::1/128        
        40  ::/0           Native IPv6
        37  fc00::/7       ULAs <---------- from 3 up to 37
        35  ::ffff:0:0/96  IPv4
        30  2002::/16      
         5  2001::/32      
         1  fec0::/10      site-local
         1  3ffe::/16      
         1  ::/96          

これは、

>netsh interface ipv6 set prefixpolicy prefix=fc00::/7 precedence=37 label=13 store=active

それは次の再起動までそれをアクティブに保ちます。変更を永続化するには:

>netsh interface ipv6 set prefixpolicy fc00::/7 37 13

もし私が:

  • 私の/ 48のULAグローバルプレフィックスを生成するための努力を経た
  • 私の/ 64のサブネットIDを選択します
  • 企業内のすべてのマシンにULAを展開します。
  • iPv4アドレスに加えてIPv6 ULAアドレスも返すようにDNSサーバーを更新します。

コンピュータでできることは、アドレスを使用するのが一般的な礼儀です。

ボーナスチャッター

fc00::/7の範囲は2つの部分に分けられます。

  • fd00::/8 - ローカルに生成されたGlobalIDプレフィックス
  • fc00::/8 - ???

fcが良いと決心した人はいませんので、そこに座ってください。

fdアドレスは次のように定義されています。

fd[40-bit random GlobalID][16-bit subnet][64-bits for Host assignment]

暗号化のためのランダムな40-bitGlobalIDとしてa4d7f6dd66を生成したのであれば、それはあなたの/ 48になります。

  • fda4:d7f5:dd66::/48
  • fda4:d7f5:dd66:face::/64(faceサブネット内)
  • ホストIPアドレスとしてのfda4:d7f5:dd66:face::825

SixXSは衝突の可能性を減らすためにUnique Local Address GlobalIDプレフィックスの公開データベース を維持しました、 eg :

  • fdee:e004:2208::/48:アップル社 - Leopard OSX
  • fdd4:43c8:ba34::/48:TekSavvy - ダニー・マレー
  • fdac:afbd:fea1::/48:IBM Rational Build Forge - クリス・フラー

しかし、使用が遅くなり、そもそも疑わしい価値があるため、SixXSは2018年にサービスを中止しました。

ボーナス読書

1
Ian Boyd

私にとってはより簡単な方法があります。優先度を決定するためにインタフェースメトリック#を変更しました。私はこれまでネットワークアダプタの優先順位を変更するためにこの方法を使っていました(最初にWireless NIC priority、LAN NIC priority priority)、私はそれがTCP/IPv4とTCPで動作する/ IPv6も。この場合、TCP/IPv4のインターフェースメトリックを自動から5に、TCP/IPv6インターフェースメトリックを自動から10に変更しました。メトリック番号が小さいほど、優先順位は高くなります。その後、PCを再起動してください。それで今私がホスト名を使ってpingを実行する時はいつでも、それはIpv6の代わりにIPv4から返答するでしょう。

こちらがより詳細な説明です

https://www.windowscentral.com/how-change-priority-order-network-adapters-windows-10

0
Sam N