web-dev-qa-db-ja.com

ブラウザはいつIPv6DNSレコードを要求して使用しますか?

私の新しいLinodeホストサーバーがIPv4アドレスとIPv6アドレスも提供してくれてうれしいです。
また、デフォルトのDNSレコードは、LinodeをNSとして使用すると、AレコードとAAAAレコードの両方を表示します

example.com 86400 IN A    203.0.113.4
example.com 86400 IN AAAA 2001:db8::ff00:1111:2222:3333

これは良いことですが、Webアプリケーションはv4とv6の両方から利用できます。
しかし、多くのISP(少なくとも私がいる場所)はまだIPv6接続を提供していないことに気づきました。

したがって、そのような領域からIPv6を介してブラウザからアクセスすると、AAAA(v6)要求が正常に実行されます。ただし、そのv6アドレスを使用するhttp(s)接続は失敗します。

最近のブラウザでこのようなことが起こるのを心配する理由はありますか?
IPv4のみがアクセスできるようにするには、DNSゾーンからIPv6アドレスを削除する必要がありますか?

-

注:これは、DNS解決の問題に焦点を当てた これ と同じ質問ではありません

6
Ring Ø

あなたが尋ねている問題は、4-5年前の大きな懸念でした。それはおそらくIPv6の採用を数年遅らせたでしょう。 Webサイトが不安定に見える可能性があり、ユーザーがIPv6のサポートなしで競合するサイトに移動することを恐れたため、誰も最初に行きたくありませんでした。

多くの企業が問題の解決に力を注いでいます。間違いなく、@HåkanLindqvistがリンクした Happy Eyballs アプローチは、問題を解決するための最も重要な貢献でした。

2011年には、問題が解決され、主要なWebサイトが World IPv6 Day と呼ばれる24時間の調整されたテストを実行したという十分な確信がありました。調整されたテストの実行は、問題がまだ発生しているユーザーが、問題が自分の接続ではなく1つの特定のサイトにあるという結論に誤ってジャンプしないことを確認することを目的としています。

結果は十分に成功し、1年後、主要なWebサイトが World IPv6 Launch でIPv6を永続的にオンにしました。

NAT)によって引き起こされる問題が、IPv6の破損によって引き起こされる問題よりも大きくなる転換点に近づいています。現時点では、両方とも十分に小さいため、測定が困難です。私たちはすでにその転換点を超えています。

ネイティブのデュアルスタック接続が機能するようになったらすぐに、デュアルスタックDNSレコードを構成することをお勧めします。開始が早ければ早いほど、問題を解決するために必要な時間が長くなります。真にミッションクリティカルになるまでに安定している必要があります。

6to4またはTeredoアドレスにサーバーを展開しないでください。サーバーでIPv6を取得する唯一のオプションであった場合は、より適切なプロバイダーに切り替えることをお勧めします。

ただし、サーバーにパブリックIPv4アドレスがある場合は、6to4リレーとTeredoリレーを自分のサーバーに直接構成することをお勧めします。これらのリレーを展開すると、6to4またはTeredoを使用するクライアントのサーバーへの接続の信頼性が高まります。

場合によっては、IPv6接続が切断されたクライアントがまだ存在することがあります。しかし、過去2年間、これらのクライアントは主要なサイトで問題が発生するため、何らかの方法で独自の問題を解決することが期待できます。彼らはあなたのサイトだけで問題を見ることはありそうにありません。

ただし、自分のサイトのIPv6接続に注意を払う必要があります。サイトでIPv6接続が停止した場合、IPv6接続とpre-happy-eyeballsブラウザーが機能している少数のユーザーに影響を与える可能性があります。それらはあなたのサイトだけで問題を見るでしょう、しかし他のすべては働いているでしょう。

現時点でIPv6のユーザー数が少ないからといって、IPv4よりも少ない監視で安全に展開できるとは限りません。どちらかといえば、問題に気付かない可能性が高いため、IPv6接続をさらに監視する必要があると思います。

10
kasperd

他の回答とコメントに何かを追加するには:

多くのISP(少なくとも私がいる場所)はまだIPv6接続を提供していないことに気づきました。したがって、そのような領域からIPv6を介してブラウザからアクセスすると、AAAA(v6)要求が正常に実行されます。ただし、そのv6アドレスを使用するhttp(s)接続は失敗します。

いいえ、(ほとんど)IPv6接続を確立しようとはしません。システムは、IPv6接続がないことを認識しています。 getaddrinfo() はIPv6アドレスをアプリケーションに返しません。 (とにかくAAAAクエリを実行する理由は、Webサイトcouldに真に機能するAAAAレコードがあるためです。 、ローカルホストIPアドレスなど、::1。)

これは、ごくわずかな割合のシステムでのみ問題になります。誤ってIPv6接続があり、数年前にブラウザを実行していると考えているシステムです。前述のように、World IPv6DayとWorldIPv6 Launchのおかげで、FacebookとGoogleがダウンしたときに通りに血が流れ、ブラウザがHappy Eyeballsを実装したため、接続の失敗にかかる費用はわずか2、3であるため、ほとんどがすでに修正されています。百ミリ秒。

4
Matt Nordhoff