PR

Part2では,DNSの主役であるDNSサーバーに着目し,そのしくみをじっくりと探っていくことにしよう。まずはDNSサーバーの振る舞いを整理し,次に,自ら取得したドメイン名を使えるようにするための作業を見ていく。そのあとで,いよいよDNSサーバーが管理する対応表,すなわちゾーン情報の中を探っていく。

 Part2では,DNSの主役であるDNSサーバーに着目し,そのしくみをじっくりと探っていくことにしよう。

 まずはDNSサーバーの振る舞いを整理する。DNSサーバーは,設定によって問い合わせを受け取ったときの振る舞いを変えることができる。どのように動かすかは,設置されている場所や,そのDNSサーバーに期待されている役割で決まってくる。

 次に,自ら取得したドメイン名を使えるようにするための作業を見ていく。ここで,DNSサーバーに何を登録するのかをおさえる。

 そのあとで,いよいよDNSサーバーが管理する対応表,すなわちゾーン情報の中を探っていく。はじめに,DNS独特の用語であるドメインやゾーンの意味を再確認する。そしてそれを踏まえて,ゾーン情報の登録項目である「資源レコード」の中身がどうなっているのか,またそれが実際のインターネットにおいてどのような場面で使われているのかを見ていこう。

設置場所でふるまいは変わる

 Part1で見てきたように,DNSサーバーの主な役割は「リゾルバからの問い合わせに回答する」ことである。これは,すべてのDNSサーバーに共通する基本的な役割である。

 リゾルバからの問い合わせを受けたとき,その答えを見つける方法は大きく3パターンある(図1)。

図1●DNSサーバーの基本的な仕事は「問い合わせに対して回答を用意すること」<br>用意の仕方は大きく3種類ある
図1●DNSサーバーの基本的な仕事は「問い合わせに対して回答を用意すること」
用意の仕方は大きく3種類ある
[画像のクリックで拡大表示]

 第一は,目的のDNSサーバーを反復的な問い合わせによって探し出し,問い合わせに対する正しい結果を見つけて,それをリゾルバに返信するというもの。通常,企業内におくDNSサーバーは,こうしてIPアドレスを見つける。

 このタイプのDNSサーバーは,見つけた答えをキャッシュし,それをうまく使う。問い合わせに対する答えをキャッシュの中から見つけることもあれば,キャッシュの内容から答えを知っていそうなDNSサーバーを見つけ,そこに反復的な問い合わせを始めることもある。

 第二は,ルートDNSサーバーのように,自分が管理している対応表(ゾーン情報)の中から答えを見つけて返すというもの。インターネット事業者(プロバイダ)が運用しているDNSサーバーのうち,ユーザーのゾーン情報を管理しているDNSサーバーはこの動作が中心となる。

ルーターのDNS機能は中継するだけ

 第三は,リゾルバからの問い合わせをそのままほかのDNSサーバーに投げてしまうというもの。大事な点は,ほかのDNSサーバーに転送する問い合わせが再帰的問い合わせであることだ。この機能は,「フォワーダ」と呼ばれる。

 ところで,フォワーダはどのような場面で使われているのだろうか。

 典型例は,例えば社内ネットとインターネットを結ぶ回線が細いとき。このようなときはできるだけトラフィックを減らしたい。フォワーダを使うと,どんなドメイン名を問い合わせても一度で答えが返ってくる。反復的な問い合わせに比べてトラフィックを少なくできるというわけだ。身近なフォワーダの実装例としては,家庭向けルーターのDNSサーバー機能がある。

 以上,DNSサーバーの基本動作を見てきた。企業やプロバイダで使われている多くのDNSサーバーは,最初の二つの機能を同時に使っている。つまり,ゾーン情報あるいはキャッシュの中に答えがあったときはそれを返信し,そこに答えがないときは反復的問い合わせを繰り返して答えを見つけているのである。

上位のDNSサーバーにも登録する

 では次に,自分のドメイン名でWebサーバーを立ち上げる手順を見ていこう。ドメイン管理者がするべきことは三つある。

 まず,自分のドメイン名を管理するDNSサーバーを用意すること。これがないとはじまらない。ただし,DNSサーバーは自分で立てなくてもいい。だれかが運用しているDNSサーバーに,自分のドメイン名の管理を頼むことができる。

 次に,ドメイン名を管理する組織(レジストリ)のDNSサーバーに,自分のドメイン名を管理するDNSサーバーを登録する。これをしないと,ルートDNSサーバーからたどってくる反復的な問い合わせがうまく働かない。この登録作業は,たいていドメイン名取得代行業者のWebページで行う。

 最後に,自分のドメイン名を管理するDNSサーバーに,ドメイン名とIPアドレスの対応付けを登録する。これが,自分のドメイン名のゾーン情報となる。具体的には,Webサーバーの名前を決め,それとWebサーバーのIPアドレスをセットで登録する。

 ちょっとわかりにくいので,www.abc.comというWebサーバーを立ち上げる例で説明しよう(図2)。

図2●取得したドメイン名のWebサーバーをDNSで引けるようにするには?
図2●取得したドメイン名のWebサーバーをDNSで引けるようにするには?
[画像のクリックで拡大表示]

 まず,abc.comのゾーン情報を管理するDNSサーバーを用意し,これに名前をつける。たとえばdns.abc.comとする。そして,「abc.comのゾーン情報は,dns.abc.comというDNSサーバーが管理している」と,comを管理するDNSサーバーに登録する。

 このあと,dns.abc.comにゾーン情報を書き込む。具体的には,Webサーバーのドメイン名「www.abc.com」と,そのWebサーバーのIPアドレスを登録する。これで,世界中のインターネット・ユーザーは,www.abc.comでWebサーバーにアクセスできる。

ドメインとは名前の集まり

 ここまでの説明でも何度か出てきたドメインとゾーン。ここで用語の意味を確認しよう。

 まずはドメインから。abc.comというドメイン名を取得したとする。このabc.comというドメイン名は,あるコンピュータの名前を表すときに使えるが,それと同時に,「abc.com」を含むドメイン名全体の意味にもなる。このように,ある領域のドメイン名全体のことを「ドメイン」あるいは「ドメイン名空間」と呼ぶ。ドメイン名空間を示すときは,「abc.comドメイン」のように呼ぶことが多い。

 あるドメインは,一般に上位のドメインと下位のドメインがある。abc.comなら,上位のドメインはcomドメインであり,例えばinfo.abc.comドメインは下位のドメインとなる。下位のドメインはサブドメインと呼ばれる。