回答:
これはiptablesとタグ付けされているので、これはLinuxの質問だと思います。
Linuxでは、プログラムが特定のホスト名に対してIPv6アドレス(AAAA)またはIPv4アドレス(A)のどちらを先に検索するかを決めるのはglibcの責任です。glibcを使用するプログラムは、getaddrinfo()関数を使用します。getaddrinfo()の動作は/etc/gai.confで設定されます。
システムでは、/ etc / gai.conf内のほとんどすべてがコメント化されています。エントリのコメントを外します:
ラベル:: / 0 1
私にとって、AAAAファーストルックアップのアクティブ化につながったため、IPv6アドレスが優先的にルックアップされます。だから、これはあなたが望むものかもしれません。
追加する更新:適切な方法は、gai.confの「label」ブロック全体を0〜7の値でコメント解除することです。
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
IPv4アドレスは、DNS(ドメインネームシステム)のA(アドレス)レコードによってドメイン名にマップされます。IPv6アドレスは、AAAAレコードを使用してマッピングされます。奇妙に思われる?IPv4アドレスは32ビット、IPv6は128ビットです。128/32 = 4なので、AAAAA / A = 4も同様です。DNSでIPv6のエントリを設計した人による巧妙なトリック。
DNSは、インターネット全体にわたる階層的な分散システムです。ブラウザがシステムライブラリを呼び出し、ルックアップチェーンが開始されます。最初にローカルキャッシュをチェックします。通常はメモリに保存されます。次に、ディスクを探し、HOSTSファイル(ほとんどのUNIX / Linuxでは/ etc / hosts、WindowsではC:\ Windows \ System32 \ drivers \ etc \ HOSTS)を調べます。その後、それでも回答が見つからない場合は、ネットワーク構成に従って、割り当てられたDNSサーバーに呼び出しを行います。
そのDNSサーバーは、はるかに大きいキャッシュをチェックします。一致する場合は、回答を返します。答えが見つからない場合は、向きを変えて、ISPのISPが実行しているさらに上位のDNSサーバーに問い合わせます。あなたは、ルートネームサーバを打つまで、このプロセスは継続a.root-servers.net
を通じてm.root-servers.net
。DNSクエリの大部分は、そこまで到達する前に長時間解決されますが、1つまたは2つで解決されることもあります。しかし、答えが見つかると、そのチェーンのすぐ下のブラウザに渡されます。
しかし、ブラウザはどのレコードタイプを要求するかをどのようにして知るのでしょうか それはシステム設定に依存します。IPv4スタックを優先するように設定した場合、ブラウザーはDNSクエリでAレコードのみを要求します。IPv6の場合、最初にAAAAレコードを要求し、次にAレコードにフォールバックします。
他のレコードタイプもあります。MXレコードは、ドメインのメールサーバーの場所を定義します。NSレコードは、ドメインのネームサーバーを定義します。SRVレコードは、特定のサービス(SSHやWebなど)の場所を示します。
DNSはインターネットの文字通りの電話帳です。
ルックアップはDNS(およびおそらくローカルホストファイル)によって処理されます。特定の名前がIPv6またはIPv4アドレスとして解決されるかどうかは、ブラウザーの設定(IPv6をサポートし、IPv6 AAAA要求を送信するか、オペレーティングシステム(とりわけIPv6スタックがあるかどうか)、およびDNSプロバイダー(AAAA(IPv6)要求をサポートするかどうか)。
一部の(古い)ブラウザーはAAAAルックアップ要求を決して発行せず、それらを送信しないように構成できる(Firefoxにはこのための設定があります)が、ほとんどの最近のブラウザーは最初にAAAA要求を送信してフォローアップするという事実により、ブラウザーの問題はさらに複雑になりますAリクエスト。
C:\Windows\System32\drivers\etc
。しかし、それは空です。