web-dev-qa-db-ja.com

スレーブを低速でバインドしてゾーンを更新する

マスター/スレーブ構成に2つのバインドサーバーがあります。マスターゾーンファイルでシリアルがインクリメントされると、ゾーンがスレーブで更新されるまでに予想よりも時間がかかります。 2つのテストサーバーで問題を再現しました。 ttlが5秒の場合、スレーブが更新されるまでに数分かかります。 Bind9.8とUbuntu12.04を使用しています。

マスターテストサーバーの構成は次のとおりです。

named.conf.local

zone "example.com" {
        type master;
        file "/var/lib/bind/db.example.com.zone";
        //forwarders {};
        // If we do not comment the ''forwarders'' "empty" clients of the local subnet     in my case don't have access to the upstream DNS ?
        //allow-update { key ns-example-com_rndc-key; };
        allow-update { key rndc-key; };
        //confusion between the file name to import (ns-example-com_rndc-key) and the     key label (rndc-key) ?
};
zone "0.168.192.in-addr.arpa" {
    type master;
    file "/var/lib/bind/db.example.com.inv.zone";
    //see comment below (zone "example.com")
    //forwarders {};
    //allow-update { key ns-example-com_rndc-key; };
    allow-update { key rndc-key; };
};

db.root.example.com

$TTL    5
@       IN      SOA   sid.example.com. root.example.com. (
               2007010416           ; Serial
                       5           ; Refresh [1m]
                      5           ; Retry   [10m]
                    5           ; Expire  [1d]
                      5 )         ; Negative Cache TTL [1h]
;
@       IN      NS      sid.example.com.
@       IN      MX      10 sid.example.com.

sid     IN      A       192.168.0.3
etch    IN      A       192.168.0.3

pop     IN      CNAME   sid
www     IN      CNAME   sid
mail    IN      CNAME   sid

db.example.com.inv.zone

@ IN SOA        sid.example.com. root.example.com. (
               2007010401           ; Serial
                     3600           ; Refresh [1h]
                      600           ; Retry   [10m]
                    86400           ; Expire  [1d]
                      600 )         ; Negative Cache TTL [1h]
;
@       IN      NS      sid.example.com.

1       IN      PTR     sid.example.com.
2       IN      PTR     etch.example.com.

スレーブの構成は次のとおりです。

zone "example.com" {
    type slave;
    file "/var/cache/bind/db.example.com.zone";
    masters { 192.168.0.2; };
//forwarders {};
    // If we do not comment the ''forwarders'' "empty" clients of the local subnet in my case don't have access to the upstream DNS ?
    //allow-update { key ns-example-com_rndc-key; };
    allow-update { key rndc-key; };
    //confusion between the file name to import (ns-example-com_rndc-key) and the key label (rndc-key) ?
};
zone "0.168.192.in-addr.arpa" {
    type slave;
    file "/var/cache/bind/db.example.com.inv.zone";
    masters { 192.168.0.2; };
//see comment below (zone "example.com")
    //forwarders {};
    //allow-update { key ns-example-com_rndc-key; };
    allow-update { key rndc-key; };
};
2
Ironlenny

コピーレフトガイドから ロケット科学者のためのDNS

デフォルトでは、BIND9は、ゾーンのNS RR)に表示されるすべてのターゲット名(右側の名前)にNOTIFYメッセージを送信します。

したがって、スレーブサーバーをNS _db.example.com.inv.zone_のエントリとして追加する必要があります。

さらに、設定を追加する必要がある場合があります。

  • マスター:_notify yes;_および_allow-transfer { SLAVE_IP; };_
  • スレーブの場合:_allow-notify { MASTER_IP; };_
4
Ivan Ogai

マスターでシリアル番号が変更されると、すぐにスレーブに通知されます。つまり、notifyはデフォルトで有効になっています。しかし、通知の仕組みは、マスターがNS recordsは、ゾーンファイル内のその特定のドメインのであり、NSレコードにリストされているサーバーにそれ自体を除いて通知します。あなたの場合、スレーブサーバーのホスト名がNS db.root.example.comゾーンファイルのレコード。したがって、スレーブは、スレーブの設定ファイルにリストされているマスターに接続しています-masters { 192.168.0.2; };更新間隔、1時間。そのため、更新に時間がかかります。

解決策-スレーブのNSレコードを追加し、そのIPアドレスもAレコードとして含めます。一般的なセットアップは次のとおりです-

  @        IN      NS      ns1.example.com.
  @        IN      NS      ns2.example.com.
  ns1     IN      A       192.168.1.1
  ns2     IN      A       192.168.1.2

1行目と3行目、マスター用。スレーブの2行目と4行目。

3
Daniel t.