DNSレコードのタイムスタンプ

DNS動的更新を有効にしている場合、DNSレコードにはタイムスタンプが付けられる。

Windows 2003 の adminpak ではこのタイムスタンプが一覧表示できなかったが、Windows7用RSATでは標準で表示される。どうやら清掃周期が最低1時間になっているからかタイムスタンプは1時間単位に丸められているようだ。(参考:Technet フォーラム

fig09

このタイムスタンプ。後述する「更新」時にリセット(なくなるのではなく re-set、つまり再セット)される。
当然ながら新規のレコードが登録されたり、すでに登録されていてもIPアドレスが変更になった場合にはその時間でセットされる。(この動作はここでは「更新」とは呼ばないのでご注意いただきたい)

その後、レコードが削除されるまでにどういう時に更新されるのかというと、いくつかパターンが存在する。
これらのうち、システムが自動的にDNSレコードを更新しようとする間隔のデフォルトは以下の通り(Technet Libraryより)

サービス 既定の更新間隔
Net logon 24 時間
クラスタ 24 時間
DHCP クライアント 24 時間

DHCP クライアント サービスは、DNS レコードの動的更新を送信します。
これには、DHCP を使ってリース IP アドレスを取得するコンピュータと、
TCP/IP に対して静的に構成されているコンピュータの両方が含まれます。
(※筆者注 クライアント-DDNSを利用している場合を指している)
DHCP サーバー 4 日 (リース期間の半分。既定のリース期間は 8 日)

更新は、クライアントに代わって DNS 動的更新を実行するように構成された DHCP サーバーのみが行います
(たとえば、Windows 2000 Server の DHCP サーバーと Windows Server 2003 の DHCP サーバー)。
間隔は、DHCP クライアントがサーバーとの間でリース IP アドレスを書き換える頻度に基づきます。
通常は、スコープ リース時間の 50% が経過したときにこれが発生します。
DNS(※筆者注。「DHCP」の誤りと思われる)の既定のスコープ リース期間 (8 日間) が使用されている場合、
クライアントに代わって DHCP サーバーが更新するレコードの最長更新期間は 4 日間です。

重要なのは、これは「更新しようとする」間隔のデフォルト値であって、必ず更新されるというわけではない
後述するDNS側サーバ側の「非更新間隔」中は上記4つから「更新」リクエストが来ても無視される。
(蛇足だが、同じホストでもIPが変わる場合はここでいう「更新」ではないのでDNSレコードの書き換えは実行される)

なおタイムスタンプが存在しないものは「静的」登録されているものということになる。
(ただしこれはADSIではプロパティが存在しないのではなく、値として「0」がセットされているということらしい。)
手動登録したレコードについては(明示的にタイムスタンプ値をセットしない限り)静的登録になる。
ただし、手動登録してもレコードが「動的に上書き」更新された場合にはタイムスタンプ値がセットされ、自動で清掃タスクが登録されている場合には削除の対象になりうる。
また、静的登録になっているものも dnscmd などで動的に変更することも可能。(Technet Library 参照 )

戻る