前提
- Ubuntu 22.04
- Kea 2.2.0
Kea DHCPをインストールする
ISC公式が用意しているリポジトリからKeaをインストールしてください。
2022/12/26日時点で、 https://cloudsmith.io/~isc/repos/ で公開されており、 最新バージョンである2.2.0はこちらからアクセスできます。
Samba AD DCと連携させる
Samba AD DCのDNS機能を使い、DDNS風の動作をさせる例です。
設定スクリプトの準備
dhcp-dyndns.sh
を
/etc/kea/kea-dhcp-dyndns.sh
に保存してください。
また、スクリプト内の設定を必要に応じて変更してください。
hooks librariesの設定をする
下記のような設定を投入してください。
"hooks-libraries": [
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_run_script.so",
"parameters": {
"name": "/etc/kea/kea-dhcp-dyndns.sh",
"sync": false
}
}
]
ドメインに参加させる
必要パッケージをインストールする
apt install winbind krb5-user samba
net
コマンドが実行できれば成功です。
smb.conf
を記述する
[global]
kerberos method = secrets and keytab
realm = YOUR.DOMAIN.EXAMPLE.COM
workgroup = YOUR
security = ads
参加コマンドを打つ
Administratorユーザで参加する場合は下記のコマンドで参加できます。
net ads join -U Administrators
DNS編集ユーザを作る
パスワードは利用しないのでランダムで設定。
ユーザ名と説明文はお好みで。
samba-tool user create dhcpduser --random-password --description='Unprivileged user for DNS updates via ISC DHCP server'
samba-tool user setexpiry dhcpduser --noexpiry
samba-tool group addmembers DnsAdmins dhcpduser
keytabを出力
Samba AD DCが動いているマシン上で下記のコマンドを実行し、
dhcpduser.keytab
を入手します。
samba-tool domain exportkeytab [email protected] dhcpduser.keytab
入手したkeytabファイルはDHCPサーバの/etc/dhcpduser.keytab
にコピーしてください。
権限の設定を忘れずに行ってください。
HA構成を作る
前提パッケージをインストールする
apt install isc-kea-ctrl-agent
リモート接続設定を変更する
/etc/kea/kea-ctrl-agent.conf
を編集します。
http-host
を0.0.0.0
(もしくは適切な値)に変更してください。
HA設定を追加する
下記の設定を適宜変更して投入する。
libdhcp_lease_cmds
を入れないと正常に動かない(リース情報を共有できない)ので注意。
"hooks-libraries": [
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_lease_cmds.so",
"parameters": { }
},
{
"library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_ha.so",
"parameters": {
"high-availability": [{
"this-server-name": "dhcp01",
"mode": "load-balancing",
"heartbeat-delay": 10000,
"max-response-delay": 10000,
"max-ack-delay": 5000,
"max-unacked-clients": 5,
"peers": [{
"name": "dhcp01",
"url": "http://17.0.1.1:8000/",
"role": "primary",
"auto-failover": true
}, {
"name": "dhcp02",
"url": "http://17.0.2.1:8000/",
"role": "secondary",
"auto-failover": true
}]
}]
}
}
]