我有我觉得最终会成为一个简单的问题,但我没有看到明显的问题。
下面是一个示例stream程,首先要更好地理解事情是如何发生的 – 请注意,这是已经到位的基础架构,操作顺序需要保持不变:
现在,在第1步和第2步之间,我们开始看到这个(显然是因为该领域还没有在我们的系统中:
Jun 12 15:32:40 DNSSERVER named[25262]: client 230..xxx.xxx.xx#61333 (example.com): query (cache) 'example.com/SOA/IN' denied
接下来我创build区域文件/var/lib/bind/example.com.hosts :
$ttl 38400 example.com. IN SOA ns1.ourdnsserver.com. some.email.com. ( 1494611262 10800 3600 604800 38400 ) example.com. IN NS ns1.ourdnsserver.com. example.com. IN A 40.xx.xx.xx www.example.com. IN A 40.xx.xx.xx mail.example.com. IN A 173.xx.xx.xx webmail.example.com. IN A 173.xx.xx.xx example.com. IN MX 10 mx1.server.com. example.com. IN MX 20 mx2.server.com.
在此之后,我将该区域插入configuration/etc/bind/named.conf.local中 :
zone "example.com" { type master; file "/var/lib/bind/example.com.hosts"; };
然后我发出重启sudo service bind9 restart
在此之后,我仍然得到了
Jun 12 15:32:40 DNSSERVER named[25262]: client 230..xxx.xxx.xx#61333 (example.com): query (cache) 'example.com/SOA/IN' denied
我需要做的是解决这个问题是编辑我的文件/var/lib/bind/example.com.hosts
– 用新的unix时间戳更新串行 – 重新保存并重新启动绑定。 和中提琴,通知者得到发送,该区更新。
编辑
然后我在日志中得到以下内容
8377:Jun 12 14:12:57 OURSND named[25262]: zone example.com/IN: sending notifies (serial 1494611231)
结束编辑
这里是一个问题,当我创build区域并重新启动绑定时,为什么不发出通知? 为什么我必须回去,编辑,重新保存并重新启动绑定区域被视为“更新”? 每一次我都希望这是第一次发生。 我没有看到什么?
把串口想象成一个版本号。 你(重新)开始绑定,它检查其数据caching中的版本号与config(串行版)中的版本号。 如果版本相同,为什么麻烦重新处理一切,为什么浪费networking带宽告诉辅助服务器,您有区域传输…
始终更新您的序列号。 唯一的规则是它必须上升。 使用unix时间戳是好的,或者像YYYYMMDDNN这样的格式,其中NN是当天的修订版号(您是否需要每天更改超过99次?)。
正如你所发现的那样,问题在于记住在编辑文件时更新序列号。 使用一些模板文件,数据文件和shell脚本来创build一个“构build”的过程,在这个过程中,你将对数据进行编辑,然后告诉它重新生成区域文件,其中包括放出一个新的串行,甚至去到一个像“ISPConfig”这样的“服务提供者”控制面板的基于Web的前端(数据将全部在sql数据库中,而ispconfig软件将自动创build区域文件)。