Ubuntu 22.04 内部向けDNSサーバー構築

目次に戻る

概要

内部向けのDNSサーバーを構築します。このDNSはコンテンツサーバーとキャッシュサーバーを兼ねています。

インストール

aptでインストールします。

myadmin@ubuntu:~$ sudo DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install bind9

設定

Ubuntuのbind設定ファイル

CentOSとは異なり全てゾーンファイルを含め全て/etc/bindにまとまっています。下記は主要な設定ファイルです。

ファイル名 内容
named.conf named.conf.options, named.conf.local, named.conf.default-zonesをincludeしているだけの設定です。本稿では変更しません。
named.conf.default-zones 各デフォルトゾーン(localhost等)を定義しています。本稿では変更しません。
named.conf.local デフォルトでは全てコメントアウトされています。本稿ではこのファイルに個別のゾーン設定を定義します。
named.conf.options named.confのoptions部分が個別のファイルになっています。forwarders等のグローバルな設定はこのファイルを使用します。

/etc/bind/named.conf.options

デフォルト値

コメント行を除き成形したデフォルト値は下記の通りです。

myadmin@ubuntu:~$ grep -v -e '^\s*/' -e '^\s*$' /etc/bind/named.conf.options | expand | tr -s [:space:] | sed 's/^\s/    /g'
options {
    directory "/var/cache/bind";
    dnssec-validation auto;
    listen-on-v6 { any; };
};

設定値

設定例は下記の通りです。forwarders(不明なゾーンを指定したDNSに問い合わせ)、allow-query(このDNSを参照可能な範囲)、recursion(再帰問い合わせを許可)を追加しています。

myadmin@ubuntu:~$ sudo cp /etc/bind/named.conf.options /etc/bind/named.conf.options.orig
myadmin@ubuntu:~$ sudo tee /etc/bind/named.conf.options <<"EOF"
options {
    directory "/var/cache/bind";
    forwarders { 8.8.8.8; 8.8.4.4; };
    dnssec-validation auto;
    listen-on-v6 { any; };
    allow-query { any; };
    recursion yes;
};
EOF

/etc/bind/named.conf.local

デフォルト値

コメント行を除き成形したデフォルト値は下記の通りです。全てコメントアウトされています。

myadmin@ubuntu:~$ cat /etc/bind/named.conf.local  | expand | tr -s [:space:] | sed 's/^\s/    /g'
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

設定値

設定例は下記の通りです。追加のゾーン設定に加えzones.rfc1918をincludeしています。この設定ファイルは不明なRFC1918のIPアドレスの逆引きを上位のDNSへ問い合わせないための設定です。

myadmin@ubuntu:~$ sudo cp /etc/bind/named.conf.local /etc/bind/named.conf.options.local.orig
myadmin@ubuntu:~$ sudo tee /etc/bind/named.conf.local <<"EOF"
include "/etc/bind/zones.rfc1918";
zone "si1230.com" {
    type master;
    file "/etc/bind/si1230.com.zone";
};
zone "33.0.10.in-addr.arpa" {
    type master;
    file "/etc/bind/33.0.10.in-addr.arpa";
};
EOF

/etc/bind/si1230.com.zone

正引きのゾーンファイルの設定例です。

myadmin@ubuntu:~$ sudo tee /etc/bind/si1230.com.zone <<"EOF"
$TTL 172800
@ IN SOA dns.si1230.com. root.si1230.com. (
    2022041101
    3600
    300
    360000
    86400
)
    IN NS dns.si1230.com.
    IN MX 10 smtp.si1230.com.

ubuntu IN A 10.0.33.112
dns IN A 10.0.33.112
smtp IN A 10.0.33.112
www IN A 10.0.33.112
EOF

/etc/bind/33.0.10.in-addr.arpa

逆引きのゾーンファイルの設定例です。逆引きはIPアドレスに対して1つとなります。

myadmin@ubuntu:~$ sudo tee /etc/bind/33.0.10.in-addr.arpa <<"EOF"
$TTL 172800
@ IN SOA dns.si1230.com. root.si1230.com. (
    2022041101
    3600
    300
    360000
    86400
)
    IN NS dns.si1230.com.

112 IN PTR ubuntu.si1230.com.
EOF

設定の有効化

myadmin@ubuntu:~$ sudo systemctl restart bind9.service
myadmin@ubuntu:~$ systemctl status bind9.service
myadmin@ubuntu:~$ journalctl -u named.service -n 100

正常性確認

参照先DNSサーバーの変更

参照先DNSサーバーのIPアドレスを127.0.0.1(自ホストのDNSを参照する場合)に変更します。

myadmin@ubuntu:~$ sudo tee /etc/netplan/00-main.yaml <<"EOF" 
network:
  version: 2
  ethernets:
    ens33:
      addresses: [10.0.33.112/24]
      nameservers:
        addresses: [127.0.0.1]
      routes:
      - {to: default, via: 10.0.33.1}
EOF
myadmin@ubuntu:~$ sudo netplan apply

digコマンド

nslookupは部分的な情報しか得られない為、基本はdigが良いでしょう。ただ、digは成功時と失敗時の出力結果が分かりづらかったりするのでANSWER SECTIONの内容をきちんと確認します。

正引き確認

正引き確認はdigの引数にFQDNを指定します。

myadmin@ubuntu:~$ dig ubuntu.si1230.com
; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> ubuntu.si1230.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30361
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;ubuntu.si1230.com.             IN      A

;; ANSWER SECTION:
ubuntu.si1230.com.      172800  IN      A       10.0.33.112

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Tue May 31 11:59:22 JST 2022
;; MSG SIZE  rcvd: 62
myadmin@ubuntu:~$ dig www.si1230.com
; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> www.si1230.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33017
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.si1230.com.                        IN      A

;; ANSWER SECTION:
www.si1230.com.         172800  IN      A       10.0.33.112

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Tue May 31 12:02:47 JST 2022
;; MSG SIZE  rcvd: 59

逆引き確認

逆引き確認はdig -xの引数にIPアドレスを指定します。

myadmin@ubuntu:~$ dig -x 10.0.33.112
; <<>> DiG 9.18.1-1ubuntu1.1-Ubuntu <<>> -x 10.0.33.112
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30780
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;112.33.0.10.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:
112.33.0.10.in-addr.arpa. 172800 IN     PTR     ubuntu.si1230.com.

;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Tue May 31 12:17:51 JST 2022
;; MSG SIZE  rcvd: 84

目次に戻る

Ubuntu 22.04 内部向けDNSサーバー構築

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る