第23章网络域名服务(DNS).docx_第1页
第23章网络域名服务(DNS).docx_第2页
第23章网络域名服务(DNS).docx_第3页
第23章网络域名服务(DNS).docx_第4页
第23章网络域名服务(DNS).docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第23章 网络域名服务(DNS) 在Internet的命名服务中最常用的恐怕就是网络域名服务(DNS)了,所以Solaris 10操作系统也自带了BIND 9 DNS服务器。这章介绍如何设置和管理DNS服务器。 23.1 DNS概述 域名服务(DNS)是一种分布式数据库,它提供规范机器名(如)到数字IP地址(如6)的映射。在Internet的早期,网络中的每台主机都有一个称为hosts.txt的文件,它包含了各种已知的主机名和地址之间的映射。当时,为了维护这一文件,系统管理员需要定期上载一个网络新增主机的列表。但随着Internet的发展,这种以文本数据库维护的形式就变得不太实际了。解决方案就是采用DNS服务器系统。与主机表不一样,DNS服务器不依赖一个大型映射文件,DNS服务器只包含有限的信息,因为它们知道到哪里能找到它们想知道的域的细节。如果DNS服务器得到对某个主机的请求,而该请求的主机又并不在其缓冲内,那么DNS服务器只是知道了这件事然后去询问知道答案的“某计算机”。这台计算机是一种授权服务器,负责维护DNS信息。如果某台服务器在被询问到其域内的某个地址时它可以明确地指出该地址存在,那么这台服务器就是所谓的授权服务器。如果接触的服务器并不包含有关的域名信息,该服务器就会将请求传递给接触链路上更高级别的授权服务器,这样就形成了一系列查询,直到最后找到需要的信息。实际上,这意味着请求可以被任意数量的服务器处理,在Internet上这种来来回回的行为每时每刻都在发生。最早发出请求的服务器将缓冲信息以满足未来的需求而无须向授权服务器再发请求。DNS服务器的管理员为这些信息设置了超时限制,以避免缓冲中充满了名字请求的旧数据的情况。DNS转换不会花费太多的时间,但它确实增加了你的请求到达远端计算机的时间。你可以自己做个快速测试(虽然很简单):首先用域名,比如来访问对应的Web站点,然后用IP地址再试验一下。如果你要这么做,则请务必关闭你的浏览器然后再重新打开以初始化新的会话;否则你不过是载入了页面的缓冲版本(记住装载页面的延迟原因可能来自许多因素,所以对结果要有所保留)。DNS服务的最常用软件是Berkeley Internet Name Domain,也就是BIND,它源自U.C. Berkeley,但现在则由Internet Software Consortium负责。BIND提供了解析器和名字服务器软件,解析器做实际的查询工作而名字服务器则提供响应。BIND将名字服务器分成三个部分:主服务器包含了有关一个域的全部数据;次服务器则有效地从主服务器拷贝DNS数据库;唯缓冲服务器通过缓冲查询来建立例外的DNS数据库。只有主服务器和次服务器才被当做涉及特定域的授权服务器。要理解DNS服务器怎么操作,就有必要理解域名层次。在域名层次的顶部是根域。这一域上的信息驻留在从整个Internet中所选的一些根服务器上。在根域下面是顶级域,也就是国家代码或机构代码。国家代码的例子有SG(新加坡)和CA(加拿大)等。而机构代码则包括众所周知的COM(商业机构)、EDU(教育机关)、GOV(政府机构)和NET(网络机构)等(注意在美国以外的顶级域通常是国家编码,但是基于美国的地点通常省略国家编码)。在顶级域下面是次级域(、、等诸如此类),然后是第3级域,依次类推。如果你想在中国建立域名,那么你必须联系网络信息中心CNNIC。在它同意你的请求以前,你首先要保证你想要的名字还没被使用,其次要保证目前至少有2台服务器可以提供新域名的服务。当CNNIC最后同意请求时,它将承认你的次级域,并将指向该名字的指针放到顶级域所在的服务器内。例如,如果你请求域名,那么你必须首先让Internet上的2台名字服务器提供信息服务(你的ISP的服务器能做到这一点),然后NIC将把mybiz 放到COM域服务器系统内,其指针将指向那2台特定服务器。一旦设置了适当的主域,你就可以增加所希望的任何数量的子域。你可能想要命名你的计算机为,而另一台则被叫做等。这些工作可就不需要CNNIC的同意了,而且,事实上CNNIC也不管这事。但是,如果你想要任何人都能实地访问你的子域,那么你最好将有关子域的信息尽快地放到上级域内。在特定的情况下,关于和的IP信息必须放在服务器上。这一层次中的每台服务器都包含了一个DNS数据库,其入口被称为NS记录,每条这样的记录包含了域或子域的名字,此外还加上作为域或者子域服务器的主机的名字。在我们的例子中,我们将告诉根服务器它能在我们的DNS服务器上找到及其全部子域的信息,而这些信息则位于这台计算机上。现在我们来看看这一切是如何运作的。某所大学的某人在指向你的最新子域的网页上看见了一个链接。然后她单击该链接,于是她的本地DNS服务器(很可能位于这所大学的某台计算机上)开始工作。首先,服务器搜索它自己的DNS数据库以转换信息,但是,因为它以前从来没遇见过,所以服务器没有该域存在的记录而且不能解析IP地址。不过,它的DNS数据库包含了一个根服务器的地址(所有的DNS服务器必须设置该索引)。于是本地DNS服务器就到Internet上查询该根服务器。根服务器在其DNS 数据库里查找COM顶级域,然后它用NS记录回复该大学的DNS服务器,告诉它可以从处查询到的信息。大学的服务器就这样做了,而且从那里知道了的对应IP地址。在这一过程中最根本的阶段是,大学的DNS服务器缓冲了该NS记录,结果下次该大学的任何人在需要涉及、、等对应的IP地址转换时,相关信息在本地即可获得。正如其他的Internet协议一样,DNS由几个Internet的RFC规范(最初是RFC 882、883和973)。不过要理解DNS服务器的工作原理最好的标准还是RFC 1035。你可以在Internet上的好几个地方找到RFC 1035,比如在/crynwr/rfc1035/就有一个不错的HTML版本。正如你可能想到的那样,RFC具有相当的技术性,你不大可能会对超出DNS服务器一般操作的细节感兴趣。但是如果你想做个服务器管理员,那么就记住RFC吧。23.2 DNS客户端的设置在Solaris环境下,DNS客户端程序的配置非常容易,它只需要几个简单的步骤就可以完成。(1)除了对/etc/inet/hosts文件或NIS/NIS+的主机名映射或者主机名(hostnames)表文件进行检查以外,还必须配置命名服务开关文件(/etc/nsswitch.conf),指定域名解析服务向DNS进行查询。为了确保DNS的正常工作,在/etc/nsswitch.conf文件中必须包括下行的内容:hosts: files dns这行的意思是如果需要命名服务,首先查找/etc/inet/hosts文件,如果找不到,就到DNS中去查找。(2)我们需要将主机的本地域名输入到/etc/defaultdomain文件中。例如,主机的/etc/defaultdomain文件应有如下的输入项:(3)我们需要在/etc/resolv.conf文件中包含本地域名、本地基本DNS服务器的IP地址,以及辅助的DNS服务器的IP地址。这意味着本地DNS服务器出现故障,我们仍可以通过辅助的NDS服务器来提供最新的外部主机信息,而不必依赖/etc/hosts文件中的数据来解析本地地址。例如,/etc/resolv.conf文件的内容可能是这样:domain nameserver 0nameserver 它表明本地域是,本地域有两台基本DNS服务器。其中,0为主DNS服务器,为辅助DNS服务器。(4)下面我们可以启动DNS客户端软件了。#svcadm enable svc:/network/dns/client(5)使用nslookup命令来检查DNS客户端配置是否正确。#nslookup Server: Address: 0Non-authoritative answer:Name: Address: 有这样的反馈结果说明DNS客户端设置成功。 23.3 DNS服务器的设置 DNS服务器是为了网络上的主机提供域名解析的服务的服务器。Solaris 10虽然自带了BIND 9.2.4版本,但它并不是Sun公司的产品,Internet Software Consortium负责BIND软件的更新,我们不妨到网站下载最新版本的BIND软件,因为新的版本的软件可以防止某些漏洞。下面我们来介绍如何配置DNS服务器。如果你使用Solaris 10系统自带的软件,请从第7步看起。(1)为了下载最新的BIND软件,我们到/products/BIND/ 下载,本例子下载的是bind-9.3.1.tar.gz。(2)将下载的软件放到系统中的某个目录下,本例中放在/home/bind目录下。#cd/home/bind(3)进入软件存放目录,对软件解压缩到/usr/local/src。#gunzip /etc/rndc.conf# cat /etc/rndc.conf输出为:# Start of rndc.confkey rndc-key algorithm hmac-md5;secret y9xvvfQjdWv9f/Fo7wquBg=;options default-key rndc-key;default-server ;default-port 953;# End of rndc.conf# Use with the following in named.conf, adjusting the allow list as needed:# key rndc-key # algorithm hmac-md5;# secret y9xvvfQjdWv9f/Fo7wquBg=;# ;# controls # inet port 953# allow ; keys rndc-key; ;# ;# End of named.conf(9)创建rndc.key文件。将rndc.conf文件中注释部分拷贝生成如下文件:# vi /etc/rndc.keykey rndc-key algorithm hmac-md5;secret y9xvvfQjdWv9f/Fo7wquBg=;controls inet port 953allow ; keys rndc-key; ;检查rndc是否正常工作:#/usr/local/sbin/named -gJan 11 11:56:45.075 starting BIND 9.2.3 -gJan 11 11:56:45.076 using 1 CPUJan 11 11:56:45.079 loading configuration from /etc/named.conf.#/usr/local/sbin/rndc status(10)编辑named.conf配置文件。# vi /etc/named.conf第一段的内容如下:/ generated by named-bootconf.pl options directory /var/named;/* If there is a firewall between you and nameservers you want* to talk to, you might need to uncomment the query-source* directive below. Previous versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged* port by default.*/ query-source address * port 53;先让我们了解这个文件上面用来做注解的符号是“/”,而不是一般Shell script的“#”;另外,“/*”与“*/”之间则注解一整段文字。同时,每一个完整的设定都以“ ;”结尾。上面的部分是在这个文件开头的options设定的,首先用directory指定了named的资源记录(RR - Resource Record文件目录所在位置为:“/var/named”。也就是说,它会到这个目录下面寻找DNS记录文件)。所以,我们在后面部分所指定的文件,就无须使用绝对路径了,但它们一定要放在这个目录下面。那一段被注释文字,如果你仔细阅读一下,它大致意思是如果你要设定的 DNS 伺服器和client之间隔着防火墙的话,要将“/query-source address * port 53;”前面的注解符号“/”拿掉(当然,也必须要设定好你的火墙)。不过,这只对早期的版本有影响,而在bind 8.1之后则无须担心这个设定。接下来再让我们看下一段句子:/ a caching only nameserver config/zone . IN type hint;file named.root;通过这几行语句,我们为named定义了DNS系统中的根区域“.”(root zone)的设定,同时它是一个internet(IN)的区域类别。这里还指定了root zone的服务器种类(type)为“hint”(也只有这个zone会使用这样的种类)。最后,用file指定这个区域记录文件为:“named.root”,也就是“/var/named/named.root”文件。在root zone后面,你应该还会看到如下这两段:zone localhost IN type master;file localhost.zone;allow-update none; ;zone 0.0.127. IN type master;file named.local;allow-update none; ;这里是定义出关于本机名称的DNS解释:第一个zone是localhost的正解zone,其服务器种类是master,记录档名称是localhost.zone(在/var/named目录下面),但这个zone不允许客户主机(或服务器)自行更新DNS的记录。而第二个zone则是本机区域的反向解析zone。再看下面的两段,这两段是域的正向和反向解析。zone IN /新加的域type master;file .zone;allow-update none; ;zone 9.168.192. IN /新加域的反向解析type master;file named.192.168.9;allow-update none; ;最后一行是bind 9.x版本的新功能,用来进行区域转移或DNS更新所用的加密处理。include /etc/rndc.key;(11)创建/var/named目录。# mkdir /var/named# cd /var/named(12)匿名登录到ftp站点FTP.RS.INTERNIC.NET,获取/domain目录下的named.root文件,将该文件置于/var/named目录下。(13)创建localhost.zone文件。# vi /var/named/localhost.zone$TTL 86400$ORIGIN localhost. 1D IN SOA root (42 ; serial (d. adams)3H ; refresh15M ; retry1W ; expiry1D ) ; minimum1D IN NS 1D IN A (14)创建named.local文件。# vi named.local$TTL 86400 IN SOA localhost. root.localhost. (2005022700 ; Serial28800 ; Refresh14400 ; Retry3600000 ; Expire86400 ) ; MinimumIN NS localhost.1 IN PTR localhost.rootLinux etc# mkdir /var/named/进入/var/namedrootLinux etc# cd /var/named/建立localhost.zone文件rootLinux named#vi localhost.zone$TTL 86400$ORIGIN localhost. 1D IN SOA root (42 ; serial (d. adams)3H ; refresh15M ; retry1W ; expiry1D ) ; minimum1D IN NS 1D IN A /建立named.local文件rootLinux named#vi named.local$TTL 86400 IN SOA localhost. root.localhost. (1997022700 ; Serial28800 ; Refresh14400 ; Retry3600000 61.177.252 ; Expire86400 ) ; MinimumIN NS localhost.1 IN PTR localhost.(15)创建.zone文件。# vi duanfenglei.zone$TTL 1D IN SOA . . (10538911623H15M1W1D )IN NS .IN MX 5 .www IN A (16)创建named.192.168.9文件。# vi named.192.168.9$TTL 86400 IN SO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论