Windows Server 2016 DHCPデータベースの管理

どうも、Miyaです(´_ゝ`)

今回は、Windows Serverを使ったDHCPの管理において、最も重要であるデーターベースの管理について解説します。
DHCPデータベースには、IPアドレス リースに関する情報が格納されています。
DHCPサーバーをホストしているマシンに何らかの障害が発生した場合、復旧前の状態に復旧する必要があります。
そのためにも、DHCPデータベースの管理(バックアップ、復元など)を習得しておく必要があります。

スポンサーリンク:

DHCPデータベースとは?

DHCPデータベースには、DHCPサーバーがIPアドレスをリースするための情報として、構成情報、スコープ、アドレスのリース状況、予約に関するデータを含みます。
Windows ServerのDHCPサーバーでは、規定でC:\Windows\System32\dhcp配下に格納されています。
DHCPのバックアップ

次の表に、DHCPサーバー データベース ファイルのいくつかを載せておきます。

Dhcp.mdb DHCPサーバー データベースファイル
Dhcp.tmp DHCPデータベースが、保守作業を行う際に使用する一時ファイル
J50.log すべてのデータベース トランザクションのログ。復元にも使われる。
J50.chk チェックポイントファイル

DHCPデータベースは規定で自動バックアップの設定が施されています。
DHCPデータベースに関する設定値が下記レジストリに格納されており、BackupInterval値を変更することでバックアップの周期を変更することが出来ます。

レジストリキー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DHCPServer\Parameters
DHCPのバックアップ

規定では60分に1回、DHCPデータベースの自動バックアップを実施するように構成されています。

DHCPデータベースのバックアップおよび復元

DHCPデータベースのバックアップは、手動または自動で行うことが出来ます。Windows Serverでは、手動バックアップを非同期バックアップ、自動バックアップを同期バックアップと呼ばれています。

DHCPデータベースのバックアップでは、次を含むDHCPサーバーデータベース全体がバックアップされます。

  • すべてのスコープ
  • 予約
  • リース状況
  • オプション構成
  • DHCPサーバープロパティで設定される全てのレジストリキー

ちなみに、DHCPサーバーがDHCPクライアントをDNSに登録する際に使用するDNS動的更新資格情報は、バックアップされないのでご注意を。

バックアップ

DHCPサーバーの規定のバックアップ先はC:\Windows\System32\dhcp\Backupに格納されます。
DHCPのバックアップ

ベストプラクティスとして、規定パスを別ボリュームまたは記憶域に変更しておくことをお勧めします。
変更方法は、[DHCP管理コンソール]から<DHCPサーバーのFQDN>を右クリック→[プロパティ]をクリックします。
DHCPのバックアップ

[バックアップ パス]にデータベースのバックアップ先を選択します。
DHCPバックアップ

ちなみに、先ほど紹介したレジストリキーのBackupDatabasePathから変更することも可能です。
DHCPバックアップ

同期バックアップではなく、任意のタイミングでバックアップファイルを取りたい場合は、非同期バックアップを実施します。
[DHCP管理コンソール]から<DHCPサーバーのFQDN>を右クリック→[バックアップ]をクリックします。
DHCPバックアップ

バックアップファイルのパスを選択します。
DHCPバックアップ

データベースの非同期バックアップはnetshコマンドでも実施可能です。

復元

データべースを復元する場合、コンソールまたはnetshコマンドで実施出来ます。
このデータベースの復元には、DHCPサービスの再起動が必要になるため、ご注意下さい。
本作業は、DHCP管理レベルのアクセス許可が付与されているアカウントまたは、DHCPAdministratorsグループのアカウントで実施して下さい。

[DHCP管理コンソール]から<DHCPサーバーのFQDN>を右クリック→[復元]をクリックします。
DHCP復元

DHCPデータベースのバックアップファイル(newフォルダとDhcpCfgを含む)を選択します。
DHCP復元

DHCP Serviceの復元が必要ですので、[はい]をクリックします。
DHCP復元
DHCP管理コンソールからスコープ、リース状況などが復元されているのが確認できますね。
DHCP復元

netshコマンドで復元する際には下記コマンドで実施して下さい。

DHCP復元

DHCPデータベースの整合性

DHCPサーバーでは、リースしたIPアドレスの情報に不整合が生じないように、整合性を取るよう構成されています。
整合性を取るために、DHCPサーバーではスコープのIPアドレスのリース情報をデータベース、レジストリの2箇所に格納しています。
DHCP復元

データベースに格納されている詳細エントリと、レジストリに格納されている概要エントリを比較して、不整合を検知します。

不整合を検知したDHCPサーバーは、整合性を保つためにデータベースの保守を実施します。
また、不整合が発生すると、それらのIPアドレスのリースは元の所有者に復元されるか、一時的な予約としてリース期間の間、IPアドレスを保持します。リース期間が経過すると、IPアドレスを一時的な予約から解除し、通常の割り当て可能なIPアドレスへとステータスを変更します。
これらの動作によって、クライアントコンピューターに影響が及ばないよう構成されています。

[DHCP管理コンソール]から[IPv4]を右クリック→[すべてのスコープの整合性]をクリックします。
DHCP 整合性

[確認]をクリックします。
DHCP 整合性

データベースに矛盾がなければ、以下のような画像が表示されます。
DHCP 整合性

おわりに

DHCPデータベースの管理については、以上となります。
障害時の対策だけではなく、DHCPサーバーの物理的移動に伴って、データベースも移動することで、以前の情報を保持したままサービスを再開させることが可能になります。
少なくとも、データベースのバックアップ先のパスを別記憶域に変更しておきましょう。でないと、DHCPサーバーをホストしているマシンが故障した際に、バックアップファイルがまるごと飛んじゃいます。(恐ろしい…

それでは、よいWindows Serverライフをっ♪

スポンサーリンク