|目次|手順 0|1|2|3|A|B|C|D|E|F|G|H| I |J|K|L|M|N|O|P|Q|
作成日:2002年03月16日、更新日:2005年02月08日 作成:鷹の巣DNSサーバーでの(サブ)ドメイン名からIPアドレスへの正引き名前解決の様子をnslookupコマンドで検証する例を示します。
この資料は、ドメイン名が正引き出来るまで(DNS設定値の伝播遅延を nslookup コマンドで観察)をより深く理解して頂く為に作成致しました。
(サブ)ドメイン名がDNS(Domain Name System)サーバーにより、IPアドレスに名前解決される仕組みや原理は、ITmedia: ITmedia エンタープライズ ヘルプデスク: Windows How-To - DNS(Domain Name System) ~概要~をご覧になると理解できますが、これをnslookupコマンドを使用して、検証します。
インターネットを支えるDNS - Page.2や実践で学ぶ、一歩進んだサーバ構築・運用術では、nslookupコマンドでjpドメインを検証する例が 示されていますが、この頁では、Aレコードのみを検査し、検証に使用するドメイン名をcomドメインの「sakaguch.com」としました。 nslookup コマンドではなく、digコマンドを使用して調べる例が、DNS-HOWTOの5.1でもまず最初に退屈な理論にも記載されています。
残念ながら、例示用ドメイン名のexample.comやexample.netやexample.org等(何れもIPアドレスが192.0.34.72)は、 最終的なDNSサーバー名のイメージがわかりにくい為、「sakaguch.com」を使用致しました。 nslookup コマンドは、PC-UNIX(Mac OSXを含む) ユーザーや Windows NT/2000/XPユーザーのみ使用出来ます。 以下の画面例は、Windows 2000のコマンドプロンプト画面(DOS窓の様な画面)より操作した例ですが、他のOSでも同様に表示されます。
注)このnslookup コマンドは、DNSサーバーのbind9までは、確実に使用出来ます。
将来の代替のコマンドは、hostとdigとdnsqueryになります。
自分のグローバルIPアドレスを調べます。この確認くんをクリックしてみてください。(プロキシ(代理)サーバーを経由しないで下さい。) ここの上から3番目の項目の「現在接続している場所(現IP)」にあなたのグローバルIPアドレスが表示されています。 このグローバルIPアドレス(vvv.xxx.yyy.zzz)を控えておきます。
IPアドレスでも検索可能なMeta-Whois Gateway(統合型Whois検索)やMeta-WhoisやIPドメインSEARCHやAllwhois.com(IPアドレスの検索不可)で、自分のドメイン名が登録されているかどうかをまず調べて下さい。WebSitePulse.com注)サイトの「WHOIS」欄にドメイン名を入力しても調べることが出来ます。ダイナミックDNSのサブドメイン名をご使用の場合は、既に登録済みですから、調べる必要は、ありません。
注)2001年1月15日HAL2000さんよりリンクを頂戴致しました。
まず、最初にお断りしておきますが、ドメイン名の正規表現は、「sakaguch.com」ではなく、「sakaguch.com.」だということです。
「sakaguch.com」は、省略形ですから、このWebページを見る場合も
http://sakaguch.com./nslookupNor.htmlでアクセスするのが、
正規の方法です。クリックして、ブラウザのアドレス欄をよく見て下さい。ちゃんとアクセス出来ているでしょう。
次に「com.」の右側にスペースを1個入れて、
http://sakaguch.com._/nslookupNor.htmlでアクセスして見て下さい。
スペースを入れたところが「%2020」か「%20」となっていて、アクセス出来なかったでしょう。
いつも省略している「com」の右の「.」(ドット)の右側は、文字長さがゼロのルートドメイン(根領域)でなければなりません。
DNSサーバーは、「.」と「.」の間のドメイン(63文字迄の名前でノードとも言う)で、ひっくり返した木の枝状(てっぺんは根)に分岐しています。
nslookupコマンドを実行するに当たり、DNSツリーの各ドメイン(sakaguchやcom)の入力は、問題ないのですが、
文字長さがゼロのルートドメインは入力出来ないので、かわりに「.」を入力します。
冒頭で紹介致しましたリンク先で「nslookup -q=ns .」として、ルートDNSサーバーを表示していたのは、この為です。
以下、ルートドメイン(ルートノード)は、「.」で説明しますので、そのつもりで読み進んで下さい。
ドメイン名「sakaguch.com」をnslookupのコマンドラインに与えて、その結果が項1で確認したグローバルIPアドレスになるかどうか調べます。 レジストラ(登録業者)にてドメイン名にDNSサーバーを登録(変更)してから、日数があまり経過していないと、正常に表示されません。 というか、正常に表示されなくて、当り前ですから後で、正引きの伝播遅延をご覧願います。 ここでは、DNSサーバーの設定が伝播されていて、正常に表示される場合を説明します。 画面では、水色がコマンド入力、緑色が得られた結果の注目すべき表示、赤色が注目すべき説明としております。
ドメイン名がグローバルIPアドレスに正引きされた例
C:\>nslookup sakaguch.com <----------取得したドメイン名sakaguch.comを問い合わせる。 Server: eagle.asahi-net.or.jp <-------使用する(プロバイダ等の)DNSサーバー名 Address: 202.224.32.1 <---------------使用する(プロバイダ等の)DNSサーバーのグローバルIPアドレス Name: sakaguch.com <------------------問い合わせたドメイン名が表示される。 Address:vvv.xxx..yyy.zzz <------------問い合わせたドメイン名に対応するグローバルIPアドレスが表示される。
(サブ)ドメイン名がDNSサーバーにより、IPアドレスに名前解決される仕組みや原理を理解する為、前項と同じことを再帰応答を行わない様に 設定して、同様に実施します。nslookupのコマンドラインの引数は、対話モードに入って、「?」と入力すれば、英語で表示されますし、
WWWのおもちゃのWindows 95 の TCP/IPのnslookup DNS情報の調査のnslooupコマンドオプション一覧でもご覧になれます。 下記の画面では、水色がコマンド入力、緑色が得られた結果の注目すべき表示、赤色が注目すべき説明としております。
ドメイン名がグローバルIPアドレスに正引きされた例(再帰応答なし)
C:\>nslookup root.a <-------------------存在しない出鱈目なドメイン名(root.a)を正引きして見る。 Server: eagle.asahi-net.or.jp Address: 202.224.32.1 *** eagle.asahi-net.or.jp can't find root.a:Non-existent domain C:\>nslookup <---------------------------nslookup 対話モードに入る。 Default Server: eagle.asahi-net.or.jp <--初期状態で使用する(プロバイダ等の)DNSサーバー名 Address: 202.224.32.1 <------------------初期状態で使用する(プロバイダ等の)DNSサーバーのグローバルIPアドレス >set norecurse <------------------------再帰応答を行わない様に変更する。(初期値は、再帰応答) >root.a <--------------------------------存在しない出鱈目なドメイン名(root.a)を問い合わせる。注1 Server: eagle.asahi-net.or.jp Address: 202.224.32.1 Name: root.a Served by: - A.ROOT-SERVERS.NET <-------------------応答してきた root 領域のDNSサーバー名が10個表示される。 198.41.0.4 A~M.ROOT-SERVERS.NETの13台の内10台が応答してきました。 - H.ROOT-SERVERS.NET 「set q=ns 」と入力して、「.」(半角文字のドット)と入力すると13台全てが表示されます。 128.63.2.53 - C.ROOT-SERVERS.NET 192.33.4.12 - G.ROOT-SERVERS.NET 192.112.36.4 - F.ROOT-SERVERS.NET 192.5.5.241 - B.ROOT-SERVERS.NET 128.9.0.107 - J.ROOT-SERVERS.NET 198.41.0.10 - K.ROOT-SERVERS.NET 193.0.14.129 - L.ROOT-SERVERS.NET 198.32.64.12 - M.ROOT-SERVERS.NET 202.12.27.33 >sakaguch.com A.ROOT-SERVERS.NET <------問合せDNSサーバーにA.ROOT-SERVERS.NETを指定して、正引きする。 Server: A.ROOT-SERVERS.NET Address: 198.41.0.4 Name: sakaguch.com Served by: - A.GTLD-SERVERS.NET <-------------------応答してきた gTLD領域(com、net、org 等)のDNSサーバー名が10個表示される。 192.5.6.30 com - G.GTLD-SERVERS.NET 192.42.93.30 com - H.GTLD-SERVERS.NET 192.54.112.30 com - C.GTLD-SERVERS.NET 192.26.92.30 com - I.GTLD-SERVERS.NET 192.43.172.30 com - B.GTLD-SERVERS.NET 192.33.14.30 com - D.GTLD-SERVERS.NET 192.31.80.30 com - L.GTLD-SERVERS.NET 192.41.162.30 com - F.GTLD-SERVERS.NET 192.35.51.30 com - J.GTLD-SERVERS.NET 210.132.100.101 com >sakaguch.com A.GTLD-SERVERS.NET <------問合せDNSサーバーにA.GTLD-SERVERS.NETを指定して、正引きする。 Server: A.GTLD-SERVERS.NET Address: 192.5.6.30 Name: sakaguch.com Served by: - NS1.ZONEEDIT.com <---------------------レジストラ(登録業者)で、ドメイン名に登録したDNSサーバー名が応答して表示される。 207.228.252.101 sakaguch.com - NS2.ZONEEDIT.com 207.41.71.161 sakaguch.com - NS1.HN.ORG 64.71.163.40 sakaguch.com - AUX1.HN.ORG 64.71.163.43 sakaguch.com - NS1.MINIDNS.NET 202.64.51.214 sakaguch.com - NS2.MINIDNS.NET 202.64.51.215 sakaguch.com >sakaguch.com NS1.ZONEEDIT.com <---------問合せDNSサーバーにNS1.ZONEEDIT.comを指定して、正引きする。 Server: NS1.ZONEEDIT.com Address: 207.228.252.101 Name: sakaguch.com Address:vvv.xxx.yyy.zzz <-----------------sakaguch.com がIPアドレスに正引き出来ました。 >exit <-----------------------------------nslookup 対話モードから抜ける。 C:\>
以上のことから、名前解決を依頼されたDNSサーバー(Full-Service Resolver)は、「sakaguch.com」を正引きするのに上位から、 「.」→「com.」→「sakaguch.com.」の順に各ノードを管理するネームサーバーに問い合わせを行うことがわかりました。 問い合わせを受けたDNSサーバーは、下表に示す様に外部データベースの参照先のIPアドレスを答えているだけです。
追記)ドメイン名とその管理DNSサーバーのドメイン名が異なる場合[例えば、ドメイン名(example.jp)の名前解決に使用するDNSサーバー(ns.example.com)をレジストリ(Whoisデータベース)に登録した場合]、 第一レベル(jp)ドメインのDNSサーバーは、レジストリを参照して名前解決に可能なDNSサーバーがns.example.comであることを回答します。この様な場合は、ドメイン名の再帰検索は、その管理DNSサーバー(ns.example.com)に対して行われます。詳細は、DNSサーバー正引きの実際(whoisデータベースとの関係)をご参照願います。
| ドメイン名の領域 | 管理ネームサーバー名の一例 | 管理権限の委譲(delegation)先(外部データベースの参照先)の一例 | 備考 |
|---|---|---|---|
| DNSクライアント | - | DNSクライアントのTCP/IP設定で示すDefault ServerのIPアドレス | 注)1 |
| 名前解決依頼DNSサーバー | Default Server(プロバイダ等の名前解決DNSサーバー) | . 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4 |
注)2、3、4 |
| . | A.ROOT-SERVERS.NET 198.41.0.4 |
com. IN NS A.GTLD-SERVERS.NET. A.GTLD-SERVERS.NET. IN A 192.5.6.30 |
←想像で記述注)2、5、6、7 |
| com. | A.GTLD-SERVERS.NET 192.5.6.30 |
sakaguch.com. IN NS NS1.ZONEEDIT.com. NS1.ZONEEDIT.com. IN A 207.228.252.101 |
注)2、8 |
| sakaguch.com. | NS1.ZONEEDIT.com 207.228.252.101 |
sakaguch.com. IN A vvv.xxx.yyy.zzz (vvv.xxx.yyy.zzzは、IPアドレス) | 注)2、9 |
無料で利用出来るDNSサーバーは、多少信頼性に欠ける様です。従って、DNSサーバーチェックファイル注)の作成を推奨します。 (実行した結果は、Windows的にファイル名「ns.txt」に出力されるようにしています。)
同じ様に実施して上記と異なった結果表示が出た場合は、実施結果を「掲示板」にご投稿願います。
参考文献:「鷹の巣」の自宅サーバー 掲示板 norecurse指定のnslookupがおかしいのですが。 - コマンドX2002/03/11-17:04 No.1819