« ご~るでん、うぃ~く | トップページ | スパム色々 »

2006/05/12

Domain Name Serverに関する覚書。

興味があるというか、ネットワークの勉強というか。
覚えようと思い、前々からWindows 2000 Serverを立てていたのですが、改めてDNSサーバについて色々と調べてみた。
…これは、合っているのだろうか? 正しいのだろうか?
勉強の段階で作った資料なので、確証は持てません。


■概要
━━━━━━━━━━━━
・ドメイン名とIPアドレスの対応表を有し、クライアントに対して、名前解決と呼ばれるドメイン名とIPアドレスの変換機能を提供する。

■機能
━━━━━━━━━━━━
●ドメイン・ネーム・サーバーは、上位DNSから権威を委託されたドメインについて、そのドメイン名とIPアドレスの対応表を持つ。

●ドメインを管理するDNSサーバーは、基本的に人間の手でホスト名とIPアドレスの対応表を作る。
  #登録したら、その内容が他のDNSに拡散するまで1~2日かかる。
  #というのは、どういう原理?
  #拡散するというよりは、『手作業で登録するから1~2日かかる。』という事?
  #基本的には、ルートから順に検索するから、拡散する必要性は無い様に思える。

●Windows 2000 DNSサーバと、Windows 2000 DHCPサーバを使えば、あるホスト(PC, DHCPクライアント)がWindows 2000 DHCPサーバーによってIPアドレスが割り振られたら、そのホストのホスト名とIPアドレスが自動的にWindows 2000 DNSサーバーに登録される。(動的更新。DDNSの事。)

●下位ドメインをその他のDNSサーバーに権威を委託する事が出来る。


    この場合は、NSレコードを使って権威を委任するDNSサーバを指定し、Aレコードで指定したDNSサーバーのIPアドレスを明確にしておかなければならない。
    #自ドメインを取得して、自宅DNSサーバを公開すると言う事は、例えば、"domain.com"というドメイン名を取得したとしたら、

    (1) ".com"のDNSサーバにアクセス権がある登録代理業者に、.comのDNSサーバが自分が取得したドメイン名に権威を委任してもらう為に、NSレコードとAレコードを.comを管理しているDNSサーバーに書いてもらう。

      domain.com NS IN 自宅DNSサーバのホスト名1.domain.com
      domain.com NS IN 自宅DNSサーバのホスト名2.domain.com
      自宅DNSサーバのホスト名1.domain.com A IN vvv.xxx.yyy.zzz
      自宅DNSサーバのホスト名1.domain.com A IN vvv.xxx.yyy.zzz
      ※vvv.xxx.yyy.zzzは、IPアドレス。

      ※規定上、2つ以上DNSサーバを立てないといけないらしい。
      ※が、ほとんどのISPは、セカンダリDNSサーバを貸してくれるらしい。

    (2) DNSサーバが無い場合は、ISPがDNSサーバを用意してくれる。(DDNS等。)
      ".com"のDNSサーバには、ISPのDNSサーバを書いてもらう。
      例えば、@niftyの場合。

      domain.com NS IN ns1.atnifty.com
      domain.com NS IN ns2.atnifty.com

      を、".com"に登録してもらい、@niftyのDNSサーバに、

      @ SOA IN 自宅のホスト名1.domain.com mailaddress.domain.com 数字色々。
      自宅のホスト名1.domain.com A IN vvv.xxx.yyy.zzz
      domain.com MX IN 自宅のホスト名1.domain.com
      www CNAME IN 自宅のホスト名1.domain.com
      ftp CNAME IN 自宅のホスト名1.domain.com
      smtp CNAME IN 自宅のホスト名1.domain.com
      pop CNAME IN 自宅のホスト名1.domain.com

      ※vvv.xxx.yyy.zzzは、IPアドレス。
      ※(@niftyでは、CNAMEの記述は別料金らしい。)

      という感じで、登録する?(できるの?)

    (3) こうする事で、インターネットの世界に、自分が取得したドメインが認知される。


●クライアントから名前解決を要求された場合、以下の処理を行う。


    ◆【共通】
    (1) 自分が所有する対応表にデータがあれば、それを返す。
    (2) 無かった場合は、DNSサーバーにより処理が異なる。

    ◆【パブリックDNS】
    ※外向け用DNS。(他のドメインからの問い合わせに答える為のDNS)
    ※. や、 .jpや、 .com や、 .co.jp 等の、自分のドメイン情報を管理するDNS。
    ※主に、外のドメインから問い合わせが来る。
    ※ファイヤーウォールの外に置かれる事が多い。
    ※このDNSには、プライベート用のIPアドレスは登録しない。
    (3) 「データが無い」とクライアントに返答する。

    ◆【フルサービス・リゾルバ(Full-Service Resolver)】
    ※内向けDNS。(自ドメイン内部のユーザーに、IPアドレスを教えるサーバー)
    ※主に、自分のドメイン内のユーザーから問い合わせが来る。
    ※ファイヤーウォールの中に置かれる事が多い。
    ※このDNSには、プライベート用ののIPアドレスも登録する。
    (3) キャッシュに対応表が残っていれば、ユーザーにデータを返す。
    (4) 無かったら、ルートヒント(ftp://rs.internic.net/domain/named.root)へ、トップ・レベル・ドメイン(TLD:Top Level Domain)のDNSサーバー(.coや、.comや、.org等)のIPアドレスとドメイン名を問い合わせる。
    (3) TLDのDNSサーバーに、セカンド・レベル・ドメイン(SLD:Second Level Domain)のDNSサーバー(.co.jpや、.or.jpや、xxxx.jpや、xxxx.com等)のIPアドレスとドメイン名を問い合わせる。
    (6) との感じで、3rdレベル、4thレベルのドメインへとどんどん繰り下げていく。
    (7) ホスト名まで辿り着いたら、最後のドメインネームサーバーに、ホスト名でIPアドレスを問い合わせる。
    (8) DNSサーバーから帰って来たデータを、ユーザーに渡す。
    (9) データを一定期間の間、キャッシュに保存する。

    ※これらの、TLDや、SLD等のDNSサーバは、上記の『パブリックDNS』に属す。

    ◆【スタブ・リゾルバ(Stub Resolver)】
    ※内向けDNS。(自ドメイン内部のユーザーに、IPアドレスを教えるサーバー)
    ※主に、自分のドメイン内のユーザーから問い合わせが来る。
    ※ファイヤーウォールの中に置かれる事が多い。
    (3) キャッシュに対応表が残っていれば、ユーザーにデータを返す。
    (4) 無かったら、フルサービス・リゾルバに再帰検索を依頼する。
    (5) フルサービス・リゾルバからデータが帰ってきたら、ユーザに転送する。
    (6) データを一定期間の間、キャッシュに保存する。


    #DNSサーバーというよりは、DNSクライアントみたいな感じ。
    #ユーザーに提供するという意味では、サーバー?

    #◆疑問点。
    #一つのDNSサーバで、パブリック(外向け)と、リゾルバー(内向け)の両方の機能を持たせられるのか?
    #例えば、外向け用には、グローバルIPアドレスを記述しておいて、
    #内向けには、NAT内のローカルIPアドレスを、Windows 2000 DHCPサーバで自動登録するなど。
    #DNSサーバーも、Windows 2000 DNSを使わなければならないが…。


■レコードの内容。
━━━━━━━━━━━━

●SOR
─────
ゾーンの情報が有るレコード。
(プライマリDNSサーバ名, 管理者のメールアドレス等)
自ドメインの情報で、ゾーンの先頭に要定義。
同じDNSサーバで、子ドメインを管理する場合、子ドメインにも必要?


例)
@ IN SOA dns.domain.com. root.domain.com. (2001112701 10800 3600 604800 86400 )

@ (@は、ゾーンの起点である事を示す。)
IN
SOR SORレコードである事を示す。
dns.domain.com. 自ドメインのプライマリーDNSサーバー(要Aレコード)
root.domain.com. 担当者のメールアドレス。(@は.に置き換える。)
2001112701 シリアル番号
10800 更新間隔(refresh)
3600 転送再試行時間(retry)
604800 レコード有効時間(expire)
86400 キャッシュ有効時間(TTL)

●NS
─────
・ゾーンの権威を委任するレコード。(下位のDNSサーバ名を指定する)
・自分のDNSサーバ名も指定する?


例)
sub.domain.com. IN NS dns.sub.domain.com.

sub.domain.com. ゾーンの権威を委任する、下位ドメイン名
IN
NS NSレコードである事を示す。
dns.sub.domain.com. そのドメインの、DNSサーバーのアドレス(要Aレコード)


●A
─────
ホスト(PC)名とIPアドレスの対応表

例)
host IN A 192.168.1.3

host ホスト名
IN
A Aレコード
192.168.1.3 IPアドレス


●CNAME
─────
擬似的なホスト名をつける。

例)
www IN CNAME host
ftp IN CNAME host


www, ftp ホスト名(下層のPC名)
IN
A Aレコード
host 正規のホスト(PC)名(要Aレコード)


●MX
─────
自ドメインの、メールサーバー(自ドメインのユーザーが受信する時の?)

例)
@ IN MX 1 mail1
@ IN MX 2 mail2


` ドメインの名前。(@は、自ドメインを示す。)
IN
MX MXレコード
1,2 優先順位。数値が低い方から、メールソフトは送信を試す。
mail1 メールを受信するホスト(PC)名(要Aレコード)


●SRV
─────
Microsoft Active Directory ドメイン コントローラ用のレコード。

# DNSサーバに記述している『IN』って、どういう意味だ?

|

« ご~るでん、うぃ~く | トップページ | スパム色々 »

コメント

拡散するというのは、おそらくキャッシュのことでしょう。
一度も、キャッシュされていない項目なら、本家のDNSまで、検索しにいきますが、キャッシュの場合、1日~2日ほど、本家より古い対応表がキャッシュされることになりますゆえ。

投稿: ama | 2006/05/13 02:03

> 拡散するというのは、おそらくキャッシュのことでしょう。

なるほど、「キャッシュ」と、「スレーブ」に拡散する時間と言うことですね。 納得できました。

色々、複雑化してるんですねぇ~。

投稿: S.W. | 2006/05/15 01:35

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/36969/10035846

この記事へのトラックバック一覧です: Domain Name Serverに関する覚書。:

« ご~るでん、うぃ~く | トップページ | スパム色々 »