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

6.3.4 名前が重複している場合の処理
 登録しようとしているホスト名が重複している場合,クライアントはすでに存在するリソースレコードを削除して,自分の登録したいリソースレコードで更新してしまう。

 ここでは,PC98というホスト名を付けたコンピュータに,192.168.1.101というIPアドレスを割り当てる場合を考えみることにする。

 このコンピュータは,以前はほかの人のものであり,そのときには192.168.1.103というIPアドレスでDNSサーバーに登録されていたとする。そのリソースレコードは,いまだにDNSサーバーに登録されている。また,DNSサーバーには,fooというコンピュータが192.168.1.101のIPアドレスを持っているものとして登録されている。つまり,最初の時点で,DNSサーバーには次のようなリソースレコードが存在するものと仮定する。

pc98 IN A 192.168.1.103
foo IN A 192.168.1.101
101.1.168.192.in-addr.arpa IN PTR foo
103.1.168.192.in-addr.arpa IN PTR pc98

 この状況下で,PC98が新たなIPアドレスである192.168.1.101を伴うリソースレコードを登録しようとしたとする。このとき,自分が登録しようとしているリソースレコードは“pc98 IN A 192.168.1.101”と“101.1.168.192.in-addr.arpa IN PTR pc98”である。ところが,これらのリソースレコードの名前である“pc98”と“101.1.168.192.in-addr.arpa”は,すでにDNS上に存在する。そこで,Dynamic DNSパケット内のUpdateセクションで,TTLとRDLENGTHが0であり,CLASSがANYである要求を送信し,登録されているリソースレコードを削除して,自分の名前を登録しようとする(List 6-6は,Aレコードの例である)。

 これにより,DNSサーバーに登録されているリソースレコードは,次のように変化する。この場合,DNSサーバーにPC98というAレコードを問い合わせても,fooというAレコードを問い合わせても,“192.168.1.101”というIPアドレスが回答されてしまう。つまり,fooへ接続しようすると“192.168.1.101”が回答されるため,実際にはPC98へ接続してしまうのである。この結果,ネットワークは混乱する。

pc98 IN A 192.168.1.101
foo IN A 192.168.1.101
101.1.168.192.in-addr.arpa IN PTR pc98
103.1.168.192.in-addr.arpa IN PTR pc98

 Dynamic DNSを利用している場合,クライアントがDNSサーバーのゾーン情報を更新することになるが,DNSサーバーに静的に登録されたリソースレコードと,Dynamic DNSによって動的に登録されたリソースレコードは,特に区別されない。したがって,DNSサーバー側で何かを静的に定義したとしても,Dynamic DNSのUpdate要求によって勝手に書き換えられてしまうおそれがある。また,ほかのクライアントが重複した名前を使用した場合も,勝手にゾーンの情報を書き換えられてしまうため,DNSが正常に機能しなくなるおそれがある。

 この問題を解決するには,次で述べる「セキュアDynamic DNS」を使用しなければならない。セキュアDynamic DNSを使用すると,そのリソースレコードを登録した当のコンピュータか,あるいはDNSサーバーに対して管理権限を有するDNSAdminsグループに属するユーザーなどしかアップデートできなくなる。

PREV 7/13 NEXT