绑定从属以缓慢更新区域

绑定从属以缓慢更新区域

我在主/从配置中拥有两台 Bind 服务器。当主区域文件上的序列号增加时,从属服务器上的区域更新时间比预期的要长。我在两台测试服务器上复制了这个问题。TTL 为 5 秒,从属服务器更新需要几分钟。我使用的是 Bind 9.8 和 Ubuntu 12.04。

以下是我的主测试服务器的配置:

命名的.conf.本地

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; };
};

答案1

来自版权指南火箭科学家的 DNS

默认情况下,BIND9 将向区域中 NS RR 中出现的所有目标名称(右侧名称)发送 NOTIFY 消息

因此您需要将您的从属服务器添加为 NS 条目db.example.com.inv.zone

此外,您可能需要添加以下设置:

  • 在主人:notify yes;allow-transfer { SLAVE_IP; };
  • 在从属中:allow-notify { MASTER_IP; };

答案2

当主服务器上的序列号发生更改时,它将立即通知从服务器。换句话说,notify默认情况下启用。但是,通知的工作方式是,主服务器查看NS records区域文件中该特定域的,并通知 NS 记录中列出的服务器(不包括它自己)。就您而言,我没有看到从服务器的主机名在 db.root.example.com 区域文件中被列为 NS 记录。因此,从服务器正在联系主服务器,在从服务器的配置文件中列出 -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

第一行和第三行为主控。第二行和第四行为从属。

相关内容