DNS サーバー サービスは、エージング機能と清掃機能をサポートしています。これらの機能は、時間の経過に伴ってゾーン データに蓄積される、古くなったリソース レコードの清掃と削除を実行するためのメカニズムを提供します。
動的更新では、コンピューターがネットワーク上で起動すると、リソース レコードが自動的にゾーンに追加されます。ただし、コンピューターがネットワークから離脱するときに、リソース レコードが自動的に削除されないことがあります。たとえば、コンピューターが起動時に自身のホスト (A) リソース レコードを登録し、その後、不適切にネットワークから切断された場合は、そのホスト (A) リソース レコードが削除されないことがあります。ネットワークにモバイル ユーザーまたはモバイル コンピューターが存在する場合、この状況はしばしば発生します。
ゾーン データに存在する古くなったリソース レコードを管理しないまま放置すると、次のような問題が生じることがあります。
-
古くなったリソース レコードがゾーンに大量に残っていると、最終的にはサーバーのディスク領域が占有され、ゾーンの転送に必要以上に長い時間がかかることがあります。
-
古くなったリソース レコードが残っているゾーンをドメイン ネーム システム (DNS) サーバーが読み込むと、クライアントからのクエリに対する応答に古い情報が使用され、クライアントでネットワーク上の名前解決の問題が生じる可能性があります。
-
DNS サーバーに古くなったリソース レコードが蓄積されると、DNS サーバーのパフォーマンスと応答能力が低下することがあります。
-
ゾーンに古くなったリソース レコードが存在すると、他のコンピューターまたはホスト デバイスが DNS ドメイン名を使用できなくなることがあります。
これらの問題を解決するために、DNS サーバー サービスは次の機能を備えています。
-
タイム スタンプ機能。サーバー コンピューターで設定されている現在の日付と時刻に基づき、プライマリ タイプのゾーンに動的に追加されるすべてのリソース レコードに適用されます。エージング機能および清掃機能が有効になっている標準プライマリ ゾーンにもタイム スタンプが記録されます。
手動で追加するリソース レコードの場合は、タイム スタンプ値 0 が使用されます。これは、リソース レコードがエージング プロセスの影響を受けないこと、およびタイム スタンプを変更したり、リソース レコードを削除したりしない限り、リソース レコードがゾーン データに無期限に残ることを示します。
-
ローカル データ内のリソース レコードのエージング機能。指定された更新間隔に基づき、対象となるゾーンに適用されます。
DNS サーバー サービスによって読み込まれるプライマリ タイプのゾーンのみが、このプロセスの対象になります。
-
指定された更新間隔の終了後に残存しているすべてのリソース レコードを対象とする清掃機能。
DNS サーバーは、清掃操作を実行するときに、リソース レコードが古くなって失効したことを確認し、リソース レコードをゾーン データから削除できます。清掃操作を自動的に繰り返し実行するようにサーバーを構成することも、サーバーで直ちに清掃操作を開始することもできます。
詳細については、「古いリソース レコードの自動清掃を有効にする」または「古いリソース レコードの即時清掃を開始する」を参照してください。
注意 | |
既定では、DNS サーバー サービスのエージングと清掃のメカニズムは無効になっています。すべてのパラメーターを完全に理解した場合にのみ、このメカニズムを有効にします。そうしないと、サーバーが誤って構成され、削除してはならないレコードが削除されることがあります。レコードが誤って削除されると、ユーザーがそのレコードに対するクエリを解決できなくなるだけでなく、セキュリティで保護された動的更新を行うように構成されたゾーン上でも、すべてのユーザーがレコードを作成し、そのレコードの所有権を取得できるようになります。 |
サーバーは、個々のリソース レコードに固有のタイム スタンプの内容と、調整または構成が可能な他のエージングと清掃のプロパティを利用して、レコードを清掃する時期を決定します。
エージングと清掃の必要条件
DNS のエージング機能と清掃機能を使用するには、いくつかの条件が満たされている必要があります。
-
DNS サーバーとゾーンの両方で清掃とエージングを有効にする必要があります。
既定では、リソース レコードのエージングと清掃は無効になっています。
-
リソース レコードがゾーンに動的に追加されているか、エージングと清掃の操作に使用されるように手動で変更されている必要があります。
通常は、DNS 動的更新プロトコルを使用して動的に追加されたリソース レコードのみがエージングと清掃の対象になります。
ただし、動的ではない手段によって追加されたその他のリソース レコードに対する清掃を有効にすることもできます。他の DNS サーバーからテキスト ベースのゾーン ファイルを読み込むことにより、または、ゾーンに手動で追加することにより、動的ではない手段でゾーンに追加されたレコードは、タイム スタンプが 0 に設定されます。タイム スタンプが 0 に設定されたレコードは、エージング操作と清掃操作の対象になりません。
この既定の設定を変更するには、これらのレコードを個別に管理し、タイム スタンプをリセットして、現在の (0 でない) タイム スタンプ値を使用できるようにします。この措置により、これらのレコードをエージングと清掃の対象にすることができます。
詳細については、「指定したリソース レコードの清掃およびエージングのプロパティをリセットする」を参照してください。
注 | |
ゾーンを標準プライマリ ゾーンから Active Directory 統合ゾーンに変更した場合は、ゾーン内のすべての既存のリソース レコードに対する清掃機能を有効にできます。ゾーン内のすべての既存のリソース レコードのエージングを有効にするには、dnscmd コマンド ライン ツールから利用できる AgeAllRecords コマンドを使用します。 |
エージングと清掃の用語
次の表は、特にエージングと清掃について説明する場合に役立つ、新しい用語または改訂された用語を示しています。
用語 | 説明 |
---|---|
リソース レコード タイム スタンプ |
DNS サーバーが、エージング操作と清掃操作の実行時に、リソース レコードを削除するかどうかを判断するために使用する日付と時刻の値。 |
現在のサーバー時刻 |
DNS サーバー上の現在の日付と時刻。この値は、任意の時点での正確な数値として表すことができます。 |
非更新間隔 |
ゾーンごとに定められた、次の 2 つのイベントによって区切られる時間間隔。
この値は、Active Directory データベースへの書き込み操作の回数を減らすために必要です。既定では、この間隔は 7 日に設定されます。この値を高く設定しすぎると、エージング機能と清掃機能の効果が低下するか、失われる可能性があるため、高すぎないレベルに設定してください。 |
更新間隔 |
ゾーンごとに定められた、次の異なる 2 つのイベントによって区切られる時間間隔。
この値は、すべてのクライアントがレコードをリフレッシュできる程度の大きさにする必要があります。既定では、この間隔は 7 日に設定されます。この値を高く設定しすぎると、エージング機能と清掃機能の効果が低下するか、失われる可能性があるため、高すぎないレベルに設定してください。 |
清掃開始時刻 |
数値で表す特定の時刻。サーバーは、この時刻を利用して、ゾーンで清掃が利用できる時期を判断します。 |
清掃期間 |
サーバーで自動清掃が有効になっている場合、自動清掃プロセスの繰り返しの周期を表す値。この設定の既定値は 7 日です。DNS サーバーのパフォーマンスの低下を避けるために、許容最小値は 1 時間に設定されています。 |
レコードのリフレッシュ |
リソース レコード タイム スタンプのみが変更されレコードのその他の特性は一切変更されない、リソース レコードの DNS 動的更新のプロセス。 通常、リフレッシュは以下の場合に行われます。
|
レコードの更新 |
レコードのタイム スタンプの他にレコードのその他の特性も変更される、リソース レコードの DNS 動的更新のプロセス。 通常、更新は次の場合に行われます。
|
清掃実行サーバー |
ゾーンの清掃が有効になっている DNS サーバーの IP アドレスを収めた一覧を指定するための、オプションの詳細ゾーン パラメーター。 このパラメーターを指定しない場合、既定では、(清掃機能も有効になっている) ディレクトリ統合ゾーンを読み込むすべての DNS サーバーがゾーンの清掃を試みます。ディレクトリ統合ゾーンを読み込む一部のサーバーのみで清掃を実行する方が望ましい場合は、このパラメーターが役に立ちます。 このパラメーターを設定するには、ゾーンの ZoneResetScavengeServers パラメーターで、ゾーンの清掃が有効になっているサーバーの IP アドレスの一覧を指定する必要があります。これを実行するには、Windows DNS サーバー管理用のコマンド ライン ベースのツールである dnscmd コマンドを使用します。 |
清掃を開始できる時期
清掃の使用を有効にするためのすべての必要条件が満たされれば、現在のサーバー時刻がゾーンの清掃開始時刻を過ぎたときに、サーバー ゾーンの清掃を開始できます。
サーバーは、次のいずれかのイベントが発生するたびに、ゾーン単位で清掃を開始する時刻の値を設定します。
-
ゾーンの動的更新が有効になったとき。
-
[古いリソース レコードの清掃を行う] チェック ボックスの状態が変更されたとき。該当する DNS サーバーまたはその DNS サーバーのいずれかのプライマリ ゾーンで、DNS マネージャーを使用してこの設定を変更できます。
-
DNS サーバーが、清掃機能の使用を許可されたプライマリ ゾーンを読み込んだとき。
これは、サーバー コンピューターが起動したとき、または DNS サーバー サービスが開始されたときに発生します。
-
サービスの停止後、ゾーンがサービスを再開したとき。
-
AD DS 統合ゾーンの場合は、DNS サービスまたはドメイン コントローラーの再起動後、少なくとも一度はゾーンのレプリケーションを行う必要があります。これらのイベントが発生すると、DNS サーバーは、次の合計値を計算して清掃開始時刻の値を設定します。
現在のサーバー時刻 + 更新間隔 = 清掃開始時刻
この値は、清掃操作中に比較の基準値として使用されます。
例 : サンプル レコードに対するエージングおよび清掃プロセス
ここでは、サーバーで実行されるエージングと清掃のプロセスを理解するために、1 つのリソース レコードが、サーバーおよびこのプロセスが実行されるゾーンに追加され、エージングされ、データベースから削除されるまでの過程を段階を追って検討します。
-
サンプル DNS ホスト "host-a.example.microsoft.com" は、ホスト (A) リソース レコードを、エージング機能および清掃機能の使用が有効になっているゾーンの DNS サーバーに登録します。
-
レコードを登録するとき、DNS サーバーは、現在のサーバー時刻に基づいて、このレコードにタイム スタンプを記録します。
レコード タイム スタンプが書き込まれると、DNS サーバーは、ゾーンの非更新間隔が終了するまで、このレコードのリフレッシュを受け付けません。ただし、期間終了前でも更新は受け付けることができます。たとえば、"host-a.example.microsoft.com" の IP アドレスが変更された場合、DNS サーバーは更新を受け付けることができます。この場合、サーバーは、レコード タイム スタンプも更新 (リセット) します。
-
非更新間隔が終了すると、サーバーはこのレコードのリフレッシュ試行の受け付けを開始します。
最初の非更新間隔が終了すると、直ちにレコードの更新間隔が始まります。この期間中、サーバーは、レコードの有効期間が残っている限り、リフレッシュの試行を拒否しません。
-
サーバーは、更新間隔中および更新間隔終了後に受信したレコードのリフレッシュを処理します。
これにより、レコードのタイム スタンプが、手順 2 の方法に従ってリセットされます。
-
サーバーは、その後 "example.microsoft.com" ゾーンの清掃を実行するときに、レコード (およびその他すべてのゾーン レコード) を検査します。
レコードを削除するかどうかを判断するために、次の合計値に基づいて、各レコードを現在のサーバー時刻と比較します。
レコード タイム スタンプ + ゾーンの非更新間隔 + ゾーンの更新間隔
-
この合計値が現在のサーバー時刻より大きければ、操作は実行されず、レコードはゾーン内でエージングを続けます。
-
この合計値が現在のサーバー時刻より小さければ、サーバーのメモリに現在読み込まれているすべてのゾーン データからレコードが削除され、同時に、ディレクトリ統合された "example.microsoft.com" ゾーンに対応する Active Directory ドメイン サービス (AD DS) 内の該当する DnsZone オブジェクト ストアからもからレコードが削除されます。
-
この合計値が現在のサーバー時刻より大きければ、操作は実行されず、レコードはゾーン内でエージングを続けます。