web-dev-qa-db-ja.com

クライアントアプリケーションはIPv4またはIPv6の使用をどのようにして知るのですか?

サーバー/コンピューター/ユーザー/アプリケーションは、IPv6アドレスとIPv4アドレスを使用して、インターネット経由でリソースをリクエストすることをどのように知っていますか?

18
Bobby S

クライアントが最初に決定することは、使用可能なプロトコルです。 IPv4とIPv6の両方が利用可能であると仮定しましょう(そうでない場合、選択するプロトコルに対する答えは簡単です;)次に、A(IPv4アドレス)とAAAA(IPv6アドレス)の両方のレコードに対してDNSルックアップを実行します。 1つのタイプのみが返される場合は、それが使用されます。 IPv4アドレスとIPv6アドレスの両方が返される場合、デフォルトの動作はクライアントソフトウェアによって多少異なります。通常 RFC 3484 が使用されます。

公式の標準によれば、IPv6を優先する必要がありますが、IPv6の設定が誤っているマシン(0.01%以下)があるため、クライアントはよりスマートになりました。最近のほとんどのブラウザーはIPv6を介して接続を試みますが、300ミリ秒以内に接続が機能しない場合、IPv4を介して並列に接続を試みます。成功した最初の接続が使用されます。これは Happy Eyeballs RFC でカバーされています。

AppleはこれをLionで変更した。そこで、オペレーティングシステムは実際にすべての接続のパフォーマンスを追跡し、IPv4接続の遅延がIPv6接続よりも低いと判断した場合、IPv4を優先し始めます。ただし、IPv4接続が遅くなると、IPv6に戻る可能性があります。この機能の説明については、 このメーリングリストのスレッド を参照してください。

ユーザーにとっては、機能する限り、IPv4とIPv6のどちらを使用してもかまいません。 IPv4とIPv6は同等に提供する必要があります。 WebサイトはIPv4でもIPv6などとまったく同じように機能する必要があります。

IPv4は今後も使用され続けます。新しいサービス(ウェブサイト、ゲームなど)がIPv6でのみ展開されると、使用する新しいIPv4アドレスがなくなるため、使用できなくなります。そして、ある時点で、IPv4で機能するすべてのものがIPv6でも機能するようになります。その時点でIPv4を無効にすると、時間とお金を節約できます(1つで十分なのに2つのプロトコルを維持する理由は?).

25
Sander Steffann

現在使用されている中間ステップは、トンネリングと呼ばれています。基本的に、IPv6パケットは、IPv4カプセル化を取り除き、完全なIPv6ネットワークの反対側に送信できるようになるまで、IPv4パケット内を移動します。もちろん、それよりもはるかに複雑ですが、基本的な概念は概して全体的に同じです。

より多くのデバイスがIPv6対応になり、人々がアドレスの使用に慣れるにつれて、IPv6の使用率が増加します。 IPv6が本当に受け入れられ、SMBおよびIPv4スペースが高価な商品になるまで個人市場で大規模な展開が見られるとは思いません(個人的な意見)。

IPv6が圧倒的多数のトラフィックに対応するかなり遠い将来のある時点で、IPv4トラフィックが通常のIPv6パケット内にカプセル化される必要があり、トンネルブローカーが同様の(ただし逆の)役割を果たしているIPv4の運命の逆転が見られました広範なIPv4ルーティング/ IP割り当ての欠如。

2
Garrett