リソースレコード
DNSのネームサーバは、ドメイン名(及びホスト名)とIPアドレスの対応をデータベースとして保持している。このデータベースが持つデータを「リソースレコード」と呼ぶ。
このデータベースとリソースレコードの構造と形式は、DNSサーバソフトによって異なる。もっとも有名なDNSサーバソフトの「BIND」では、「ゾーンファイル」と呼ばれるデータベースをテキストファイルとして保持している。BINDでは、ゾーンファイルにホスト名とIPアドレスの対応などのリソースレコードを記述している。以下、BINDのゾーンファイルを基準に解説を進める。
リソースレコードにはいくつかの種類(レコードタイプ)が存在する。一般的に使用されている主なリソースレコードには次のものがある(図1)。
- A(アドレス)
- CNAME(キャノニカルネーム)
- MX(メールエクスチェンジ)
- NS(ネームサーバ)
- SOA(スタートオブオーソリティ)
それぞれの種類を呼ぶ場合は、たとえばレコードタイプAのリソースレコードは「Aレコード」と呼ぶ。それぞれのレコードの役割を見ていこう。
AレコードとCNAMEレコード
DNSでもっとも基本となるリソースレコードは、ドメイン名とそれに対応するIPアドレスを記述する「Aレコード」である(図2)。DNSの「ドメイン名とIPアドレスを変換する」役割を果たすための中心的なレコードといえる。
ドメイン名とIPアドレスの対応は必ずしも1対1である必要はない。1つのドメイン名に複数のIPアドレスを対応させることもできる。この場合、1つのAレコードに、複数のIPアドレスが記述されることになる。
反対に、1つのIPアドレスに複数のドメイン名を持たせることもできる。この場合に使用するのが「CNAMEレコード」だ。CNAMEレコードは、別のAレコードで使用されているIPアドレスに別の名前を付けるときに使う。
メールサーバとMXレコード
メールアドレスにもドメイン名が使われるが、このドメイン名は特定のホストの名前ではない場合が多い。たとえば、nmag.jpのメールサーバがmail.nmag.jpというホスト名だとしても、メールアドレスは「amino@nmag.jp」という具合に、@の右側はドメインの名前になっている。
このようにメールサーバのホスト名ではなく、あえてドメイン名にしてあるのには理由がある。というのも、メールアドレスのドメイン名がメールサーバのものだった場合、障害などでメールサーバを変更しなければならなくなったとき、メールアドレスも変更しなければならない。これがドメイン名であれば、メールサーバが変わってもメールの送受信を継続できる。
この仕組みを実現するために使用されるのが「MXレコード」である(図3)。MXレコードは組織のドメイン名と、その組織のメールサーバのホスト名を結び付けるためのレコードである。メールを送信するメールサーバは、宛先メールアドレスのドメイン名のMXレコードを調べ、実際にメールを送るメールサーバのドメイン名を入手する。その後、メールサーバのドメイン名からAレコードを使用してメールサーバのIPアドレスを入手するのだ。
このMXレコードには「プリファレンス」と呼ばれる優先値が書かれている。組織に複数のメールサーバがあった場合、ゾーンファイルに複数のMXレコードを記述できる。その際、まずはMXレコードのプリファレンスが小さい値のメールサーバに対してメールを送ろうとする。もし、そのメールサーバに障害などが発生していた場合は、次にプリファレンスが低いMXレコードのメールサーバを宛先とする。このようにメールサーバの障害に対応することができる。
(次ページ、「分散管理とNSレコード」に続く)
この連載の記事
-
第4回
データセンター
DNSによる名前解決の仕組みを理解しよう -
第2回
データセンター
ドメイン名空間とゾーンについて知る -
第1回
データセンター
DNS誕生までの経緯をおさえよう -
ネットワーク
DNSのキホン - この連載の一覧へ