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 · 最終更新: 2025/01/14 15:16 by mikoto