3.12. 破損したリースデータベースの復元

DHCP サーバーが、リースデータベースに関連するエラー (Corrupt lease file - possible data loss! など) をログに記録すると、dhcpd サービスが作成するコピーからリースデータベースを復元できます。このコピーには、データベースの最新のステータスが反映されない場合があることに注意してください。

警告

リースデータベースをバックアップに置き換えるのではなく削除すると、現在割り当てられているリースに関する情報がすべて失われます。その結果、DHCP サーバーは、他のホストに割り当てられていて、まだ期限が切れていないクライアントにリースを割り当てることができます。これにより IP の競合が発生します。

DHCPv4、DHCPv6、またはその両方のデータベースを復元するかどうかに応じて、以下の手順を参照してください。

前提条件

  • root ユーザーとしてログインしている。
  • リースデータベースが破損している。

手順

  • DHCPv4 リースデータベースの復元:

    1. dhcpd サービスを停止します。

      # systemctl stop dhcpd
    2. 破損したリースデータベースの名前を変更します。

      # mv /var/lib/dhcpd/dhcpd.leases /var/lib/dhcpd/dhcpd.leases.corrupt
    3. リースデータベースを更新する際に作成される dhcp サービスのリースデータベースのコピーを復元します。

      # cp -p /var/lib/dhcpd/dhcpd.leases~ /var/lib/dhcpd/dhcpd.leases
      重要

      リースデータベースの最新のバックアップがある場合には、代わりにこのバックアップを復元します。

    4. dhcpd サービスを開始します。

      # systemctl start dhcpd
  • DHCPv6 リースデータベースの復元:

    1. dhcpd6 サービスを停止します。

      # systemctl stop dhcpd6
    2. 破損したリースデータベースの名前を変更します。

      # mv /var/lib/dhcpd/dhcpd6.leases /var/lib/dhcpd/dhcpd6.leases.corrupt
    3. リースデータベースを更新する際に作成される dhcp サービスのリースデータベースのコピーを復元します。

      # cp -p /var/lib/dhcpd/dhcpd6.leases~ /var/lib/dhcpd/dhcpd6.leases
      重要

      リースデータベースの最新のバックアップがある場合には、代わりにこのバックアップを復元します。

    4. dhcpd6 サービスを起動します。

      # systemctl start dhcpd6