NSDを構築してみた。
動作環境
- Virtualbox 6.0
- Alpine Linux
- Network
- NAT
- ホストオンリーアダプタ
サーバー | IPアドレス |
---|---|
NSD | 192.168.57.2 |
HTTP | 192.168.57.151 |
NSD側
パッケージのインストール
apk add nsd
IPアドレスの設定
/etc/network/interfaces
に以下を追記します。
auto eth1
iface eth1 inet static
address 192.168.57.2
netmask 255.255.255.0
/etc/resolv.conf
の変更
ローカルからnslookup
コマンドで確認を取りたい場合は変更します。
nameserver 192.168.57.2
/etc/nsd/nsd.conf
の設定
NSDの設定をします。
server:
ip-address: 192.168.57.2
port: 53
do-ip4: yes
do-ip6: no
zonesdir: "/etc/nsd/zone"
remote-control:
control-enable: no
zone:
name: "example.com"
zonefile: "example.com.zone"
zone:
name: "57.168.192.in-addr.arpa"
zonefile: "example.com.rev"
正引きのゾーンファイルの作成
/etc/nsd/zone/example.com.zone
を作成します。
$TTL 3600
$ORIGIN example.com.
@ IN SOA ns.example.com. mail.example.com. (
; 2019052601; Serial
; 3600; Reflesh
; 900; Retry
; 3600000; Expire
; 3600 ; Minimum
)
test IN A 192.168.57.151
NSDの起動
/etc/init.d/nsd start
動作の確認
Test 1 ローカルから
ローカルマシンからの以下のコマンドを実行し、登録した名前が解決されるのか確認します。
drill test.example.com @192.168.57.2
ANSWER SECTION
に登録した名前が反映されていれば成功です。
Test 2 外部から
他のマシンから先ほどと同様のテストを行います。
ホストマシンからでも、ゲストマシンからでも、どちらでも構いません。
逆引きのゾーンファイルの作成
/etc/nsd/zone/example.com.rev
を作成します。
$TTL 3600
$ORIGIN 57.168.192.in-addr.arpa
@ IN SOA ns.example.com. mail.example.com. (
; 2019052601; Serial
; 3600; Reflesh
; 900; Retry
; 3600000; Expire
; 3600 ; Minimum TTL
)
151 IN PTR test.example.com.
動作の確認
正引きのゾーンファイルを作成したときと同じテストを行います。今回のコマンドは次のとおりになります。
drill -o rd @192.168.57.2 -x 192.168.57.151
サービスの登録
仮想マシンを立ち挙げた時にNSDも同時に立ち上がってほしいので、サービスを有効化します。
rc-update add nsd
テスト用HTTPサーバ
動作環境
- Lubuntu
- ネットワークアダプター2
- ホストオンリーアダプタ
パッケージのインストール
apt install apache2
IPアドレスの設定
/etc/systemd/network/50-enp0s8.network
を新しく作成し、次のとおりに書き込みます。
[Match]
Name=enp0s8
Virtualization=yes
[Address]
Address=192.168.57.151/24
書き込んだ後、サービスを有効化し、起動します。
systemctl start systemd-networkd
systemctl enable systemd-networkd
HTTPサーバの起動
systemctl start apache2
起動の確認
他のマシンから次のコマンドを実行します。
wget http://192.168.57.151
カレントディレクトリにindex.html
がダウンロードされていれば、起動は成功しています。
確認:NSDが機能しているか
別のマシンの/etc/resolv.conf
を次のとおりに書き換えます。
nameserver 192.168.57.2
そして、次のコマンドを実行します。
wget http://test.example.com -O url-to-addr.html
ファイルがダウンロードされていれば、成功しているでしょう。