More than 1 year has passed since last update.

NSDとは

NSDはシンプルかつ高速なオープンソースのDNSコンテンツサーバです。
DNSサーバとしてはBINDが有名ですが、それに対してパフォーマンス、サイズ、設定の面で軽量なのが利点になります。

なお、DNSキャッシュサーバとしての機能はありませんが、同じ開発元によるUnboundが利用できます。

目標と準備

目標

IPv4に限定した、正引きと逆引きを行えるごく基礎的なDNSコンテンツサーバを立ち上げます。

環境

さくらVPS + ArchLinux

準備

ArchLinuxはインストール済みで、インターネットまわりの設定も終わっているものとします。
設定例ではドメインを example.com 、IPアドレスを 100.150.200.250 とします。

インストールと設定

インストール

pacman -Sy nsd

NSDの設定

設定サンプルをコピーして使います。

cp /etc/nsd/nsd.conf.sample /etc/nsd/nsd.conf

nano /etc/nsd.conf

do-ip6: no

zonesdir: "/etc/nsd/zone"

//正引き
zone:
  name: “example.com”
  zonefile: “example.com.zone”

//逆引き
zone:
  name: 200.150.100.in-addr.arpa
  zonefile: 200.150.100.in-addr.arpa.zone

IPアドレスを反転させたものを逆引きのゾーンとして使います。

ゾーンファイルの設定

RFCで規定されたゾーンファイルになります。BINDで使用しているものも使えるはずです。

mkdir /etc/nsd/zone

正引きゾーンファイル

nano /etc/nsd/zone/example.com.zone

$TTL 3600

@ IN SOA ns.example.com. root.example.com. (
        201xxxxx ;Serial 有効な開始日
        3600 ;Refresh
        900 ;Retry
        3600000 ;Expire
        3600 ) ;Minimum
IN NS ns.example.com. ;ネームサーバー
example.com. IN MX 10 mail.example.com. ;メールサーバー
@ IN A 100.150.200.250
mail IN A 100.150.200.250

逆引きゾーンファイル

nano /etc/nsd/zone/200.150.100.in-addr.arpa.zone

$TTL 3600
@ IN SOA ns.example.com. root.example.com. (
       201xxxxx ;Serial
        3600 ;Refresh
        900 ;Retry
        3600000 ;Expire
        3600 ) ;Minimum
IN NS ns.example.com.
IN A 255.255.254.0 ;サブネットマスク
100 IN PTR ns.example.com.
100 IN PTR mail.example.com.

NSDの起動

systemctl start nsd
systemctl enable nsd