第2章 アンバウンド DNS サーバーのセットアップ

unbound DNS サーバーは、検証、再帰、およびキャッシング DNS リゾルバーです。さらに、unbound はセキュリティーに重点を置いており、たとえば、デフォルトで Domain Name System Security Extensions (DNSSEC) が有効になっています。

2.1. Unbound をキャッシング DNS サーバーとして設定する

デフォルトでは、unbound されている DNS サービスは、成功したルックアップと失敗したルックアップを解決してキャッシュします。その後、サービスはキャッシュから同じレコードへの要求に応答します。

手順

  1. unbound されているパッケージをインストールします。

    # dnf install unbound
  2. /etc/unbound/unbound.conf ファイルを編集し、server 句で次の変更を行います。

    1. interface パラメーターを追加して、unbound されているサービスがクエリーをリッスンする IP アドレスを設定します。次に例を示します。

      interface: 127.0.0.1
      interface: 192.0.2.1
      interface: 2001:db8:1::1

      これらの設定では、unbound は指定された IPv4 および IPv6 アドレスでのみリッスンします。

      インターフェイスを必要なものに制限することで、インターネットなどの承認されていないネットワークからのクライアントがこの DNS サーバーにクエリーを送信するのを防ぎます。

    2. 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
  3. unbound されているサービスをリモートで管理するための秘密鍵と証明書を作成します。

    # systemctl restart unbound-keygen

    この手順を省略した場合、次の手順で設定を確認すると、不足しているファイルが報告されます。ただし、unbound されているサービスは、ファイルが見つからない場合に自動的に作成します。

  4. 設定ファイルを確認します。

    # unbound-checkconf
    unbound-checkconf: no errors in /etc/unbound/unbound.conf
  5. 着信 DNS トラフィックを許可するように firewalld ルールを更新します。

    # firewall-cmd --permanent --add-service=dns
    # firewall-cmd --reload
  6. unbound されているサービスを有効にして開始します。

    # systemctl enable --now unbound

検証

  1. localhost インターフェイスでリッスンしている unbound されている DNS サーバーにクエリーを実行して、ドメインを解決します。

    # dig @localhost www.example.com
    ...
    www.example.com.    86400    IN    A    198.51.100.34
    
    ;; Query time: 330 msec
    ...

    初めてレコードをクエリーした後、unbound はエントリーをそのキャッシュに追加します。

  2. 前のクエリーを繰り返します。

    # dig @localhost www.example.com
    ...
    www.example.com.    85332    IN    A    198.51.100.34
    
    ;; Query time: 1 msec
    ...

    エントリーがキャッシュされるため、エントリーの有効期限が切れるまで、同じレコードに対するそれ以降のリクエストは大幅に高速化されます。

次のステップ

  • この DNS サーバーを使用するようにネットワーク内のクライアントを設定します。たとえば、nmcli ユーティリティーを使用して、DNS サーバーの IP を NetworkManager 接続プロファイルに設定します。

    # nmcli connection modify Example_Connection ipv4.dns 192.0.2.1
    # nmcli connection modify Example_Connection ipv6.dns 2001:db8:1::1

関連情報

  • unbound.conf(5) man page