web-dev-qa-db-ja.com

IPv6よりも優先プロトコルとしてIPv4を設定する

Slackware 13.0ボックスを含むLANネットワークでIPv6とIPv4の両方を使用しています。このネットワークのワークステーションで優先プロトコルとしてIPv4を設定するにはどうすればよいですか?明示的に、または使用可能なAAAAレコードしかない場合にIPv6を使用したい。たとえば、Firefoxから http://ipv6.org/ を開こうとすると、常にIPv6で接続します。状況は他のアプリケーションと同じです。 /etc/gai.confを作成して、以下を追加してみました。

precedence ::ffff:0:0/96  100

これは少なくともDebianではgetaddrinfo(3)の動作を制御するはずですが、Slackwareでは役に立ちませんでした。

任意のアイデアをいただければ幸いです。前もって感謝します!

19

Manページによると、gai.confにprecedence値を挿入すると、他のすべてのデフォルトルールが無効になります。 RFC 3484(10.3)に記載されているすべてのルールを設定してみてください。

  Prefix        Precedence Label
  ::1/128               50     0
  ::/0                  40     1
  2002::/16             30     2
  ::/96                 20     3
  ::ffff:0:0/96        100     4
17
Luca Tettamanti

ipv6は本当に私の専門分野ではありませんが、resolver(5)のmanページには、_/etc/resolv.conf_にいくつかの関連するオプションがあるようです:

_options inet6_は_RES_USE_INET6_に__res.options_を設定します。これには、gethostbyname(3)関数内のAクエリの前にAAAAクエリを試行し、AAAAレコードが見つからないがAレコードセットが存在する場合にIPv6の「トンネル形式」でIPv4応答をマッピングする効果があります。

たぶんあなたのクライアントはそのオプションを設定していますか?

1
Anders Lindahl