0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ubuntu Server 20.04.3 LTS 構築#23 DNSサーバーの構築

Last updated at Posted at 2022-04-17

実施日:2022/04/10~2022/04/17

【今回の内容】
DNSサーバーを立てる

BINDをインストール~ポート開放まで

#BIND9を導入します。
sudo apt install bind9
#パスワードを入力

#BIND(DNS)は53番ポートを使用するので、開放します。
sudo ufw status

#ファイアーウォールの状態確認
sudo ufw allow 53
#ssh接続のために開放したポートのみallowになっていた。
#53番ポートを開放します。

#53番ポートが開放されたか確認します。
sudo ufw status

#53番ポートが開放されていました。

キャッシュサーバーの設定

#/etc/bind/named.confの中は設定項目がなく、各設定は下記のように分かれています。
#/etc/bind/named.conf
#┗/etc/bind/named.conf.options
#┗/etc/bind/named.conf.local
#┗/etc/bind/named.conf.default-zones
#キャッシュサーバーの設定をします。
#/etc/bind/named.conf.optionsを編集します。
sudo nano /etc/bind/named.conf.options
 forwarders {
      8.8.8.8;
      8.8.4.4;
};

allow-query { localhost; 192.168.1.0/24; };
#IPv6は使用しないので、変更します。
listen-on-v6 { none; };
#キャッシュサーバーの場合は再帰的な問い合わせを許可にします。
recrusion yes;
#上記内容に変更し、保存します。
#bind9を起動させます。
sudo systemctl start bind9
#bind9の状態を確認します。
sudo systemctl status bind9
#状態がactiveになっていれば動作していることとなります。

コンテンツサーバーの設定

#ゾーンファイルを作成します。
#カレントディレクトリの移動
cd /etc/bind/
#ゾーンファイルの作成
sudo nano db.XXXXXX.com
$ORIGIN XXXXXX.com
$TTL 604800
XXXXXX.com. IN SOA ns.XXXXXX.com. root.ns.XXXXXX.com.(
                20220416 ; Serial
                1D ; Refresh
                1H ; Retry
                1W ; Expire
                1D ) ; Negative TTL
ns.XXXXXX.com. IN A 192.168.1.21
XXXXXX.com.    IN NS ns.XXXXXX.com.
XXXXXX.com.    IN AAAA ::1
#上記のように設定
#ゾーンファイルのチェックを実施します。
named-checkzone XXXXXX.com /etc/bind/db.XXXXXX.com
#結果
「OK」が表示されれば完了です。

#エラー
/etc/bind$ sudo named-checkzone XXXXXX.com /etc/bind/db.XXXXXX.com
dns_master_load: /etc/bind/db.XXXXXX.com:1: unknown $ directive '$'
/etc/bind/db.XXXXXX.com:1: unknown RR type 'ORIGIN'
dns_master_load: /etc/bind/db.XXXXXX.com:2: unknown $ directive '$'
/etc/bind/db.XXXXXX.com:2: unknown RR type 'TTL'
dns_rdata_fromtext: /etc/bind/db.XXXXXX.com:3: near 'root.ns.XXXXXX.com.': not a valid number
/etc/bind/db.XXXXXX.com:9: no TTL specified; zone rejected
/etc/bind/db.XXXXXX.com:10: no TTL specified; zone rejected
/etc/bind/db.XXXXXX.com:11: no TTL specified; zone rejected
zone XXXXXX.com/IN: loading from master file /etc/bind/db.XXXXXX.com failed: syntax error
zone XXXXXX.com/IN: not loaded due to errors.

#エラー解消
$ ORIGIN XXXXXX.com
$ TTL 604800
#上記の$のあとに半角スペースがあったため、半角スペースを削除
/etc/bind$ sudo named-checkzone XXXXXX.com /etc/bind/db.XXXXXX.com
dns_master_load: /etc/bind/db.XXXXXX.com:1: unknown $ directive '$'
/etc/bind/db.XXXXXX.com:1: unknown RR type 'ORIGIN'
dns_master_load: /etc/bind/db.XXXXXX.com:2: unknown $ directive '$'
/etc/bind/db.XXXXXX.com:2: unknown RR type 'TTL'
/etc/bind/db.XXXXXX.com:9: no TTL specified; zone rejected
/etc/bind/db.XXXXXX.com:10: no TTL specified; zone rejected
/etc/bind/db.XXXXXX.com:11: no TTL specified; zone rejected
#上記の部分のエラーは解消されました。

dns_rdata_fromtext: /etc/bind/db.XXXXXX.com:3: near 'root.ns.XXXXXX.com.': not a valid number
#3行目に書式の誤りがあるのは判りました。
#XXXXXX.com. IN SOA ns XXXXXX.com. root.ns.XXXXXX.com.(
#nsとXXXXXXの間に.(ドット)が抜けていました。
#再度、構文チェックをしたところ、「OK」が表示されました。

動作確認

#問題なく動作するか確認します。
#BINDを起動させます。
#名前解決の参照先を自ホストにします。
sudo nano /etc/netplan/ファイル名.yaml
nameservers:
address: [192.168.1.21]
#変更を適用させます。
sudo netplan apply
#名前解決が出来るか確認します。
dig XXXXXX.com.
dig -x 192.168.1.21
#結果として、「Answer Section」が表示されていれば成功です。

今回はここまでです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?