DNS(ddns.example.jp)サーバーもDHCPサーバーも1台で兼任させる。ActiveDirectory(ad.example.jp)に関するクエリはドメインコントローラーにフォワードさせる。
・ Ubuntu: 22.04.4 ・ bind: 9.13.6 ・ isc-dhcp-server: 4.4.1
DNSサーバーの設定
bindから設定、パッケージをインストールする。
# apt install bind9
オプション設定ファイルを変更または追記する。
options {
directory "/var/cache/bind";
…
// 自分で名前解決できないときの丸投げ先
forwarders {
192.168.1.254;
8.8.8.8;
};
…
// DNSSECは検証してくれるDNSサーバーにフォワードするなら無効にしてもいい
dnssec-validation auto;
validate-except {
"ad.example.jp";
};
…
// IPv6を無効化
listen-on-v6 { none; };
…
// LAN内からの問い合わせを許可
allow-query {
localhost;
192.168.1.0/24;
};
};
ローカル設定ファイルに追記する。
zone "ddns.example.jp." {
type master;
file "ddns.example.jp.zone";
// 自身からの変更を許可
allow-update {
localhost;
};
};
zone "ad.example.jp." {
type forward;
forward only;
forwarders {
192.168.1.12;
};
};
さっき指定したzoneファイルを作成する。
※”admin.ddns.example.jp.”は”admin@ddns.example.jp”という管理者のE-mailという意味らしい
$TTL 86400
@ IN SOA sv.ddns.example.jp. admin.ddns.example.jp. (
2024071501
10800
36400
604800
86400
)
IN NS sv.ddns.example.jp.
sv IN A 192.168.1.11
作成したらファイルの所有者をbindに変更する。
# chown bind:bind /var/cache/bind/ddns.example.jp.zone
サービスを有効にして起動。
# systemctl enable --now named
DHCPサーバーの設定
パッケージをインストールする。
# apt install isc-dhcp-server
設定ファイルで下記の箇所を変更する。
…
# DNSサーバーに更新要求を送信する設定
ddns-update-style interim;
…
# 普通のDHCPの設定
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.101 192.168.1.120;
option routers 192.168.1.254;
option domain-name "ddns.example.jp";
option domain-name-servers 192.168.1.11;
# 更新を通知するDNSサーバーを指定
zone ddns.example.jp. {
primary localhost;
}
}
サービスを有効にして起動。
# systemctl enable --now isc-dhcp-server
補足
現在のDNSレコードの確認
rndcでdumpして現在のDNSレコードを確認する。
# rndc dumpdb -zones # less /var/cache/bind/named_dump.db
DNSレコードの更新テスト
nsupdateを使用してDNSサーバーを更新をテストするにはbind-utilsをインストールし、nsupdateコマンドを実行する。実行したら対話型コンソールになるので下記のような感じで入力する。何もエラーが出なければOK。
※INはインターネットの意味らしいが未指定でも問題ない
>server 127.0.0.1 >update add test.ddns.example.jp. 3600 IN A 192.168.1.222 >send >server 127.0.0.1 >update delete test.ddns.example.jp. IN >send
DNSレコードの削除
まれにDNSレコードのIPアドレスが一切更新されなくなるクライアントがある。nsupdateコマンドを実行して古いDNSレコードを削除するとそのうち直る。
>server 127.0.0.1 >update delete test.example.jp. >send