|
当配置转换程序使用BIND域名服务查询主机时,必须告诉转换程序使用哪一个域名服务器。用来完成这项任务的工具就是/etc/resolv.conf文件。/etc/resolv.conf控制转换程序采用DNS解析主机名时使用的方式,可以明确地定义系统的配置,允许命名由于默认服务器不响应而使用的备份服务器。因此,尽管会增加系统负荷,但在某些场合使用resolv.conf还是很受欢迎的。
|
|
|
/etc/resolv.conf是一个简单而易读的文件。在/etc/resolv.conf中使用的命令,具有系统专用的形式,但一般都支持nameserver和domain两项命令。
|
|
|
nameserver项利用IP地址去识别,让转换程序识别查询域信息的那些服务器。可以通过多次使用nameserver选项,使用多达三个域名服务器。这些域名服务器是按照它们在文件中的顺序进行查询的,如果没有接收到任何一个服务器的响应,则尝试表中的下一个服务器,直到所有服务器试完为止(如果在/etc/resolv.conf文件中设置了三个以上的域名服务器,那么即使前三个服务器都没有响应查询请求,Linux也不会去请求后面的服务器)。应该将最可靠的域名服务器列在最前面,以便在查询时不会超时。如果resolv.conf文件中不包含nameserver项,或者不存在resolv.conf文件,就将所有域名服务器查询发送给本地主机。然而,如果有一个resolv.conf文件,它包含nameserver项,除非有一项指向本地主机,否则就不查询本地主机。在配置唯转换程序的主机中,resolv.conf文件包含nameserver项,但没有一个项指向本地主机。
|
|
|
domain项用来定义默认域名(主机的本地域名)。转换程序会将默认域名挂在任何不含点的主机名后面。例如,转换程序接收到主机名vale(它不含点),就将其默认域名挂接在vale的后面,对它进行查询。如果domain域中的name值是vbrew.com,那么转换程序就将查询vale.vbrew.com。如果没有找出它,则转换程序就试图通过getdomainname()系统调用来获得本地域名。
|
|
|
如果听起来让人迷惑不解,可以看看下面这个例子,这是Virtual Brewery中的resolv.conf文件。
|
|
|
|
在该例中,通过domain项指定默认域名,并列出一个用于解析主机名的域名服务器。在这个例子中没有指定查询顺序(使用search选项),因此如果要查询一台机器的地址(如vale),解析器会首先试图查找vale,如果没有找到,则查找vale.vbrew.com,然后再查找vbrew.com。
|
|
|