ブラウザでIPv4よりもIPv6を優先させるにはどうすればよいですか?


16

miredoをインストールし、IPv6を起動して実行しているようです。IPv6アドレスを指定すると、ホストをping6し、wgetまたはwebbrowserでWebページをダウンロードできますが、IPv4とIPv6の両方で提供されるホスト名を指定すると、ブラウザーは接続用のIPv4アドレスを選択します。

どうすればそれを変更し、ブラウザでIPv4ではなくIPv6を使用できるようにすることができますか?

いろいろと調べてみると、6to4 / teredoトンネルでは、ブラウザーがIPv6よりもIPv4を好むというヒントを見つけましたが、これまでのところ、その理由や方法を説明していません。

回答:


10

ブラウザがオプションを好むのではなく、オペレーティングシステムです。標準では、おおよそこのような優先順位を定義しています。

  1. ipv6
  2. ipv4
  3. 6to4-Traffic

これを変更するには、ラベル/優先順位ブロックを編集します/etc/gai.conf(gaiは、getaddrinfoホスト名を解決するための標準システムコールの略です)。

詳細な説明gai.confは、manページにあります。

ちなみに、これはSiXXSトンネルが6to4よりも優先されたというJonathonの経験も説明しています。


7

Firefoxおよびその他のMozilla / Geckoベースのブラウザの場合、IPv6を使用する場合の設定は、Ubuntuではデフォルトでtrueにnetwork.dns.disableIPv6設定されているabout:config必要がありfalseます。そうしないと、多くの人がホームルーターでバグのあるDNSプロキシの問題を取得します


これはFirefox用ですか?

はい、申し訳ありませんが、回答を更新します。
JanC

2
確認しただけです。設定を変更する必要はありません。最近ではデフォルトtrueでFirefoxに設定されています-UbuntuのFirefoxでも同様です。
フレディブ

6

freddybが指摘したように、これはホスト名getaddrinfoを解決する標準システムコールの構成に依存します。

問題を解決するには、あなたのコンテンツを/etc/gai.conf次の行に置き換えます。

label ::1/128       0
label ::/0          1
label 2002::/16    2
label ::/96         3
label ::ffff:0:0/96 4
label fec0::/10     5
label fc00::/7      6
#label 2001:0::/32   7

更新:前の応答が間違っていたことを指摘したthxからfreddybへ:3行目ではなく最後の行にコメントする必要があります。今ではうまくいきます!


6

最近、Chrome、Firefox、および派生ブラウザは、サイトがIPv4よりも高速に応答する場合、実際にはIPv6を回避します。構成設定を使用してこの動作を変更することはできません。

この機能自体は一般的なユーザーにとっておそらく妥当なものですが、それを無効にできないことはほとんど私を怒らせます。現在、IPv6接続は非常に優れており、トンネリングによる遅延が大きい場合でも、IPv6にはIPv4を介した接続よりもいくつかの利点があります。私は長年IPv6でブラウジングしてきましたが、IPv6のルーティングとパフォーマンスはずっと良くなっていますが、このひどいブラウザーの「ハック」機能は10年前に戻ってきました。


2
この動作は、RFC 6555で推奨されています。2010年頃から一般的に行われています。まともなユーザーエクスペリエンスを提供するために、デフォルトで使用するのは絶対に正しい動作です。ブラウザがこれを行わなかった場合、ほとんどのWebサイトはAAAAレコードの公開をまったく拒否していました。ただし、IPv6を提供するために数ミリ秒のヘッドスタートを調整する設定は良いアイデアです。サイトごとにその有利なスタートを選択できると、さらに良いでしょう。サイトごとの設定は、プロキシスクリプトからの可能な戻り値としてブラウザに追加できます。
カスペルド

2

OK、私はこれを調べてきましたが、奇妙です。

  1. ローカルプロキシを使用する
    マシンで実行されているSquidを介してプロキシするようにFirefoxを設定すると、Firefox(より正確にはSquid)はmiredoトンネルを介して接続します。miredoがインストールされているが、Firefoxが「プロキシなし」に設定されている場合、Firefoxは最初にIPV4を使用します。

  2. aiccuのインストールaiccu
    をインストールしてトンネル(SiXXSなど)を設定すると、プロキシ設定に関係なく、IPV6がFirefoxで最初に使用されます。

miredoはIPV6サイトに接続するために存在するため、IPV4が利用できない場合にのみ使用される可能性があります。その場合、aiccuを試してください。


1

答えは簡単です。ラベルを変更します。

label 2002::/16    1
label 2001:0::/32   1

これにより、「バニラ」ipv6と同等になります。

コメントアウトしたままにすると、デフォルト値が選択されます。

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