DNS

分散システム

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

このページは、次の URL にあります。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/dsys-1997/1998-02-03 /dns.html
あるいは、次のページから手繰っていくこともできます。
http://www.hlla.is.tsukuba.ac.jp/~yas/coins/
http://www.hlla.is.tsukuba.ac.jp/~yas/index-j.html

■マシンの名前

◆名前、アドレス

コンピュータの世界では、ある物を指し示すための情報という意味の類語:

◆DNS

ホスト名を(IP)アドレスに変換する。

==高レベルの名前を低レベルの名前に変換する。

図 DNSによるホスト名からIPアドレスによる変換
図 DNSによるホスト名からIPアドレスによる変換

◆ドメイン==木構造

図 大学組織(ドメイン的な見方)
図 大学組織(ドメイン的な見方)

図 大学組織(普通の木)
図 大学組織(普通の木)

◆木構造の必然性

初期のシステムは、ホスト名とIPアドレスの対応を 平らな名前空間(flat namespace)で管理していた。 その内容は、NIC (Network Information Center)が管理していた。
利点
名前が短い
欠点
大量のマシンにたいして名前を付けられない。
1990年、137,000 台まで増えた所で、DNSに切り替えられた。

名前空間を分割し、一部の権限を委任する。 分割されたものをさらに分割する。 →木構造。

スケーラビリティを実現するには、木構造にするしかない、とも言える。

◆ドメインの例

図 インターネットのホスト名の名前 付けで使われている木構造
図 インターネットのホスト名の名前 付けで使われている木構造

たとえば、「is.tsukuba.ac.jp」では、木の根から見た時、 jp,ac,tsukuba,is のように枝を探していくことを意味して いる。これは、UNIXのファイル名とは解釈の順番が逆である。 UNIXのファイル名では、「/jp/ac/tsukuba/is」となる。

根の直下は、ISO (国際標準化機構, International Standardization Organization ) が定めた 2文字による国別コード(country code)である。た だし、歴史的な理由により、アメリカを中心として .com,. edu,.gov,.net,.org,.mil などが現在でも使われている。日本の国別コー ドは、jp である。jp の下には、次のような枝 (領域、ドメイン)がある。

ac
大学関係
ad
ネットワーク管理
co
企業
go
政府機関、国立の施設
ne
インターネット接続サービス・プロバイダ
or
法人。(一部のインターネット接続サービス・プロバイダ)
gr
任意団体。
都道府県の名前
地方自治体、個人。

筑波大学は、ac の下にくる。tsukuba.ac.jp の下には、学内の組織を表わすな枝(領域、ドメイン)がある。

◆ドメイン名の問題点

イギリスは、一時期(1990年ごろ?)、左から右を使っていた。 ある時に、アメリカに合わせた。

◆名前解決

ホスト名をIPアドレスに変換すことを、名前を解決する(resolve)という。 名前を解決するモジュールを resolver という。

resolver の設定ファイルの例:

----------------------------------------------------------------------
/etc/resolv.conf
domain  is.tsukuba.ac.jp
nameserver      130.158.80.245
nameserver      130.158.80.244
----------------------------------------------------------------------

◆名前解決アルゴリズム

  1. DNSは、問い合わせ要求を受け付けると、自分が名前解決の 最終権限(SOA)を持っているか調べる。
  2. 最終権限を持っているなら、そのデータベースを調べる。そこに見つか れば、その値を返す。見つからない時には、該当するホスト名がないとする。
  3. 最終権限を持っていない時、キャッシュを調べる。
  4. もしキャッシュにあれば、それを調べて名前をIPアドレスに変換し、 クライアントに送り返す。
  5. もし解決できなければ、「別のDNS」に問い合わせる。 問い合わせの結果は、クライアントに返すと同時にキャッシュに保存する。 「別のDNS」は、親(parent)か、 設定ファイルの「forwarders」で指定したもの。

    図 DNSの動き
    図 DNSの動き

    ◆キャッシング

    名前とIPアドレスの束縛は、あまり変化しないので、 キャッシングが非常に有効に機能する。

    しかし、名前とIPアドレスの束縛は、必ず変化する。 キャッシュの内容を正しく保つためには、次のような技術が使われている。

    参考

    ◆複製(replication)

    DNS には、primary と secondary がある。
    primary
    あるドメインについて最終権限を持っている。世界でひとつだけ。
    secondary
    primary のコピー(複製、replication)を持つ。
    primary の DNS が一時的に止まる、あるいは、ネットワーク的にアクセスで きなくなることがある。そんな時でも、secondary にアクセスできれば、名前 解決をすることが可能である。

    primary の DNS は、データをローカル・ファイルから読む。

    secondary の DNS は、データを primary から定期的に読み、ファイルに保存 する。

    ◆木の根から検索しない理由

    UNIXとは違って、木の根から順に検索することはない。

    ◆例

    /etc/named.boot
    ----------------------------------------------------------------------
    ;
    directory       /var/dns
    cache           .                               named.root
    primary         0.0.127.in-addr.arpa            named.local
    ;
    forwarders 130.158.68.20 130.158.68.21 192.50.17.2 192.41.197.4
    ;
    primary         is.tsukuba.ac.jp                is.zone
    primary         jks.is.tsukuba.ac.jp            jks.zone
    primary         80.158.130.in-addr.arpa         is-80.ptr
    secondary       tsukuba.ac.jp            130.158.68.20 cache/tsukuba.zone
    secondary       npal.is.tsukuba.ac.jp    130.158.80.33 cache/npal.zone
    secondary       softlab.is.tsukuba.ac.jp 130.158.80.76 cache/softlab.zone
    ....
    ----------------------------------------------------------------------
    
    is.zone:
    ----------------------------------------------------------------------
    @       IN      SOA     is.tsukuba.ac.jp.       postmaster.is.tsukuba.ac.jp. (
                    884584645       ; Serial Number
                    10800           ; Refresh
                    3600            ; Retry
                    43200           ; Expire
                    86400           ; Minimum
                    )
    ;
            IN      NS      poplar.is.tsukuba.ac.jp.
            IN      A       130.158.80.245
            IN      MX 10   poplar.is.tsukuba.ac.jp.
    gama            IN      A       130.158.80.241
    maple           IN      A       130.158.80.244
    datehost        IN      CNAME   maple
    poplar          IN      A       130.158.80.245
    ...
    ----------------------------------------------------------------------
    
    is-80.ptr:
    ----------------------------------------------------------------------
    @       IN      SOA     is.tsukuba.ac.jp.       postmaster.is.tsukuba.ac.jp.  (
                    884584645       ; Serial Number
                    10800           ; Refresh
                    3600            ; Retry
                    43200           ; Expire
                    86400           ; Minimum
                    )
    ;
            IN      NS      poplar.is.tsukuba.ac.jp.
    241     PTR     gama.is.tsukuba.ac.jp.
    244     PTR     maple.is.tsukuba.ac.jp.
    245     PTR     poplar.is.tsukuba.ac.jp.
    246     PTR     iris.is.tsukuba.ac.jp.
    ;
    32      NS      algor.npal.is.tsukuba.ac.jp.
    32      NS      poplar.is.tsukuba.ac.jp.
    ;
    33      CNAME   33.32.80.158.130.in-addr.arpa.
    34      CNAME   34.32.80.158.130.in-addr.arpa.
    ----------------------------------------------------------------------
    

    ◆まとめ

    DNSに見られる分散システム構築の技術
    [分散システム] [DNS] [ニュース・システム] [fj NGMP]
    ↑[もどる] ←[1月27日] ・[2月3日] →[2月10日]
    Last updated: 1998/02/02 22:21:30
    Yasushi Shinjo / <yas@is.tsukuba.ac.jp>