DNSが何をやっているかは大体わかっているつもりですが、自分で立てたことはなかったので構築してみました。
サーバーのIP設定
今回は、次のIPアドレスやホスト名を設定して、DNSサーバを構築します。
設定項目 | 設定値 |
---|---|
IPアドレス | 192.168.1.201 |
ホスト名 | ns |
ドメイン名 | tamu-labo.net |
また、構築したDNSサーバでmusic.tamu-labo.netというホストの名前解決をできるようにしてみたいと思います。
IPアドレスの設定
sudo vi /etc/network/interface
# The primary network interface
#allow-hotplug ens192 <= コメントアウト
#iface ens192 inet dhcp <= コメントアウト
auto ens192
iface ens192 inet static
address 192.168.1.201
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.254
設定変更後はサービスの再起動をします。
sudo service networking restart
bind9のインストール・設定
bind9のインストール
bind9はDNSサーバ用のオープンソースソフトウェアです。
sudo apt install bind9
このあとの作業がしやすいようにディレクトリを移動しておきます。
cd /etc/bind
内部向けゾーン定義ファイルの作成
今回は内部ネットワーク向けのDNSを作成します。
vi named.conf.internal-zones
view "internal" {
# 内部向け設定の対象範囲定義
match-clients {
localhost;
192.168.1.0/24;
};
# 正引きゾーンを定義
zone "tamu-labo.net" {
type master;
file "/etc/bind/tamu-labo.net.lan";
allow-update { none; };
};
# 逆引きゾーンを定義
zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/1.168.192.db";
allow-update { none; };
};
include "/etc/bind/named.conf.default-zones";
#空白ゾーン作成の制御
empty-zones-enable no;
};
次にゾーンデータベースファイルの作成をしていきます。
内部向き正引きゾーンデータベースファイルの作成
music.tamu-labo.netが192.168.1.53と設定する。
vi tamu-labo.net.lan
$TTL 86400
@ IN SOA ns.tamu-labo.net. root.tamu-labo.net. (
2021022301 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
IN NS ns.tamu-labo.net.
IN A 192.168.1.201
IN MX 10 ns.tamu-labo.net.
ns IN A 192.168.1.201
bind9 IN A 192.168.1.201
music IN A 192.168.1.53
内部向き逆引きゾーンデータベースファイルの作成
192.168.1.53がmusic.tamu-labo.netと設定する。
vi 1.168.192.db
$TTL 86400
@ IN SOA ns.tamu-labo.net. root.tamu-labo.net. (
2021022301 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
IN NS ns.tamu-labo.net.
IN PTR tamu-labo.net.
IN A 255.255.255.0
201 IN PTR ns.tamu-labo.net.
201 IN PTR bind9.tamu-labo.net.
53 IN PTR music.tamu-labo.net.
DNSサーバーの設定
DNSがどこからの問合わせに応答するのか、どのDNSサーバにゾーン転送を許可するのかなどを設定します。
vi named.conf.options
options {
directory "/var/cache/bind";
// 問合わせ範囲
allow-query { localhost; localnets; };
// ゾーン情報の転送範囲
allow-transfer { localhost; localnets; };
// 再帰検索範囲
allow-recursion { localhost; localnets; };
//dnssec-validation auto;
// IPv6 は使用しないので無効化
listen-on-v6 { none; };
};
Zoneファイルの読み込み設定
named.confというファイルを編集します。
このファイルで、どの設定ファイルを読み込むかを定義します。
先ほど作成したnamed.conf.internal-zones
を設定します。
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
#include "/etc/bind/named.conf.default-zones"; <= コメントアウト
include "/etc/bind/named.conf.internal-zones"; <= 追加:内部向けの設定を記載する
bind9の再起動
すべての設定が終わったら、bind9を再起動します。
sudo systemctl restart bind9
問合わせ要求のテスト
名前解決が行えるかテストします。
まずは、自分自身の問い合わせ要求に応答できるよう、resolv.conf
を修正します。
/etc/resolv.conf
nameserver 192.168.1.201 <= 追加
nameserver 192.168.1.254
domain tamu-labo.net <= 追加
digのインストール
digはDNSの問合わせを行い、その結果を返してくれるコマンドです。domain information groperの略だそうです。
sudo apt-get install dnsutils
ns.tamu-labo.netで192.168.1.201の正引きができるかどうか
dig ns.tamu-labo.net
; <<>> DiG 9.16.12-Debian <<>> ns.tamu-labo.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44822
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 257b2917824c77ed010000006034bd4f6a82cd31fbcdc1b0 (good)
;; QUESTION SECTION:
;ns.tamu-labo.net. IN A
;; ANSWER SECTION:
ns.tamu-labo.net. 86400 IN A 192.168.1.201
;; Query time: 0 msec
;; SERVER: 192.168.1.201#53(192.168.1.201)
;; WHEN: 火 2月 23 17:31:11 JST 2021
;; MSG SIZE rcvd: 89
192.168.1.53からmusicのホスト名が逆引きできるかどうか
dig -x 192.168.1.53
; <<>> DiG 9.16.12-Debian <<>> -x 192.168.1.53
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23605
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 01448e6b2017494f010000006034bd6504ead553452b4ca8 (good)
;; QUESTION SECTION:
;53.1.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
53.1.168.192.in-addr.arpa. 86400 IN PTR music.tamu-labo.net.
;; Query time: 0 msec
;; SERVER: 192.168.1.201#53(192.168.1.201)
;; WHEN: 火 2月 23 17:31:33 JST 2021
;; MSG SIZE rcvd: 115
ANSWER SECTIONを見るとどちらも問題なく動いていることが確認できました。