第23章网络域名服务(DNS)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第23章网络域名服务(DNS)在Internet的命名服务中最常用的恐怕就是网络域名服务(DNS)了,所以Solaris10操作系统也自带了BIND9DNS服务器。这章介绍如何设置和管理DNS服务器。23.1DNS概述域名服务(DNS)是一种分布式数据库,它提供规范机器名(如host1.paulwatters.com)到数字IP地址(如202.97.33.56)的映射。在Internet的早期,网络中的每台主机都有一个称为hosts.txt的文件,它包含了各种已知的主机名和地址之间的映射。当时,为了维护这一文件,系统管理员需要定期上载一个网络新增主机的列表。但随着Internet的发展,这种以文本数据库维护的形式就变得不太实际了。解决方案就是采用DNS服务器系统。与主机表不一样,DNS服务器不依赖一个大型映射文件,DNS服务器只包含有限的信息,因为它们知道到哪里能找到它们想知道的域的细节。如果DNS服务器得到对某个主机的请求,而该请求的主机又并不在其缓冲内,那么DNS服务器只是知道了这件事然后去询问知道答案的“某计算机”。这台计算机是一种授权服务器,负责维护DNS信息。如果某台服务器在被询问到其域内的某个地址时它可以明确地指出该地址存在,那么这台服务器就是所谓的授权服务器。如果接触的服务器并不包含有关的域名信息,该服务器就会将请求传递给接触链路上更高级别的授权服务器,这样就形成了一系列查询,直到最后找到需要的信息。实际上,这意味着请求可以被任意数量的服务器处理,在Internet上这种来来回回的行为每时每刻都在发生。最早发出请求的服务器将缓冲信息以满足未来的需求而无须向授权服务器再发请求。DNS服务器的管理员为这些信息设置了超时限制,以避免缓冲中充满了名字请求的旧数据的情况。DNS转换不会花费太多的时间,但它确实增加了你的请求到达远端计算机的时间。你可以自己做个快速测试(虽然很简单):首先用域名,比如站点,然后用IP地址198.105.232.4再试验一下。如果你要这么做,则请务必关闭你的浏览器然后再重新打开以初始化新的会话;否则你不过是载入了页面的缓冲版本(记住装载页面的延迟原因可能来自许多因素,所以对结果要有所保留)。DNS服务的最常用软件是BerkeleyInternetNameDomain,也就是BIND,它源自U.C.Berkeley,但现在则由InternetSoftwareConsortium负责。BIND提供了解析器和名字服务器软件,解析器做实际的查询工作而名字服务器则提供响应。BIND将名字服务器分成三个部分:主服务器包含了有关一个域的全部数据;次服务器则有效地从主服务器拷贝DNS数据库;唯缓冲服务器通过缓冲查询来建立例外的DNS数据库。只有主服务器和次服务器才被当做涉及特定域的授权服务器。要理解DNS服务器怎么操作,就有必要理解域名层次。在域名层次的顶部是根域。这一域上的信息驻留在从整个Internet中所选的一些根服务器上。在根域下面是顶级域,也就是国家代码或机构代码。国家代码的例子有SG(新加坡)和CA(加拿大)等。而机构代码则包括众所周知的COM(商业机构)、EDU(教育机关)、GOV(政府机构)和NET(网络机构)等(注意在美国以外的顶级域通常是国家编码,但是基于美国的地点通常省略国家编码)。在顶级域下面是次级域(whitehouse.gov、microsoft.com、inforamp.net等诸如此类),然后是第3级域,依次类推。如果你想在中国建立域名,那么你必须联系网络信息中心CNNIC。在它同意你的请求以前,你首先要保证你想要的名字还没被使用,其次要保证目前至少有2台服务器可以提供新域名的服务。当CNNIC最后同意请求时,它将承认你的次级域,并将指向该名字的指针放到顶级域所在的服务器内。例如,如果你请求域名mybiz.com,那么你必须首先让Internet上的2台名字服务器提供信息服务(你的ISP的服务器能做到这一点),然后NIC将把mybiz放到COM域服务器系统内,其指针将指向那2台特定服务器。一旦设置了适当的主域,你就可以增加所希望的任何数量的子域。你可能想要命名你的计算机为sales.mybiz.com,而另一台则被叫做techsupport.mybiz.com等。这些工作可就不需要CNNIC的同意了,而且,事实上CNNIC也不管这事。但是,如果你想要任何人都能实地访问你的子域,那么你最好将有关子域的信息尽快地放到上级域内。在特定的情况下,关于sales.mybiz.com和techsupport.mybiz.com的IP信息必须放在mybiz.com服务器上。这一层次中的每台服务器都包含了一个DNS数据库,其入口被称为NS记录,每条这样的记录包含了域或子域的名字,此外还加上作为域或者子域服务器的主机的名字。在我们的例子中,我们将告诉根服务器它能在我们的DNS服务器上找到mybiz.com及其全部子域的信息,而这些信息则位于details.mybiz.com这台计算机上。现在我们来看看这一切是如何运作的。某所大学的某人在指向你的最新子域的网页上看见了一个链接techsupport.mybiz.com。然后她单击该链接,于是她的本地DNS服务器(很可能位于这所大学的某台计算机上)开始工作。首先,服务器搜索它自己的DNS数据库以转换信息,但是,因为它以前从来没遇见过techsupport.mybiz.com,所以服务器没有该域存在的记录而且不能解析IP地址。不过,它的DNS数据库包含了一个根服务器的地址(所有的DNS服务器必须设置该索引)。于是本地DNS服务器就到Internet上查询该根服务器。根服务器在其DNS数据库里查找COM顶级域,然后它用NS记录回复该大学的DNS服务器,告诉它可以从details.mybiz.com处查询到mybiz.com的信息。大学的服务器就这样做了,而且从details.mybiz.com那里知道了techsupport.mybiz.com的对应IP地址。在这一过程中最根本的阶段是,大学的DNS服务器缓冲了该NS记录,结果下次该大学的任何人在需要涉及mybiz.com、details.mybiz.com、ortechsupport.mybiz.com等对应的IP地址转换时,相关信息在本地即可获得。正如其他的Internet协议一样,DNS由几个Internet的RFC规范(最初是RFC882、883和973)。不过要理解DNS服务器的工作原理最好的标准还是RFC1035。你可以在Internet上的好几个地方找到RFC1035,比如在就有一个不错的HTML版本。正如你可能想到的那样,RFC具有相当的技术性,你不大可能会对超出DNS服务器一般操作的细节感兴趣。但是如果你想做个服务器管理员,那么就记住RFC吧。23.2DNS客户端的设置在Solaris环境下,DNS客户端程序的配置非常容易,它只需要几个简单的步骤就可以完成。(1)除了对/etc/inet/hosts文件或NIS/NIS+的主机名映射或者主机名(hostnames)表文件进行检查以外,还必须配置命名服务开关文件(/etc/nsswitch.conf),指定域名解析服务向DNS进行查询。为了确保DNS的正常工作,在/etc/nsswitch.conf文件中必须包括下行的内容:hosts:filesdns这行的意思是如果需要命名服务,首先查找/etc/inet/hosts文件,如果找不到,就到DNS中去查找。(2)我们需要将主机的本地域名输入到/etc/defaultdomain文件中。例如,主机的/etc/defaultdomain文件应有如下的输入项:chinaunix.net(3)我们需要在/etc/resolv.conf文件中包含本地域名、本地基本DNS服务器的IP地址,以及辅助的DNS服务器的IP地址。这意味着本地DNS服务器出现故障,我们仍可以通过辅助的NDS服务器来提供最新的外部主机信息,而不必依赖/etc/hosts文件中的数据来解析本地地址。例如,/etc/resolv.conf文件的内容可能是这样:domainchinaunix.netnameserver202.106.0.20nameserver53.58.34.2它表明本地域是chinaunix.net,本地域有两台基本DNS服务器。其中,202.106.0.20为主DNS服务器,53.58.34.2为辅助DNS服务器。(4)下面我们可以启动DNS客户端软件了。#svcadmenablesvc:/network/dns/client(5)使用nslookup命令来检查DNS客户端配置是否正确。#nslookup:202.106.0.20Non-authoritativeanswer:Name:有这样的反馈结果说明DNS客户端设置成功。23.3DNS服务器的设置DNS服务器是为了网络上的主机提供域名解析的服务的服务器。Solaris10虽然自带了BIND9.2.4版本,但它并不是Sun公司的产品,InternetSoftwareConsortium负责BIND软件的更新,我们不妨到软件,因为新的版本的软件可以防止某些漏洞。下面我们来介绍如何配置DNS服务器。如果你使用Solaris10系统自带的软件,请从第7步看起。(1)为了下载最新的BIND软件,我们到下载,本例子下载的是bind-9.3.1.tar.gz。(2)将下载的软件放到系统中的某个目录下,本例中放在/home/bind目录下。#cd/home/bind(3)进入软件存放目录,对软件解压缩到/usr/local/src。#gunzipbind-9.3.1.tar.gz|tar-xvf--C/usr/local/src(4)进入安装目录。#cdbind-9.3.1(5)编译BIND软件。#./configure#make#makeinstall(6)生成的可执行文件位于/usr/local/sbin目录下。最重要的可执行文件为named和rndc。(7)在/usr/sbin目录中创建可执行文件的软链接。#ln-s/usr/local/sbin/rndc/usr/sbin/rndc#ln-s/usr/local/sbin/named/usr/sbin/named(8)在BIND9命名服务控制工具rndc和BIND8的控制工具ndc不兼容,rndc有一个控制文件,就是rndc.conf文件,其作用就是指定管理服务器和使用的加密算法。它是由rndc-confgen命令所产生的。下面就是创建rndc.conf配置文件的步骤:#/usr/local/sbin/rndc-confgen/etc/rndc.conf#cat/etc/rndc.conf输出为:#Startofrndc.confkeyrndc-key{algorithmhmac-md5;secrety9xvvfQjdWv9f/Fo7wquBg==;};options{default-keyrndc-key;default-server127.0.0.1;default-port953;};#Endofrndc.conf#Usewiththefollowinginnamed.conf,adjustingtheallowlistasneeded:#keyrndc-key{#algorithmhmac-md5;#secrety9xvvfQjdWv9f/Fo7wqu

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功