DNSの仕組みやそれに関する知識を理解しておくことで、サービスへのドメイン名の設定を行なう際など、サーバ運用のあらゆる面で役立ちます。 この記事では、これに関する基本的な内容を解説します。

DNSとは

DNS(Domain Name System)とは、ドメイン名を管理する仕組みです。 ドメイン名とIPアドレスの対応づけを保持、あるいは検索を行ないます。

まず、クライアントからWebページにアクセスする際、IPアドレスを知っておく必要があります。 IPアドレスは、対応づけを保持するDNSサーバ(あるいはネームサーバ)に対して、ドメイン名を元に問い合わせることで取得できます。

ドメイン名からIPアドレスを検索すること(またはその逆)を名前解決といいます。

名前解決のプロセス

DNSは階層的な分散型データベースシステムであり、1つのネームサーバがすべての対応づけを持っている訳ではありません。

まず、最上位のネームサーバであるルートサーバより、.com.jpといったTLD(Top Level Domain)の対応づけを持つサーバ情報を取得し、そこから次のサーバ情報を取得し……を繰り返し、最終的に目的の情報を持つサーバを特定し、名前解決を行ないます。

DNSレコード

名前解決を行なうことでネームサーバから得られる情報をDNSレコードといいます。

DNSレコードには、次のようなものがあります。

種類
A ホスト名に対応するIPアドレス
CNAME ホスト名のエイリアス
MX ドメインのメールサーバ名
NS ドメインのネームサーバ名
SOA ゾーン情報

付け加えると、CNAMEレコードは、例えばwww.example.comexample.comのエイリアスにしたい場合などに指定します。

また、NSレコードは、そのドメインにおけるサブドメインの名前解決を行なう際に問い合わせるネームサーバ情報です。

周辺知識

ネームサーバの種類

ネームサーバは通常、冗長化のために2つ以上用意します。 そのうちのメインとなるサーバをプライマリネームサーバといいます。

プライマリネームサーバのコピーを保持したサーバも用意します。 これをセカンダリネームサーバといい、障害時などにプライマリネームサーバに変わって動作します。

セカンダリネームサーバは、負荷分散などを考慮して2つ以上用意する場合もあります。

TTL

名前解決を行なう際、毎回ルートサーバから問い合わせを始める訳ではありません。 DNSには、同じ問い合わせを繰り返し行なうことを防ぐために、問い合わせをキャッシュする仕組みがあります。

クライアントは、まずキャッシュサーバに対して問い合わせを行ないます。 一度名前解決をすると、そのレコードはこのキャッシュサーバ保持されます。

このキャッシュには有効期限(TTL: Time To Live)が設定されており、その期限内の問い合わせに対しては、キャッシュサーバからすぐにレコードが返され、そうでなければ再度ルートサーバからの問い合わせを行ないます。

ゾーン

ネームサーバが管理する、ドメイン名とIPアドレスの対応づけの範囲をゾーンといいます。

あわせて読みたい

おわりに

DNSに関する基本的な内容は以上となります。

今後の記事では、WebサーバやS3に対して、Route 53を利用してドメイン名を設定する方法などについて公開する予定です。