named.confの読み方と設定例|BIND設定ファイルの基本構造を理解する

named.conf設定

named.confの読み方と設定例

BINDを利用してDNSサーバを構築する際、最初に設定するファイルがnamed.confです。

Apacheにおけるhttpd.conf、Nginxにおけるnginx.confのような存在であり、DNSサーバ全体の動作を定義します。

しかし、初めてBINDを触る人にとっては、named.confの構造が分かりにくく感じられることがあります。

実際には、いくつかの基本構造を理解するだけで大部分の設定内容を読み取れるようになります。

本記事ではnamed.confの基本構造から主要な設定項目まで、実際の設定例を交えながら解説します。

named.confとは

named.confはBINDのメイン設定ファイルです。

通常は以下の場所に配置されています。


/etc/named.conf

BIND起動時に最初に読み込まれる重要な設定ファイルです。

named.confの役割

named.confでは主に次の内容を定義します。

  • 待受IPアドレス
  • 問い合わせ許可範囲
  • 再帰問い合わせ設定
  • ゾーン定義
  • ログ設定
  • ゾーン転送設定

DNSサーバ全体の動作方針を決めるファイルです。

基本構造

named.confはブロック構造になっています。

options {
};

zone "example.com" {
};

logging {
};

各ブロックごとに設定を記述します。

セミコロンを忘れない

BINDの設定ではセミコロンが必須です。

directory "/var/named";

以下はエラーになります。

directory "/var/named"

非常によくあるミスです。

コメントの書き方

コメントは以下のように記述します。

// コメント

# コメント

/* 複数行コメント */

実務では「//」をよく見かけます。

optionsセクション

DNSサーバ全体の設定を行います。

options {
    directory "/var/named";
};

最も重要なセクションです。

directory設定

ゾーンファイルの基準ディレクトリを指定します。

directory "/var/named";

ゾーンファイルを相対指定する際の基準になります。

listen-on設定

DNSサーバが待受するIPアドレスを指定します。

listen-on port 53 {
    any;
};

すべてのIPv4アドレスで待ち受けます。

特定IPだけに限定することも可能です。

listen-on port 53 {
    192.168.60.10;
};

listen-on-v6設定

IPv6用の待受設定です。

listen-on-v6 {
    any;
};

IPv6を利用しない場合は無効化することもあります。

allow-query設定

問い合わせを許可する範囲を指定します。

allow-query {
    any;
};

学習環境ではよく利用されます。

社内DNSでは制限する場合があります。

allow-query {
    192.168.60.0/24;
};

recursion設定

再帰問い合わせの許可設定です。

キャッシュDNSでは通常有効です。

recursion yes;

権威DNSでは無効化することが一般的です。

recursion no;

allow-recursion設定

再帰問い合わせ可能なクライアントを指定します。

allow-recursion {
    localhost;
    192.168.60.0/24;
};

オープンリゾルバ対策として重要です。

forwarders設定

DNSフォワーダを指定します。

forwarders {
    8.8.8.8;
    1.1.1.1;
};

問い合わせを上位DNSへ転送します。

forward設定

フォワーダ利用方法を指定します。

forward first;

フォワーダ失敗時は自身で解決します。

forward only;

フォワーダのみ利用します。

zoneセクションとは

ドメインごとの設定を定義します。

zone "example.com" {
};

DNSサーバ運用で最も頻繁に利用します。

権威DNSの設定例

zone "example.com" IN {
    type master;

    file "example.com.zone";
};

example.comのプライマリDNSになります。

type master

ゾーン情報の原本を保持します。

type master;

最も一般的な設定です。

type slave

セカンダリーDNSサーバになります。

type slave;

masters {
    192.168.60.10;
};

ゾーン転送を利用します。

file設定

ゾーンファイルを指定します。

file "example.com.zone";

directory設定を基準に読み込まれます。

allow-transfer設定

ゾーン転送許可先を指定します。

allow-transfer {
    192.168.60.11;
};

セキュリティ上重要な設定です。

aclセクション

アクセス制御リストを定義できます。

acl internal {
    192.168.60.0/24;
    localhost;
};

複数箇所で利用できます。

acl利用例

allow-query {
    internal;
};

設定の可読性が向上します。

loggingセクション

ログ出力方法を定義します。

logging {
};

実務では障害調査時に利用します。

include文

別ファイルを読み込みます。

include "/etc/named.rfc1912.zones";

設定を分割管理できます。

Rocky Linuxの標準構成

Rocky Linuxでは次のような構成が一般的です。


/etc/named.conf
↓
named.rfc1912.zones
↓
個別ゾーン

ゾーン定義を分離しています。

設定確認

設定変更後は必ず確認します。

# named-checkconf

エラーがなければ何も表示されません。

再読み込み

設定反映は以下で行います。

# rndc reload

または

# systemctl reload named

よくある設定ミス

セミコロン忘れ


allow-query { any }

構文エラーになります。

括弧の対応ミス


{
}

開始と終了が一致している必要があります。

ゾーンファイル名ミス

指定したファイルが存在しない場合があります。

allow-transfer未設定

セカンダリーDNSが同期できません。

実務で覚えておきたいポイント

  • named.confはBINDの中心設定ファイル
  • optionsとzoneを理解することが重要
  • 権威DNSはrecursion noが基本
  • allow-transferは必ず制限する
  • named-checkconfで確認する
  • セミコロン忘れに注意する

まとめ

named.confはBINDの動作を決定する重要な設定ファイルです。

optionsセクションで全体設定を行い、zoneセクションでドメインごとの管理を定義します。

また、allow-queryやallow-transfer、recursionなどの設定はDNSサーバのセキュリティにも大きく影響します。

BIND運用ではnamed.confを正しく読み書きできることが基本となるため、まずは主要な設定項目を理解することから始めましょう。