DHCPDが間違ったレンタル時間を提供するのはなぜですか?

DHCPDが間違ったレンタル時間を提供するのはなぜですか?

OpenBSD 5.8でDHCPDを実行していますが、奇妙な問題が発生しました。

/etc/dhcpd.confのリース時間を次のように設定しました。

max-lease-time 7200;
default-lease-time 7200;

2時間でなければなりません。

dhcpd.leasesファイルを確認すると、次のようになります。

lease 172.24.186.224 {
  starts 5 2018/07/31 07:17:03 UTC;
  ends 5 2018/07/31 19:17:03 UTC;
  hardware ethernet b4:f6:1c:27:4f:a4;
  uid 01:b4:f6:1c:27:4f:a4;
  client-hostname "Apple";
}

この12時間のリース時間は、tcpdumpを実行してWiresharkを使用して分析するときにも確認されます。 (dhcpd.leasesファイルには、私が説明できない24時間レンタルもあります。)

「最上位」構成または特定のサブネットに対して最大リース時間とデフォルトリース時間を設定しようとしましたが、成功しませんでした。

ここで何が起こっているのでしょうか?

答え1

私は解決策を見つけました。

これは特定のOpenBSDバージョンのバグのようです。

http://openbsd-archive.7691.n7.nabble.com/dhcpd-on-5-8-AMD64-default-lease-time-and-max-lease-time-ignored-td285149.html

答え2

新しいリース期間のデフォルト値(ネットワークブロックのローカルであるかグローバルであるかにかかわらず)は、dhcpd設定後(サービスが再起動される)、新しく発行されたリースにのみ影響します。

以前のアクティブなリースは設定の変更(場合によっては)よりも優先され、古いデフォルトは期限切れになるまで表示されます。

したがって、今日の19:07 UTC以降にのみ表示されたMACのリースは、構成したばかりの短期間のリースを受け取ります。

時間が経過する前に異なる動作をするには、リースを削除する必要があります。

注:テストシステムの場合は、リースファイルをゼロバイトに切り捨てるか、「lease {」と「}」の間の行を編集できます。後ろにdhcpdデーモンを停止します。

関連情報