Kea dhcp serverはisc-dhcp-serverとは異なり、コマンドを送信して結果を返す機能があるようです。コマンドを受け付けるにはcontrol-socketを指定するとよく、さらに、hooks-librariesを読み込ませると関連コマンドが利用可能に成るようです。
Debian 12 の場合だと、kea-ctrl-agent というパッケージをインストールして、以下の様にするとコマンド(例はlease commands)を受け付けるようになります。
追記:subnet id 2のリースをwipeする場合はこのようになりました。
Debian 12 の場合だと、kea-ctrl-agent というパッケージをインストールして、以下の様にするとコマンド(例はlease commands)を受け付けるようになります。
apt-get install kea-ctrl-agent #/etc/kea/kea-dhcp4.conf { "Dhcp4": { "control-socket": { "socket-type": "unix", "socket-name": "/run/kea/kea4-ctrl-socket" }, "hooks-libraries": [ { "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_lease_cmds.so" } ], --snip #/etc/kea/kea-dhcp6.conf { "Dhcp6": { "control-socket": { "socket-type": "unix", "socket-name": "/run/kea/kea6-ctrl-socket" }, "hooks-libraries": [ { "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_lease_cmds.so" } ], --snipkea-ctrl-agentがインストールされると、/etc/kea/kea-ctrl-agent.confというコンフィグファイルが作成されます。デフォルトでは http://127.0.0.1:8000でコマンドを受け付けているので、例えば以下の様にしてコマンドを送信すると良い様です。
curl -X POST -H "Content-Type: application/json" -d '{ "command": "config-get", "service": [ "dhcp6" ] }' http://127.0.0.1:8000/結果はjson形式で返ってきて、config-getコマンドの場合、human readableな状態ではないので整形して見る必要はありますが、(2024/06/28追記:例えば パイプ渡しで curl 何某 | jq .[]などとすると良いようです。パッケージはapt-get install jqでOKでした。)他にもコマンドが豊富にありそうなので使いこなせると良いなとおもいます。( https://kea.readthedocs.io/en/latest/api.html )
追記:subnet id 2のリースをwipeする場合はこのようになりました。
curl -X POST -H "Content-Type: application/json" -d '{ "service": [ "dhcp6" ], "command": "lease6-wipe", "arguments": { "subnet-id": 2 } }' http://127.0.0.1:8000/curlでファイルに記述したコマンドを実行する場合は、以下の様になります。
$ cat test-command.txt { "service": [ "dhcp6" ], "command": "lease6-wipe", "arguments": { "subnet-id": 2 } } $ curl -X POST -H "Content-Type: application/json" -d @./test-command.txt http://127.0.0.1:8000/今回は以上です。それでは。
コメント
コメントを投稿