DNS(Domain Name System)とは
DNS とは、インターネット上のドメイン名と IP アドレスを対応付けるための仕組みです。
インターネットを介した通信は、通常 IP アドレスを用いて相互に通信を行います。しかし、web サイトにアクセスする際など、人間が直感的にわかりやすいドメイン名(例: google.com など)でアクセスしたい場合があります。そこで、DNS は、ドメイン名を IP アドレスに変換することで、ネットワーク上の機器が正しく通信を行えるようにしているのです。
以下に、DNS のしくみを実現するための主要な機能や構成要素について説明していきます。
リゾルバ(Resolver)
DNS において、ドメイン名から IP アドレスを検索したり、IP アドレスからドメイン名を検索したりして名前解決を行うソフトウェア・プログラムです。リゾルバには、スタブリゾルバとフルサービスリゾルバの 2 つのタイプがあります。
スタブリゾルバ
一般的な PC の OS 等に搭載されている機能です。キャッシュを持っていないため、自分で名前解決ができません。フルサービスリゾルバに名前解決の要求を出し、その結果を受け取ることで名前解決を行うリゾルバです。
フルサービスリゾルバ(キャッシュサーバ)
スタブリゾルバからきた名前解決要求(DNS クエリ)に対して、キャッシュの内容から答えるか、分からなかった場合、後述する権威サーバ群に問い合わせを行います。
権威 DNS サーバ(コンテンツサーバ、ゾーンサーバ)
DNS において、当該サーバが管理するゾーン(ドメイン)の情報を保持し、他のサーバに問い合わせなくても応答することができるサーバのことです。やたら色々な呼び方があります。
当該サーバが管理するドメインの情報を登録しておいて、リゾルバからの非再帰的な名前解決要求に対して自身が管理するドメイン内の名前解決にだけ応じます。
フルサービスリゾルバはスタブリゾルバからの名前解決要求に対して、キャッシュに情報がない場合でも、再帰的に必要な情報を取得して回答を返すという点で、権威 DNS サーバの働きとは対照的となっています。
まとめ
今回では、DNS の構成要素の役割とおおまかな名前解決の流れをまとめました。DNS サーバに対する攻撃などセキュリティ関係の話も今後まとめてみたいと思います。

