LoginSignup
1
2

More than 1 year has passed since last update.

Bind9で自前DNSサーバを建ててみる

Last updated at Posted at 2022-07-09

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を見に行くという設定を追加するためのです。

"/etc/bin/named.conf.default-zones"の最後に追加する設定
zone "test.com" {
        type master;
        file "/etc/bind/test.com";
};

サーバの登録

ゾーンファイルtest.comの中にDNSサーバtest.comとWEBサーバwww.test.comを登録します。/etc/bind/test.confを新規に作成し下記の設定を入れます。

"/etc/bind/test.com"を作成する
$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.optionsoptions内に下の設定を追加します。

問い合わせを受け付ける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-validationnoに、listen-on-v6も使えるようにしないと、forwarderが機能しませんでした。

ゾーン転送先を指定する。

IPアドレス192.168.200.100へのみゾーン転送を可能にします。

        allow-transfer { 192.168.200.100; };

おわりに

自分ではここに書いたことは間違いはないとは思っていますが、ミスを発見したら修正します。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2