[DNS][ARM] Knot DNS 2.6.7をslaveとして使用してみた。

2018-05-21 10:35:51AIX、UNIX、Linux, Networkarm, authoritative, cz.nic, DNS, docker, knot, linux

Screenshot-2018-5-20 Knot DNS

今まで自宅の環境ではNSD(Master) – NSD(Slave)な環境だったんですけど、少しは変えておきたいなということで、Slaveの1台をKnot DNSに置き換えてみました。

他にもBINDとかPowerDNS Authとかありますけど、BINDはまぁ・・・、PowerDNS Authは、機材がAarch64環境なのと、小さい環境なんで、DB入れたり、そこまで大きな環境を維持するわけではないので大袈裟かと思い、Knot DNSにしました。

web情報

公式ドキュメントはこちら。

sampleなconfと、公式ドキュメントにslaveにする場合の設定例があるので、そちらを参照するとサクッと設定だけは出来ると思います。

確認環境:

knot knotc -V
knotc (Knot DNS), version 2.7.dev.1526708515.edda2249f

設定ファイル

server:
  listen: 0.0.0.0@53
  listen: ::@53
remote:
- id: master
  address: 192.168.1.1@53
acl:
- id: notify_from_master
  address: 192.168.1.1
  action: notify
zone:
- domain: example.com
  storage: /var/lib/knot/zones/
  # file: example.com.zone # Default value
  master: master
  acl: notify_from_master

セクションごとに設定値を入れていくという感じですね。

POINT

  • server句は、設定するサーバ自身の設定について。割り当てるインターフェースとか、実行ユーザーとかですね
  • remote句は、対応する先の指定になるでしょうか
  • acl句は、そのままAccess Control Listですね。今回はSlaveなので、対応するMasterからアクセスを許す場合の設定を行います
  • zone句は、実際に転送してもらうゾーンについての記述になると思います。ここではStorageを指定していますが、fileにすることもできます。masterとaclは転送元のMasterを指定する感じです。これは上で設定したものを引き継いで設定する感じになります。

いくつかのコマンド

んで適用前に以下のコマンドを実行することで、confファイルのエラーをチェックできます。

$ knotc conf-check
Configuration is valid

問題がなかったら以下のコマンドを実行して適用。Knot DNSを使って初めて知ったのですが、基本的にサービスを止めたりする必要がないんですね・・・

$ knotc reload
Reloaded

ちなみに設定を動的に追加して、設定前のパラメータとdiffして、問題がなかったらcommitして、みたいなオペレーションについては、ドキュメントに書いてあります。

状態の確認

稼働中の状態については以下のコマンドなどで確認できます。

$ knotc status
Running
$ knotc zone-status
[1.168.192.in-addr.arpa.] role: slave | serial: 2018010501 | transaction: none | freeze: no | refresh: +23m30s | update: not scheduled | expiration: +6D23h23m30s | journal flush: not scheduled | notify: not scheduled | DNSSEC re-sign: not scheduled | NSEC3 resalt: not scheduled | parent DS query: not scheduled
[kometch.local.] role: slave | serial: 2018010501 | transaction: none | freeze: no | refresh: +53m42s | update: not scheduled | expiration: +6D23h53m42s | journal flush: not scheduled | notify: not scheduled | DNSSEC re-sign: not scheduled | NSEC3 resalt: not scheduled | parent DS query: not scheduled 
$ knotc zone-memstats
[1.168.192.in-addr.arpa.] 19 records, 0.0 MiB memory
[kometch.local.] 32 records, 0.0 MiB memory Total 0.0 MiB memory 
$ knotc stats
server.zone-count = 3
mod-rrl.slipped = 0
mod-rrl.dropped = 0
mod-stats.request-protocol[udp4] = 922
mod-stats.server-operation[query] = 922
mod-stats.request-bytes[query] = 33566
mod-stats.response-bytes[reply] = 41794
mod-stats.response-code[NOERROR] = 374
mod-stats.response-code[REFUSED] = 548

とりあえず入れてみただけなので、もう少し使い続けてみようと思います。

ネットワーク超入門講座 第4版
三上 信男
SBクリエイティブ
売り上げランキング: 3,781
絵で見てわかるOS/ストレージ/ネットワーク 新装版
翔泳社 (2019-09-27)
売り上げランキング: 55,003

2018-05-21 10:35:51AIX、UNIX、Linux, Networkarm, authoritative, cz.nic, DNS, docker, knot, linux