ユーザ用ツール

サイト用ツール


linux:bind

DNSサーバー導入

ここでは、DNSサーバーの導入手順について記載していきます。

BIND

インストール

# dnf install -y bind bind-utils

設定

オプション一覧は以下の通り

オプション説明
allow-query権限のあるリソースレコード用のネームサーバーにクエリーを許可されるホストを指定する。IPまたはネットワーク群を記載する。デフォルトでは全てのホスト。
directorynamed サービス用の作業ディレクトリを指定する。デフォルトは /var/namd
forwardersリクエストの転送先となるネームサーバーの有効なIPアドレス一覧を指定する。
forwardforwarders ディレクティブの動作を指定する。
first: サーバーは独自の名前の解決を志向する前にforwardersディレクティブに一覧表示されるネームサーバーをクエリーする。
only: forwarders ディレクティブに一覧表示されるネームサーバーをクエリーできない場合、サーバーは独自の名前の解決を志向しない。
listen-onクエリーをlistenするIPv4ネットワークインターフェースを指定する。このオプションにより単一ネットワークから発信するクエリーにのみ応答することが出来る。
max-cache-sizeサーバー用キャッシュとして使用されるメモリーの最大容量を指定する。
notifyあるゾーンが更新されたときにセカンダリーネームサーバーに通知するかどうか指定する。
yes: サーバーは全てのセカンダリネームサーバーに通知する。
no: サーバーはいずれのセカンダリーネームサーバーにも通知しない。
master-only: サーバーはゾーン用のプライマリーサーバーにのみ通知
pid-filenamedサービスで作成されたプロセスIDファイルの場所を指定する。
recursion再帰的なサーバーとして動作するかどうか指定する。デフォルトのオプションはyes。
statistics-file統計ファイルの代替の場所を指定する。デフォルトでは/var/named/named.statsファイルが使用される。
masterfile-formatゾーンファイルのフォーマットの形式を指定する。
text:テキストフォーマットにする。

設定例

options {
  allow-query       { localhost; };
  listen-on port    53 { 127.0.0.1; };
  listen-on-v6 port 53 { ::1; };
  max-cache-size    256M;
  directory         "/var/named";
  statistics-file   "/var/named/data/named_stats.txt";

  recursion         yes;
  dnssec-enable     yes;
  dnssec-validation yes;

  pid-file          "/run/named/named.pid";
  session-keyfile   "/run/named/session.key";
};

ゾーンステートメント

オプション説明
allow-query情報を要求できるクライアントを指定する。デフォルトでは全てのクエリー要求が許可される。
allow-transferゾーン情報の転送要求を許可されるセカンダリーサーバーを指定する。デフォルトでは全ての転送要求が許可される。
allow-update自身のゾーン内で動的な情報更新を許可されるホストを指定する。デフォルトオプションでは全ての動的更新要求は無視される。
fileゾーンの設定データを格納しているnamed作業ディレクトリー内のファイル名を指定する。
masters信頼できるゾーン情報の要求先となるIPアドレスを指定する。type slave;が定義されている場合のみ設定可能。
notifyゾーンが更新されたときにセカンダリーネームサーバーに通知するかどうかを指定。\\yes: 全てのセカンダリーネームサーバーに通知する。
no: セカンダリーネームサーバーに通知しない。
master-only: ゾーンに対してのみプライマリーサーバーに通知する。
explicit: サーバーはゾーンステートメント内のalso-notify一覧で指定したセカンダリーサーバーのみに通知する。
typeゾーンタイプを指定する。
forward: このゾーンに関する情報への全ての要求を他のネームサーバーに転送する。
hint: ゾーンが不明な場合にクエリーを解決するルートネームサーバーをポイントする特別な種類のゾーン。
master: このゾーンに対してネームサーバーを権威として指定する。
slave: ネームサーバーをこのゾーンのセカンダリーサーバーとして指定する。

マスタサーバー(192.168.0.1)の設定例

zone "example.com" IN {
  type master;
  file "example.com.zone";
  allow-transfer { 192.168.0.2; };
};

セカンダリサーバー(192.168.0.2)の設定例

zone "example.com" {
  type slave;
  file "slaves/example.com.zone";
  masters { 192.168.0.1; };
};

Chroot化

CentOS 7以上の場合はnamed-chrootパッケージをインストールする。

# dnf install -y named-chroot

サービスを起動する

# systemctl start named-chroot

chroot後にレコードを変更する場合、/var/named/chroot/var/namedディレクトリ以下にあるゾーンファイルを編集すること。

設定確認

設定ファイルが正しいかどうか確認するにはnamed-checkconコマンドを使用する。

# named-checkconf /etc/named.conf

ゾーンファイルが正しく記載されているか確認するには

named-checkzone <zone_name> <zone_file>
named-checkzone example.com example.com.zone

のように実行する

linux/bind.txt · 最終更新: 2022/12/20 14:33 by mikoto