|
使用DNS的第一步是在用户的计算机上配置转换程序,即让机器能够从DNS服务器中获取域名解析/反解析服务。转换程序不是一个单独而明确的处理进程,而是网络进程调用的一个标准C程序库。如果本地系统不运行named,就必须配置本地转换程序。
|
|
|
|
/etc/host.conf是用来控制本地转换程序文件的设置文件。该文件告诉转换程序使用哪些服务、按照什么顺序进行。该文件的字段可以用空格或制表符分隔。字符"#"表示注释行。/etc/host.conf文件的配置选项如下。
|
|
|
◆order:指定按照哪种顺序来尝试不同的名字解析机制,按列出的顺序来进行指定的解析服务,支持下面的名字解析机制。
|
|
|
●hosts:试图通过查找本地/etc/hosts文件来解析主机名字。
|
|
|
|
●nis:使用网络信息服务(NIS)协议来解析主机名字。
|
|
|
◆multi:以off和on为参数。与host查询一起使用,用来确定一台主机是否在/etc/hosts文件中指定了多个IP地址。
|
|
|
◆nospoof:如果用逆向解析找出与指定的地址匹配的主机名,就可以对返回的地址进行解析以确认它确实与查询的地址相配。为了防止"骗取"IP地址,可通过指定nospoof on来允许逆向解析功能。
|
|
|
◆alert:以off和on为参数。如果打开,任何试图骗取IP地址的行为都通过syslog工具被记录下来。
|
|
|
◆trim:以域名为参数。在/etc/hosts中查找名字前,trim删除这个域名,只把基本主机名放在/etc/host.conf中而不指定域名。
|
|
|
下面这个例子是主机vlager上的/etc/host.conf文件。
|
|
|
|
这个例子给出了域vbrew.com的通用解析程序配置。该解析程序首先使用DNS解析,然后使用/etc/hosts文件查找主机名。在解析查找中指定本地/etc/hosts文件是一个好主意。如果由于某种原因不能使用域名服务器,那么还可以使用主机文件中列出的那些主机名。该机器上允许使用多个IP地址,主机通过重新解析主机名字(从IP地址逆向查找返回的主机名字)来检查IP欺骗。
|
|
|
|
当配置转换程序使用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。
|
|
|