linux:bind
DNSサーバー導入
ここでは、DNSサーバーの導入手順について記載していきます。
BIND
インストール
# dnf install -y bind bind-utils
設定
オプション一覧は以下の通り
オプション | 説明 |
---|---|
allow-query | 権限のあるリソースレコード用のネームサーバーにクエリーを許可されるホストを指定する。IPまたはネットワーク群を記載する。デフォルトでは全てのホスト。 |
directory | named サービス用の作業ディレクトリを指定する。デフォルトは /var/namd |
forwarders | リクエストの転送先となるネームサーバーの有効なIPアドレス一覧を指定する。 |
forward | forwarders ディレクティブの動作を指定する。 first: サーバーは独自の名前の解決を志向する前にforwardersディレクティブに一覧表示されるネームサーバーをクエリーする。 only: forwarders ディレクティブに一覧表示されるネームサーバーをクエリーできない場合、サーバーは独自の名前の解決を志向しない。 |
listen-on | クエリーをlistenするIPv4ネットワークインターフェースを指定する。このオプションにより単一ネットワークから発信するクエリーにのみ応答することが出来る。 |
max-cache-size | サーバー用キャッシュとして使用されるメモリーの最大容量を指定する。 |
notify | あるゾーンが更新されたときにセカンダリーネームサーバーに通知するかどうか指定する。 yes: サーバーは全てのセカンダリネームサーバーに通知する。 no: サーバーはいずれのセカンダリーネームサーバーにも通知しない。 master-only: サーバーはゾーン用のプライマリーサーバーにのみ通知 |
pid-file | namedサービスで作成されたプロセス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