DNSサーバ
DNSサーバ(ディーエヌエスサーバ)またはネームサーバとは、Domain Name System でホストの識別子を利用者が理解し易い形式(ドメイン名、例えば'ja.wikipedia.org')とコンピュータが理解し易い形式(IPアドレス)を対応付けるコンピュータやサーバソフトウェアのことである。ドメイン名に対するIPアドレスを調べることを名前解決と呼ぶ。
概要
ウェブブラウザやメールサーバなどのネットワークアプリケーションは、オペレーティングシステムを介して、Uniform Resource Locator(URL)に示されたドメイン名のIPアドレスや、メールアドレスに応じた配送先メールサーバなどを知るために、DNSサーバに問い合わせを行う。DNSサーバに対して問い合わせを行うクライアントを特にリゾルバと呼び、リゾルバはWebブラウザなどが動作しているコンピュータだけでなく、他のDNSサーバへ問い合わせを行うDNSサーバである場合もある。
DNSサーバは2種類ある。
- DNSコンテンツサーバ - ドメイン名とIPアドレスなどの対応付けを、ドメイン名空間の「ゾーン」と呼ばれる単位で管理する。「権威DNSサーバ」とも呼ばれる。
- DNSキャッシュサーバ - フルリゾルバとも呼ばれ、ドメイン名の検索業務をおこない、結果をキャッシュする。「キャッシュDNSサーバ」とも呼ばれる。
独自のドメイン名をドメインレジストラで登録する際、「そのドメイン名を管理するDNSサーバ」として指定するのがDNSコンテンツサーバである。
また一般的な利用者がコンピュータのネットワークを設定する際、「DNSサーバ」として指定するのがDNSキャッシュサーバである。これはそのコンピュータのリゾルバが最初に問い合わせるDNSキャッシュサーバのIPアドレスを指定するものであり、Windowsなどではコントロールパネルの「ネットワーク設定」、あるいはUNIXの/etc/resolve.confなどへの設定が該当する。 DNSキャッシュサーバのIPアドレスを知るためにDNSキャッシュサーバを使うことはできないので、リゾルバはあらかじめDNSキャッシュサーバのIPアドレスを知っている必要がある。前述のように利用者が手動で指定する場合のほかに、Dynamic Host Configuration Protocol(DHCP)により自動的に設定する方法が多い。
名前解決する方法にも2種類ある。
- 再帰検索 - リゾルバからの問い合わせの要求を受け取ったDNSサーバが、他のDNSサーバに対して問い合わせを行い、その結果をリゾルバに返答する方法。
- 非再帰検索 - リゾルバからの問い合わせの要求を受け取ったDNSサーバが、管理下のゾーンやキャッシュされた情報を返答するか、またはそれらの情報が無いという応答をする方法。
単純な問い合わせ機能しか持たないリゾルバ(スタブリゾルバ)がDNSキャッシュサーバに要求する場合には再帰検索の要求が行われる。それによりDNSキャッシュサーバは、キャッシュされた情報が無ければ他のDNSサーバに対して問い合わせを行う。 DNSキャッシュサーバが他のDNSサーバに非再帰検索で要求すると、問い合わせを受けたDNSサーバ(通常はDNSコンテンツサーバ)は自らが知っている情報を応答する。 リゾルバが問い合わせた内容に対して、より適切な情報を持っているDNSサーバを示す応答を受け取った場合、再帰検索を要求されていたDNSキャッシュサーバはそのDNSサーバに対して問い合わせを行い、名前解決の結論が出るまで繰り返す。このように問い合わせを繰り返すリゾルバをフルリゾルバと呼ぶ。
DNSコンテンツサーバ
DNSコンテンツサーバの役割は、Domain Name Systemにおいて自ゾーンで管理するサーバのIPアドレスなどの各種リソースレコード(RR)を保持し、問い合わせ要求があったときに応答することである。
- リソースレコードの例
- Aレコード
- 名前に対するIPアドレス
- PTRレコード
- IPアドレスに対する名前 (IPアドレスは 1.1.168.192.in-addr.arpa. の様に表記される)
- NSレコード
- そのゾーンの権威あるDNSコンテンツサーバの名前
- MXレコード
- そのゾーンのメールサーバの名前
- SOAレコード
- ゾーンそのものの情報
- CNAMEレコード
- その名前に対する別名
- TXTレコード
- テキスト情報
など。
- wikipedia.orgのDNSコンテンツサーバの例
- このDNSコンテンツサーバは、ja.wikipedia.orgやwww.wikipedia.orgなどwikipedia.orgゾーンの各種リソースレコードを保持している。ただし、orgゾーンに保持されているIPアドレスは知らない(間違った設定によってorgのNSレコードをキャッシュで答えてしまうサーバも実際には多く存在する)。このDNSコンテンツサーバは、DNSクライアント(再帰検索の場合はDNSキャッシュサーバ)から、ja.wikipedia.orgのIPアドレスを教えるよう要求を受けると、自らが保持しているコンテンツから、ja.wikipedia.orgのIPアドレスを探し、それをDNSクライアントに返答する。
このようにドメイン名からIPアドレスを検索する事を正引きと呼び、反対ににIPアドレスからドメイン名を検索することを逆引きと呼ぶ。
DNSキャッシュサーバ
DNSキャッシュサーバの役割は、DNSクライアント(この場合はWindowsなど)から名前解決を依頼されたとき、再帰検索を行いドメイン名の解決を図ることである。
Webブラウザで、www.wikipedia.orgなどを入力した際、そのコンピュータがまず名前解決しに行くのがDNSキャッシュサーバである。DNSキャッシュサーバのIPアドレスは、Dynamic Host Configuration Protocol(DHCP)などから取得するほか、設定ファイルとしてマシン内に保存することもある。
実装
DNSサーバの主な実装を列挙する。 DNSサーバの中には、DNSコンテンツサーバとDNSキャッシュサーバが別々になっているものもあれば、一緒に実装するものもある。