マスター/スレーブ構成に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; };
};
コピーレフトガイドから ロケット科学者のためのDNS :
デフォルトでは、BIND9は、ゾーンのNS RR)に表示されるすべてのターゲット名(右側の名前)にNOTIFYメッセージを送信します。
したがって、スレーブサーバーをNS _db.example.com.inv.zone
_のエントリとして追加する必要があります。
さらに、設定を追加する必要がある場合があります。
notify yes;
_および_allow-transfer { SLAVE_IP; };
_allow-notify { MASTER_IP; };
_マスターでシリアル番号が変更されると、すぐにスレーブに通知されます。つまり、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行目。