DNSサーバーの構築方法(Ubuntu)

DNSサーバーの構築方法(Ubuntu)

CiscoCML上のUbuntuを利用して、内部ネットワーク用のDNSサーバーを構築します。(DNSサーバーからインターネット上の上位DNSサーバへの問合せは行わず、DNSサーバー内の情報を用いて名前解決を行います。)

DNSの基礎については、下記を参照してください。

目次

ネットワーク構成

下記のネットワークを利用して、Ubuntuを内部用のDNSサーバーとして構築していきます。

ネットワーク構成図

DNSサーバーの構築

apt-getの最新化

以下のコマンドを実行し、apt-getを最新化します。

sudo apt-get update
cisco@ubuntu:~$ sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu focal InRelease
〜〜 省略 〜〜
Fetched 22.4 MB in 2min 27s (153 kB/s)
Reading package lists... Done
cisco@ubuntu:~$

BINDのインストール

一般的に利用されているDNSソフトウェアであるBINDをインストールします。

sudo apt install -y bind9 bind9utils
cisco@ubuntu:~$ sudo apt install -y bind9 bind9utils
Reading package lists... Done
〜〜省略〜〜
Setting up bind9utils (1:9.16.1-0ubuntu2.10) ...
Setting up bind9-dnsutils (1:9.16.1-0ubuntu2.10) ...
Processing triggers for ufw (0.36-6) ...
Processing triggers for systemd (245.4-4ubuntu3.4) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.2) ...
cisco@ubuntu:~$

DNS参照先の変更

今回は外部問合せは行わない内部ネットワーク用のため、DNS参照先をDNSサーバー自身に変更します。

sudo systemd-resolve --interface ens2 --set-dns 192.168.2.100

設定ファイルの修正

各種設定ファイルを修正します。設定ファイルは、”/etc/bind/”配下に格納されているため、ディレクトリを移動します。

cd /etc/bind/

Configファイルの修正

Configファイルを修正し、Zoneを定義します。

sudo vi named.conf.default-zones

下記を追記します。

zone "cml.com" {
        type master;
        file "/etc/bind/db.cml.com";
};

zone “ゾーン名” IN:Zoneを定義します。ここでは、”cml.com”として定義しています。
type:DNSタイプを指定します。※masterでプライマリ、slaveでセカンダリ、hintでキャッシュ
file:名前解決のためのファイルを指定します。ここで指定したファイルを作成して情報を記述します。

追記されたことを確認します。

cat named.conf.default-zones
cisco@ubuntu:/etc/bind$ cat named.conf.default-zones
// prime the server with knowledge of the root servers
zone "." {
	type hint;
	file "/usr/share/dns/root.hints";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
	type master;
	file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
	type master;
	file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
	type master;
	file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
	type master;
	file "/etc/bind/db.255";
};

zone "cml.com" {
	type master;
	file "/etc/bind/db.cml.com";
};

Zoneファイルの作成

Zoneファイルを作成して、FQDN・ホスト名とIPアドレスを記述します。ここでは、”db.local”をコピーして”db.cml.com”を作成しています。

sudo cp db.local /etc/bind/db.cml.com

db.cml.comを下記の通り修正します。

sudo vi db.cml.com
@           IN      NS      ubuntu-dns.cml.com.
ubuntu-dns  IN      A       192.168.2.100
WAN-Router  IN      A       192.168.2.254
Router1     IN      A       192.168.2.1

NSレコード(1行目):DNSサーバー自身の情報を記載します。
Aレコード(2行目以降):FQDN・ホスト名とIPアドレスの情報を記述します。

修正されたことを確認します。

cat db.cml.com
cisco@ubuntu:/etc/bind$ cat db.cml.com
;
; BIND data file for local loopback interface
;
$TTL	604800
@	          IN      SOA     localhost. root.localhost. (
			      2		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@           IN      NS      ubuntu-dns.cml.com.
ubuntu-dns  IN      A       192.168.2.100
WAN-Router  IN      A       192.168.2.254
Router1     IN      A       192.168.2.1

サービス再起動

DNSのサービスであるnamedを再起動し、自動起動設定を有効化を行います。

sudo systemctl restart named
sudo systemctl enable named

DNSサーバーの動作確認

digコマンドでの名前解決

DNSサーバー自体は、cml.comドメインには所属させていないため、”.cml.com”を末尾につけて名前解決を行います。

dig WAN-Router.cml.com
dig Router1.cml.com

下記の通り、名前解決が行えています。

cisco@ubuntu:/etc/bind$ dig WAN-Router.cml.com
〜〜省略〜〜
;; ANSWER SECTION:
WAN-Router.cml.com.	604800	IN	A	192.168.2.254
〜〜省略〜〜

cisco@ubuntu:/etc/bind$ dig Router1.cml.com
〜〜省略〜〜
;; ANSWER SECTION:
Router1.cml.com.	604800	IN	A	192.168.2.1
〜〜省略〜〜

ホスト名でのPing

ホスト名を指定して、Pingを実施します。

ping WAN-Router.cml.com
ping Router1.cml.com

下記の通り、対象ホストのIPアドレスを名前解決し、Pingが実施できています。

cisco@ubuntu:/etc/bind$ ping WAN-Router.cml.com
PING WAN-Router.cml.com (192.168.2.254) 56(84) bytes of data.
64 bytes from _gateway (192.168.2.254): icmp_seq=1 ttl=255 time=9.09 ms
64 bytes from _gateway (192.168.2.254): icmp_seq=2 ttl=255 time=8.43 ms
64 bytes from _gateway (192.168.2.254): icmp_seq=3 ttl=255 time=8.21 ms
64 bytes from _gateway (192.168.2.254): icmp_seq=4 ttl=255 time=12.1 ms
64 bytes from _gateway (192.168.2.254): icmp_seq=5 ttl=255 time=12.1 ms
^C
--- WAN-Router.cml.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 8.205/9.984/12.122/1.749 ms

cisco@ubuntu:/etc/bind$ ping Router1.cml.com
PING Router1.cml.com (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1 (192.168.2.1): icmp_seq=1 ttl=255 time=8.13 ms
64 bytes from 192.168.2.1 (192.168.2.1): icmp_seq=2 ttl=255 time=8.56 ms
64 bytes from 192.168.2.1 (192.168.2.1): icmp_seq=3 ttl=255 time=5.28 ms
64 bytes from 192.168.2.1 (192.168.2.1): icmp_seq=4 ttl=255 time=5.81 ms
64 bytes from 192.168.2.1 (192.168.2.1): icmp_seq=5 ttl=255 time=9.15 ms
^C
--- Router1.cml.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 5.282/7.387/9.152/1.546 ms

以上で、DNSサーバーの構築方法(Ubuntu)の説明は完了です!

  • URLをコピーしました!
  • URLをコピーしました!
目次