IPアドレスとホスト名 〜 DNS について 〜

総合情報システム運用センター 佐伯田鶴
saeki@tains.tohoku.ac.jp
総合情報システム運用センター 曽根秀昭
sone@tains.tohoku.ac.jp

1 はじめに

 現在世界中で広く使われている IP ネットワークの世界では,ネッ トワークに接続されているコンピュータを世界的に識別するために, 1台1台のコンピュータに一つずつ「IPアドレス」という番号がつけられてい ます (*1)。 IP アドレスは32ビットの数字で構成され,通常は1バイトずつ十進数で,ピリ オドで区切って表記します。例えば,130.34.1.1等です。
 IPネットワークの世界では,この IPアドレスを基に通信が行なわ れます。ところが,私たち人間にとってみると,このような数字 の羅列であるIPアドレスは覚えにくく,操作がしにくいものです。 また,マシンの所属や設置場所も分かりません。例えば,全てのメー ルアドレスが foo@130.34.xxx.yyyだったり,wwwのURLが http://130.34.xxx.yyy/index.htmlだったりしたら不便なことで しょう。
 そこで,IPアドレスと別に,コンピュータ等に英数字の名前(ホスト 名)をつけて使っています。 ネットワーク上の所属(組識や国)を表す名前(ドメイン名)と結合させた ホスト名は,abc.yyy.xxx.tohoku.ac.jpのような形式になり, この名前を使って,世界で一つのコンピュータを指し示すことができます (図 1)。


図 1: IPアドレスと名前

 IPアドレスとホスト名の関係は,たとえて言うと,大勢が集まった会合で 参加者を指すときに,氏名と会員番号を使い分けるようなものです。 会話では氏名で呼びますが, 受付窓口では会員番号を使って整理していることでしょう。 受付では,氏名と会員番号のどちらからでも調べられるように, アルファベット順と会員番号順の,二通りの名簿を用意しているはずです。 こうすれば,会員番号を覚えていない参加者が受付に現れても,大丈夫です。
 IPネットワークの世界でも同様に,ホスト名と IPアドレスと対応させる方法が取られています。 ネットワーク上ではこの対応表をデータベースとしてネットワーク 全体で使用するようにしており,このようなシステムを DNS(Domain Name System) といいます。
 ここでは,このコンピュータネットワーク(TCP/IPネットワーク)上 での 名前管理のためのシステム DNS について,紹介します。


(*1) IP以外の通信方式では別のアドレス体系があります

2 ドメイン名とホスト名

 まずネットワークやコンピュータにつけられる「名前」について簡 単に説明します。
 DNSでは,ネットワークを利用する組織毎にドメイン名と呼ばれる 名前がつけられます。 ドメインは階層を成しており,国,組織の属性,組織の名称,... 等組織に応じて枝分かれした木構造をしています(図 2)。 ある組織のドメイン名は,木構造の上位が右側に来るように,各階 層をピリオド「.」で区切って表記します。 例えば,日本(jp)の学術組織(ac)である東北大学(tohoku)の ドメ イン名は,tohoku.ac.jp で表わされます。


図 2: ドメインの階層構造

 所属先を表わすドメイン名はそれぞれの組識やネットワークごとに決めら れています。
 コンピュータのそのものの名前であるホスト名の部分は自分の好きなよう に付けられます。 一般的には,単体でのホスト名と,DNSで管理されるネットワーク上の ホスト名(*2)は同じにします(*3)
 DNS のホスト名により,そのコンピュータはDNSによって管理され るネットワーク上で唯一の名前を持つことになります。
 ホスト名の指定は,UNIXマシンでは,hostname コマンドで, Windowsマシンでは,コントロールパネル→ネットワーク→TCP/IP のプロパティ→DNS設定 で行います。Macの場合は,DNS上のホスト 名の設定はできません(AppleTalk上での名前の設定はできます)。 この場合でも,適当な名前を付けて DNS に登録することができます。


(*2) DNSでのFQDN形式のホスト名の第1要素
(*3) ネットワークでの名前と単体でのホスト名を別々に設定することも 可能ですが,メールサーバなどの場合はきちんとメールを受け取る ためにはそれなりに設定が必要となります。 また,例えば,XYZ 大学の abc.xyz.ac.jpwww.xyz.ac.jp という 「別名」を持たせる設定も,可能です。

3 ネームサーバとデータベース

 ドメイン名の管理はドメイン毎に「ネームサーバ」と呼ばれるサー バが行なっています(*4)。 ネームサーバは,そのドメインのホスト名とIPアドレスの対応表 (データベース)や,他のネームサーバの存在場所の情報を持ってい ます。
 SuperTAINSの場合は,大抵各ドメインに1-2個のネームサーバが あるようです。
 ネットワーク上でIPアドレスと名前を対応させる時には,ホスト名 からIPアドレスを探す場合と,IPアドレスからホスト名を探 す場合があります。前者を「正引き」,後者を「逆引き」と呼ん でいます。 DNSでは,正引きと逆引きのそれぞれについてデータベースを作り, ネームサーバで管理しています(図 3)。 このデータベースには,ネットワークインターフェースを持ってい れば,当然ながら,UNIXであろうと,ハブであろ うと,カメラであろうと(コーヒーポットであろうと),名前とIP アドレスの対応を登録することができます。


図 3: 正引きと逆引き

 DNS は分散型のデータベースですので,自分のいるドメインのホストだけ を管理すればよく,例えば,東北大学では,tohoku.ac.jp以下の ドメインを管理しています。 自分の管理するホスト以外についての問い合わせ は,他のネームサーバへ回すようになっており,それぞれのドメイ ンのデータはネットワーク全体で利用されます。 したがって, ホスト名とIPアドレスの対応が知りたいコンピュータは,身近のネー ムサーバに問い合わせをします(図 4)。


図 4: ネームサーバへの問い合わせ

 正引きについては,tohoku.ac.jp という名前は ac.jp のデータベースに登録され,この名前のドメインに関する 情報をどこのネームサーバに問い合わせるのかが 登録されています。以下,xxx.tohoku.ac.jp というドメインの 存在と,そのドメインのデータベース(ネームサーバ)がどこなのかという情報は tohoku.ac.jp のネームサーバに登録されていて, 同様に,左側に一つのドメインが付け加わった yyy.xxx.tohoku.ac.jp の情報は,xxx.tohoku.ac.jp に登録します。
 逆引きについては,同様に取り扱えれば簡単なのですが,あいにく IPアドレスは右に行くほど細かい単位になるので,IPアドレスを逆転 させて扱います。また,便宜的に,IPアドレスの逆引きのスタートの ために in-addr.arpa という名前を使うことになっています。 これにより,130.34 のデータは 130.in-addr.arpaのネームサーバ に登録され,130.34.XXX のデータは 34.130.in-addr.arpaのネー ムサーバに,130.34.XXX.ZZZ のデータならば XXX.34.130.in-addr.arpaのネームサーバに登録されます (*5)
 正引きと逆引きは,上で書いたように,管理の単位の理由が 違いますから,管理者が別々になる可能性があります。 例えば,ひとつのネットワークに複数のドメインが共存するときや, よそのネットワークに出先を置かせてもらうときなどには,両方の 管理者で連絡を取って両側の設定をすることになります。


(*4) 管理上,ドメインをゾーンと呼ぶことがあります。
(*5) 1バイト区切りでないところで区切るサブネットについて, サブネットごとに逆引きデータベースへ登録する場合は,少 し複雑になります。 例えば,130.34.XXX.063(130.34.XXX.0/26)と 130.34.XXX.64127 (130.34.XXX.64/26)のサブネットで管理が違うために 別々にネームサーバを用意したいときがあります。その場合には,管理の単位を 逆引きのゾーンに反映させて,それぞれが 0/26.XXX.34.130.in-addr.arpa, 64/26.XXX.34.130.in-addr.arpa というゾーンを設定して管理し,これらを XXX.34.130.in-addr.arpa に登録します。 説明は 「サブネットのホストをDNSへ登録する方法」曽根秀昭, SuperTAINS ニュース 10号 (1997.1.31), http://www.tains.tohoku.ac.jp/news/st-news-10/5456.html をご覧下さい。ただし,当時,サブネットの範囲を,TAINSでは 0-63 の形式で書き表すように説明しましたが,その後 RFC2317 で, 0/26 の形式で書くように推奨設定が定まりました。

4 自分のコンピュータをネームサーバに登録する必要はあるか?

 大勢の人が使用するコンピュータならともかく,自分しか使わない コンピュータをネームサーバに登録する必要があるでしょうか?
 答を簡潔に言いますと,正引きも逆引きもなるべく登録した方が良 い,ということになります。
 インターネットの世界で,身元を明らかにする必要があるときには, ドメイン名もついた名前を名乗れば,所属(ドメイン名)もわかります。 それは,自ら名乗らなくても,IP アドレスから名前を検索すれば, わかることです。実際に,ほとんどのサーバでは,接続を受けたときに 相手方のIPアドレスをキーとして検索し,名前を得ようとします。 この時に使うのが,逆引きデータベースです。
 ところが,逆引きデータベースへ不正なデータを登録される可能性が あります(*6)
 その対策として,「裏をとる」ことをします。具体的には,逆引きして 得られた名前について,正引きをします。正引きの結果がもとの IPアドレスに一致すれば,確かにそのドメインで認められた対応付けで あると判断されますが,一致しなかったときには疑惑があるので 接続を断るという判断をすることができます。 最近ではセキュリティ向上のために,裏を取れない場合,接続 を許可しないサーバが増えてきています。
 IPアドレスの正引きすらできない時は,ドメイン名を判定で きないので接続を受けないというものや,IPアドレスから組識の内 外を判別して受け付けるものなどがあります。 近頃は,ネームサーバに登録されていないコンピュータからの接続を 拒否するところもありますから,登録しないままにコンピュータ を使っていると,送ったつもりの電子メールが 受け取ってもらえないというような出来事も起きています。
 web やメール等のサーバに接続を拒否された場合には,DNSに登 録されていない,または,正引きと逆引きが一致していない,等の 可能性も考えてみて下さい。


(*6) たとえば,A国諜報機関のPCが使うIPアドレスについて, それの逆引きデータとしてB国秘密研究所のドメイン名を登録するのは, そのIPアドレスを使っているA国の権限で可能です。これでは, B国秘密研究所で侵入者を見分けられなくなります。

5 おわりに

 DNSのおかげで,我々は覚えにくい IP アドレスを常時使用しなく ても済んでいますし,ドメイン名からその所属を推測できます。 前節で述べたように,最近ではどこでもセキュリティの問題に厳しく なってきており,きちんと正引き・逆引きの登録をして,ネットワー クを利用することが望ましくなってきているようです。


www-admin@tohoku.ac.jp
pub-com@tohoku.ac.jp