免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6001 | 回复: 9
打印 上一主题 下一主题

[DNS] bind 动态更新 问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-21 23:14 |只看该作者 |倒序浏览
最近在做DNS的 动态更新,当用户 更新记录后 通过 nsupdate 更新RR到zone文件中,发现一个问题,就是 RR不是直接写进 zone文件的,而是先写 到 zone.jnl 中(是一个二进制文件),再过一段时间后再写到 zone文件中,这个时间手册上讲 好像要15分钟,我测试时发现 15分钟还没有写到zone文件中,不知有没有什么参数可以控制这个写的频率。比如10分钟就更新或20分钟更新。看了一下named.conf中只有一个 max-journal-size 500k; 的参数,好像没有什么太大的作用。

如果有那位大虾清楚,望告知一下。

论坛徽章:
0
2 [报告]
发表于 2010-04-22 10:28 |只看该作者
我记得好像写到了jnl文件,域名的更新也是马上生效的,只要相应的域名ttl设短点更新会很快的。

论坛徽章:
0
3 [报告]
发表于 2010-04-22 11:16 |只看该作者
对,域名是可以马上生效,此时的记录写在cache(jnl)中,只有在过一段时间后才能写到 zone文件,当然,你可以rndc stop ; service named start ,这个时候jnl内的内容会写到 zone文件中。

如果我想更新后 5分钟自动写到 zone中应怎么做呢,这个时间值我想自已来设。不用系统的默认值。

论坛徽章:
0
4 [报告]
发表于 2010-04-22 11:23 |只看该作者
对,域名是可以马上生效,此时的记录写在cache(jnl)中,只有在过一段时间后才能写到 zone文件,当然,你可以rndc stop ; service named start ,这个时候jnl内的内容会写到 zone文件中。

如果我想更新后 5分钟自动写到 zone中应怎么做呢,这个时间值我想自已来设。不用系统的默认值。
dmidecode 发表于 2010-04-22 11:16


不嫌累就监控jnl时间,然后新了就运行rndc stop start好了。或用脚本查询zone文件的指向和dig指向是否一致,不一致就 stop start.cron 里面5分钟运行一次脚本好了。

论坛徽章:
0
5 [报告]
发表于 2010-04-22 12:47 |只看该作者
XXX.jnl 文件是二进制的,不好监控啊,
刚才看了一下原码,不知是不是 lib/dns/journal.c 、 lib/dns/include/dns/zone.h 、 lib/dns/zone.c 这几个文件控制 更新时间的。

C 啊,看不懂,有谁可以指点一下不?。

论坛徽章:
0
6 [报告]
发表于 2010-04-22 17:17 |只看该作者
不用查看文件内容,监控文件时间好了,也可以用dig xxx.xxx.com @127.0.0.1 的输出用脚本搞出来和zone文件中的数据grep awk出来对比。不一样就重新启动named. 或者更新域名的cgi中加入延时个1分钟后重新启动named都是办法。

论坛徽章:
0
7 [报告]
发表于 2010-04-22 21:12 |只看该作者
生产环境中的DNS您认为可以随便重启吗?
当然,你所讲的也只是下下下则了,不知有没有更好的办法处理。

求解啊。

论坛徽章:
0
8 [报告]
发表于 2010-04-24 13:15 |只看该作者
你为什么需要调整这个时间到5分钟呢?

查看.jnl文件可以使用bind自带的named-journalprint。9.6及之前版本是journalprint。

论坛徽章:
0
9 [报告]
发表于 2010-04-24 14:06 |只看该作者
你为什么需要调整这个时间到5分钟呢?

查看.jnl文件可以使用bind自带的named-journalprint。9.6及之前版 ...
diancn 发表于 2010-04-24 13:15



    至于为何要调到5分钟,这个不是重要的,比较有的用户 不想15分钟写一次,希望是30分钟写一次呢,我个人认为这个值应可以在 options中有配置项,我看了bind9.6手册后发现还是没有,不过有一段关于jnl的介绍,

   我通过修改zone.c原文件后现在可以做到5分钟写cache了。

论坛徽章:
0
10 [报告]
发表于 2010-04-27 15:17 |只看该作者
生产环境中的DNS您认为可以随便重启吗?
当然,你所讲的也只是下下下则了,不知有没有更好的办法处理。

求解啊。dmidecode 发表于 2010-04-22 21:12


那你要求更新zone文件是为什么呢?有程序要定时读里面的数据?修改读zone文件的程序让他直接dig查询结果就好了。或读zone文件的程序你改不了,就修改需要读zone文件的程序的zone文件地址,你写个定时程序定期把dig出来的结果写一个zone到那里让程序读,就是给他一个假的zone文件去读好了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP