DNSの仕組み

共通科目情報処理(上級)、インターネットの仕組み、2004年12月13日

                                       電子・情報工学系
                                       新城 靖
                                       <yas@is.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/ipe/inet-2004/2004-12-13/
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/ipe/
http://www.coins.tsukuba.ac.jp/~yas/
http://www.ipe.tsukuba.ac.jp/~yshinjo/

■復習

TCP/IPの基本的な考え方

■捕捉

◆Unix(Linux)での日本語

■今日の重要な話

■DNS(Domain Name System)

TCP/IPで通信する時には、通信相手のIPアドレス(32ビットの整数、番号)が 必要になる。IPアドレスは、コンピュータにとって扱いやすいが、人間にとっ て分かりにくい。

人間にとってわかりやすい記号(文字列)を使ったコンピュータの名前から IPアドレスに変換するサービスがあれば便利である。このサービスを、 名前サービス(name service)、 という。 名前サービスを提供するプログラム(プロセス)を、名前サーバという。

名前から名前を指している番号に変換することを 名前解決(name resolution) という。

インターネットで使われている名前サービスは、 DNS(Domain Name System) と呼ばれる。 DNS では、膨大な数のホスト名を含む名前空間を階層的にドメイン(領域)に 分割して管理ている。 この空間の構造は、木構造と呼ばれる。

◆木構造

木構造(tree structure)というのは、コンピュータ・サイエン ス(計算機科学)でよく使われる用語である。分野によっては、同じものを 階層構造(hierarchical structure)という言葉で表現すること が好まれる。ドイツ語語源の、ヒエラルヒー(Hierarchie)という言葉が使われ ることもある。

木構造の例を、大学の組織を使って説明する(図1)。

木構造という名前は、本物の木が、一度枝分かれした後は決して交わらないこ とに似ていることによる。ある節から別の節までの道が2通り以上あるは、グ ラフ構造と呼ばれる。

図1 大学組織に見られる木構造

図1 大学組織に見られる木構造

図1では、筑波大学と書いてある所が木の根にあたる。根からは、何本かの 学群の枝が出ている。このように、コンピュータ・サイエンスでは、木の根を 上に書く習慣がある。第二学群の節には、日本語日本文化学類、生物学類など の子の節がある。第二学群の親は、筑波大学である。

図1に示されている木構造は、また図2のように、「領域(domain)」を分割 するような見方もできる。木構造の場合には、領域の境界線が交わることがな い。

図2 大学組織に見られる木構造(領域的な見方)

図2 大学組織に見られる木構造(領域的な見方)

Windows の画面や、Macintosh の Finder の表示は、この領域の分割に似て いる。

A、B、2つの集合があると、一般には、次の4つに分割される。

  1. Aにしか含まれない部分
  2. AとBの両方に含まれる部分
  3. Bにしか含まれない部分
  4. AにもBにも含まれる部分
領域(木構造)の場合、完全に含まれるか、無関係かのどちらかになる。

集合の関係を説明した図。一般的な場合と領域の場合。

図3 2つの集合の関係

◆字下げによる木の表現

木構造を字下げで表すことがある。

筑波大学

◆区切り文字入り表記

「情報学類」という節を、次のように表記する。

筑波大学第三学群情報学類

コンピュータの中で、文字列(文字の並び)で木構造上の位置を表現する時に は、節が分かりやすくために、はっきりと区切りを入れて表現することがよく 行われる。

筑波大学.第三学群.情報学類
筑波大学/第三学群/情報学類
情報学類.第三学群.筑波大学

区切り文字としては、「.」(点)、「/」(スラッシュ)、「\」(バック スラッシュ)、「¥」(円記号)などがよく使われる。単語を並べる時に、木 の根に近いほうから書く流儀と遠い方から書く流儀がある。

◆木の例

コンピュータでは、次のような場所で木構造が使われている。

コンピュータ以外では、次のような場所で木構造が使われている。

◆DNSの木構造

DNS(Domain Name System)のドメインとは、 膨大な数のコンピュータの名前を含む名前空間を階層的にドメイン (領域)に分割していることを意味する。

図3 名前空間のドメインへの分割

図3 名前空間のドメインへの分割

この空間の構造は、木構造としても見ることができる。

図4 名前空間の木構造としての見方

図4 名前空間の木構造としての見方

たとえば、次のような名前を考える。
host1.is.u-ust.ac.jp
このように、インターネットでのコンピュータの名前は、「.」 で区切られた文字列(文字の並び)である。この文字列で使える文字は、アル ファベット(大文字も小文字も同じだが普通は小文字だけが使われる)と数字、 ハイフン(マイナス)である。

host1.is.u-ust.ac.jp」を 図4で考えると、次のようになる。

host1.is.u-ust.ac.jp」を 図3で考えると、次のようになる。

◆ドメイン名の種類

ccTLD (country code Top Level Domain)
ISO (国際標準化機構, International Standardization Organization ) が定めた 2文字による国別コー ド(country code)を使う。日本の国別コードは、jp
gTLD (generic Top Level Domain)
ccTLD 以外。.com,. edu,.gov,.net,.org,.mil などが 現在でも使われている。
jp の下には、次のような枝(領域、ドメイン)がある。
ac
学校関係(主に大学)、学術研究機関
ad
ネットワーク管理、JPNICの会員
co
会社
ed
児童、生徒などの教育・育成を行う組織。
go
政府機関、国立の施設
gr
任意団体
ne
インターネット接続サービス・プロバイダ
or
法律に基づく団体
都道府県の名前
地方自治体、個人。

◆汎用JPドメイン名

jp の下に、上のような属性を持たない第2レベルドメイン名 (SLD:Second Level Domain)も使えるようになった。

汎用JPドメイン名(JPNIC)

◆ICANN

ICANN(Internet Corporation for Assigned Names and Numbers)

インターネットにおけるドメイン名や IPアドレスを調整する ための非営利法人。1998年に設立。

以前は、IANA(Internet Assigned Numbers Authority)。

2000年に始めての理事選挙があった。

◆新しいドメイン

2000年11月16日に新しく7つのトップ・レベル・ドメインが作られた。 ICANN New TLD Program http://www.icann.org/tlds/

あと3つ増やす計画が 2002 年10月に発表された。

A Plan for Action Regarding New gTLDs (by Stuart Lynn, ICANN President)

◆逆引き

DNSでは、主に名前をIPアドレスへ変換するサービスが使われる。 逆にIPアドレスから名前を引くことを逆引きという。

普通の引き方を強調する時には正引きということもある。

逆引きには、in-addr.arpa という特殊なドメイン名を引くこと。

例:


12.34.56.78	(数字は、全て 10 進数)

78.56.34.12.in-addr.arpa
in-addr.arpa ドメインの下に、IP アドレスを8ビットずつ区切り 4 桁の 10 進数で表した時の数を上位から下位の順に並べる。

◆DNSができるまで

初期のインターネットは、コンピュータの名前(ホスト名)は、 フラットな名前空間が使われていた。

問題

1986年、3100の公式名と6500の別名。

1990年、6400の公式名。DNS に移行。この時点で、137,000。

◆ドメインの数

2004年12月ごろの名の統計
ドメイン名
.com3193万
.net511万
.org320万
.biz106万
.info284万
.edu7400
.jp62万
.jp は地域型含む。

第二レベルのドメインの数。ホストの数はもっと多い。

http://jpinfo.jp/stats/ JPドメイン名に関する統計 by JPRS http://www.zooknic.com/Domains/counts.html by Zooknic.

◆トップ・レベル・ドメインの追加

2000年11月16日に新しく7つのトップ・レベル・ドメインが作られた。 ICANN New TLD Program http://www.icann.org/tlds/

◆オルタネート・ルート問題

インターネットのドメイン名の根は、1つしかない。 13個のサーバにコピーが世界各地にある。

もし、別の根の情報を持つサーバがあれば、どうなるのか。

オルタネート・ルート(alternate roots)。

◆ルート・サーバに対する攻撃

2002年10月、13個あるルート・サーバが攻撃にあった。

■ディレクトリの木

コンピュータのディレクトリ(フォルダ)は、全体では 木構造(tree structure) になっている。階層化ディレクトリ(hierarchical directory)と呼ばれるこ ともある。

図9 ファイルとディレクトリの木

図9 ファイルとディレクトリの木

ファイルは、葉(leaf)になる。ディレクトリは、中間節になる(可能性があ る)。特殊な節として、根(root)がある。これを、ルート・ディレクトリ (root directory)という。

図10 自然の木

図10 自然の木

◆パス名

ファイルの名前の表現には、「パス名」がよくつかわれる。パス (path)とい うのは、道の意味である。パス名では、どの道を通ればよいかの道順を示すこ とでファイルの名前を表現する。

木構造では、節、または、枝(道)に名前がついている。ファイル名は、区切り 文字で区切られた、節、または、枝の名前の並びになる。ファイルの名前を表 現する時の区切り文字としては、次のものがよく使われる。

/
Unix, URL
\
Windows, MS-DOS
:
Macintosh
ファイル名で「.」は、木構造の区切りとしては使われない。

パス名の例:

◆絶対パス名と相対パス名

パス名には、 次の2種類がある。

絶対パス名 ( absolute path name )
絶対パス名というのは、ディレクトリの木の根(ルート・ディレクトリ) から出発する道順
相対パス名 ( relative path name ) 現在着目しているディレクトリ(カレント・ワーキング・ディレクトリ) から出発する道順
例:絶対パス名 /usr/bin/awk
  1. ルート・ディレクトリから出発する
  2. usrという枝へ進む
  3. binという枝に進む
  4. 最後に (awk)という枝に進む。
よって、/usr/bin/awk は、こういう手順で見つかるファイルを意味する。

例:相対パス名 bin/awk (カレント・ワーキング・ディレクトリが /usrの時)

  1. カレント・ワーキング・ディレクトリから出発する
  2. binという枝に進む
  3. 最後に (awk)という枝に進む。

◆ホーム・ディレクトリ

複数の人が使うコンピュータで、個人のファイルを保存する 時の出発点となるディレクトリを、ホーム・ディレクトリと呼ぶ。

たとえば、icho という名前のコンピュータで、 新城のホーム・ディレクトリは、 絶対パス名では、/home1/yshinjo/ である。

■URL

World Wide Web では、他のデータへの参照を実現するためにURL (Uniform Resource Locator) という形式を使う。次に、URL の例を示す。

http://www.tsukuba.ac.jp/education/college.html

http
HyperText Transfer Protocol。WWWのデータを保持しているプログラム と、WWWを表示するプログラムの間でデータをやり取りするときの形式を定め た約束。
www.tsukuba.ac.jp
そのデータを持っているコンピュータの名前。
/education/college.html
そのコンピュータの中での資源の名前(ファイルの名前)。最後の .html は、その資源がHTML で書かれている事を表わしている。

◆URL中の2つの木

URL には、2つの木構造の表記方法が混じっている。

◆URLを間違えた時/URLが変更された時

2種類のエラー 長い URL のどの部分が怪しいかを区別できるようにする。

エラーが出た時には、木構造で親を探してみる。

■人間とコンピュータの対話方法

■実習

◆DNS 名前サーバとの対話

Unix (Linux) または、Windows 2000 のコマンドプロンプトから nslookup プログラムを実行する。

nslookup

記号 > が出ている時には、nslookup プログラム特有の命令が使 える。

次のドメイン名を打ち、IPアドレスに変換しなさい。

次の IP アドレスを打ち、ドメイン名に変換しなさい。

◆目の前のコンピュータで Unix (Linux) を走らせる

◆Linux で VMware を実行する

VMware は、パソコンの中にパソコンを作り出すプログラム。

仮想計算機(Virtual Machine):ハードウェアには存在しないが、実際の計算機 (コンピュータ)と同じように機械語命令セット、メモリ、入出力など機能をソ フトウェア的に実現したもの。

VMware 用語

ホスト
もともと動いていたシステム
ゲスト
VMware の中で動いてるシステム

VMware を実行するには、まず、パソコンを Linux で実行する。 端末を開き、シェルに対して次の命令を打ち込む。

% ~s0430160/vm [←]
s0430160 は、TA の今里のログイン名である。~s0430160 で、今里のホー ム・ディレクトリを意味する。~s0430160/vm で、今里のホーム・ディレク トリにある vm という名前のファイルに入っているプログラムが実行される。

一度 VMware の画面に入り込むとマウスが取られて抜けられなくなる。抜ける には、画面の左下の表示に従う。~s0430160/vm の場合、Alt+Control の 2つのキーを左手で押してから、右手で Esc キーを押すとよい。

VMware を終了するには、今日の設定(vm10)の場合、いきなりP ower Off して よい。

2回目以降は、次のようにタイプしても VMware を実行することができる。

% vmware & [←]
この場合、設定を選ぶメニューが表示されるので、vm10 を選ぶ。

◆ゲスト(vm10)にログイン

VMware の画面で、login: に対してUnix の システム管理者(root)としてログ インする。
vm10 login: root
Password: (WWWには示していない)

◆接続を確認する

ホスト側(ran)で端末を開き、VMware を実行する前と実行後に次のように打つ。
% ping 192.168.153.10 [←]
% ping 192.168.153.1 [←]
% ping 192.168.153.20 [←]
ゲスト側(vm10)にログインして、次のように打つ。
% ping 192.168.153.10 [←]
% ping 192.168.153.1 [←]
% ping 192.168.153.20 [←]
ping コマンドは、止まらないので、^C で強制終了する。 強制終了は ^C (コントロール・キーを押しながら C キーを押す)。

注意:IPアドレスを変更するまで、192.168.153.20 からは応答がないはず。

◆IPアドレスの変更

ゲスト(vm10)の IP アドレスを変更する。
% ifconfig eth0 192.168.153.20 up [←]
注意:ifconfig コマンドが見つからない時(command not found)には、 /sbin/ifconfig と打つ。

確認する。

% ifconfig eth0 [←]
(または ifconfig -a)
ping コマンドで確認する。
% ping 192.168.153.20 [←]
% ping 192.168.153.10 [←]
% ping 192.168.153.1 [←]

◆tcpdump

vm10 で tcpdump コマンドを実行する。
% tcpdump [←]
または
% tcpdump -x (詳しい内容を 16進数で表示) [←]
この状態で、ホスト側から vm10 に対して telnet で接続する。
% telnet 192.168.153.10 [←]
vm10 login: user1[←]
Password: (WWWには示していない)
または
% telnet 192.168.153.20 [←]
vm10 login: user1[←]
Password: (WWWには示していない)
telnet でキーを打つたびに、tcpdump のパケットが表示されることを確認する。
↑[もどる] ←[12月6日] ・[12月13日]
Last updated: 2005/02/14 13:50:07
Yasushi Shinjo / <yas@is.tsukuba.ac.jp>