5.1 DNS 服务器的概念和原理 DNS 是域名系统的缩写, 它是嵌套在阶层式域结构中的主机名称解析和网络服务的系统。当用户提出利用计算机的主机名称查询相应的 IP 地址请求的时候, DNS 服务器从其数据库提供所需的数据。 § DNS 域名称空间:指定了一个用于组织名称的结构化的阶层式域空间 § 资源记录:当在域名空间中注册或解析名称时,它将 DNS 域名称与指定的资源信息对应起来 § DNS 名称服务器: 用于保存和回答对资源记录的名称查询 § DNS 客户:向服务器提出查询请求,要求服务器查找并将名称解析为查询中指定的资源记录类型
DNS 域名 DNS 利用完整的名称方式来记录和说明 DNS 域名,就象用户在命令行显示一个文件或目录的路径,如 "C:\Winnt\System32\Drivers\Etc\Services.txt"。同样在在一个完整的 DNS 域名中包含着多级域名。 如 "host-a.example.microsoft.com." 其中 "host-a" 是最基本的信息(一台计算机的主机名称)"example"表示主机名称为host-a的计算机在这个子域中注册和使用它的主机名称 ,"microsoft" 是 "example" 的父域或相对的根域 (即 second-level domain),"com"是用于表示商业机构的top-level domain,最后的句点表示域名空间的根 (root)。
区域(zone) 区域 (zone) 是一个用于存储单个 DNS 域名的数据库,它是域名称空间树状结构的一部分, DNS 服务器是以 zone 为单位来管理域名空间的,zone 中的数据保存在管理它的 DNS 服务器中。当在现有的域中添加子域时,该子域既可以包含在现有的 zone 中,也可以为它创建一个新 zone 或包含在其它的 zone 中。一个 DNS 服务器可以管理一个或多个 zone ,同时一个 zone 可以由多个 DNS 服务器来管理。 用户可以将一个 domain 划分成多个 zone 分别进行管理以减轻网络管理的负荷,如图 5.2 所示,microsoft.com 是一个域,用户可以将它划分为两个 zone:microsoft.com 和 example.Microsoft.com,zone 的数据分别保存在单独的 DNS 服务器中。因为zone"example.Microsoft.com" 是从
"domain" 延伸而来,所以用户可以将 domain"microsoft.com" 称为 zone"example.Microsoft.com" 的 zone root domain。
5.1.2 DNS 查询的工作方式 当 DNS 客户机向 DNS 服务器提出查询请求时,每个查询信息都包括两部分信息: § 一个指定的 DNS 域名,要求使用完整名称(FQDN) § 指定查询类型,既可以指定资源记录类型又可以指定查询操作的类型 如指定的名称为一台计算机的完整主机名称"host-a.example.microsoft.com.", 指定的查询类型为名称的A (address) 资源记录。可以理解为客户机询问服务器"你有关于计算机的主机名称为'hostname.example.microsoft.com.'的地址记录吗?当客户机收到服务器的回答信息时,它解读该信息,从中获得查询名称的 IP 地址。 DNS 的查询解析可以通过多种方式实现。客户机利用缓存中记录的以前的查询信息直接回答查询请求, DNS 服务器利用缓存中的记录信息回答查询请求, DNS 服务器通过查询其它服务器获得查询信息并将它发送给客户机。这种查询方式称为递归查询。 另外, 客户机通过 DNS 服务器提供的地址直接尝试向其它 DNS 服务器提出查询请求。这种查询方式称为反复查询。 当 DNS 客户机利用 IP 地址查询其名称时,被称为反向查询。
本地查询: 下图 5.3显示了 DNS 查询的完整过程:
当在客户机中 Web 浏览器中输入一个 DNS 域名,则客户机产生一个查询并将查询传给 DNS 客户服务利用本机的缓存信息进行解析,如果查询信息可以被解析则完成了查询。 本机解析所用的缓存信息可以通过两种方式获得: § 如果客户机配置了 host 文件,在客户机启动是 host 文件中的名称与地址映射将被加载到缓存中。 § 以前查询时 DNS 服务器的回答信息将在缓存中保存一段时间 如果在本地无法获得查询信息,则将查询请求发送给 DNS 服务器。查询请求首先发送给主 DNS 服务器,当 DNS 服务器接到查询后,首选在服务器管理的区域的记录中查找,如果找到相应的记录,则利用此记录进行解析。如果没有区域信息可以满足查询请求,服务器在本地的缓存中查找,如果找到相应的记录则查询过程结束。 如果在主 DNS 服务器中仍无法查找到答案,则利用递归查询进行名称的全面解析,这需要网络中的其它 DNS 服务器协助,默认情况下服务器支持递归查询。
为了 DNS 服务器可以正常的进行递归查询,首选需要一些关于在 DNS 域名空间中的其它 DNS 服务器的信息以便通信。信息以 root hints 的形式提供一个关于其它 DNS 服务器的列表。利用 root hints DNS 服务器可以进行完整的递归查询。 如图5.4显示了利用递归查询来查询名称为 "host-b.example.microsoft.com." 的计算机的过程: 首选,主DNS服务器解析这个完整名称,以确定它属于那个 top-level domain, 即 "com"。接着它利用转寄查询的方式向 "com" DNS 服务器查询以获得 "microsoft.com" 服务器的地址,然后以同样的方法它从 "microsoft.com" 服务器获得 "example.microsoft.com" 服务器的地址,最后它与名为
"example.microsoft.com." 的DNS服务器进行通信,由于用户所要查询的主机名称包含在该服务器管理的区域中,它向主 DNS 服务器方发送一个回答,主 DNS 服务器将这个回答转发给提出查询的客户机,到此递归查询过程结束。
5.1.3. 区域的复制与传输 由于区域 (zone) 在 DNS 中所处的重要地位,用户可以通过多个 DNS 服务器提高域名解析的可靠性和容错性。当一台 DNS 服务器发生问题时,可以用其它DNS服务器提供域名解析。这就需要利用区域复制和同步方法保证管理区域的所有DNS服务器中域的记录相同。在 Windows 2000 服务器中, DNS 服务支持增量区域传输 (incremental zone transfer)。所谓增量区域传输就是在更新区域中的记录时,DNS 服务器之间只传输发生改变的记录,因此提高了传输的效率。 在以下情况区域传输启动: § 当管理区域的辅助 DNS 服务器启动的时候 § 当区域的刷新时间间隔过期后 § 当在主 DNS 服务器记录发生改变并设置了通告列表 DNS 通告 所谓 DNS 通告是利用"推"的机制,当 DNS 服务器中的区域记录发生改变时,它将通知选定的 DNS 服务器进行更新,被通知的服务器启动区域复制操作。
5.1.4. 在 Windows2000 Server 中的 DNS 服务的新特性 与 Active Directory 的集成 Active Directory 提供了一个企业级的工具,利用它在网络中组织、管理、定位资源。 当DNS服务与 Active Directory 集成在一起,它发生了两个明显的变化: § DNS 需要安装在 Windows 2000 域控制器中 (domain controllers)。Net Logon 服务利用新的 DNS 服务器所支持的 SRV (service) 资源记录提供客户机注册的服务 § 用户可以利用 Active Directory 来存储、集成及复制区域 DNS 服务在域控制器中是默认安装的,因为域控制器的定位和活动目录的应用都需要 DNS 服务器的支持。
一旦活动目录安装完成,用户可以有两种方式保存和复制区域: § 利用文本文件存储标准区域信息 区域信息存储在 %SystemRoot%\System32\Dns 目录下的 *.dns 文件中。 § 利用活动目录存储完整目录区域信息 区域信息存储在活动目录树中的域对象容器中,每个目录集成区域存储在一个 dnsZone 的容器对象中。 在网络中配置 DNS 服务器支持活动目录将具有以下优点: § 基于活动目录的 Multi-master 信息更新和安全性的提高 在标准区域存储模式中,DNS 的更新是基于一种被称为 single-master 更新模式,在这种模式中,单一的授权 DNS 服务器被指定为主信息源,如果服务器出现问题则 DNS 客户机的请求将无法进行处理。而使用 multi-master 更新模式,则任意一台 DNS 服务器都可以被指定为区域的主信息源,因为区域 (zone) 的全部信息记录是由活动目录数据库进行管理的,并且它将被复制到所有的域控制器中,任何域控制器都可以利用 DNS 服务更新区域信息,并处理 DNS 客户机的请求。
§ 当在活动目录 domain 中加入新的域控制器时 Zones 的信息将自动复制到新的域控制器中 § 由于DNS域名空间信息存储在活动目录中,用户现在可以容易的规划和管理 DNS 和活动目录 § 与标准的 DNS 目录复制相比现在的目录复制更为快捷有效 支持 Unicode 字符 在以前的制定的 DNS 标准中规定只能使用 ASCII 字符编码和显示名称。在使用 DNS 进行 Internet 设置时,明显限制了在名称中使用扩展字符的使用。为了突破这种限制,在 Windows2000 中 DNS 服务提供对 UTF-8 的支持。 在 Windows 2000 服务器启动时,DNS 服务采用 UTF-8 编码识别方式。即当服务器接收或使用的数据为 UTF-8 编码字符时,服务器可以在区域中加载或存储这些数据。当然 Windows2000 与使用传统 US-ASCII 字符的DNS服务器兼容。返回页首>>>
步骤3 单击"详细内容",从列表中选取"域名服务系统 (DNS)", 如图 5.6, 单击"确定" 步骤4 单击"下一步"输入到 Windows2000 Server 的安装源文件的路径,单击"确定"开始安装 DNS 服务 步骤5 单击"完成",当回到"添加/删除程序"对话框后,单击"关闭"按钮 步骤6 关闭"添加/删除程序"窗口。
安装完毕后在管理工具中多了一个 "DNS" 控制台(安装结束后不用重新启动计算机) 在安装 Active Directory 的同时也安装和配置了 DNS 服务器,所以就不用在重复上述的安装过程了,具内容详见 Active Directory 的安装于配置。 返回页首>>>
5.3. DNS 服务器的设置与管理 5.3.1. DNS 的启动设置 DNS 服务器在启动时,需要从相关配置文件中知道它所要管理的 zone 的信息,及文件的位置。对于符合 BIND (Berkeley Internet Name Domain) 规格的 DNS 服务器是利用 bootfile 来获得配置信息的。在 Windows2000 中可以利用下表中的方法启动 DNS 服务:
在 DNS 服务器启动后,用户可以看到如图 5.7 DNS 服务所在的计算机已经添加到 DNS 控制台中,其中包括"正向搜索区域、反向搜索区域"目录。
5.3.2. 添加 DNS Zone 因为 DNS 的数据是以 zone 为管理单位的,因此用户必须先建立 zone。添加 Zone 的具体步骤如下: 步骤1 在 DNS 控制台中左侧窗体中选择服务器单击"操作"菜单选择"创建新区域",启动"创建新区域"向导 步骤2 在选择区域类型对话框中选择"标准主要区域"如图 5.8 步骤3 在"选择区域搜索类型"中选择"正向搜索"则创建的新区域存放在正向搜索区域目录中
步骤4 在区域名对话框中输入新区域的域名如图 5.9,如果创建辅助区域则需要输入"主要区域"的域名 步骤5 在文件名对话框中新文件文本框中自动输入了以域名为文件名的 DNS 文件,如果是创建"辅助区域"则选择"现存文件"并在文本框中输入文件名 步骤6 在完成设置对话框中显示以上所设置的信息单击"完成"按钮
步骤1 在DNS控制台中选择"反向查询区域→操作→创建 新区域" 步骤2 启动创建新区域向导→在选择区域类型对话框中选择标准主要区域 步骤3 在网络 ID 对话框中输入反向搜索区域的网络标识 (假设提供反向查询的 zone 为198.188.188),向导会自动输入子网掩码并在文件名对话框中输入的新文件名称如图 5.10中的 255.255.255,188.188.198.in-addr.arpa.dns。
步骤4 单击"完成"按钮则在反向搜索区域中添加了一个新区域如图 5.11
5.3.4 设置 DNS 服务器的动态更新 在以前版本的 DNS 服务器中的主机地址记录是手工添加的,当主机的 IP 地址发生变化时,需要管理员手工修改,在 Windows2000 中可以利用动态更新的方式,当 DHCP 主机 IP 地址发生变化时,会在 DNS 服务器中自动更新,这样减轻了管理员的负荷。具体设置如下: 步骤1 首选用户需要对 DHCP 服务器的属性进行设置,选择 DHCP 服务器,显示属性单击动态DNS如图 5.12在其中选中"启动 DNS 客户信息动态更新"并选中选项中的"当租约过期时取消正向搜索、对非动态 DNS 客户更新"两个选项
步骤2 在 DNS 控制台中展开正向搜索区域,选择区域,单击"操作",单击属性,在"常规"标签中在下方的动态更新下拉列表中选择"允许更新"→确定如图 5.13 步骤3 展开反向搜索区域,选择反向区域单击操作单击属性并在"常规"标签中下方选择"允许更新"。 这样在客户信息改变时,它在 DNS 服务器中的信息也会自动更新。 服务器的转发程序的设置 当 DNS 服务器无法提供 DNS 客户机需要查询的数据时,它可以通过一台有转发器功能的 DNS 服务器转发此查询到其它 DNS 服务器进行递归查询,但必须设置本服务器可以使用该转发器。通常在用户需要通过慢速连接访问远端DNS服务器时需要使用转发器。 选择 DNS 服务器→操作→属性→转发程序标签→输入转发器的 IP 地址→如果要将此服务器作为转发器的辅助服务器可以选择"作为辅助服务器操作"选项,这样如果转发器无法提供所需信息时,则此服务器直接将结果发送给客户机,不再进行查询。
5.5 客户机的 DNS 设置 在成功安装 DNS 服务器后,就可以在 DNS 客户机启用 DNS 服务,下面具体说明如何在客户机上设置并启用 DNS 服务 5.5.1 LAN Manager 的DNS设置 在安装 TCP/IP 或执行 SETUP 程序时或修改 TCPUTILS.INI 文件中的 [NDR]session ,在 "TCP/IP Setting" 中选择 <Advanced…>, Username: 登录的用户名称 Hostname: 客户机的主机名称 选择 "use DNR for hostname resoluteion" 在 "Primary Nameserver Ip Address" 处,输入主DNS服务器IP地址 在 "Secondary Nameserver Ip Address" 处,输入辅助DNS服务器IP地址 在 "Domain Name Suffix" 处,输入 DNS 域名称
5.5.2 Windows98 的 DNS 设置 进入 TCP/IP 高级属性 选择 DNS 配置标签,选择"启用 DNS"选项如图 5.20 输入主机名称、域名称,添加 DNS 服务器 IP 地址
5.5.3 WindowsNT4.0 的 DNS 设置 在 WindowsNT4.0 server/workstation 中, TCP/IP 通信协议单击"属性" 选择 "DNS" ,在 DNS 标签中如图 5.21 中 主机名:输入计算机的主机名称 域:主机所隶属的域名称 DNS 服务器搜索顺序:添加 DNS 服务器的地址 域后缀搜索顺序:添加主机名称的后缀
5.5.4 Windows 2000Professional 的 DNS 设置 打开网络和拨号连接双击本地连接,单击属性选择 Internet 协议(TCP/IP)然后选择属性,如果在 DHCP 服务中设置了 DNS 的信息则在对话框中选择"自动获得 DNS 服务器地址"选项并分别在首选 DNS 服务器和备用 DNS 服务器中填写主 DNS 服务器和辅助 DNS 服务器的 IP 地址如图 5.22
如果需要进一步设置客户机的 DNS 属性,则单击"高级"按钮选择 DNS 标签如图 5.23,如果选择"搜索主 DNS 和每一个连接的 DNS 域"表示在搜索一个不标准的域名称时只能在父域中搜索,如果父域中搜索不到该域名则将此结果返回;如果选择"搜索这些 DNS 域"选项则在搜索域名称时首选在列表中的服务器上搜索,如果搜索不到结果则在其它域中进行搜索。 "在 DNS 注册此连接的地址、在 DNS 中注册此连接的域名"这两个选项用于在 Win2000 环境中在登录时将客户机的 IP 地址及域名注册到 DNS 服务器中。 在 DNS 服务器和客户机的设置完成后用户可以利用 IPCONFIG、PING、NSLOOKUP 三个命令测试 DNS 服务器的设置是否正确.具体使用,请参看 Windows 2000 Server 中相应文档。