第1章 BIND DNS サーバーのセットアップおよび設定


Domain Name System (DNS) サービスを管理するには、BIND DNS サーバーを設定します。BIND は、インターネット技術タスクフォース (IETF) の DNS 標準およびドラフト標準に完全に準拠しています。BIND は、ローカルネットワークのキャッシュサーバーとして、またゾーンの高可用性を確保するためのセカンダリーサーバーとして機能します。

1.1. BIND をキャッシュ DNS サーバーとして設定する

同じレコードに対するルックアップおよび応答リクエストの成功と失敗をキャッシュから解決およびキャッシュするには、BIND をキャッシュ DNS サーバーとして設定します。これはゾーンの権威 DNS サーバーとして機能し、DNS ルックアップの速度を向上させます。

前提条件

  • 管理者権限がある。
  • サーバーの IP アドレスは静的です。

手順

  1. bind パッケージおよび bind-utils パッケージをインストールします。

    # dnf install bind bind-utils
  2. BIND を change-root 環境で実行する場合は、bind-chroot パッケージをインストールします。

    # dnf install bind-chroot

    デフォルトである enforcing モードで SELinux を使用するホストで BIND を実行すると、より安全になることに注意してください。

  3. /etc/named.conf ファイルを編集し、options ステートメントに次の変更を加えます。

    1. listen-on および listen-on-v6 ステートメントを更新して、BIND がリッスンする IPv4 インターフェイスおよび IPv6 インターフェイスを指定します。

      listen-on port 53 { 127.0.0.1; 192.0.2.1; };
      listen-on-v6 port 53 { ::1; 2001:db8:1::1; };
    2. allow-query ステートメントを更新して、クライアントがこの DNS サーバーにクエリーを実行できる IP アドレスおよび範囲を設定します。

      allow-query { localhost; 192.0.2.0/24; 2001:db8:1::/64; };
    3. allow-recursion ステートメントを追加して、BIND が再帰クエリーを受け入れる IP アドレスおよび範囲を定義します。

      allow-recursion { localhost; 192.0.2.0/24; 2001:db8:1::/64; };
      警告

      サーバーのパブリック IP アドレスで再帰を許可しないでください。そうしないと、サーバーが大規模な DNS 増幅攻撃の一部になる可能性があります。

    4. デフォルトでは、BIND は、ルートサーバーから権限のある DNS サーバーに再帰的にクエリーを実行することにより、クエリーを解決します。ただし、BIND を設定して、プロバイダーの DNS サーバーなど、他の DNS サーバーにクエリーを転送することも可能です。この場合、BIND がクエリーを転送する DNS サーバーの IP アドレスのリストを含む forwarders ステートメントを追加します。

      forwarders { 198.51.100.1; 203.0.113.5; };

      フォールバック動作として、フォワーダーサーバーが応答しないと、BIND はクエリーを再帰的に解決します。この動作を無効にするには、forward only; ステートメントを追加します。

  4. /etc/named.conf ファイルの構文を確認します。

    # named-checkconf

    コマンドが出力を表示しない場合は、構文に間違いがありません。

  5. 着信 DNS トラフィックを許可するように firewalld ルールを更新します。

    # firewall-cmd --permanent --add-service=dns
    # firewall-cmd --reload
  6. BIND を開始して有効にします。

    # systemctl enable --now named

    change-root 環境で BIND を実行する場合は、systemctl enable --now named-chroot コマンドを使用して、サービスを有効にして開始します。

検証

  1. 新しく設定した DNS サーバーを使用してドメインを解決します。

    # dig @localhost www.example.org
    ...
    __www.example.org.__    __86400__    IN    A    __198.51.100.34__
    
    ;; Query time: __917 msec__
    ...

    この例では、BIND が同じホストで実行し、localhost インターフェイスでクエリーに応答することを前提としています。

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

  2. 前の手順で実行したクエリーを繰り返します。

    # dig @localhost www.example.org
    __www.example.org.__    __85332__    IN    A    __198.51.100.34__
    
    ;; Query time: __1 msec__
    ...

    キャッシュされたエントリーのおかげで、エントリーの有効期限が切れるまでは、同じレコードに対するその後のリクエストは高速になります。

    詳細は、named.conf(5) の man ページと、システム上の /usr/share/doc/bind/sample/etc/named.conf ファイルを参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る