bind 9.2.2rc1 で DynamicDNS
2003-05-04 作成 福島
2021-07-20 更新 福島
TOP > tips > ddns
1. named.conf を変更
Server$ su
Server# vi /etc/named.conf
zone "example.jp" {
	type master;
	file "dnsinfo/example.jp";
	allow-update {             // nsupdate コマンドを実行するホストの IP アドレスを記述する
		127.0.0.1;
		192.168.1.0/24;
		} ;
};
SOA (Start Of Authority) レコードを確認
(コマンド nsupdate は、標準で SOA のサーバに問い合わせます)
Server# head /var/named/dnsinfo/example.jp
example.jp. 1H IN SOA soa.example.jp. postmaster.soa.example.jp. (
...
...
対象ディレクトリの named の書き込み権限を確認
Server# ls -l /var/named
drwxrwx---    3 root     named        4096  5月  4 12:11 dnsinfo
コマンド nsupdate を実行すると、
1. ファイル /var/named/dnsinfo/example.jp が変更される。
2. ファイル /var/named/dnsinfo/example.jp.jnl が自動的に作成される。
bind を再起動 (named.conf を変更したため)
Server# /etc/rc.d/init.d/named restart

2. 動作確認
2-1. クライアントから操作
test.example.jp を 192.168.2.5 として追加/削除してみる --- (1)
Client$ nsupdate
> server 192.168.1.2   # DNS サーバを指定する場合
> update add test.example.jp. 60 in a 192.168.2.5
> update delete test.example.jp.
> send            # send コマンドか空行で確定します。(ファイル入力の場合、空行は不要)
> quit
デバッグモードで操作
Client$ nsupdate -d

更新を確認 ((1) では追加と削除を一度に行っているので、実は登録が無い。
Client$ nslookup test.example.jp soa.example.jp
Server:  soa.example.jp
Address:  192.168.1.2
Aliases:  2.1.168.192.in-addr.arpa

*** soa.example.jp can't find test.example.jp: Non-existent host/domain
2-2. サーバでログを確認
(1) の実行ログ (add と delete 両方のログが表示されている)
Server$ tail /var/log/messages
May  4 12:18:51 ns named[26664]: client 192.168.2.5#1060: updating zone 'example.jp/IN': adding an RR
May  4 12:18:51 ns named[26664]: client 192.168.2.5#1060: updating zone 'example.jp/IN': delete all rrsets from a name