39 FreeBSD连载:定义自己的名字服务( 二 )


维护名字服务器
当完成了这一步之后,就可以把本网络上所有计算机的解析数据,使用A记录增加到db.bsdgroup中,使用PTR记录增加到bsdgroup.rev文件中去,并重新启动named守护进程,或者向named发送SIGHUP信号(使用kill或killall),使其重新读取设置文件 。那么所有使用这台计算机作名字服务器的计算机将能正确查询相应的名字和IP 。
但是,外部的计算机并不知道有这个名字服务器的存在,因此外部计算机还无法查找到正确的结果 。因此就需要将这个名字服务器,及其提供服务器的域,登记到Internet上的正式名字服务器上,以便这个名字服务器上的zone数据通过正式服务器发布到整个Internet 。最方便的做法是将这个名字服务器登记到其上一级名字服务器上,如在example.org.cn的名字服务器中可以指定bsdgroup.example.org.cn子域的zone设置及名字服务器 。
bsdgroup.example.org.cn. IN NS 192.168.4.21此后,外部计算机才能查找bsdgroup这个域的内容 。
这个例子中使用了两个名字服务器ns和ns1,为了保持两个服务器中的数据一致,两个服务器一个需要作为主服务器,另一个必须作为辅服务器 。主服务器ns在配置文件named.conf中使用type master来说明,而辅服务器ns1使用type slave来说明:
zone "bsdgroup.example.org.cn" {type slave;file "db.bsdgroup";};这使得ns1首先尝试从ns(192.168.4.21)中获得zone的配置数据,如果不能成功再从本机配置文件中获得 。这样既能起到备份作用,又能保持解析数据尽量一致 。
named在启动和运行的过程中将不断向控制台打印信息,这些信息也被写入/var/log/messages文件中 。查看这些文件可以判断是否有错误发生 。
Feb 15 01:26:17 roke named[6091]: starting.named 8.1.1 Sat Feb 1400:18:20 MET 1998 ^Iwb@example.org.cn:/var/tmp/bind-8.1.1/src/bin/namedFeb 15 01:26:17 roke named[6091]: cache zone "" (IN) loaded (serial 0)Feb 15 01:26:17 roke named[6091]: master zone "0.0.127.in-addr.arpa"(IN) loaded (serial 1)Feb 15 01:26:17 roke named[6091]: listening [127.0.0.1].53 (lo)Feb 15 01:26:17 roke named[6091]: listening [129.240.230.92].53 (ppp0)Feb 15 01:26:17 roke named[6091]: Forwarding source address is [0.0.0.0].1040Feb 15 01:26:17 roke named[6092]: Ready to answer querIEs.此外,随着Internet的发展,根DNS服务器也会不断更新,因此保持自己的DNS服务器中root.hints(或named.root)文件与Internet上的真实根文件服务器同步也是非常重要 。通常可以使用dig来从一个根文件服务器上取得这个文件:
# cd /etc/namedb# dig @rs.internic.net . ns >root.hints.new【39 FreeBSD连载:定义自己的名字服务】如果一切正常,就可以将root.hints.new复制为named.root,并重新启动named 。此外还有一些常用的工具程序有nslookup,dig,dnswalk,named-xfer等,能用来分析DNS设置,帮助解决设置问题 。
未完,待续 。。。

推荐阅读