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


18

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

回答:


24

クライアントが最初に決定するのは、使用可能なプロトコルです。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つのプロトコルを維持する理由)。


1
これが書かれた後、RFC 3484はRFC 6724によって廃止されました
マイケルハンプトン

使用可能なプロトコルはどのように判断されますか?apt-get updateたとえば、ipv6ホストに接続しようとするランダムな動作を見てきましたが、ホスト自体にはリンクローカルアドレス以外にIPv6アドレスさえありません。
Halfgaar 16

1
これは、送信元および宛先アドレス選択(RFC 6724)によって処理されます。あなたの場合、ホストはDNSのAAAAレコードを確認し、その宛先アドレスを選択し、その宛先で使用できる送信元アドレスがないことを確認してから、IPv4にフォールバックするようです。
サンダーステファン16

2

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

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

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


1
これが質問に答えているとは思わない...その上:トンネリングは、コアIPv6インターネットではすぐに消えてしまいます。これは、ネイティブIPv6が現在どこでも利用できるからです。顧客へのトンネリングがありますが、それはシステムが接続時に行う選択とは関係ありません。PS:IPv4-over-IPv6トンネリングはすでに現れています。一部のケーブルインターネットオペレーターは、今年DS-Liteを展開していますが、まさにそれを実現しています。
サンダーステファン

私は、大規模なデータセンターのために働くと、すべての産業の接点を持っている、と私の経験では、IPv6がある間違いではないどこにでも今。ギャップを埋めるためにトンネリングが存在し、ほとんどのエンドユーザーがまだIPv6を割り当てられていないことを考慮すると、それは依然として関連しています。
ギャレット

3
トンネリングは実際に使用されていますが、可能な場合は避ける必要があります。まだまともなIPv6を顧客に提供していないISPは仕事をしていません...しかし、とにかく:問題は、クライアントアプリケーションがIPv4とIPv6を選択する方法でした。これは、クライアントアプリケーションではなく、ルーターの仕事だからです。クライアントアプリケーションは、ローカルネットワークで使用可能なものを使用します。
サンダーステファン

十字軍、私の友人。
ギャレット

-2

アプリがどのように選択するかをどのように決定するのか、あなたは聞いていると思う。プログラム側からは、アプリケーションの実装に依存します。例えば、コーダーがIPv6をIPv4よりも高い優先度にした場合、最初にgetipv6addr()を使用しようとします。設定されていないか失敗した場合、getaddr()などを使用してみます。これに基づいて、アプリは最初にIPv6を介してリクエストを送信します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.