Bind9动态区域:更新和可用性之间的延迟来自哪里?

Bind9动态区域:更新和可用性之间的延迟来自哪里?

我已经建立了一个bind9名称服务器并创建了一个专用(内部)子域,每个人都可以出于任何目的对其进行更新。设置非常简单并且通常可以工作,但是在更新生效之前会有长达几分钟的延迟,即可以从服务器检索 RR。

为什么会这样以及如何加快速度?

我的设置

只有一台服务器,运行dnsmasq以下配置:

no-poll
server=/my.fq.doma.in/127.0.0.1#5353
no-dhcp-interface=eth0,eth1,eth2,eth3
bind-interfaces

以及bind9具有以下配置的名称服务器(我只放置我认为相关并被要求的内容):

options {
    directory "/var/cache/bind";

    dnssec-validation no;
    dnssec-enable no;
    auth-nxdomain no;    # conform to RFC1035

    listen-on port 5353 { 127.0.0.1; }
}

key "notsecretkey" {
        algorithm hmac-md5;
        secret "up_up_and_away/foobar==";
};

zone "my.fq.doma.in." {
        type master;
        file "/var/lib/bind/db.ZONE.mydomain";
        allow-update { key notsecretkey; };
};

例子

我做了修改,添加了 NS RR 和 A RR。

root@dnshome:/tmp# rndc freeze my.fq.doma.in
root@dnshome:/tmp# rndc thaw my.fq.doma.in
A zone reload and thaw was started.
Check the logs to see the result.
root@dnshome:/tmp# cat /var/lib/bind/db.ZONE.mydomain
$ORIGIN .
$TTL 604800     ; 1 week
my.fq.doma.in          IN SOA  mydomainns.ourdoma.in. dnsmaster  .ourdoma.in. (
                            2015033109 ; serial
                            604800     ; refresh (1 week)
                            86400      ; retry (1 day)
                                2419200    ; expire (4 weeks)
                                604800     ; minimum (1 week)
                                )
                        NS      ns.my.fq.doma.in.
$ORIGIN my.fq.doma.in.
mail                    A       10.30.1.4
$TTL 600        ; 10 minutes
test                    A       2.3.4.5
abc                     NS      ns.abc      # <----- my changes
$ORIGIN abc.my.fq.doma.in.                  # <----- written to
ns                      A       172.16.1.5  # <----- the zonefile

正如我们所看到的,在freeze和之后thaw,最后三行是我的更改,写入区域文件。

仍然,

root@dnshome:/tmp# nslookup -port=5353 ns.abc.my.fq.doma.in 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#5353

** server can't find ns.abc.my.fq.doma.in: NXDOMAIN

我仔细阅读了屏幕上的区域文件,搜索错误并检查探测器中的拼写错误。我什么也没发现,所以我又试了一次

root@dnshome:/tmp# nslookup -port=5353 ns.abc.my.fq.doma.in. 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#5353

** server can't find ns.abc.my.fq.doma.in: NXDOMAIN

存储足够。我继续尝试我添加的其他 RR。

root@dnshome:/tmp# nslookup -port=5353 -type=NS abc.my.fq.doma.in. 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#5353

Non-authoritative answer:
abc.my.fq.doma.in      nameserver = ns.abc.my.fq.doma.in.

Authoritative answers can be found from:
ns.abc.my.fq.doma.in   internet address = 172.16.1.5

但仍然

root@dnshome:/tmp# nslookup -port=5353 ns.abc.my.fq.doma.in. 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#5353

** server can't find ns.abc.my.fq.doma.in: NXDOMAIN

所以我尝试了另一个旧的 RR

root@dnshome:/tmp# nslookup -port=5353 ns.my.fq.doma.in. 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#5353

Name:   ns.my.fq.doma.in
Address: 10.30.1.4

这有效,所以我又试了一次

root@dnshome:/tmp# nslookup -port=5353 ns.abc.my.fq.doma.in. 127.0.0.1
Server:         127.0.0.1
Address:        127.0.0.1#5353

Non-authoritative answer:
Name:   ns.abc.my.fq.doma.in
Address: 172.16.1.5

瞧,它有效了。

我是唯一在这台机器上工作的人,除了本示例中展示的内容之外,我没有做任何其他事情。显然,我的设置存在某种延迟,我需要知道原因以及如何消除它。

相关内容