2019年2月5日
目次
DNSコンテンツサーバーは、ドメイン名とサーバのIPアドレスを紐付ける機能をもつサーバーです。
DNSコンテンツサーバー自体は自分自身が管理するドメイン名でしか名前解決ができません。
そのため通常は、ホスト側からはDNSキャッシュサーバーをDNSサーバーとして指定します。
BINDはDNSコンテンツサーバーとして機能します。(正確にはDNSキャッシュサーバーとしての機能も持ちますが、キャッシュサーバーとしての性能はUNBOUNDの方がパフォーマンスが良いとされます。)
ここでは通常通り、yumでインストールを行います。
yum install bind
ファイヤウォールを有効化している場合、そのままだと外部からアクセスできなくなってしまうので許可します。
firewall-cmd --permanent --add-services = dns
firewall-cmd --reload
ゾーンファイルを編集してBINDで管理するサーバーの設定を行います。
通常 /etc/named/xxxx.com.zone というファイル名になり管理するドメイン名をゾーンファイルに設定するかと思います。
$TTL 1D
xxx.com. IN SOA dns.xxx.com. admin.xxx.com. (
2018020503
1D
1H
1W
3H)
xxx.com. IN NS dns.xxx.com.
dns.xxx.com. IN A 192.168.32.100
www.xxx.com. IN A 192.168.32.101
ftp.xxx.com. IN CNAME www.xxx.com.
xxx.com. IN MX 10 mail.xxx.com.
yumでインストールした段階でnamed.confは自動的に作成されます。
ここでは名前解決を受け付けるIPと上記で作成したzoneファイルの読込先を指定します。
options {
listen-on port 53 {
127.0.0.1;
192.168.32.70;
}
....
allow-query { any; };
....
recursion no;
....
zone "xxx.com." IN {
type master;
file "/etc/named/xxxx.com.zone"
}
listen-on portでは名前解決を受け付けるホストからのアドレスを指定しています。
今回は、ローカルからの名前解決と外部からの名前解決を受けるけるため、
このDNSサーバー自体のアドレス「192.168.32.70」を指定します。
これがないと外部からこのサーバー自身のアドレス「192.168.32.70」に問い合わせが来ても名前解決の応答を返さなくなります。
allow-query : ここではanyを指定しどこからでも名前解決の問い合わせを受け付けるようにします。
recursion : これは再帰問い合わせを行うかの設定を入れます。DNSコンテンツサーバーでは再帰問い合わせを行わないので、noとします。もしもDNSキャッシュサーバーとしても利用する場合はyesにします。
zone : ここでは先ほど作成したゾーンファイルの読み込み先を指定します。
ちなみにここでtypeでこのDNSコンテンツサーバーをtypeでmasterサーバかslaveサーバか指定することができます。
設定ファイルの作成が問題なくできましたら最後に設定が正しく行われたかの動作確認を行います。
named-checkconf
named-checkzone xxx.com /etc/named/xxx.com.zone
設定ファイルも問題なければサービスのきどうを行います。
また必要ならサービスの永続化も行います。
systemctl start named.service
systemctlis-active named.service
永続化します。
systemctl enable named.service
systemctl is-enable named.service
最後にnslookupコマンドにて名前解決ができているかの確認を行います。
nslookup www.xxx.com 192.168.32.XX
nslookupではドメイン名の後にDNSのサーバーアドレスを指定します。
これで対象のサーバーアドレスが返って来れば問題ありません。