OpenSUSE 13: bindをインストールする

内部ネットワークにあるマシンのホスト名解決のためのDNSサーバを立ち上げます。外部ネットワークの再起問い合わせは実行しません。

1 本項の環境

内部ネットワークのネットワークアドレスは192.168.11.0/24、DNSサーバを立ち上げるマシンのアドレスは192.168.11.84、内部ネットワークのクライアントは192.168.11.128です。内部ネットワーク名はmy.netです。

2 bindのインストール

bindをインストールし、namedを有効にします。

> sudo zypper -n in bind
> sudo systemctl enable named

3 bindの設定

OpenSUSE 13のbindではzoneファイルがデフォルトで/var/lib/named/に格納されます。

3.1 /etc/named.conf

my.netの名前解決にmy.net.zoneを利用します。

> diff -uprN /etc/named.conf{.org,}
--- /etc/named.conf.org 2017-01-03 13:11:57.821147766 +0900
+++ /etc/named.conf     2017-01-03 15:05:00.558054848 +0900
@@ -149,6 +149,10 @@ zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.
     file "127.0.0.zone";
 };

+zone "my.net" in {
+    type master;
+    file "my.net.zone";
+};

 # Include the meta include file generated by createNamedConfInclude.  This
 # includes all files as configured in NAMED_CONF_INCLUDE_FILES from

3.2 /var/lib/named/my.net.zone

自身が持つ192.168.11.84をserverというホスト名でNSとして登録し、内部ネットワーク内にある192.168.11.128のマシンをclientというホスト名で登録します。内部ネットワーク内にある他のマシンを登録するにはAレコードを適時追加していきます。

> cat /var/lib/named/my.net.zone
$TTL 86400

@ IN SOA my.net root.my.net (
  2017010302
  3600
  900
  604800
  86400
)

@      IN NS server
server IN A  192.168.11.84
client IN A  192.168.11.128

3.3 設定の検証

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

> named-checkconf

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

> named-checkzone my.net /var/lib/named/my.net.zone
zone my.net/IN: loaded serial 2017010302
OK

4 ポートの開放

bindという設定ファイルを利用します。

> firewall_open_service()
{
  for t in FW_CONFIGURATIONS_EXT FW_CONFIGURATIONS_DMZ FW_CONFIGURATIONS_INT; do
    sudo sed -e "s/^${t}=\"\(.*\)\"/${t}=\"\1 $1\"/g" \
         -i /etc/sysconfig/SuSEfirewall2
  done
  sudo systemctl restart SuSEfirewall2
}
> firewall_open_service bind
> sudo systemctl restart SuSEfirewall2

5 namedの起動

設定が完了したのでnamedを起動します。systemctlで起動します。

> sudo systemctl restart named

6 動作確認

内部ネットワーク向けのDNSサーバ192.168.11.84と外部ネットワーク向けのDNSサーバ192.168.11.1を/etc/resolv.confに記載します。

> cat /etc/resolv.conf
<snip>
search my.net
nameserver 192.168.11.84
nameserver 192.168.11.1

pingで応答を確認します。/etc/resolv.confにsearchがあるので.my.netは省略可能です。

> ping -c 4 client.my.net
PING client.my.net (192.168.11.128) 56(84) bytes of data.
64 bytes from 192.168.11.128: icmp_seq=1 ttl=64 time=0.041 ms
64 bytes from 192.168.11.128: icmp_seq=2 ttl=64 time=0.028 ms
64 bytes from 192.168.11.128: icmp_seq=3 ttl=64 time=0.057 ms
64 bytes from 192.168.11.128: icmp_seq=4 ttl=64 time=0.051 ms

--- client.my.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.028/0.044/0.057/0.011 ms
> ping -c 4 server.my.net
PING server.my.net (192.168.11.84) 56(84) bytes of data.
64 bytes from 192.168.11.84: icmp_seq=1 ttl=64 time=0.563 ms
64 bytes from 192.168.11.84: icmp_seq=2 ttl=64 time=0.670 ms
64 bytes from 192.168.11.84: icmp_seq=3 ttl=64 time=0.615 ms
64 bytes from 192.168.11.84: icmp_seq=4 ttl=64 time=0.618 ms

--- server.my.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.563/0.616/0.670/0.045 ms