BINDの設定

備忘録として、設定ファイルにコメントしただけの殴り書きです。

named.conf

# cat /etc/named.conf

options {
#  listen-on port 53 { 127.0.0.1; };   #bindがlisten状態で待機するポート番号と許可するネットワーク
#  listen-on-v6 port 53 { ::1; };     #bindがlisten状態で待機するポート番号と許可するネットワーク。IPv6
   directory ”/var/named”;         #ゾーンファイルがあるディレクトリを指定。chrootしてる場合はchroot以下を指す
   dump-file ”/var/named/data/cache_dump.db”;
   statistics-file “/var/named/data/named_stats.txt”;
   memstatistics-file “/var/named/data/named_mem_stats.txt”;

#  query-source port 53;       #自サーバで名前解決できない際に問い合わせする場合に使用するポート番号
#  query-source-v6 port 53;     #自サーバで名前解決できない際に問い合わせする場合に使用するポート番号。IPv6
   allow-query  { any; };       #名前解決の問い合わせに応答するネットワーク
   allow-query-cache { any; };   #キャッシュを利用できるネットワーク
   forwarders{               #自サーバで名前解決できないゾーンの問い合わせ先
    163.139.21.197;          #通常はプロバイダから提供されているDNSもしくは自分のルータを指定する
    163.139.230.168;
    };
  };

logging {                  #bindログの設定。未設定でも/var/log/messagesに出力される
  channel default_debug {
   file “data/named.run”;
   severity dynamic;
  };
};

view “internal” {              #内部ネットワーク向け
  match-clients {             #一致したネットワークにのみ以下のゾーン情報を提供する
  127.0.0.0/8;
  192.168.0.0/27;
  192.168.1.0/27;
  };

include “/etc/named.rfc1912.zones”;

zone “ys-network.info” {        #内部向け正引きゾーン名
  type master;              #ゾーンの性質。masterかslaveか
  file “ys-network.info”;        #内部向け正引きゾーンファイル名
  };

#### Servers Seg ####
zone “1.168.192.in-addr.arpa” {      #内部向け逆引きゾーン名
  type master    ;              #ゾーンの性質。masterかslaveか
  file “1.168.192.in-addr.arpa.zone”;  #内部向け逆引きゾーンファイル名
  };
 };

逆引きゾーンファイル。意味は下記のメモにあります。

# cat /var/named/1.168.192.in-addr.arpa.zone
$TTL 86400
@     IN    SOA   ns1.ys-network.info. root.ys-network.info. (
                  2010091800 ; Serial
                  8600 ; Refresh
                  1440 ; Retry
                  3600 ; Expire
                  8640 ) ; Minimum

1        IN PTR ns1.ys-network.info.
2        IN PTR ns2.ys-network.info.
3        IN PTR www.ys-network.info.
11       IN PTR mail1.ys-network.info.
12       IN PTR mail2.ys-network.info.

 

正引きゾーンファイル。意味は下記のメモにあります。

# cat /var/named/ys-network.info.zone
$TTL 86400
@     IN    SOA   ns1.ys-network.info. root.ys-network.info. (
                  2010091800 ; Serial
                  8600 ; Refresh
                  1440 ; Retry
                  3600 ; Expire
                  8640 ) ; Minimum

         NS ns1.ys-network.info.          #当該DNSサーバを指定
         NS ns2.ys-network.info.          #上記のslaveサーバを指定

         MX 10 mail1.ys-network.info.       #当該ドメインのメールサーバを指定
         MX 20 mail2.ys-network.info.       #上記のslaveサーバを指定

@        A   192.168.1.254
mail1      A   192.168.1.1
mail2      A   192.168.1.2
www      A   192.168.1.3
ns1       A   192.168.1.11
ns2       A   192.168.1.12
host      CNAME ys-network.info.

=========================================================

メモ
以前に調べてわかったことのメモをペタ張りします。

$[TTL]
@  IN SOA   [MNAME] [RNAME] (
       [Serial]
       [Refresh]
       [Retry]
       [Expire]
       [Minimum]
       )

TTL・・・・・・・・Time To Live(有効期間)。他DNSサーバに於ける当該ゾーンのキャッシュ有効期間
MNAME・・・・・プライマリDNSサーバ名
RNAME・・・・・・責任者のメールアドレス。Aレコードで定義したFQDNでなければなりません
Serial・・・・・・・32bit値(最大4294967295)を記し、更新したら増やさなければなりません。普通は管理し易いように更新日付+2桁を記します
Refresh・・・・・スレーブサーバの更新チェック間隔。単位は秒。スレーブサーバはプライマリサーバの上記Serialを確認し、増えてれば更新します
Retry・・・・・・・上記スレーブサーバの更新時に、失敗した際の再試行間隔。単位は秒。よって、値はRefreshより小さくなければなりません
Expire・・・・・・スレーブサーバのデータ有効期間。普通はプライマリサーバに障害が起きた際の、復旧するまでの予想時間より大きくします
Minimum・・・・他DNSサーバに於ける当該ゾーンのネガティブキャッシュのTTL(有効期間)

SOA・・・・・・・・・・・・・・当該ドメインに関する情報(上記の各値)
Negative Cache・・・「ゾーンに該当するレコードが存在しない」という結果のキャッシュ

・逆引きゾーン
PTR・・・・・・・IPアドレスからホスト名に変換するレコード

・正引きゾーン

         [NS]
         [MX]
[@]      [A] 192.168.1.1
www     A 192.168.1.2
ns       [CNAME] www.ys-network.info.

NS・・・・・・・・Name Server。ゾーンの管理DNSサーバ
MX・・・・・・・・Mail eXchange。当該ゾーン(ドメイン)に対するメールの送信先(メールサーバ)
@・・・・・・・・・起点もといデフォルトドメイン名。”ys-network.info”ドメインの@なら”ys-network.info”になる
A・・・・・・・・・host Address。ホスト名からIPアドレスに変換するレコード
CNAME・・・・Canonical Name。レコードのエイリアス。例ではns.ys-network.info=www.ys-network.infoになる

TXT・・・・・・・text(別名SPF)。主に、当該ドメインからメールを送信する可能性のあるホスト名(IPアドレス)リストに使われる

=========================================================

現場での経験より
・TTL値をどんなに短くしてもゾーンの変更内容は、3日で8割以上、1週間で9割以上、10日程度でほぼ100%反映されます。
 DNSの関係は、いわば”伝言ゲーム”なので、どうしても時間がかかります。
 決して、TTL値を300(300秒=5分)にしたからといって、10分もあれば世界中のDNSサーバのキャッシュに更新が反映されるわけではありません。
 メールサーバの切り替えで、DNSを更新してから10分後に完全に切り替えられて痛い目にあったことがあります。「あれ?メールが半分くらい来ないよ?」
 おまえだ、外注先のN●●!提出した計画書と実際の作業内容が違うやんけ!

・NS・MXレコードで、1番目が駄目だったら2番目に試行するのが普通ですが、何故かしてくれないサーバが多数ありまして
 「セカンダリ側が生きてるから大丈夫」なあんて、幻想に過ぎないように思えます。
 当方は、プライマリ側メールサーバがダウンしたら、ネットワークの設定でNAT先をセカンダリ側メールサーバに変更してます。
 冗長構成の意味がないよ…。