NSD

提供: ArchWiki
ナビゲーションに移動 検索に移動

NSD は自身が管理するドメインだけを解決する、高性能でシンプルなオープンソースのネームサーバーです。

インストール

nsd パッケージをインストールしてください。

BIND から NSD に移行する

DNS サーバーとして BIND を使用している場合、インストールしたパッケージの中に移行ガイドが含まれています:

/usr/share/doc/nsd/NSD-FOR-BIND-USERS

NSD は Unbound と一緒に使用すると良いでしょう。詳しくは Unbound のページを参照してください。

初期設定

大抵の場合、NSD は Unbound などの DNS キャッシュサーバーと組み合わせて使用します。したがって、衝突を防ぐために、DNS キャッシュサーバーではポート 53 を使用するので、以下の設定では NSD で使用するポートを 53530 に設定します。NSD は localhost のリクエストを listen するようになります。さらに、ファイアウォールは外部マシンからの DNS クエリだけを処理できるようにポート 53 だけを開きます。

NSD のサンプル設定ファイルは /etc/nsd/nsd.conf.sample に存在します。設定例:

/etc/nsd/nsd.conf
server:
    server-count: 1
    ip-address: 127.0.0.1
    port: 53530
    do-ip4: yes
    hide-version: yes
    identity: "Home network authoritative DNS"
    zonesdir: "//etc/nsd3"
key:
    name: "keyname"
    algorithm: hmac-md5
    secret: "secretkey"
zone:
    name: "example.com"
    zonefile: "example.com.zone"

詳しくは [1] を見てください。

実行

NSD を起動する前に nsd-checkconf コマンドを使ってゾーンファイルをチェックすることができます。パラメータとしてゾーンファイルの名前を指定してください。

ゾーンファイルや設定ファイルに変更があったときにだけデータベースファイルを再構築するようにするため、以下のコマンドを実行することでゾーンデータベースを作成:

# nsd-control reload

それから nsd.service systemd サービスを起動有効化することで NSD を起動できます。

テスト

以下のコマンドでポート 53530 を使って正引き・逆引きをチェックできます:

$ drill @127.0.0.1 -p 53530 mylocalmachine1.myhomenet.com
$ drill @127.0.0.1 -p 53530 -x w.x.y.z

w.x.y.z は LAN 内のローカルアドレスに置き換えてください。

Unbound の設定

Unbound をキャッシュ再帰サーバーとして実行する場合、unbound.conf に以下のように記述することで、同一ネットワーク上のローカルマシンからのクエリを NSD に転送できます:

do-not-query-localhost: no
local-zone: "example.com" nodefault
domain-insecure: "example.com"
stub-zone:
       name: "example.com"
       stub-addr: 127.0.0.1@53530

unbound.conf に上記の設定を記述したら、Unbound を再起動して NSD のゾーンエントリのローカルクエリが機能することを確認してください。全てテストできたら、unbound.conf に以下のように記述して Unbound がローカルネットワークの外部インターフェイスと 127.0.0.1 を listen するように設定してください:

interface: 127.0.0.1
interface: 10.0.0.1

10.0.0.1 は NSD と Unbound を実行している DNS サーバーの IP アドレスに置き換えてください。

上記の例では IPv4 だけを使用しています。必要ならば IPv6 の設定も追加する必要があります。パラメータに関する詳細は man ファイルを閲覧したりウェブ上を検索してください。

WAN と DNS

listen しているサーバーの設定ファイルやインターフェイスを変更することで、ローカルネットワーク外のマシンからのクエリから LAN 内の特定のマシンにアクセスできるように設定できます。どこからでもアクセスできるようにするウェブサーバーやメールサーバーなどで有用です。