LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 851|回复: 1

DNS 架设基本观念与实际运用.(新手篇.)

[复制链接]
发表于 2008-4-21 20:24:43 | 显示全部楼层 |阅读模式
DNS 是在 1984 年所发表的Internet标准,它可说是目前 WWW 上最重要的部份,因为每部主机都必须透过它来查询目的地主机的IP地址,进而才可相互的通讯。 DNS可以将主机名称解析为对应的IP位址,也就是由于DNS此项的功能,因此使用者可以正确找出任一主机的位置。

DNS 起源

在TCP/IP网络中,每部主机都有一个唯一的地址,也就是IP地址,虽然使用IP地址可以确保主机的唯一性,但因为IP 地址是由四组 O~255 的数字所构成,所以其中产生了一个问题IP 地址难以记忆。为了解决这个恼人的问题,因此TCP/IP 网络中发展出一套.名称解析.

的方法,所谓「名称解析」就是指将每部主机以一个较易记忆的名称来取代,例如Green 或 Red ,而后利用一种机制来将此名称转换为电脑中实际使用的IP 地址。

在早期的TCP/IP网络中,名称解析的工作其实只是由一部主机来负责,它维护一份主机名称与IP 地址对应的清单(hosts.txt)。每当主机要与其它网络中的主机通讯前,来源主机都会先向负责维护对应清单的主机查询目的地主机的IP 地址,等到对应的目的地主机IP 地址解析出来后,这二部主机就可开始进行数据的交换。

图 1-5 早期的名称解析方式



这种利用单一档案来维护名称解析的工作虽然简单主机数目愈来愈多时,会产生以下的问题:

◆ 主机名称重复

◆ 名称解析效能下降

◆ 主机维护困难

为了解决以上的问题,于是 DNS 便应运而生。所谓 DNS 是指「网域名称系统」它是 Domain Name System 的简称,它最主要的功能是记录网络中主机名称和 IP 地址的对应,并且接受来自客户端的询问,以将主机名称解析为对应的 IP 地址,或由 IP 地址反向解析出主机名称。

图 1-6 DNS 客户端向 DNS 服务器要求名称解析



※ DNS 专有名词

在讨论 DNS 时,因为可能出现的专有名词有很多,所以本书在此提一些重要的专有名词,以利读者往后的阅读。

◆ 网域 (Domain)
在 DNS 系统中的.网域,一词,表示 Internet 中的逻辑单位而 Internet 上的主机可以依注册时的类型而分为多种网域。每个网域下可以包含其它的子网域 (Sub-Domain) ,而子网域下也允许其它的次级网域,然后以这个方式一直循环下去。

为了确保主机网域名称的唯一性, InterNIC 将网域分为多种类型,这些类型的网域都称为「最上层网域」( Top-LevelDomain) 。下表是基本的「最上层网域」类型及适用范围:






◆ DNS 网域名称区 (DNS Name Space)
在 Internet 上指定了用来组织名称的网域结构阶层,在 DNS 网域名称区中,每个层级都有不同的名称,而大多数的 DNS 都将它分为 5 种识别名称。

下表列出这 5 种识别名称及范例,以帮助读者了解每种层级的代表意义



图 1-7 DNS 网域名称区结构



◆ 区域 (Zone)
「区域」和「网域」虽然只有一字之差,但是所代表的意义却不同,而令相当多的读者感到混淆。基本上来讲「区域」是 DNS 中实际的管理单位,在每个区域中包含个别的数据库,因此 DNS 服务器可以读取区域中的数据库内容,以提供客户端的名称解析服务。因此,在最简单的情形下,DNS 服务器只读取单一个区域数据库内容,此时「区域」和「网域」代表的范围便是相同。

图 1-8 最简单的区域与网域关系



虽然区域和网域在以上的简单范例中相当,但是在大部份的情形下却非如此,因为 DNS 系统在此定义了更具弹性的方式。先前我们曾说明在第二层网域下可以依需要自行新增子网域,在此情况下,区域与网域的范围就明显不同,因为每个新增的子网域都可成为一个区域,此时网域的范围也就大于个别区域的范围。

图 1-9 包含多个区域的网域



另外注意一点,虽然每个区域都必须使用DNS服务器来提工服务,但是大多数的DNS服务器都具有同时读取多个区域资料库的能力,甚至于是来自不同网域的区域。 笔者希望读者可以在此建立网域与区域正确的观念,否则很容易引起DNS系统维护的错误。

图 1-10 DNS 服务器可包含来自不同网域的区域数据



◆ 授权 (Delegation)
在每个网域中都有负责名称解析的 DNS 服务器,若是因为实际的需求,您可再将原本的网域,细分成许多的子纲域。此时,上层网域可以指派某部 DNS 服务器来负责子网域的名解析工作,此一指派的过程就称为「授权」。

图 1-11 DNS 服务器的授权



■ 正解(Forwarding)
将主机名称(FQDN) 解析为对应 IP 地址的过程,例如解析 www. seed.net.cn 的名称时,正解会以「cn」-〉「net」-〉「seed」-〉「www」的次序来得到最终的 IP 地址。


■ 反解(Reversing)
反解和正解刚好相反,它是由指定的 IP 地址,解析出对应的主机名称,它足以名为「arpa.In-addr」的网域为解析时的起始网域。负责正解和反解的主机可以是不同的计算机,但通常为同一部。

■ Primary(Master)DNS
在网域中负责名称解析的主要名称服务器

■ Secondary(Slave)DNS
为了避免主要名称服务器发生故障时影响网络上的名称解析工作,可以安装其它的 DNS 服务器,并且会定期复制 Primary DNS 服务器中的数据库,这些服务器就称为 Secondary DNS

服务器。

■ Cache - only 服务器
从其它名称服务器得到所有查询的答案 (但自己并不具名称解析的功能) ,再将这些答案放入自己的快取区中,以备下次可以自行响应相同的查询。


■ 解读器(Resolver)
这是用 DNS 系统中的客户端,也就是向 DNS 服务器提出名称解析要求的计算机。

■ 资源记录(Resource Record,RR)
将 DNS 网域名称对应到指定类型的资源信息,以供在名称区中登录或解析时使用‘


※ DNS 运作方式

当 DNS 客户端需要寻找某个名称时,它会要求 DNS 服务器解析此名称,一般而言,DNS 查询分为二个步骤:

■ 本机解读器查询
客户端计算机在要求解析主机名称或URL时,一开始会使用本机快取信息,将此要求传送到 DNS 客户端服务,以便解析。如果可以解析查询的名称,则可响应查询并完成处理程序。

■ DNS 服务器查询
DNS 服务器收到查询时,它会依据资源记录信息来检视此查询,如果查询的名称符合本机区域信息中对应的资源记录,则服务器会使用此信息来解析查询的名称以作为回应。

若对于查询名称并没有存在的区域信息,那么服务器会使用来自上一个查询的本机快取信息,检查是否可解析此名称。如果在此处发现了相符的信息,则服务器会运用此信息来响应。此外,若惯用服务器可用来自快取的相符响应来答复请求的客户端,则查询即完成。

若在惯用服务器上(不论是由快取或区域信息),查询名称无法找到相符的响应,则查询处理会使用递归,以继续进行完全解析名称,这包括来自其它 DNS 服务器的协助以解析名称。根据默认值, DNS 用户端服务会在传回响应之前,代表客户端要求服务器使用递回处理,以完全解析名称。在大多数情况下,DNS 服务器会设定为支持递回处理。

为了让 DNS 服务器可以正确执行递归查询,首先需要一些必要的资讯,此信息是关于 DNS 网域名称区中的其它 DNS 服务器。此信息是以根目录提示的形式来提供,它是初步的资源记录清单,可以由 DNS 服务使用,以寻找其它的 DNS 服务器。藉由使用根目录提示以寻找根服务器,DNS 服务器可以完成递归的使用。

以下将利用一个范例来说明 DNS 名称解析的完整流程,假设客户端正利用浏览器尝试连接到 www.jschouse.com 以开启网页,其流程如下:

步骤 1
本机解读器传送递归查询的要求到本地的名称服务器,以要求解析主机名称为 www.jschouse.com 的IP地址息。

步骤 2
本地的名称服务器若无法由本身的数据库解析这个主机名称,则它将会对此主机名称进行剖析(Parse),也就是将原本的主机名称分解为「www」、「rjschouse」和「com」等三个部份,并且以由右向左的方向逐步解析。之后本地的名称服务器会由本身快取档案中找出根网域的名称服务器地址,然后要求根网域的名称服务器代为解析 www.jschouse.com 的主机名称。

步骤 3
根网域名称服务器无法解析www.jiSchouse.com 的主机名称可以解析「com」的部份。因此它会响应本地的名称服务器一份清单,在此清单中包含许多负责管理「com」名称区的服务器IP 地址。

步骤 4
本地的名称服务器传送一个重复查询的要求到负责管理「com」称区的服务器,并要求代为解析 www.jschouse.com 的主机名称。

步骤 5
负责管理「com」名称区的名称服务器无法解析 www.jschouse.com 的主机名称,但它可以解析「jschouse.com」的部份。因此它会回应本地的名称伺服嚣一份清单,在此清单中包含负责管理「jschouse.com」名称区的服务器 IP 地址。

步骤 6
本地的名称服务器传送一个重复查询的要求到管理「www.jschouse.com」名称区的服务器,并要求代为解析 www.jschouse.com 的主机名称。

步骤 7
「jschouse.com」名称区中的服务器可以解析www.jschouse.com 的主机名称,并会将解析后的主机IP地址传回本地的名称服务器。

步骤 8
最后本地的名称服务器可以满足来自客户端的重复查询,并将解析出的 IP 地址传回客户端。

图 1-12 DNS 名称解析流程




※ BIND 的安装及启动

BlND(Berkeley Internet Name Daemon)是一种被广泛使用的DNS服务器软件,因为它提供了强大及稳定的名称服务,所以接近90% DNS 服务器主机都使用它,因此本章也是以BlND为说明的范例。

在 Fedora Core 安装时,您可以选择安装BlND服务器,而其内建的BIND 服务器版本为 bind- 9.2.2 .P3-6 ,如果您不知是否已安装此版本的软件,您可以使用以下方法来判断:

[root@nsl root]#rpm –qa bind
Bind- 9.2.2 .P3-6

若是在 Fedora Core 安装时没有选择 BIND 服务器,次时您需先找出第一片Linux安装光碟,于光碟中/Fedora /RPMS 目录下名为 bind- 9.2.2 .P3-6.i386.rpm 的档案里,然后输入以下命令,系统即会自动完成安装 BIND 服务器的所以步骤:

[root@nsl root]# rpm –ivh bind- 9.2.2 .P3-6.i386.rpm

在 BIND 安装后,你可以利用「named」程式来启动 BIND 服务器:

[root@nsl root]# /etc/rc.d/init.d/named start

启动 named :确定



※ 客户端连接设定

在 BIND 服务器安装并成功启动后,客户端即可以在TCP/IP的组态设定中,指定此DNS 服务器的地址。若是客户端为Linux 操作系统,则可以输入「netconfig」指令,然后在出现的「网络设定」窗口中按「是」钮,以进行「TCP/IP 设定」窗口内容的设定。

图 1-13 在Linux系统中指定DNS服务器IP地址



之后在出现的窗口中,先确定清除「使用动态分配 IP(B00TP/DHCP)」选项,然后依序填入「IP 地址」、「子网掩码」与「预设网关器的IP地址」等信息,最后将DNS服务器的 IP地址,输入「第一个名称服务器地址」的字段中,在设定后需重新启动 xinetd 以使设定生效。

若是客户端为 Windows 操作系统,则您可以在于CP/IP 的内容窗口中将 DNS 服务器的IP地址,输入「惯用的 DNS 服务器」字段中。

图 1-14 在 Windows 操作系统中指定 DNS 服务器 IP 地址








相关文章:
      Linuxconf DHCP伺服器架設与管理(图文讲解)  
      如何建造Open WebMail伺服器(图文讲解)   
 楼主| 发表于 2008-4-21 20:26:16 | 显示全部楼层
※ BIND 服务器设定

BIND服务器设定时需要许多设定档的配合,其它最重要的/etc/named.conf 、/var/named/named.ca 、localhost.zone 、

/vat/named/named.local和/etc/resolv.conf 等。以下是这些档案的主要功能:

◆ /etc/named.conf
是BIND中最重要的设定档,在这个档案之中,除设定BIND的一些参数外,同时也会指出该服务器管辖的区域名称及相关档案存放的位置。

◆ /var/named/named.ca
如果 DNS 服务器的数据库中没有包含所要求的记录,则此伺服器首先会要求根网域的DNS 服务器解析有关网域的类型,而根网域DNS 服务器的相关信息就记录 /var/named/named.ca 档案中。

◆ /var/named/localhost.zone

这是本机的区域档案。

◆ /vat/named/named.local
是指「0.0.127.in-addr.arpa」区域的反解记录文件,解析时,所定义的各项内容是担DNS中的客户端。

◆ /etc/resolv.conf
Resolver 的组态设定档,它是用来设定有关用户端要求名称解析时,所定义的各项内容,也就是说此时此部电脑的角色是担任 DNS 中的用户端。


※ DNS 资源记录

在DNS 数据库中,都会包含 DNS 服务器所使用的一或多个区域档案,而每个区域档案都是由许多的资源记录(Resource Record,RR)所组成,以下是常用的RR 类型:

◇ 主机地址资源记录(A) :可将主机名称对应到 IPv4的32 位元地址,此记录是DNS数据库最常用的RR 类型,您应该为网络上拥有共享资源的主机建立此记录,以方便客户端存取时的解析之用。

◇ IPv6 主机地址资源记录(AAAA) :这是 IPv6 版的王机地址资源记录,它可将主机名称对应到IPv6的128 位地址。

◇ 主机别名资源记录(CNAME) :可为同一部主机设定许多的别名,例如 serverl.jschouse.com 的别名可以是 www.jschous.com、ftp.jschouse.com 或 others.jschouse.com 等。在建立 CNAME 后,无论客户端利用主机名称或别名,都可连接至同一部服务器。

◇ 主机信息资源记录(HINFO):定义各主机使用的硬件和作业系统参考数据。

◇ 邮件交换程序(Mail exchange)资源记录(MX) :可用来设定区域中担任邮件服务器的主机,以及该主机邮件传递时的优先次序。在区域中建立 MX 记录后,当邮件服务器要和对方的区域进行邮件传递时,就可透过 MX 记录以得到对方的邮件服务器名称。

◇ 名称服务器(Name Server)资源记录(NS) :主要是用来设定指定区域的授权 DNS 服务器。

◇ 指标(Pointer)资源记录(PTR):可由IP地址找出对应的主机名称,它的作用刚好与 A 资源纪录相反,而 PTR 资源纪录也用来建立 in-addr.arpa 的反向网域档案。

◇ 授权启动(Start Of Authority) 资源记录(SOA) :在任何标准区域中,它都为第一项记录。它指出 DNS 服务器或是目前区域的主要服务器,也可用来存放其它内容,如影响区域更新或到期的版本信息及时机,这些内容会影响在区域授权服务器之间执行的区域转送频率。

◇ 文字资源记录(TXT):提供一些说明文字,以描述主机或网络环境的设定内容。

相关文章:
Linuxconf DHCP伺服器架設与管理(图文讲解)
如何建造Open WebMail伺服器(图文讲解)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表