この特集のトップページへ
Chapter 6:Dynamic DNS 〜DNSとDHCP〜

6.1 Dynamic DNSの必要性

 これまで,TCP/IPネットワークやインターネットではDNSが使用され,ゾーン情報は静的に管理されてきた。もし読者がDNSサーバーの管理経験を有するのであれば,そのような管理によって何か問題があったかを振り返っていただきたい。

 DNSは,世界的なネットワークであるインターネットでも,現実にうまく機能している。また,企業内のネットワークでも,インターネットに接続していれば当然ながらDNSを使用しているだろうし,インターネットに接続していなくても,TCP/IPネットワークを利用していればDNSを使用しているのが普通だろう。しかし,いずれの場合も,「Dynamic DNSがどうしても必要だ」という話はあまり聞かない。

 少なくとも,Windowsプラットフォームを中心に管理してきたのであれば,「DNSの情報を動的に変更したい」という要望を抱くことはあまりなかったのではあるまいか。なぜなら,Windowsプラットフォームに限定すれば,管理者がいちいちクライアントの情報をDNSに登録しなくても,Windowsネットワークは正常に機能するからである。これは,Windowsネットワークのファイル共有やプリンタ共有などはNetBIOSインタフェースを使用して実装され,その名前解決にも「1.1.1 NetBIOS over TCP/IPの名前解決方法」などで説明したきたように,NetBIOSを用いた手法が利用されていたからである。

 一般に,TCP/IPネットワークでクライアントからサーバーに接続するためには,サーバーのドメイン名をIPアドレスへと変換する必要がある。しかしこのとき,必ずしもクライアントの情報がDNSに登録されている必要はない。なぜなら,クライアントからサーバーに対してセッションの開設を求める場合がほとんどで,サーバーからクライアントに対してセッションの開設を求めることは,ほとんどないからである。

 セッションを開設する場合,まず最初に,接続先となるサーバーのIPアドレスを知る必要がある。通常は,直接IPアドレスを指定するのではなく,ホスト名を指定する。指定されたホスト名からIPアドレスへと変換するときに,TCP/IPネットワークではDNSを使用するため,接続先となるサーバーのホスト名はDNSに登録されていなければならない。しかし,TCP/IPのサービスを提供しているサーバーのホスト名やIPアドレスは,ほとんど変更されないため,いったんDNSに登録してしまえば,その後は情報を書き換える必要はあまりない。

 その一方で,クライアントがサーバーへと接続するときに発するパケットには,クライアントのIPアドレスの情報が含まれているため,サーバーはセッションの開設を求めるパケットを受け取った時点で,クライアントのIPアドレスを把握できる。したがって,サーバーはクライアントのIPアドレスを調べるために,改めてDNSを使用する必要はない。もちろん,どのホストが接続してきたのかを確認するために,サーバーがPTRレコード(逆引き)を使用することはある。しかしこの場合も,クライアントに割り当てているIPアドレスの範囲にダミーのPTRレコードを登録しておけば,ほとんどの場合は対処できる。

 以上のような理由により,従来はサーバー側もクライアント側も,DNSの情報を動的に変更する必要性はあまりなかったのである。

 しかし,Windows 2000環境では,状況は一変する。前章で述べたように,Windows 2000のActive Directoryでは,ディレクトリに参加するため,各コンピュータにFQDNを割り当てる必要がある。このことは,すべてのクライアントをDNSに登録しなければならないことを意味している。

 DHCPを使用せず,静的にIPアドレスを割り当てている場合でも,これはかなり難しい要求である。クライアントは,サーバーに比べると数が増減したり構成が変わったりすることが多い。組織変更などの要因によってクライアントの数が増減したり,ネットワークの構成が変更されたりしたときに,DNSに登録されているクライアントの情報もその都度変更しなければならない。サーバーの情報を変更する程度であれば,数と回数は限られているが,クライアントの情報を変更する必要が生じるとなると,かなりのコスト増加を覚悟しなければならない。

 さらに,DHCPを使用している場合は,Dynamic DNSを使用しないと,クライアントに常に同じFQDNを割り当てることは不可能になる。WindowsのDHCPクライアントは,IPアドレスをDHCPサーバーから割り当ててもらうことはできるが,ホスト名は割り当ててもらうことができない。このため,WindowsのDHCPクライアントは,自分の使用するホスト名をネットワークのプロパティであらかじめ定義しておくようになっている。たとえば,自分の使用しているコンピュータがDHCPクライアントで,コンピュータ名とホスト名をネットワークのプロパティで“PC98”と定義しておいたとする。このとき,DHCPサーバーから取得したIPアドレスが192.168.1.101だったので,DNSサーバーに“192.168.1.101 IN A PC98”と定義したとしよう。しかし,DHCPを使用する場合,クライアントには常に同じIPアドレスが割り当てられるとは限らない。次のIPアドレスの更新で,IPアドレスが192.168.1.102になってしまうこともあり得る。この場合,DHCPクライアントは自分のコンピュータ名とホスト名がPC98であることは認識できるが,DNSサーバーにはその情報が登録されていない状態となってしまう。つまり,クライアント自身で設定したホスト名と,DNSに登録されている情報とのあいだに矛盾が生じてしまい,Active Directoryドメインに参加することができなくなってしまう。

 Active Directoryを導入する場合にDynamic DNSを使用することが推奨されているのは,以上のような理由による。

PREV 2/13 NEXT