このページはリンク切れを生じないために残してありますが、内容は古くなっています。バージョン2.4.0については別ページを作りました。併せてご覧下さい。
いろいろ
interface
この状態でnetstatすると
$ netstat -a | grep :domain
$
localhostにすらbind()していません。
knot.confにinterfaces{}を書き足して
interfaces {
any {
address 0.0.0.0;
}
}
zones {
example.jp {
file "/proj/knot-1.3.1/etc/namedb/primary/example.jp";
}
}
起動してみると
/usr/bin/sudo /proj/knot-1.3.1/sbin/knotd
2013-09-14T12:26:57 Using '/proj/knot-1.3.1/etc/knot/knot.conf' as default configuration.
2013-09-14T12:26:57 Reading configuration '/proj/knot-1.3.1/etc/knot/knot.conf' ...
2013-09-14T12:26:57 Knot DNS 1.3.1 starting.
2013-09-14T12:26:57 Binding to interface 0.0.0.0 port 53.
2013-09-14T12:26:57 Configured 1 interfaces and 1 zones.
2013-09-14T12:26:57 Server started in foreground, PID = 10538
2013-09-14T12:26:57 Server running without PID file.
2013-09-14T12:26:57 Loading 1 zones...
2013-09-14T12:26:57 Loaded zone 'example.jp.' serial 1
2013-09-14T12:26:57 Loaded 1 out of 1 zones.
2013-09-14T12:26:57 Starting server...
2013-09-14T12:26:57 Binding remote control interface to /proj/knot-1.3.1/var/run/knot/knot.sock
0.0.0.0にbind()しました。netstatでも確認してみます。
$ netstat -a | grep :domain
tcp 0 0 *:domain *:* LISTEN
udp 0 0 *:domain *:*
user
特権を放棄させるための設定を追加してみます。
system {
user knot;
}
interfaces {
ANY {
address 0.0.0.0;
}
}
zones {
example.jp {
file "/proj/knot-1.3.1/etc/namedb/primary/example.jp";
}
}
-dオプションをつけて起動してみると
$ /usr/bin/sudo /proj/knot-1.3.1/sbin/knotd -d
/var/log/syslogに
Sep 14 12:33:54 lars knot[10582]: [warning] Storage directory '/proj/knot-1.3.1/var/db/knot' is not writeable.
と出力されていて、errorではなくwarningなんですがknotdのプロセスは動作していません。
$ ps auxww | grep knotd | grep -v grep
$
/proj/knot-1.3.1/var/db/knotをユーザknotに書き込めるようにして
$ /usr/bin/sudo chown knot /proj/knot-1.3.1/var/db/knot
もう1度起動してみます。すると、さっきのwarningは解消しましたが、新しく
Sep 14 12:44:16 lars knot[10597]: [error] Couldn't create a PID file '/proj/knot-1.3.1/var/run/knot/knot.pid'.
というerrorが出ました。/proj/knot-1.3.1/var/run/knotもユーザknotに書き込めるようにして
$ /usr/bin/sudo chown knot /proj/knot-1.3.1/var/run/knot
起動してみます。
$ ps auxww | grep knotd | grep -v grep
knot 10604 0.0 0.0 32428 1992 ? Ssl 12:48 0:00 /proj/knot-1.3.1/sbin/knotd -d
今度は無事起動しました。
class CH
identityとversionをonにしてみました。
system {
user knot;
identity on;
version on;
}
interfaces {
ANY {
address 0.0.0.0;
}
}
zones {
example.jp {
file "/proj/knot-1.3.1/etc/namedb/primary/example.jp";
}
}
$ /proj/knot-1.3.1/bin/kdig @localhost version.bind TXT CH
; Warning: response timeout for ::1#53(UDP)
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 50904
;; Flags: qr rd; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 0
;; QUESTION SECTION:
;; version.bind. 0 CH TXT
;; ANSWER SECTION:
version.bind. 0 CH TXT "Knot DNS 1.3.1"
;; Received 57 B
;; Time 2013-09-14 12:59:09 JST
;; From 127.0.0.1#53(UDP) in 3.6 ms
この環境でv6が有効になっていないので::1がタイムアウトしてしまいました。
追記
…と書いておいたら、他ならぬCZ.nicのMarekさんからじきじきに日本語で(!)
"[::]"の"interface"をいれましょう。
というメールをいただきました。
interfaces {
ANY {
address 0.0.0.0;
}
IN6ADDR_ANY {
address [::];
}
}
という設定にして、kdigの問い合わせ先をlocalhostにしても::1にしてもタイムアウトしなくなったことを確認しました。
追記ここまで
今度は127.0.0.1で指定してみます。
$ /proj/knot-1.3.1/bin/kdig @127.0.0.1 hostname.bind TXT CH
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 61437
;; Flags: qr rd; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 0
;; QUESTION SECTION:
;; hostname.bind. 0 CH TXT
;; ANSWER SECTION:
hostname.bind. 0 CH TXT "lars.kkdlabs.jp"
;; Received 59 B
;; Time 2013-09-14 13:03:38 JST
;; From 127.0.0.1#53(UDP) in 0.1 ms
$ /proj/knot-1.3.1/bin/kdig @127.0.0.1 id.server TXT CH
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 44970
;; Flags: qr rd; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 0
;; QUESTION SECTION:
;; id.server. 0 CH TXT
;; ANSWER SECTION:
id.server. 0 CH TXT "lars.kkdlabs.jp"
;; Received 55 B
;; Time 2013-09-14 13:04:33 JST
;; From 127.0.0.1#53(UDP) in 0.1 ms
version.bind、hostname.bind、id.serverに、それぞれ答えるようになりました。
Copyright(c) 2013 Koh-ichi Ito, All rights reserved
ページ先頭のアイコン: Copyright(c) 2017 いらすとや, All rights reserved.
Last update: $Date: 2019-08-16 11:45:02 +0900 (Fri, 16 Aug 2019) $
[起動へ|indexへ]