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

6.3.3 Dynamic DNSの動作
 次に,静的なIPアドレスを割り当てたクライアントのトレースを使用しながら,Dynamic DNSの動作を説明する。

 ここでは,クライアントをPC98(192.168.1.101),DNSサーバーをAZ3(192.168.1.100)とする。このネットワークの構成は,「5.3.1 ログオンまでの処理内容」で説明している環境と同じである。念のために,構成図を再掲しておこう(Fig.6-3)。

Fig.6-3 トレース情報を取得したサンプルネットワークの構成(Fig.5-9の再掲)
fig.6-3

 なお,以下に示すトレース中に記載されている赤色の文字列は,筆者が加えたコメントである。

 クライアントはまず,自分が登録しようとしているリソースレコードに対する権威を有するDNSサーバーを探すため,SOAレコードの問い合わせを送信する。SOAレコードによってゾーンに対する権威を有するDNSサーバーが判明したら,そのサーバーに対してDynamic DNSのPrerequisiteパケットを送信し,リソースレコードが存在するかどうかを確認する。これから登録しようとしているリソースレコードと同じものが登録されている場合は,そのリソースレコードの必要条件のみを更新する。同じものが登録されていない場合は,そのリソースレコードを新規に登録する。リソースレコードを追加したり削除したりするには,Updateセクションを含んだパケットを使用する。なお,クライアントは,登録したリソースレコードを定期的に更新する。

 List 6-1(クリックして別ウィンドウを開く)に示すのは,リソースレコードが登録されていない場合に,Aレコードを登録するときのトレースである。すでに重複するリソースレコードが登録されている場合の例は,追って示す

 List 6-1において,12はSOAレコードの問い合わせである。PC98.active.dsl.local.はまだ登録されていない名前なので,DNSサーバーからは“Name does not exist”という回答が戻ってきている。2の回答であるAuthorityセクションには,このドメインに対して権威を有するDNSサーバーの名前が格納されている。この部分の詳細を,List 6-2に示す。

 List 6-134は,Dynamic DNSのパケットである。まだ登録されていない名前なので,DNSサーバーからは“RR set that ought to exist, does not exist”という回答が戻っている。List 6-3に,DNS部分の詳細を示す。

 注目してほしいのは,3のパケットにはPrerequisiteセクションが2つあることである。1つは,TYPEが“CNAME”でCLASSが“NONE”,RDATAが存在しないものである。このPrerequisiteセクションでは,ゾーンセクションで指定した“active.dsl.local.”にCNAMEレコードが登録されていないことを確認している。もう1つは,TYPEが“A”でCLASSが“Internet”,RDATAにはIPアドレスが指定されているものである。このPrerequisiteセクションでは,指定したリソースレコード,つまり“PC98.active.dsl.local. IN A 192.168.1.101”という情報が,DNSに登録されているかどうかを確認している。

 これに対する回答が,4のパケットである。「照会されたリソースレコードは登録されていない」という回答を返していることがわかる。

 そのあと,List 6-156では,再びSOAレコードの問い合わせを送り,Updateパケットを送信するDNSサーバーを検索している。そして,78により,実際にDNSサーバーに対して新しいリソースレコードを追加するように要求している。

 7のパケットでは,Updateを要求している。ここでは,“PC98.active.dsl.local. IN A 192.168.1.100”というリソースレコードを登録しようとしており,その前提条件として“PC98.active.dsl.local.”というCNAMEレコードやAレコードが登録されていないことを確認している。この前提条件は,CLASSが“NONE”,TYPEがリソースレコード,RDATAがなしであるリソースレコードをPrerequisiteセクションで指定することによって示されている。

 8の回答には“No error”とあるため,リソースレコードの追加は無事完了したことがわかる。

 List 6-4は,78で示したDNS部分の詳細である。

 なお,DNSサーバーがダウンしている場合や,ネットワーク障害によってDNSサーバーに到達できなかった場合には,クライアントは5分後にUpdateをリトライする。それに失敗すると,さらに10分後に再度リトライする。それでもUpdateに成功しなかった場合には,最後のリトライから50分後に,最初と同じ手順でリトライを再開し,成功するまでくり返す。

 List 6-5は,登録しようとしたAレコードと同じリソースレコードが,すでに存在している場合のトレースである。同じリソースレコードが存在するため,必要条件のみを更新している。DNSサーバーからのレスポンスにより,更新作業は正常に終了し,クライアントは必要条件のみの更新に成功したことがわかる。

PREV 6/13 NEXT