本文出自http://ming228.blog.51cto.com/421298/99365

   在目前应用中主要使用两种名称体系:DNS名称体系和NetBIOS名称体系。但DNS成为INTERNET上通用的命名规范。
   1.NetBIOS名称体系
它是使用长度不超过16个字符的名称来惟一标识每个网络资源。名称中的前进15个字符可以由用户指定,每16个字符是一个00到FF的十六进制数,用于标识资源或服务类型。在实际应用中,通过WINDOWS操作系统中的“网络邻居”看到的计算机名、工作组名或域名就是NetBIOS名称。
   2.DNS名称体系
DNS名称通常采用FQDN(Fully Qualified Domain Name,完全限定域名)的形式来表示由主机名和域名两部分组成。比如:[url]www.landon.com[/url]就是一个典型的FQDN,其中,www是主机名,表示域名限制范围中的一台主机;landon.com是域名,表示一个区域或一个范围。
  DNS名称空间
DNS名称体系是有层次的,域是其层次结构的基本单位,任何一个域最多属于一个上级域,但可以有多个或没有下级域。在同一个域中不能有相同的下级域或主机名,但在不同的域中则可以有相同的下级域名或主机名。
  1.根域:(Root Domain)根域只有一个,根域是默认的,一般不需要表示出来。DNS命名空间都是由位于美国的INTERNIC负责管理域进行授权管理的。在根域服务器中并没有保存全世界的所有的DNS名称,其中只保存着顶级域的DNS服务器名称与IP地址的对应关系。每一层的DNS服务器只负责管理其下一层域的DNS服务器名称与IP地址的对应关系。
  2.顶级域(Top-Level Domain,TLD)
在根域之下的第一级域便是顶级域。顶级域位于最右边。顶级域有两种类型的划分方法:机构域和地理域。比如:.com是机构域  .cn是地理域。
  3.各级子域(Subdomain)
除了根域和顶级域之外,其它域均称为子域。一个域可以有多个子域。
  4.主机名(Host Name)
位于最左边的便是域主机名。
  5.反向域(in-addr.arpa)
反向域使用一个IP地址的一个字节值来代表一个子域,这样反向域in-addr.arpa就被划分为256个子域,每个子域代表该字节的一个可能值0-255。。根据同样的方法,又可以将每一个子域进一步划分为256个子域。这样,可以对每个子域继续划分,直到将全部的地址空间都在反向域中表示出来。
  DNS名称的解析方法
主要有两种:一是通过HOSTS文件解析,二是通过DNS服务器解析。
1.HOSTS文件
这是最初的一种查询方式,它是由人工进行输入、删除、修改所有DNS名称与IP地址对应数据。显然网络较大时是不适用的。在WIN2003中,HOSTS文件位于%SYSTEMROOT%\System32\Drivers\Etc目录中。是一个纯文本文件
2.DNS服务器:目前最常用的。
   DNS服务器的类型
主要有四种类型:主DNS服务器,辅助DNS服务器、转发DNS服务器和惟缓存DNS服务器。
1、主DNS服务器
它是特定DNS域所有信息的权威性信息源,从域管理员构造本地数据库文件中加载域信息,主DNS服务器保存着自主生成的区域文件夹,该文件是可读可写的,当DNS域中的信息发生变化时,这些京华都会保存到主DNS服务器的区域文件中。
2、辅助DNS服务器
它可以从主DNS服务器中复制一整套域信息。区域文件是从主DNS服务器中复制生成的,并作为本地文件存储在辅助DNS服务器中。这种复制称为区域传输。这个副本是只读的。无法对其进行更改。要更改就是必须在主DNS服务器上进行。在实际应用中辅助DNS主要是为了均衡负载和容错。当主DNS出现故障,辅助的DNS可以转换为主DNS服务器。
3、转发DNS服务器
转发DNS服务器可以将其它DNS转发解析请求,当DNS服务器收到客户端的解析请求后。它首先会尝试从其本地数据库中查找,若没有找到,则需要向其它指定的DNS服务器转发解析请求;其它DNS服务器完成解析后会返回解析结果,转发DNS服务器将解析结果缓存在自己的DNS缓存中,并向客户端返回解析结果。在缓存期内,如果客户端请求解析相同的名称,则转发DNS服务器会立即回应客户端;否则将会再次发生转发解析的过程。目前网络中所有的DNS服务器均被配置为转发DNS服务器,向指定的其它DNS服务器或根域服务器转发自己无法解析的请求。
4、惟缓存DNS服务器
可以提供名称解析,但其没有任何本地数据库文件,惟缓存DNS服务器必须同时是转发DNS服务器,它将客户端的解析请示转发给指定的远程DNS服务器,并从远程DNS服务器取得每次解析的结果,并将该结果存储在DNS缓存中,以后收到相同的解析请求时就用DNS缓存中的结果。DNS服务器都按这种方式使用缓存中的信息,但惟缓存服务器则依赖于这一技术实现所有的名称解析,惟缓存服务器并不是权威性的服务器,因为它提供的所有信息都是间接信息。
  提示:(1)所有的DNS服务器都可以使用DNS缓存机制响应解析请求,以提供解析效率。(2)一些域的主DNS服务器可以是另一些域的辅助DNS服务器。(3)一个域只能部署一个主DNS服务器,它是该域的权威性信息源,另处至少应部署一个辅助DNS服务器,将作为主服务器的备份。(4)配置缓存DNS服务器可以减轻主DNS服务器和辅助DNS服务器的负载,从而减少网络传输。
   DNS名称解析的查询模式
1、递归查询:当收到客户端的递归查询请求后,当前DNS服务器只会向DNS客户端返回两种信息:要么是在该DNS服务器上查询到的结果,要么是查询失败,如果当前DNS服务器中无法解析名称,它并不会主动告知DNS客户端其它可能的DNS服务器,而是自行向其它DNS服务器查询并完成解析。如果其它DNS服务器解析失败,则DNS服务器将向DNS客户端返回查询失败的消息。递归即是有来有往。
2、迭代查询:迭代查询通常在一台DNS服务器向另一台DNS服务器发出解析请求时使用。如果当前DNS收到其它DNS服务器发来的迭代查询请求并且未能在本地查询到所需要的数据,则当前DNS服务器将告诉发起查询的DNS服务器另一台DNS服务器的IP地址。然后,再由发起查询的DNS服务器自行向另一台DNS服务器发起查询;依次类推,直到查询到所需数据为止。如果到最后一台DNS服务器仍没有查到所需数据,则通知最初发起查询的DNS服务器解析失败。迭代的意思就是若在某地查不到,该地就会告知查询者其它地方的地址。让查询转到其它地方去查。
   DNS解析过程
1、DNS区域:DNS服务器是通过区域来管理,并不是通过域为单位管理的。一台DNS服务器可以管理一个或多个区域。而一个区域也可以由多台DNS服务器来管理。
2、主要区域、辅助区域和存根区域
(1)主要区域:一个区域的主要区域是建立在该区域的主DNS服务器上,主要区域的数据库文件是可读可写的,所有针对该区域的添加、修改和删除等写入操作都必须在主要区域中进行
(2)辅助区域:一个区域的辅助区域建立在该区域的辅助DNS服务器上。辅助区域数据库文件是主要区域数据库文件的副本,需要定期地通过区域传输从主要区域中复制以获得更新。辅助区域的主要作用是均衡DNS解析的负载以提高解析效率,同时提供容错能力。必要时可将辅助区域转换为主要区域。
(3)存根区域:将在后面介绍。。。
   资源记录
每个区域数据库文件都是由资源记录构成的。主要有:SOA记录、NS记录、A记录、CNAME记录、MX记录和PTR记录。
标准的资源记录具有其基本格式:
[name]      [ttl]       IN    type    rdata
name:名称字段,此字段是资源记录引用的域对象名,可以是一台单独的主机也可以是整个域。字段值:"."是根域,@是默认域,即当前域,
ttl:生存时间字段,它以秒为单位定义该资源记录中的信息存放在DNS缓存中的时间长度。通常此字段值为空,表示采用SOA记录中的最小TTL值。
IN:此字段用于将当前湖泊记录标识为一个INTERNET的DNS资源记录。
TYPE:类型字段,用于标识当前资源记录的类型。资源记录类型:A,即是A记录,也称为主机记录,是DNS名称到IP地址的映射,用于正向解析。CNAME:CNAME记录,也是别名记录,用于定义A记录的别名。MX:邮件交换器记录,用于告知邮件服务器进程将邮件发送到指定的另一台邮件服务器。(该服务器知道如何将邮件传送到最终目的地)。NS:NS记录,用于标识区域的DNS服务器,即是说负责此DNS区域的权威名称服务器,用哪一台DNS服务器来解析该区域。一个区域有可能有多条ns记录,例如zz.com有可能有一个主服务器和多个辅助服务器。PTR:是IP地址到DNS名称的映射,用于反向解析。SOA:用于一个区域的开始,SOA记录后的所有信息均是用于控制这个区域的,每个区域数据库文件都必须包谷一个SOA记录,并且必须是其中的第一个资源记录,用以标识DNS服务器管理的起始位置,SOA说明能解析这个区域的dns服务器中哪个是主服务器。
radata:数据字段用于指定与当前资源记录有关的数据,数据字段的内容取决于类型字段。
 
部署主DNS服务器
安装DNS服务
打开配置您的服务器向导
下一步
下一步
下一步
下一步,便开始安装。
创建正向主要区域
点新建区域
下一步
这里选主要区域
填写区域名称
这里有两个选择,在这里做创建新文件。
由于这里不是AD所以第一项不能选。选不允许动态更新。
点完成
建立好后,可看见已建立好两个记录:SOA记录和NS记录
这里点更改
可以更改区域类型,通常在某DNS区域的主DNS服务器出现故障且短时间内无法修复,就需要在辅助DNS服务器将辅助区域改为主要区域,使其成为主DNS服务器。此外,需要将存储于文本数据库文件夹的DNS区域存储到活动目录,也需要更改。
点老化便出现上框。
这个是SOA记录,可看到主服务器,即是本台服务器名。如果点浏览便出现下面。这里的序列号:是该区域文件的修订版本号,每次区域中的资源记录发生改变时,这个数字就会增加。每次区域改变时增加这个值非常重要,它使部分区域改动或完全修改的区域都可以在后续传送中复制到其它辅助DNS服务器上。负责人:管理区域负责人的电子邮件地址,在该电子邮件名称中使用英文钟点(.)代替@.
刷新间隔:是在查询区域的来源进行区域更新之前,辅助DNS服务器等待的时间,当刷新间隔到期时,辅助DNS服务器请求主DNS服务器的区域的当前SOA记录副本。然后,辅助DNS服务器将主DNS服务器的当前SOA记录的序列号与其本地SOA记录的序列号相比较,如果二者不同,则辅助DNS服务器从主DNS服务器请求区域传输,默认为900S。
TLL:这里是用于指定SOA资源记录的TTL。
这台服务器名为MING,记录类型可以选择。
如点负责人旁边的浏览,便出现上框。
点名称服务器,在这里只有一台服务器为其解析。
点添加,可以添加多个名称服务器
这里可以使用WINS帮助解析。
配置区域传输
点通知。
下面来 创建反向区域
点新建区域
出现向导
选主要区域
输入IP。
创建新文件
不允许动态更新
点完成
同样可看到创建好两个记录
同样可以更改类型
主服务器也是本台服务器
可以添加名称服务器
这里是反向查找
可允许区域复制。
创建资源记录
DNS服务器是根据区域中的资源记录提供该区域的名称解析。
选择新建主机。
填写好名称和IP地址,如果打上如图的勾,就会同时创建反向PTR记录。
也就是说DNS解析这台名称为zhanjiang的主机。
现在来建CNAME,点击图中的“新建别名”
这里先说明一下:CNAME 通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“ming.landon.com”(A记录)。 它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。 这两个别名的全称就是“[url]www.landon.com[/url]”和“mail.landon.com”。实际上他们都指向“host.landon.com”。 同样的方法可以用于当拥有多个域名需要指向同一服务器IP,此时就可以将一个域名做A记录指向服务器IP然后将其他的域名做别名到之前做A记录的域名上,那么当服务器IP地址变更时就可以不必麻烦的一个一个域名更改指向了 只需要更改做A记录的那个域名,其他做别名的那些域名的指向也将自动更改到新的IP地址上了。
所以在这里的目标主机是本机来做多种服务。
可看到建立好的数据是ming.landon.com。即是本台服务器。
现在来建立MX,点新建邮件交换器。
在这里再解析下MX:它指向一个邮件服务器,用于电子邮件系统发邮件时根据 收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给 ming@landon.com 时,该用户的邮件系统通过DNS查找landon.com这个域名的MX记录,如果MX记录存在, 用户计算机就将邮件发送到MX记录所指定的邮件服务器上。
所以完全合格的域名是landon.com。而邮件完全合格的域名是:ming.landon.com.这里最上面主机或子域为空原因如下:该区域与所在区域的名称一起构成邮件地址中“@“右面的后缀。例如: ming@landon.com,则应该将“主机或子域”为空。即是使用其中所属的名称landon.com。如果邮件地址为 ming@mail.landon.com。则应该将主机或子域填mail..
这里优先级:如果有多个MX记录,则在解析时将首先优先级高的MX记录。
这样邮件交换器便建立好了。
下面来看建立PTR
点新建指针
填好IP地址和主机名,这里是建立为本台服务器解析。
这样可看到是IP对应数据(域名)。
创建子域和其资源记录
点新建域
输入名称
可看到建立好一个子域了。
新建区域委派
点新建委派。
出现向导
填入要委派的域外。
这里是指定要受委派的服务器。点添加
在这里输入域名和IP地址。
可添加多个
点完成
可看见建立好了委派。注意了:可以看到我在建立委派时没有先建立一个A记录是将受委派服务器与委派服务器对应的记录。委派服务器指向受委派服务器。可以在新建委派之前创建,不然就会在新建委派时自创建。
还有一个就是配置受委派服务器时:它的正向区域名称必须与受委派区域的名称相同。即是mk.landon.com。
 
下面来配置DNS客户端并测试一下主DNS服务器。
先把DNS指向主DNS服务器
 
部署辅助DNS服务器
如果在一个DNS服务器上创建了某个DNS区域的辅助区域,则该DNS服务器将成为该DNS区域的辅助DNS服务器。
在51CTO这台机上配置
在前面所介绍配置步骤,新建区域向导。这里只介绍这一步开始,之前的省略贴图了。
这里填写新建区域名称
这里输入主服务器的IP地址,即要复制的主服务器。
点击完成。
建立好了,可看到为什么是叉呢?这是由于在主服务器上没有配置转发器。
同样建立个反向区域也是出现叉原因跟上一样。
现在在主服务器上配置,点要为其配置辅助DNS服务器的正向主要区域(landon.com),上右击。点名称服务器,然后点添加
这里添加的要部署的辅助DNS服务器的域名和IP地址。
点确定。
便建立好了。
同时在反向区域建立好。
现在在辅助DNS服务器上看图点从主服务器复制,便起作用了,这里之前是先点击了,所以看到没有叉。
同样在反向区域点众主服务器复制。
可看见这些记录都从主DNS服务器复制过来了。
再看一下正向区域的复制,都复制好了。
至于测试非常简单,如上例,这里不再一一介绍。
部署惟缓存DNS服务器
当惟缓存DNS服务器初次启动时,并没有缓存任何信息,只有在响应客户端请求时才会缓存,如果DNS客户端位于远程网络且该远程网络与主DNS服务器(或辅助DNS服务器)所在的网络通过慢速广域网链路进行通信,则在远程网络中部署惟缓存DNS服务器是一种合理的解决方案。因此建立了惟缓存其与主DNS服务器的通信量便会减少。此处,由于惟缓存DNS服务器不需执行区域传输,因此不会出现因区域传输收支导致网络通信量的增大。
下面在惟缓存DNS服务器上安装DNS服务并配置DNS转发器
在这台机上部署,点服务器右键,选属性
点新建
这里添加的是需要向其它DNS服务器转发解析请求的DNS区域。
这里填上主DNS服务器的IP地址。因为这个区域是主DNS服务器的。
点击确定便可。
配置存根域
一个区域的存根域类似于辅助区域,也是主要区域的只读副本,但存根区域只从主要区域中复制SOA记录,NS记录和粘附A记录(即解析NS记录所需的A记录),而不是所有的区域数据库信息,存根区域所属的主要区域通常是一个受委派区域如果该受委派区域部署了辅助DNS服务器,则通过存根区域可以让委派服务器获得该受委派区域的权威DNS服务器列表(包括主DNS服务器和所有辅助DNS服务器)。 可用来更新存根区域的一个或多个主服务器的 IP 地址。 存根区域的主服务器是对于子区域具有权威性的一个或多个 DNS 服务器,通常 DNS 服务器主持委派域名的主要区域。
上图是存根区域的应用示例
名为MING的服务器是landon.com区域的主DNS服务器,为了分散管理和解析负载,landon.com区域的管理员将子域mkt.landon.com委派给名为mktdns的DNS服务器进行管理。为了提供容错和均衡负载,mkt.landon.com区域的管理员又部署了一个辅助DNS服务器,名为mkttest,但没有通知landon.com区域的管理员将mkttest手工添加到mkt.landon.com的权威DNS服务器列表中。
   在这种情况下,landon.com区域的主DNS服务器MING中只包含最初执行委派时mkt.landon.com区域的DNS服务器mktdns,并不知道mkt.landon.com区域的辅助DNS服务器mkttest的存在。当DNS客户端向MING请求解析mkt.landon.com区域的名称时,MING将只向mktdns查询,而不会向mkttest查询,因此,如果mktdns无法响应,则MING会告诉DNS客户端解析失败,从而没有实现通过mkttest提供容错的目的。
   为了解决这一问题,有两种方案:一种是手工添加:将mkttest手工添加到mkt.landon.com的权威DNS服务器列表中。第二种是创建存根区域:在MING创建mkt.landon.com的存根区域,由于存根区域会从其所属的主DNS服务器复制NS记录并且定期自动更新,因此MING可以通过存根区域了解到有关mkt.landon.com区域的当前最新的所有权威DNS服务器的信息,从而可以向mkt.landon.com区域的所有权威DNS服务器发起查询。即是实现了通过辅助DSN服务器mkttest提供容错的目的。
 
 
在主机名这MING上配置
 
在MING服务器上建立区域。这里选存根区域。
这里的区域名称和主DNS服务器上的主要区域完全相同。
创建新文件
这里填写主DNS的IP地址。
点击完成
下面来看一个利用DNS服务器的高级参数实现简单的负载均衡
首先在正向区域中创建多个名称相同的多个主机记录。
确保DNS服务器“启用循环”和“启用网络掩码排序”两项被选中。误用网络掩码排序是以本地子网优先的。
下面在客户端来进行测试
由于IP地址都在同一个网段于是就没有固定一个排在前面。可以看到有循环。
如果取消启用网络掩码排序,则本地子网不会优先。这里由于一开始没有设置区分本地与非本地来测试,于是就不再测试了。
两个都取消
可以看到不再循环了。
下面来看下根提示
根提示用于为非根区域准备服务器授权机构以便它们可以了解和发现管理位于更高级别的域或DNS名称空间的其它子树上的域的授权DNS服务器。就是说当DNS服务器通过本地的区域数据无法完成解析时,默认情况下会向根提示中指定的DNS服务器转发查询。默认情况下,DNS服务器使用存储在%systenroot%\system32\dns目录中cache.dns文件根提示。此文件通常包含INTERNET根域DNS服务器的NS记录和A记录。如果在专用网络上使用DNS服务器服务,也可以再添加指向内部根DNS服务器的NS记录和A记录。
这里可以设置监视DNS服务器