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