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)の説明は完了です!