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

6.3 Dynamic DNSの基本的な動作

 それでは,Dynamic DNSが実際にどのような挙動でDNSのリソースレコードを登録するのか,その仕組みを見てゆくことにしよう。

 まず最初に,Dynamic DNSパケットの構造について説明し,そのあと,Dynamic DNSパケットを利用してどのようにリソースレコードが更新されるのかに言及する。ただし,まだ通常のDNSパケットの構造を説明していないので,Dynamic DNSパケットとの違いを理解していただくためにも,先に通常のDNSパケットについて説明する。

6.3.1 DNSパケット
 RFC1035で提唱されているように,通常のDNSパケットは次のように5つのセクションに分かれている(Fig.6-1)。このうちHeaderセクションは,DNSパケットであれば必ず存在する。しかし,Headerセクション以外のQuestionセクションや,Answerセクションなどは,パケットに含まれていないこともある。たとえば,クライアントから送信される問い合わせのパケットには,Answerセクションは存在しない。

Fig.6-1 DNSパケットの構造
fig.6-1
  Headerセクション
 Headerセクションには,Table 6-1に示す情報が含まれている。

Table 6-1 DNSパケットのHeaderセクションに含まれる情報

フィールド 意味
QR メッセージが照会であるのか,応答であるのかを表すフィールド。0のときは照会,1のときは応答
OPCODE オペレーションコード。通常のDNSパケットで許されているオペレーション(動作内容)は,次の3種類である。
  • 0:Standard Query(標準クエリー。通常の正引きや逆引きの問い合わせ)
  • 1:Inverse Query(インバースクエリー。たとえばAレコードが“az3 IN A 192.168.1.100”である場合,通常の問い合わせであれば“az3”を問い合わせる。これに対してインバースクエリーは,“192.168.1.100”を問い合わせ,“az3”を回答として受け取る。このとき問い合わせるリソースレコードは,PTRレコードではなく,Aレコードである。インバースクエリーは標準でサポートしている必要はなく,BIND 8でもデフォルトでは動作しないようになっている)
  • 2:Server Status Request(サーバーステータス要求)
  • 3:Reserved(予約)
  • 4:Notify(RFC1996で提唱されているDNS NOTIFYのパケットで指定される)
AA Authoritative Answerの略。権威のあるサーバーによって回答された場合は,このビットがオンになり,キャッシュから回答された場合はオフになる
TC Trancationの略。この回答が不完全であることを表す。DNSのUDPによる回答は512バイトまでだが,回答にそれ以上のデータがある場合には,このビットがオンになる。このビットがオンになっている場合は,UDPによる通信のあとにTCPによる接続を試みる
RD Recursion Desiredの略。Recursive(再帰)に問い合わせるとき,このビットがオンになる。Recursiveな問い合わせについては,「3.3.1 RecursiveとIterative」を参照のこと
RA Recursion Availableの略。サーバーの応答パケットであり,このビットがオンになっている場合はRecursiveな問い合わせに応えることができる
Z 予約。すべて0にセットされる
RCODE Response Codeの略。次の値が設定される。
  • 0:エラーなし
  • 1:フォーマットエラー
  • 2:DNSサーバーの障害により回答不可
  • 3:照会されたドメイン名が存在しない(問い合わせたリソースレコードが含まれるゾーンに対して,権威を有するDNSサーバーのみがこの戻り値を返す)
  • 4:サポートされていない照会
  • 5:拒否
QDCOUNT 後述する「Questionセクション」に含まれている質問数
ANCOUNT 後述する「「Answerセクション」に含まれている回答数
NSCOUNT 後述する「Authorityセクション」に含まれているDNSサーバーの数
ADCOUNT 後述する「Additionalセクション」に含まれている追加情報の数

 
  Questionセクション
 問い合わせる名前やタイプ,クラス。
 
  Answerセクション
 DNSサーバーからの回答(可変長)。
 
  Authorityセクション
 この回答に対して権威を有するDNSサーバーの名前(可変長)。
 
  Additionalセクション
 追加情報(可変長)。
PREV 4/13 NEXT