ドメイン登録業者が何をするのか理解するには, まずDNS(ドメイン・ネーム・システム)を理解する必要があります。 DNSはインターネット全体に分散するデータベース・システムで, ドメイン名やホスト名からIPアドレスなどを検索したり, 逆にIPアドレスからホスト名を検索したりすることができます。 例えば,ホスト名「ns.gcd.org」のIPアドレスを調べたい場合は, nslookupコマンドを実行すると, 「210.145.125.162」であることが分かります(図1)。 では, nslookupはどうやってIPアドレスを調べたのでしょうか?
% nslookup ns.gcd.org. Server: asao.gcd.org Address: 0.0.0.0 Name: ns.gcd.org Address: 210.145.125.162 |
図1 nslookupコマンドでネーム・サーバーへ問い合わせ |
ネーム・サーバーへの問い合わせを行うコマンドがnslookupです。 |
nslookupは, まず/etc/resolv.confファイルに書いてあるネーム・サーバーへ問い合わせます。 私のマシン(asao.gcd.org)の /etc/resolv.conf は図2のようになっています。
search gcd.org nameserver 0.0.0.0 nameserver 203.139.160.74 |
図2 /etc/resolv.confの設定 |
/etc/resolv.confファイルで使用するネーム・サーバーを指定します。 |
「nameserver 0.0.0.0」と書いてあるので, nslookup はまず nslookup が実行されたマシン (asao.gcd.org)上のネーム・サーバーへ問い合わせます。 問い合わせを受けたネーム・サーバーの動作には以下の2つの場合があります。
今回の場合, asao.gcd.org 上のネーム・サーバーは gcd.org ドメインのすべてのホスト名のIPアドレスを知っていますから, (1)の場合に該当します。 単に知っているIPアドレスをそのまま返すだけですから, 単純ですね。 では知らない場合はどうなるでしょうか。 例えば, 図3 の例のように知らないホスト名への問い合わせがあると, ネーム・サーバーは他のネーム・サーバーへ問い合わせるのですが, やみくもに問い合わせても回答が得られるとは限りません*9。 そこで, 最初に問い合わせるべきネーム・サーバーが決まっています。 この, 最初の窓口的ネーム・サーバーのことを, ルート(root)・サーバー*10と呼びます。
% nslookup dns.cybird.ne.jp. Server: asao.gcd.org Address: 0.0.0.0 Name: dns.cybird.ne.jp Address: 210.156.250.253 |
図3 他のネーム・サーバーへの問い合わせ |
自分の知らない情報を他のネーム・サーバーに問い合わせて解決している例です。 |
ルート・サーバーの一覧を得るには, 図4のように nslookup を実行します。 実行結果のうち,a.root-servers.net から m.root-servers.net までの 13個のネーム・サーバーがルート・サーバーです。 ルート・サーバーは全世界からの問い合わせに迅速に回答できるように, 13個もあって, それぞれインターネットの要所に配置されています。
% nslookup -q=ns . Server: asao.gcd.org Address: 0.0.0.0 Non-authoritative answer: (root) nameserver = L.ROOT-SERVERS.NET (root) nameserver = M.ROOT-SERVERS.NET (root) nameserver = I.ROOT-SERVERS.NET (root) nameserver = E.ROOT-SERVERS.NET (root) nameserver = D.ROOT-SERVERS.NET (root) nameserver = A.ROOT-SERVERS.NET (root) nameserver = H.ROOT-SERVERS.NET (root) nameserver = C.ROOT-SERVERS.NET (root) nameserver = G.ROOT-SERVERS.NET (root) nameserver = F.ROOT-SERVERS.NET (root) nameserver = B.ROOT-SERVERS.NET (root) nameserver = J.ROOT-SERVERS.NET (root) nameserver = K.ROOT-SERVERS.NET Authoritative answers can be found from: L.ROOT-SERVERS.NET internet address = 198.32.64.12 M.ROOT-SERVERS.NET internet address = 202.12.27.33 I.ROOT-SERVERS.NET internet address = 192.36.148.17 E.ROOT-SERVERS.NET internet address = 192.203.230.10 D.ROOT-SERVERS.NET internet address = 128.8.10.90 A.ROOT-SERVERS.NET internet address = 198.41.0.4 H.ROOT-SERVERS.NET internet address = 128.63.2.53 C.ROOT-SERVERS.NET internet address = 192.33.4.12 G.ROOT-SERVERS.NET internet address = 192.112.36.4 F.ROOT-SERVERS.NET internet address = 192.5.5.241 B.ROOT-SERVERS.NET internet address = 128.9.0.107 J.ROOT-SERVERS.NET internet address = 198.41.0.10 K.ROOT-SERVERS.NET internet address = 193.0.14.129 |
図4 nslookupコマンドでルート・サーバーの一覧を得る |
ルート・サーバーは,インターネットでのDNS情報の問い合わせ窓口です。 |
試しに,m.root-servers.net(日本に配置されています)に対して 問い合わせてみましょう。 問い合わせ先を設定するには nslookup の会話モード(「>」のプロンプト)で 「server サーバー名」と指定します。 問い合わせを行うと, このルート・サーバーは図5のように返事をします。 つまり, ルート・サーバーは「dns.cybird.ne.jp の IP アドレスなんて知らないけど, *.jpだったら dns0.spin.ad.jp などのネーム・サーバーに問い合わせてみては」 と言っているわけです。
% nslookup Default Server: asao.gcd.org Address: 0.0.0.0 > server m.root-servers.net Default Server: m.root-servers.net Address: 202.12.27.33 > dns.cybird.ne.jp. Server: m.root-servers.net Address: 202.12.27.33 Name: dns.cybird.ne.jp Served by: - DNS0.SPIN.AD.JP 165.76.0.98 JP - NS-JP.SINET.AD.JP 150.100.2.3 JP - NS.WIDE.AD.JP 203.178.136.63 JP - NS0.IIJ.AD.JP 202.232.2.34 JP - NS0.NIC.AD.JP 202.12.30.131 JP - NS-JP.NTT.NET 210.175.162.226 JP |
図5 ルート・サーバーへの問い合わせ |
ネーム・サーバーを指定して問い合わせを行うには, nslookupコマンドの会話モードを利用します。 |
インターネットに接続しているホストの数は極めて多く, ルート・サーバーがインターネットの全ホストのIPアドレスを記憶することは 到底不可能です。 そこで, ドメインごとに他のネーム・サーバーへ管理権限を委譲しています(図6)。 この例で言えば, 末尾が jp で終わるドメインの管理を「dns0.spin.ad.jp」 などへ委譲しているわけです。
図6 ネーム・サーバーの管理権限委譲モデル |
管理権限を委譲されたネーム・サーバーは, そのドメイン内の情報について責任を持ちます。 |
というわけで, dns0.spin.ad.jp に問い合わせてみましょう。 nslookup コマンドの会話モードで続けて図7のように入力します。 結果を見ると分かるように, めでたく dns.cybird.ne.jp の IP アドレス「210.156.250.253」が得られました。 ここで, 回答の前に「Non-authoritative answer:」と出力されていることに注意してください。 直訳すれば「信頼すべき筋からの回答ではない」という意味になります。
> server dns0.spin.ad.jp Default Server: dns0.spin.ad.jp Address: 165.76.0.98 > dns.cybird.ne.jp. Server: dns0.spin.ad.jp Address: 165.76.0.98 Non-authoritative answer: Name: dns.cybird.ne.jp Address: 210.156.250.253 |
図7 目的のIPアドレスが得られる |
管理権限を持つネーム・サーバーへの問い合わせで, 目的の情報が得られました。 |
これは, dns0.spin.ad.jp が以前 dns.cybird.ne.jp の IP アドレスを 他のネーム・サーバーに問い合わせたことがあって, その時の結果を覚えていたので, (新たに問い合わせすることなく)覚えていた内容をそのまま返した, ということを意味します。 もしかするとこの瞬間には dns.cybird.ne.jp の IP アドレスが 変化しているかも知れないので, 信頼できる回答ではない, と言っているわけです。
このような, 一度問い合わせたときの結果を覚えておく仕掛けを 一般に「キャッシュ」と呼びますが, キャッシュによって DNS は 特定のネーム・サーバーに負荷が集中することを防いでいます。 キャッシュされた情報だというだけの意味ですから, 信頼すべき筋からの回答ではなくても全く問題はありませんが, ここでは実験として信頼すべき筋(ネーム・サーバー)を調べてみましょう。 それには検索対象をネーム・サーバーに設定して(set type=ns), 問い合わせます(図8)。
> set type=ns > dns.cybird.ne.jp. Server: dns0.spin.ad.jp Address: 165.76.0.98 Authoritative answers can be found from: cybird.ne.jp origin = dns.cybird.ne.jp mail addr = root.dns.cybird.ne.jp serial = 20000126 refresh = 1800 (30M) retry = 900 (15M) expire = 3600000 (5w6d16h) minimum ttl = 1800 (30M) |
図8 信頼できるネーム・サーバーの検索 |
どのネーム・サーバーから信頼できる回答が得られるのかを調べています。 |
「Authoritative answers can be found from:cybird.ne.jp」 という出力が得られています。 これを直訳すれば「信頼すべき回答は cybird.ne.jp の ネーム・サーバーから得られる」となります。
そこでまずは, cybird.ne.jp のネーム・サーバーを調べましょう(図9)。 またもや「Non-authoritative answer:」という答えですが, 信頼すべき筋が「dns.cybird.ne.jp」と「ns.ipro.ad.jp」であることが分かりました。 つまり, dns0.spin.ad.jp は cybird.ne.jp ドメインに関する管理権限を, 「dns.cybird.ne.jp」と「ns.ipro.ad.jp」に委譲しているわけです。
> cybird.ne.jp. Server: dns0.spin.ad.jp Address: 165.76.0.98 Non-authoritative answer: cybird.ne.jp nameserver = dns.cybird.ne.jp cybird.ne.jp nameserver = ns.ipro.ad.jp Authoritative answers can be found from: dns.cybird.ne.jp internet address = 210.156.250.253 ns.ipro.ad.jp internet address = 203.179.10.4 |
図9 cybird.ne.jpのネーム・サーバーを調査 |
dns0.spin.ad.jp は cybird.ne.jp ドメインに関する管理権限を, 「dns.cybird.ne.jp」と「ns.ipro.ad.jp」に委譲しています。 |
権限を持つネーム・サーバーが分かったので, 検索対象を IP アドレスに戻して(set type=a), dns.cybird.ne.jp に問い合わせてみます(図10)*11。 これで, めでたく信頼すべき情報「210.156.250.253」が得られました。
> set type=a > server dns.cybird.ne.jp. Default Server: dns.cybird.ne.jp Address: 210.156.250.253 > dns.cybird.ne.jp. Server: dns.cybird.ne.jp Address: 210.156.250.253 Name: dns.cybird.ne.jp Address: 210.156.250.253 |
図10 信頼すべき情報の入手 |
権限を持つネーム・サーバーから, 信頼すべき情報「210.156.250.253」が得られました。 |
さて, DNSの仕掛けが一通り分かったところで, ドメイン登録業者の話に戻ります。 ドメイン登録業者が何をするかというと, 一言で言えばドメインの管理権限を委譲してくれるのです。
例えば私が gcd.org ドメインを登録するときは, まず gcd.org ドメインに関する問い合わせに答えることができる ネーム・サーバーを立ち上げます。 そしてネーム・サーバーのホスト名(ns.gcd.org)と IP アドレス(210.145.125.162)をドメイン登録業者へ申請します。
するとドメイン登録業者は, gcd.org ドメインに関する管理権限を ns.gcd.org へ委譲してくれるのです。 この結果, ルート・サーバーに gcd.org に関する問い合わせが届くと, 管理権限委譲の連鎖をたどって 最終的に ns.gcd.org に対して問い合わせが行われます。
逆に言えばルート・サーバーと管理権限委譲の連鎖によって つながっていなくてもよいのなら, ドメイン登録業者に申請する必要はありません。 組織内で独自のルート・サーバー*12 を立ち上げる場合などがこれに当たります。
とは言っても, ドメイン登録業者への申請は, Webで簡単にできますから, 常時接続環境を持っていて, 独自ドメインをまだ持っていない人はぜひ申請してみて下さい。 大抵の業者が, ネーム・サーバーのホスト名と IP アドレス, それに管理者の名前とメール・アドレスと住所・電話番号を Web で送信するだけで済みます*13。
つい先日, 新興のドメイン登録業者*14を使って sengoku.org ドメインを取得してみたのですが, 初めて利用したにもかかわらず, 申請完了まで数分*15しかかかりませんでした。
本稿は日経Linux 2000 年 5 月号に掲載された、 実践で学ぶ、一歩進んだサーバ構築・運用術, 第 2 回「ネームサーバ (前編)」を日経BP 社の許可を得て転載したものです。
Copyright(C)2000 by 仙石浩明 <sengoku@gcd.org>
無断転載を禁じます