我有一个主 BIND 服务器,它维护着一些区域。named.conf
文件中的示例条目如下:
zone "example.com" {
type master;
file "example.com.zone";
allow-update { 10.202.215.10; 10.202.215.11; 10.201.215.14; };
};
有三个从服务器。以下是三个从服务器上的配置示例:
zone "example.com" {
type slave;
file "slaves/example.com.zone";
masters { 10.201.215.11; 10.202.215.10; 10.202.215.11; };
};
编辑
主服务器和从服务器的 IP 和主机名
Master: 10.201.215.11
Slave1: 10.201.215.14
Slave2: 10.202.215.10
Slave3: 10.202.215.11
结束编辑
对于示例中的区域文件,我已增加主服务器上的序列号,然后rndc reload
在所有服务器上运行(主服务器和三个从服务器)。每个从服务器上的区域文件上的时间戳都在更新,但是从服务器上的序列号没有更新。
但是从属服务器正在更新:
Oct 14 12:14:44 dns-slave01 named[12434]: transfer of 'example.com/IN' from m 10.201.215.11#53: connected using 10.202.215.10#44420
为什么连续剧不更新?
编辑
根据 yoonix 的评论,我删除了除我所知道的作为该区域主服务器的一台服务器之外的所有服务器:
zone "example.com" {
type slave;
file "slaves/example.com.zone";
masters { 10.201.215.11; };
};
notify yes
尽管它默认是启用的,但我也明确设置了它。
此外,我已经删除了allow-update
主机上的选项,以确保所有主机都能够动态更新。
复制仍未发生。
然而,我看到主人正在发送通知公告:
Oct 17 00:48:00 dns-master01 named[5608]: zone example.com/IN: sending notifies (serial 2009091903)
Oct 17 00:48:13 dns-master01 named[5608]: zone example.com/IN: sending notifies (serial 2009091904)
我已经验证telnet
我能够通过端口 53 从主服务器连接到从服务器。
编辑2 我所做的一件事是确保所有从属服务器都具有相同的配置,并修复了配置错误的日志记录。在我修改区域文件大约三个小时后,传输就发生了。我仍然无法弄清楚为什么它没有立即发生。
下面是 master named.conf
。还有几个区域条目,但除了域之外,其他都是相同的。
// generated by named-bootconf.pl
//
// a caching only nameserver config
acl trusted_nets {
10.201.96.0/20;
10.202.96.0/20;
10.201.215.0/24;
10.202.215.0/24;
12.130.200.0/24;
174.47.15.0/24;
199.108.193.0/24;
199.108.195.0/24;
72.165.204.0/24;
};
//
options {
directory "/var/named";
allow-recursion { trusted_nets; };
notify yes;
allow-transfer { 10.202.215.10; 10.202.215.11; 10.201.215.14; 199.108.193.20; 209.67.192.20; 10.201.215.10; };
};
logging {
channel dns_log {
file "/var/log/named.log" versions 3 size 5m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
category default {
dns_log;
};
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." {
type hint;
file "named.ca";
};
zone "localhost" {
allow-update { none; };
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" {
allow-update { none; };
type master;
file "named.local";
};
zone "example.com" {
type master;
file "example.com.zone";
allow-update { 10.202.215.10; 10.202.215.11; 10.201.215.14; };
};
include "/etc/rndc.key";
设置中的每个 IPallow-update
都是从属 IP 之一。
示例从属。同样,还有几个区域,但除了域之外,它们是相同的。
// generated by named-bootconf.pl
//
// a caching only nameserver config
acl trusted_nets {
10.201.96.0/20;
10.202.96.0/20;
10.202.92.0/20;
10.201.215.0/24;
10.202.215.0/24;
12.130.200.0/24;
174.47.15.0/24;
199.108.193.0/24;
199.108.195.0/24;
72.165.204.0/24;
};
//
options {
directory "/var/named";
allow-recursion { trusted_nets; };
allow-transfer { 10.202.215.10; 10.202.215.11; 10.201.215.11; 199.108.193.20; 209.67.192.20; };
};
logging {
channel mtg_log {
file "/var/log/named.log" versions 3 size 5m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
category default {
mtg_log;
};
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { rndckey; };
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" {
allow-update { none; };
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" {
allow-update { none; };
type master;
file "named.local";
};
zone "example.com" {
type slave;
file "slaves/example.com.zone";
masters { 10.201.215.11; };
};
include "/etc/rndc.key";
除了选项之外type
,它们是相同的。我不知道它们是否应该这样配置。
编辑3
似乎只有在我重新启动时才会发送 NOTIFY 公告named
。我试过了rndc reload
,service named reload
但什么也没发生。只service named restart
发送了公告。
答案1
从您的配置来看,您有多个主服务器。从服务器可以查询任何主服务器以获取更新。在尝试更新从服务器之前,请验证所有主服务器是否都是最新的。我怀疑列表中应该只有一个 IPv4 和/或一个 IPv6 地址。
您可能应该添加一个包含从属服务器 IP 地址的通知列表。通常,这些应该是可以执行区域传输的唯一主机。您还应该考虑为主服务器启用通知。
答案2
我建议您删除从属服务器上的区域文件并从主服务器上执行新的区域传输。