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