CentOS7.7にDNSサーバの設定を行います。
最終的には同一セグメント内の別サーバからDNS解決するまでを目標とします。
#1.DNSパッケージインストール(bind,bind-utils)
DNSサーバ用のパッケージとして、bindをインストールします。
また、DNS系コマンド(nslookup等)向けに、bind-utilsをインストールします。
# yum install bind
《中略》
完了しました!
# yum install bind-utils
《中略》
完了しました!
#2.DNS設定ファイル編集(/etc/named.conf)
デフォルトから一部のみ変更しています。
設定部 | 設定項目 | 内容 | 意味 |
---|---|---|---|
options | listen-on | 53 { 192.168.142.31; }; | 自身のDNS-NWインターフェースの指定 |
allow-query | 192.168.142.0/24 | DNS問合せ元のホスト指定 | |
zone | "test.local" | ゾーン名(正引きルール) | |
type | master | このゾーンはこのサーバがマスター | |
file | "test.local" | ゾーンデータのファイル名 | |
allow-update | none | 他DNSの更新を反映しない | |
zone | "142.168.192.in-addr.arpa" | ゾーン名(逆引きルール) |
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
options {
//listen-on port 53 { 127.0.0.1; };
listen-on port 53 { 192.168.142.31; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
//allow-query { localhost; };
allow-query { 192.168.142.0/24; };
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.root.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "test.local" IN {
type master;
file "test.local";
allow-update { none; };
};
zone "142.168.192.in-addr.arpa" IN {
type master;
file "test.local.rev";
allow-update { none; };
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
#3.正引き用設定ファイル作成
test.localドメインの正引き設定ファイルを作成します。
設定部 | 設定項目 | 内容 | 意味 |
---|---|---|---|
$ | TTL | 86400 | ゾーンレコードTTL秒。 |
@ | IN SOA | cent77-01.test.local. root.test.local. | プライマリDNSサーバ、管理者メールアドレス(FQDN) |
2020020501 ; Serial | ゾーン情報のシリアル番号(バージョン) | ||
28800 ; Refresh | セカンダリDNSサーバーの更新確認間隔(秒) | ||
14400 ; Retry | 更新失敗時の再試行時間(秒) | ||
3600000 ; Expire | 更新失敗時の情報利用時間(秒) | ||
86400 ) ; Minimum | レコードのTTL(秒) | ||
IN NS | cent77-01.test.local. | 自身が管理しているゾーンのDNSサーバー(FQDN) | |
cent77-01 | IN A | 192.168.142.31 | 正引きレコード |
cent77-02 | IN A | 192.168.142.32 | 正引きレコード |
$TTL 86400
@ IN SOA cent77-01.test.local. root.test.local.(
2020020501 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS cent77-01.test.local.
cent77-01 IN A 192.168.142.31
cent77-02 IN A 192.168.142.32
#4.逆引き用設定ファイル作成
test.localドメインの逆引き設定ファイルを作成します。
設定部 | 設定項目 | 内容 | 意味 |
---|---|---|---|
cent77-01 | IN A | 192.168.142.31 | 逆引きレコード |
cent77-02 | IN A | 192.168.142.32 | 逆引きレコード |
$TTL 86400
@ IN SOA cent77-01.test.local. root.test.local.(
2020020501 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS cent77-01.test.local.
31 IN PTR cent77-01.test.local.
32 IN PTR cent77-02.test.local.
#5.DNSコンフィグ確認
各設定のコンフィグ内容が正しいかを確認していきます。
・基本設定ファイル
# named-checkconf
・ゾーン設定ファイル
# named-checkzone test.local /var/named/test.local
zone test.local/IN: loaded serial 2020020501
OK
# named-checkzone test.local.rev /var/named/test.local.rev
zone test.local.rev/IN: loaded serial 2020020501
OK
#6.firewalld設定
DNS通信を許可します。
# firewall-cmd --add-service=dns --permanent
success
#firewall-cmd --reload
success
# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens192
sources:
services: dhcpv6-client dns nfs ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
#7.サービス起動
DNSサービスを起動します。
# systemctl start named
# systemctl enable named
# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
Active: active (running) since 土 2020-02-08 02:51:20 JST; 2h 59min ago
Process: 1218 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
Process: 1193 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
Main PID: 1220 (named)
CGroup: /system.slice/named.service
mq1220 /usr/sbin/named -u named -c /etc/named.conf
2月 08 04:20:31 cent77-01 named[1220]: network unreachable resolving '0.centos.pool.ntp.org/A/IN': 2620:7:6000:...f35#53
2月 08 04:20:31 cent77-01 named[1220]: network unreachable resolving '0.centos.pool.ntp.org/AAAA/IN': 2620:7:60...f35#53
#8.DNSクライアント設定
クライアントとなるサーバ側の設定としては、パッケージのインストールを行い、リゾルバ設定を記述すればOKです。
# yum install bind-utils
《中略》
完了しました!
# vi /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.142.31
domain test.local
#8.DNS動作確認
DNSクライアント側から、nslookupコマンドでDNSサーバの応答を確認します。
# nslookup 192.168.142.31
31.142.168.192.in-addr.arpa name = cent77-01.test.local.
# nslookup cent77-01
Server: 192.168.142.31
Address: 192.168.142.31#53
Name: cent77-01.test.local
Address: 192.168.142.31
以上です。
#参考
DNSサーバーの種類(キャッシュサーバーとコンテンツサーバー)
http://cos.linux-dvr.biz/archives/category/bind-dns%e3%82%b5%e3%83%bc%e3%83%90%e3%83%bc%e6%a7%8b%e7%af%89
BINDの設定(named.conf)
http://cos.linux-dvr.biz/archives/87
BINDの設定(正引き情報設定)
http://cos.linux-dvr.biz/archives/95
BINDの設定(逆引き情報設定)
http://cos.linux-dvr.biz/archives/108
DNSサーバ (bind-9.2) の設定
http://park12.wakwak.com/~eslab/pcmemo/linux/bind/bind2.html
BINDによるDNSの運用
http://www.fc-lab.com/network/server/dns/check.html
CentOS 7: bindをインストールして内部ネットワーク向けにDNSサーバを立ち上げる
https://www.hiroom2.com/2016/05/02/centos-7%E3%81%ABbind%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6%E5%86%85%E9%83%A8%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%90%91%E3%81%91%E3%81%ABdns%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92%E3%82%8B/
[CentOS7] dig, host, nslookup, nsupdateコマンドをインストールする
https://410gone.click/blog/2016/03/22/centos7-dig-nslookup-host/