Ubuntu 18.04: DNSサーバのBINDをインストールする

BINDをインストールして、プライベートネットワーク向けにDNSサーバを立ち上げます。

1 BINDのインストール

aptでbind9パッケージをインストールします。

sudo apt-get install -y bind9

2 BINDの設定

以下の環境でBINDを設定します。

  • プライベートネットワークは192.168.11.0/24です。
  • プライベートネットワークのドメイン名はhiroom2.comです。
  • DNSサーバのアドレスは192.168.11.70です。再帰問い合わせを実行します。
  • クライアントのアドレスは192.168.11.250です。
  • インターネットのDNSサーバは192.168.11.1です。

2.1 /etc/bind/named.conf.options

BINDのオプションを設定します。

  • プライベートネットワークからの問い合わせのみに応えます。
  • 再帰問い合わせを実行します。
  • ufwを動かしている場合は53/tcpと53/udpを開放してください。
options {
  directory "/var/cache/bind";
  listen-on port 53 { localhost; 192.168.11.0/24; };
  allow-query { localhost; 192.168.11.0/24; };
  forwarders { 192.168.11.1; };
  recursion yes;
}

2.2 /etc/bind/named.conf.local

このプライベートネットワーク向けの設定ファイルは/etc/bind/named.confからインクルードされます。

$ cat /etc/bind/named.conf.local
zone "hiroom2.com" IN {
  type master;
  file "hiroom2.com.zone";
};

2.3 /var/cache/bind/hiroom2.com.zone

プライベートネットワークのゾーンファイルです。

  • DNSサーバのホスト名はserverです。
  • クライアントのホスト名はclientです。
  • プライベートネットワーク内にある他のマシンを登録するにはAレコードを適時追加していきます。
$TTL 86400

@ IN SOA hiroom2.com root.hiroom2.com (
  2018050600
  3600
  900
  604800
  86400
)

@      IN NS server
server IN A  192.168.11.70
client IN A  192.168.11.250

3 設定の検証

named-checkconfで/etc/bind/named.confを検証します。

$ /usr/sbin/named-checkconf

named-checkzoneでzoneファイルを検証します。

$ /usr/sbin/named-checkzone hiroom2.com /var/cache/bind/hiroom2.com.zone
zone hiroom2.com/IN: loaded serial 2018050600
OK

4 BINDの起動

systemctlで起動します。

sudo systemctl enable bind9
sudo systemctl restart bind9

5 動作確認

サーバ上にてnslookupで確認します。

$ nslookup server.hiroom2.com localhost.localdomain
Server:         localhost.localdomain
Address:        ::1#53

Name:   server.hiroom2.com
Address: 192.168.11.70

クライアント上にてnslookupで確認します。

$ nslookup client.hiroom2.com 192.168.11.70
Server:         192.168.11.70
Address:        192.168.11.70#53

Name:   client.hiroom2.com
Address: 192.168.11.250