bind9 の nsupdate を利用して DDNS を構築しようとしているのですが、
さっぱりうまくいきません。
変更点は named.conf の zone のところへ、
allow-update {
127.0.0.1;
};
というのを追加したのみ。
で、nsupdate の man を読んでいたら、debug option を発見したので、
再度いろいろいじくってみました。
% nsupdate -d
> update add test.monochrome.jp 1200 A 192.168.0.1
>
Reply from SOA query:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 65522
;; flags: qr aa rd ra ; QUESTION: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;test.monochrome.jp. IN SOA
;; AUTHORITY SECTION:
monochrome.jp. 0 IN SOA monochrome.jp. root.monochrome.j
p. 2 604800 86400 2419200 604800
Found zone name: monochrome.jp
The master is: monochrome.jp
before getaddrinfo()
Reply from update query:
;; ->>HEADER<<- opcode: UPDATE, status: REFUSED, id: 16370
;; flags: qr ra ; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
よく読んでみると、"Reply from update query" が REFUSED になっています。
原因はわからないが、bind に refuse されてしまっているらしいですねぇ。
@
routing.:
いろいろ調べてみた結果、bind に対して lo interface を使わずに、
tun0 を使って通信しているのが原因のようです。
僕は lo を使って update すると考えていたので、
allow-update {
127.0.0.1;
};
としか書いていませんでした。
ここでは、lo interface を経由して request を送るように、
nsupdate に対して server の設定を加えるようにしたところ、
うまく動くようになりました。
% nsupdate -d
> server 127.0.0.1
> update add test.monochrome.jp 300 A 192.168.0.1
>
Reply from SOA query:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 44994
;; flags: qr aa rd ra ; QUESTION: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;test.monochrome.jp. IN SOA
;; AUTHORITY SECTION:
monochrome.jp. 0 IN SOA monochrome.jp. root.monochrome.j
p. 2 604800 86400 2419200 604800
Found zone name: monochrome.jp
The master is: monochrome.jp
Reply from update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 60340
;; flags: qr ra ; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
@
補足。:
debian の bind9 package の default では、journal file を作るのに失敗するので、
bind の権限で journal file を作ることができるように
% chgrp bind /etc/bind
% chown g+w /etc/bind
としておく必要がありました。
@
参考にしたサイトなど。: