DNSを理解する上で必須となる、DNSの「問い合わせ」と「応答」について解説する。
DNSを理解する上で、DNSの問い合わせと応答を正しく把握することは重要である。DNSにおいて、問い合わせは「再帰問い合わせ」と「非再帰問い合わせ(反復問い合わせ)」の2種類に、応答はその意味によって5種類に分類される。まず問い合わせについて説明し、続けて応答について説明する。
DNSの問い合わせには、「再帰問い合わせ」と「非再帰問い合わせ(反復問い合わせ)」の2種類がある。これは、問い合わせを行う立場として、DNSクライアント(スタブリゾルバ)とキャッシュDNSサーバーの2種類があり、それぞれ問い合わせる内容が違うためである。
「再帰問い合わせ」は、DNSクライアント(スタブリゾルバ)からキャッシュDNSサーバーに対して行う問い合わせであり、ヘッダのRDビットがセット(“1”)されている。もう一つの「非再帰問い合わせ(反復問い合わせ)」は、キャッシュDNSサーバーから権威DNSサーバーに対して行う問い合わせであり、ヘッダのRDビットがクリア("0")される。
RD(Recursion Desired)ビットは、問い合わせ側が再帰検索要求するか否かを指定するビットである。再帰検索を要求しない場合にはクリアされ、再帰検索を要求する場合にはセットされる。この違いを理解するためには、再帰問い合わせは名前解決を依頼(要求)するためのもので、非再帰問い合わせ(反復問い合わせ)は名前解決を実行するものだと考えるとよい。これらの区別をきちんと行うことは、問題が起こった際の調査において切り分けに役立つので重要である。
- | 再帰問い合わせ | 非再帰問い合わせ(反復問い合わせ) |
---|---|---|
機能 | 名前解決を依頼(要求)する | 名前解決を実行する |
RDビット | RD=1(セット) | RD=0(クリア) |
問い合わせ元 | DNSクライアント(スタブリゾルバ) | キャッシュDNSサーバー |
問い合わせ先 | キャッシュDNSサーバー | 権威DNSサーバー |
digオプション | なし(デフォルトで+rec) | +norec |
drillオプション | なし(デフォルトで-o rd) | -o rd |
表1 「再帰問い合わせ」と「非再帰問い合わせ(反復問い合わせ)」の違い |
名前解決において、キャッシュDNSサーバーは権威DNSサーバーから受け取る応答に応じて名前解決を実行することになる。権威DNSサーバーが返す応答をその意味に基づいて分類すると以下の5種類となる。それぞれの内容と意味を知ることは名前解決を理解する上でとても重要である。
その名前と型のレコードはこれである。
その名前は、他の権威DNSサーバーが知っている。
他の権威DNSサーバーを参照させるための応答。
その名前には、どんな型のレコードも存在しない。
不在応答の一つ。
その名前には指定された型のレコードは存在しないが、他の型のレコードやサブドメインは存在する可能性がある。
不在応答の一つ。
その名前の正式名はこれである。
Copyright © ITmedia, Inc. All Rights Reserved.