2022年3月9日水曜日

DynamicDNS - 2.権威DNSサーバの設定

DynamicDNSについての連載2回目。
権威DNSサーバの設定について。
ここでは既にドメイン"sample.com"を所有していて、
そのドメインを管理する権威DNSサーバを運用中であるとします。
またDynamicDNSで更新するホスト名は
特定のサブドメイン"ddns.sample.com"に属することとし、
更新対象のとあるデバイスの
ホスト名を"saturn.ddns.sample.com"とすることにします。
サブネット"ddns.sample.com"の権威DNSサーバが
運用できるサーバ(Ubuntu 16.04+bind9)は既にあるものとします。

最初に"sample.com"を管理する権威DNSサーバに
"ddns.sample.com"の管理を移譲する設定を行ないます。
移譲先は"ddns.sample.com"の権威DNSサーバで、
それを"ns.sample.com"とするならbind9での標準では
適切なゾーンファイルの適切な位置に
ddns            IN   NS   ns.sample.com.
を追加するようなことになります。
もちろん"ns.sample.com"はDNS引き出来ることが前提です。
もしどこかのホスティングサービスを利用しているなら、
そこの解説に従ってください。

次に"ddns.sample.com"の移譲先である
"ns.sample.com"DNSサーバの設定です。
設定ファイル"/etc/bind/named.conf"に
zone "ddns.sample.com" {
        type master;
        file "/etc/bind/db.ddns.sample.com";
        allow-update { key ddns-sample-com.; };
};
を追加します。
またファイル"/etc/bind/db.ddns.sample.com"を作成し、
内容を以下のようにします。
$ORIGIN .
$TTL 604800
ddns.sample.com	IN SOA	ns.ddns.sample.com. admin.sample.com. (
				1         ; serial
				604800     ; refresh (1 week)
				86400      ; retry (1 day)
				2419200    ; expire (4 weeks)
				604800     ; minimum (1 week)
				)
			NS	ns.sample.com.
次いで
# rndc-confgen -r /dev/urandom -b 256
を実行するとメッセージが出力されるので、
# Use with the following in named.conf, adjusting the allow list as needed:
# End of named.conf
に挟まれた数行を設定ファイル"/etc/bind/named.conf"の先頭に追加します。
その際各行の先頭の'#'は削除ください。
追加するのはだいたい以下のようなものでしょう。
key "rndc-key" {
	algorithm hmac-md5;
	secret "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
};

controls {
	inet 127.0.0.1 port 953
		allow { 127.0.0.1; } keys { "rndc-key"; };
};
さらに
# dnssec-keygen -r /dev/urandom -a HMAC-SHA256 -b 128 -n HOST ddns-sample-com
を実行すると"Kddns-sample-com.+123+45678.key"と
"Kddns-sample-com.+123+45678.private"のような2つのファイル
(実際のファイルは数字部分が異なります)が得られるので、
拡張子がprivateの中身の
Algorithm: 163 (HMAC_SHA256)
Key: xxxxxxxxxxxxxxxxxxxxxx== 
のような行を参考にして、
設定ファイル"/etc/bind/named.conf"の先の追加に続けて
key "ddns-sample-com." {
        algorithm hmac-sha256;
        secret "xxxxxxxxxxxxxxxxxxxxxx==";
};
のように追加します。
その後
# chmod g+w /etc/bind/
# /etc/init.d/bind9 restart
を実行すれば完了です。

0 件のコメント:

コメントを投稿