强制更新BIND之DDNS jnl档至zone

强制更新BIND之DDNS jnl档至zone

有时设定好BIND提供的DDNS功能时,却想要立即看到它的结果不等它在设定时间更新时需要怎么做?经过许多资料的参考后有些心得提供给大家及自已往后参考,

这篇文章之前,Danny也是DNS Server的门外汉,大部分都是由网路文章中取得的知识,在读此篇之前必需要了解如何启用BIND之DDNS动态域名更新功能此篇才可能对您有帮助,提供个人看过的网站:

虽然有些文章是旧文,但主要是观念正确就能完成利用BIND来架DDNS,当然此中也有安全性问题必需要克服的,一旦你提供此功能对外接口也会造成一些网路”特殊”人事的观注,安全性讨论可以参考:

使用此功能主要一开始想要利用Synology NAS提供操作性极佳的DDNS设定介面,再利写好的的Script去执行Synology提供的nsupdate更新自行架设的DNS Server,并且在Synology上新增一个自定DDNS更新的服务供应商,如此一来本来使用在动态IP的NAS就能有固定的网域名称来使用:

以上如果具备BIND的DDNS架设技巧后会知道在更新网域的IP时都会有个暂存档副档名为.jnl,设定的更新时间一到会自动将更新内容回写至zone,如果你需要立即更新的话,除了将BIND重新启动外,还有另一个方式立即更新,就是使用rndc,在此之前要先建立RNDC key,参考:

建立好后就能利用rndc命令加上建好的key与DNS Server沟通,BIND 9开始使用此方式来控制DNS Server,所以使用时必需要先建立好RDNC key,更详细的说明参考:

以上再次强调,对此Danny只是初学者,将自已建立成功的经验分享,以上资讯观念有误欢迎来信指教。

接下来才是关键,单纯执行rdnc命令会列出参数使用方式,要来利用其中两个参数:

freeze  Suspend updates to all dynamic zones.
thaw        Enable updates to all dynamic zones and reload them.


  • freeze 暂停所有动态更新的zones

  • thaw 致能所有动态更新的内容及重新载入内容

利用这两个命令可以让所有的动态zones回存至原本的zones设定档,当然如果你只想单独只对某个zone操作可以改用指定的方式:

freeze zone [class [view]]
thaw zone [class [view]]

下面要操作的也是只对某个zone操作,并且指定rndc key的档案名称:

rndc -k rndc key freeze 网域名称
rndc -k rndc key thaw 网域名称

范例: 网域名称:abc.org rndc key:rndc.key

rndc -k /etc/bind/rndc.key freeze abc.org
rndc -k /etc/bind/rndc.key thaw abc.org

连续执行完后会看到讯息:

A zone reload and thaw was started.
Check the logs to see the result.

表示已经更新完成,此时可以去cat一下你的zone file查看ip是否有更新正确即完成。