ArchLinux 2018.10.01: DNSサーバのBINDをインストールする

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

1 BINDのインストール

bindパッケージをインストールします。

$ sudo pacman -Sy --noconfirm bind

2 BINDの設定

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

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

2.1 /etc/named.conf

BINDを設定します。

  • プライベートネットワークからの問い合わせのみに応えます。
  • 再帰問い合わせを実行します。
options {
  directory "/var/named";
  pid-file "/run/named/named.pid";
  listen-on { 127.0.0.1; 192.168.11.0/24; };
  recursion yes;
  allow-recursion { 127.0.0.1/32; 192.168.11.0/24; };
  forwarders { 192.168.11.1; };
};

zone "hiroom2.com" IN {
  type master;
  file "hiroom2.com.zone";
};

2.2 /var/named/hiroom2.com.zone

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

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

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

@      IN NS server
server IN A  192.168.11.79
client IN A  192.168.11.87

3 設定の検証

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

$ sudo named-checkconf

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

$ sudo named-checkzone hiroom2.com /var/named/hiroom2.com.zone
zone hiroom2.com/IN: loaded serial 2017062705
OK

4 BINDの起動

BINDを起動します。

$ sudo systemctl enable named
$ sudo systemctl restart named

5 動作確認

以下のコマンドはクライアントで実行します。

/etc/resolv.confでDNSサーバを参照します。

$ cat /etc/resolv.conf
search hiroom2.com
nameserver 192.168.11.79

プライベートネットワークのFQDNも参照できます。

$ ping -c 4 server.hiroom2.com
PING server.hiroom2.com (192.168.11.79) 56(84) bytes of data.
64 bytes from 192.168.11.79 (192.168.11.79): icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from 192.168.11.79 (192.168.11.79): icmp_seq=2 ttl=64 time=0.041 ms
64 bytes from 192.168.11.79 (192.168.11.79): icmp_seq=3 ttl=64 time=0.041 ms
64 bytes from 192.168.11.79 (192.168.11.79): icmp_seq=4 ttl=64 time=0.043 ms

--- server.hiroom2.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3057ms
rtt min/avg/max/mdev = 0.024/0.037/0.043/0.008 ms

再帰問い合わせにより、インターネットの名前解決も可能です。

$ ping -c 4 google.co.jp
<snip>
--- google.co.jp ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 6.897/7.103/7.386/0.190 ms