第2章 アンバウンド DNS サーバーのセットアップ
unbound
DNS サーバーは、検証、再帰、およびキャッシング DNS リゾルバーです。さらに、unbound
はセキュリティーに重点を置いており、たとえば、デフォルトで Domain Name System Security Extensions (DNSSEC) が有効になっています。
2.1. Unbound をキャッシング DNS サーバーとして設定する
デフォルトでは、unbound
されている DNS サービスは、成功したルックアップと失敗したルックアップを解決してキャッシュします。その後、サービスはキャッシュから同じレコードへの要求に応答します。
手順
unbound
されているパッケージをインストールします。dnf install unbound
# dnf install unbound
Copy to Clipboard Copied! /etc/unbound/unbound.conf
ファイルを編集し、server
句で次の変更を行います。interface
パラメーターを追加して、unbound
されているサービスがクエリーをリッスンする IP アドレスを設定します。次に例を示します。interface: 127.0.0.1 interface: 192.0.2.1 interface: 2001:db8:1::1
interface: 127.0.0.1 interface: 192.0.2.1 interface: 2001:db8:1::1
Copy to Clipboard Copied! これらの設定では、
unbound
は指定された IPv4 および IPv6 アドレスでのみリッスンします。インターフェイスを必要なものに制限することで、インターネットなどの承認されていないネットワークからのクライアントがこの DNS サーバーにクエリーを送信するのを防ぎます。
access-control
パラメーターを追加して、クライアントが DNS サービスを照会できるサブネットを設定します。次に例を示します。access-control: 127.0.0.0/8 allow access-control: 192.0.2.0/24 allow access-control: 2001:db8:1::/64 allow
access-control: 127.0.0.0/8 allow access-control: 192.0.2.0/24 allow access-control: 2001:db8:1::/64 allow
Copy to Clipboard Copied!
unbound
されているサービスをリモートで管理するための秘密鍵と証明書を作成します。systemctl restart unbound-keygen
# systemctl restart unbound-keygen
Copy to Clipboard Copied! この手順を省略した場合、次の手順で設定を確認すると、不足しているファイルが報告されます。ただし、
unbound
されているサービスは、ファイルが見つからない場合に自動的に作成します。設定ファイルを確認します。
unbound-checkconf
# unbound-checkconf unbound-checkconf: no errors in /etc/unbound/unbound.conf
Copy to Clipboard Copied! 着信 DNS トラフィックを許可するように firewalld ルールを更新します。
firewall-cmd --permanent --add-service=dns firewall-cmd --reload
# firewall-cmd --permanent --add-service=dns # firewall-cmd --reload
Copy to Clipboard Copied! unbound
されているサービスを有効にして開始します。systemctl enable --now unbound
# systemctl enable --now unbound
Copy to Clipboard Copied!
検証
localhost
インターフェイスでリッスンしているunbound
されている DNS サーバーにクエリーを実行して、ドメインを解決します。dig @localhost www.example.com
# dig @localhost www.example.com ... www.example.com. 86400 IN A 198.51.100.34 ;; Query time: 330 msec ...
Copy to Clipboard Copied! 初めてレコードをクエリーした後、
unbound
はエントリーをそのキャッシュに追加します。前のクエリーを繰り返します。
dig @localhost www.example.com
# dig @localhost www.example.com ... www.example.com. 85332 IN A 198.51.100.34 ;; Query time: 1 msec ...
Copy to Clipboard Copied! エントリーがキャッシュされるため、エントリーの有効期限が切れるまで、同じレコードに対するそれ以降のリクエストは大幅に高速化されます。