web-dev-qa-db-ja.com

FQDNがIPv6とIPv4のどちらとして解釈されるかを決定するものは何ですか?

URLバーに完全修飾ドメイン名(FQDN)を入力すると、ブラウザーは、要求されたファイルがホストされている場所を決定するマッピングテーブル(このテーブルはどこに保存されていますか?サービスプロバイダーと一緒に?)に接続します。

したがって、IPv6アドレスがサポートされているかどうかは、サービスプロバイダー(変換テーブルを持っていると想定している)によって異なります。本当?

9
Lazer

これは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
7
unixtippse

IPv4アドレスは、DNS(ドメインネームシステム)のA(アドレス)レコードによってドメイン名にマップされます。 IPv6アドレスは、AAAAレコードを使用してマッピングされます。奇妙に思えますか? IPv4アドレスは32ビット、IPv6は128ビットです。 128/32 = 4なので、AAAA/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つで解決されることもあります。しかし、答えが見つかると、そのチェーンのすぐ下でブラウザに渡されます。

しかし、ブラウザはどのようにしてwhich要求するレコードタイプを認識しますか?それはあなたのシステム設定に依存します。 IPv4スタックが優先されるように設定している場合、ブラウザはDNSクエリでAレコードのみを要求します。 IPv6の場合、最初にAAAAレコードを要求し、次にAレコードにフォールバックします。

他のレコードタイプもあります。 MXレコードは、ドメインのメールサーバーがどこにあるかを定義します。 NSレコードはドメインのネームサーバーを定義します。SRVレコードは特定のサービス(SSHやWebなど)がどこにあるかを示します。

DNSは本当にインターネットの文字通りの電話帳です。

4
Kumba

ルックアップはDNS(および場合によってはローカルhostsファイル)によって処理されます。特定の名前がIPv6アドレスまたはIPv4アドレスとして解決されるかどうかは、ブラウザーの設定(IPv6をサポートし、IPv6 AAAA要求を送信するか、オペレーティングシステム(特にIPv6スタックがあるかどうか))、およびDNSプロバイダー(AAAA(IPv6)要求をサポートしているかどうか)。

ブラウザーの問題は、一部の(古い)ブラウザーがAAAAルックアップ要求を発行せず、それらを送信しないように構成できる(Firefoxにはこれに対する設定があります)という事実によってさらに複雑になりますが、最近のほとんどのブラウザーは最初にAAAA要求を送信し、 Aリクエスト。

2
Helvick