本文译自bind主网站上的一篇文章:http://www.isc.org/products/bind/faq.html。应该说,这些问题都非常典型,对bind 9用户的日常维护与管理可以提供不小的帮助。
【相关文章:(zt) FC3下安装fcitx-3.0】 【扩展阅读:WINDOWS+LINUX多重启动(转贴】1. 当我在linux 2.2.x上使用以--enable-threads选项编译的bind程序时,为什么-u参数不起作用? 【扩展信息:Fedora Core 3 上的ACL实】 答:linux线程并没有完全实现posix线程(pthreads)标准。特别是setuid()只能对当前线程起作用,而不适用于整个进程。正是由于此项限制,linux上的bind 9就无法像在其他支持的系统平台上一样使用setuid()。在创建线程之前不能调用setuid(),因为服务器只有在线程启动之后才能开始监听预留端口。 对于2.2.18或2.3.99-pre3以及更新的内核而言,则能在调用setuid()之后仍然保持可用性。这使得bind 9可以更早些调用setuid(),而同时又保持了绑定预留端口的能力。这是针对linux所作的特别处理。 在2.2内核上,bind 9的确放弃了许多root权限,所以相对于那些没有放弃权限的root进程而言,这会更加安全一些。 如果linux线程已经正常工作,那么这项限制也就不复存在。 用户可以使用--disable-threads选项(这是默认选项)来编译bind9,这样会生成一个非线程的版本,用户能够使用-u选项。 2、为什么named的日志中会给出警告信息"no ttl specified - using soa minttl instead"? 答:你的zone文件不符合rfc1035标准。你可以使用两种方法来解决此问题: 1)在zone文件的开头加入一行对ttl的定义,例如:$ttl 86400 2)在zone文件的第一条记录中包含ttl字段,例如:example.com. 86400 in soa ns hostmaster 3、为什么我在linux上会看到5个(或者更多)的named副本? 答:在ps下每个linux线程也会像进程一样显示出来。一般运行的线程个数为n+4,这里n表示cpu的数目。注意在内存量的使用上并不遵从累加的原则;如果每个进程使用10m内存,那么所有线程总共也只使用10m内存。 4、为什么即便我在linux系统上用root身份运行bind 9,在访问配置文件或zone文件时,仍然会得到关于"permission denied"错误的日志? 答:在linux上,bind 9在启动时就放弃了绝大部分root权限,这其中就包括打开其他用户所属文件的权限。因此,如果服务器是以root身份运行的,那么配置文件与zone文件也应该由root所有。 5、为什么我得到类似于"dns_zone_load: zone foo/in: loading master file bar: ran out of space"的错误提示? 答:这通常是由于txt记录中少了一个引号所致。检查所有txt记录是否都包含了完整的引号。 6、我怎样能够在linux上从多线程named生成一个可用的core文件? ... 下一页