Bind9を使ってDNSサーバを建ててみました。その時のメモを残します。
(実際サーバを立ててみると、うまくいかない時もあったので、参考程度と思って読んでください)
Bind9のインストール
Bind9をインストールするには、下のコマンドを使います。
$ sudo apt install bind9
インストールが正常に終わったことの確認も含め、バージョン確認を行います。
$ named -v
BIND 9.18.1-1ubuntu1.1-Ubuntu (Stable Release) <id:>
ゾーンの登録
自分が管理しているゾーンtest.com
を登録するために、下記の設定を/etc/bin/named.conf.default-zones
に追記します。これはゾーンtest.com
の問い合わせが来た時に/etc/bind.test.com
を見に行くという設定を追加するためのです。
zone "test.com" {
type master;
file "/etc/bind/test.com";
};
サーバの登録
ゾーンファイルtest.com
の中にDNSサーバtest.com
とWEBサーバwww.test.com
を登録します。/etc/bind/test.conf
を新規に作成し下記の設定を入れます。
$TTL 604800
@ IN SOA test.com. root.test.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS test.com.
@ IN A 192.168.100.100
www IN A 192.168.100.200
設定が正しいか下のコマンドで確認します。なお、正しい場合は何も出力されません。
$ named-checkconf
名前解決の確認を行う
下のコマンドでBind9を起動します。(設定ファイルを書き換えただけでは、起動中のサービスに反映されません)
$ sudo service named satrt
nslookup
で名前解決を行います。
$ nslookup test.com
............
Name: test.com
Address: 192.168.100.100
$ nslookup www.test.com
............
Name: www.test.com
Address: 192.168.100.200
最後に自動起動する設定をします。
$ sudo systemctl enable named
セキュリティ設定を行う
必要に応じて/etc/bind/named.conf.options
のoptions
内に下の設定を追加します。
問い合わせを受け付けるIPアドレスを指定する。
IPアドレス192.168.100.0/24
からのクエリのみ許可します。
allow-query { 192.168.100.0/24; };
再帰的問い合わせを受け付けるIPアドレスを指定する。
IPアドレス192.168.100.0/24
からのクエリのみ許可します。今回は再帰問い合わせ先を192.168.200.100
に指定しています。
allow-recursion { 192.168.100.0/24; };
forwarders {
192.168.200.100;
};
dnssec-validation no;
listen-on-v6 { any; };
dnssec-validation
をno
に、listen-on-v6
も使えるようにしないと、forwarderが機能しませんでした。
ゾーン転送先を指定する。
IPアドレス192.168.200.100
へのみゾーン転送を可能にします。
allow-transfer { 192.168.200.100; };
おわりに
自分ではここに書いたことは間違いはないとは思っていますが、ミスを発見したら修正します。