DNS 概述
什么是域名?
通常,域名就是由英文句点分隔的字词构成的名称,如“microsoft.com”。域名的后一部分(如“com”)称为顶级域 (TLD),而前一部分通常由公司或组织的名称组成。
完全合格的域名称 (FQDN) 通常包含主机名,以便唯一地标识网络上的特定服务器或设备,如“server1.microsoft.com”,在它的前面可以加上组织的域名(称为主要域名称)。
如图 1 所示,DNS 域名是以层次树状结构(称为“域名称空间”)管理的,它有多个由 Internet 上的“名称注册机构”维护的顶级域。
如果您的浏览器不支持内嵌框,请单击此处在单独的页中查看。
图 1 DNS 名称空间的层次树状结构
以下是最常见的顶级域:
- com,用于商业组织。
- edu,用于教育机构。
- org,用于非赢利组织。
- net,用于计算机网络组织。
- gov,用于美国政府组织。
- 两字母或三字母国家/地区代码,如 jp 是日本的代码。
不同组织的域名在每个顶级域下面相应地分支展开。可以进一步沿树状结构细分出组织内各部门的更多域名(称为子域)。最后,将主机名加在名称结构的前面构成 FQDN,如“server2.msdn.microsoft.com”。事实上,“msdn.microsoft.com”也是一个 FQDN,它指的是 microsoft.com 中的某个 Web 服务器群集。
DNS 工作原理
DNS 是一个分布式数据库系统,它提供将域名转换成对应 IP 地址的信息。这种将名称转换成 IP 地址的方法称为名称解析。
一般来说,每个组织有其自己的 DNS 服务器,并维护域的名称映射数据库记录或资源记录。当请求名称解析时,DNS 服务器先在自己的记录中检查是否有对应的 IP 地址。如果未找到,它就会向其它 DNS 服务器询问该信息。
例如,当要求 Web 浏览器访问“msdn.microsoft.com”站点时,它就会通过以下步骤来解析该域名的 IP 地址:
- Web 浏览器调用 DNS 客户端(称为解析器),并使用上次查询缓存的信息在本地解析该查询。
- 如果在本地无法解析查询,客户端就会向已知的 DNS 服务器询问答案。如果该 DNS 服务器曾经在特定的时间段内处理过相同的域名(“msdn.microsoft.com“)请求,它就会在缓存中检索相应的 IP 地址,并将它返回给客户端。
- 如果该 DNS 服务器找不到相应的地址,客户端就会向某个全局根 DNS 服务器询问,后者返回顶级域权威 DNS 服务器的指针。在这种情况下,“com”域权威服务器的 IP 地址将返回给客户端。
- 类似地,客户端向“com”服务器询问“microsoft.com”服务器的地址。然后,客户端将原始查询传到“microsoft.com”服务器。
- 因为“microsoft.com”服务器在本地维护“msdn.microsoft.com”域的权威记录,所以它将最终结果返回给客户端,并完成特定 IP 地址的查询。
注意,可以将 DNS 资源记录缓存到网络上任意数量的 DNS 服务器中。第 2 步中提到的 DNS 服务器可能不包含“msdn.microsoft.com”缓存记录。但是,它可能有“microsoft.com”的记录,更可能有“com”域的记录。这可省去客户端获得最终结果所需的一次或几次查询,从而加快了整个搜索过程。
为了维护 DNS 缓存中的最新信息,缓存记录有一个与信息关联的“生存时间”设置(类似于牛奶的保鲜期)。当记录到期时,必须对它们再次进行搜索。
DNS 资源记录
如前所述,每个 DNS 数据库都由资源记录构成。一般来说,资源记录包含与特定主机有关的信息,如 IP 地址、主机的所有者或者提供服务的类型。
表 1 常用的资源记录类型
资源记录类型 | 说明 | 解释 |
---|---|---|
SOA | 起始授权机构 | 此记录指定区域的起点。它所包含的信息有区域名、区域管理员电子邮件地址,以及指示辅 DNS 服务器如何更新区域数据文件的设置等。 |
A | 地址 | 此记录列出特定主机名的 IP 地址。这是名称解析的重要记录。 |
CNAME | 标准名称 | 此记录指定标准主机名的别名。 |
MX | 邮件交换器 | 此记录列出了负责接收发到域中的电子邮件的主机。 |
NS | 名称服务器 | 此记录指定负责给定区域的名称服务器。 |
DNS 区域
通常,DNS 数据库可分成不同的相关资源记录集。其中的每个记录集称为区域。区域可以包含整个域、部分域或只是一个或几个子域的资源记录。
管理某个区域(或记录集)的 DNS 服务器称为该区域的权威名称服务器。每个名称服务器可以是一个或多个区域的权威名称服务器。
在域中划分多个区域的主要目的是为了简化 DNS 的管理任务,即委派一组权威名称服务器来管理每个区域。采用这样的分布式结构,当域名称空间不断扩展时,各个域的管理员可以有效地管理各自的子域。
有时,区域和域是很难分辨的。
区域是域的子集。可以将它看作域名称空间的某个分支(或子树)。例如,Microsoft 名称服务器可以同时是“microsoft.com”区域、“msdn.microsoft.com”区域和“marketing.microsoft.com”区域的权威名称服务器。但是,可以将子域的区域(如“msdn.microsoft.com”)委派给其它专用名称服务器管理。如果设置的区域包含整个域的资源记录,那么该区域与该域的范围是相同的。
对于 Windows 2000,区域信息或者以传统文本文件格式存储,或者集成到 Active Directory 数据库中。稍后,我们将详细阐述 DNS 与 Active Directory 如何协作。
主 DNS 服务器和辅 DNS 服务器
为保证服务的高可用性,DNS 要求使用多台名称服务器冗余支持每个区域。
某个区域的资源记录通过手动或自动方式更新到单个主名称服务器(称为主 DNS 服务器)上。主 DNS 服务器可以是一个或几个区域的权威名称服务器。
其它冗余名称服务器(称为辅 DNS 服务器)用作同一区域中主服务器的备份服务器,以防主服务器无法访问或宕机。辅 DNS 服务器定期与主 DNS 服务器通讯,确保它的区域信息保持最新。如果不是最新信息,辅 DNS 服务器就会从主服务器获取最新区域数据文件的副本。这种将区域文件复制到多台名称服务器的过程称为区域复制。
Active Directory 和 DNS 的关系
Active Directory 是 Windows 2000 中新增的目录服务。该服务存储所有网络资源的信息,如计算机、共享文件夹、用户等等。它还通过标准的 Internet 协议(轻量目录访问协议,LDAP)将此类信息提供给用户和应用程序。有关 Active Directory 的详细信息,请参阅 Technet 文章设置 Active Directory 域 。
与 Microsoft Windows NT® 4.0 中的域控制器相比,Active Directory 与 DNS 的关系更加密切。实际上,DNS 是支持 Active Directory 所必需的。通常,安装 Active Directory 服务器时,如果网络上找不到 DNS 服务器,就会在安装过程中安装 DNS 服务器。
支持域控制器的定位器服务
Windows 2000 中最重要的新概念之一就是:计算机不再主要用网络基本输入/输出系统 (NetBIOS) 名称来标识,而是使用 DNS 完全合格的域名称 (FQDN) 来标识,如“server1.duwamishonline.com”。
因此,要登录并访问 Windows NT 域中的资源,Windows 2000 计算机必须查找 DNS 服务器,后者帮助定位 Active Directory 域控制器。换句话说,DNS 用作域控制器的定位器服务。
与 Active Directory 集成
Windows 2000 DNS 服务器的另一个重要功能是:DNS 区域可以集成到 Active Directory 中,以提供增强的容错和安全功能。每个与 Active Directory 集成的区域将自动复制到 Active Directory 域的所有域控制器中。
不过,仍可以将 Windows 2000 DNS 服务器配置为基于传统文件的 DNS 服务器。但是,要提供 DNS 服务容错功能,除主 DNS 服务器外,还必须手动安装辅 DNS 服务器。
配置 Duwamish Online 的 DNS 服务
Duwamish Online 要求使用外部和内部域名称解析。
在外部,DNS 服务将“www.DuwamishOnline.com”解析为 Web 服务器的 IP 地址。Duwamish Online 应用程序使用内部名称解析来解析服务器的名称。要从 COM+ 列队组件 (QC) 访问消息队列 (MSMQ) 公共队列,必须使用 Active Directory,而后者又要求使用 DNS。有关 MSMQ 和网络体系结构的详细信息,请参阅 Duwamish Online Message Queuing Configuration 上的文章 。
在 Windows 2000 中安装 DNS 服务相对比较简单。但是,外部和内部 DNS 信息的安全要求是不同的。在本节中,我们将讨论这些安全问题和可能的解决方案。我们将讨论(消息队列配置使用的)Active Directory 服务与 Duwamish Online Web 群中 DNS 之间的关系。还要告诉您如何注册域名,如何安装带有 Windows 2000 的 DNS 服务器。
公用和专用 DNS 信息的安全问题
最初,我们安装了两台 DNS 服务器:一台主 DNS 服务器和一台用于冗余的辅 DNS 服务器。在这些 DNS 服务器中设置了两个区域:一个用于外部 Internet 域“DuwamishOnline.com”,另一个用于内部域“InternalDomain.com”。
如前所述,安装用于内部域的 DNS 服务器是 Windows 2000 Active Directory 域的新要求。使用该原始配置,将 DNS 服务器同时设置为内部域和外部域的“多主”,例如,外部网络接口卡 (NIC) 的 IP 地址为 192.168.100.1,内部 NIC 的 IP 地址为 10.10.10.1。
允许 Internet 用户向服务器查询外部区域。但是,因为同一 DNS 服务器同时管理外部和内部区域,所以外部用户也可以向服务器查询内部区域。Internet 用户可以使用基本网络工具(如名称服务搜索,NSLookup)访问所有内部域 DNS 信息。
理论上,无法将任何网络数据包路由到内部域,直接攻击内部服务器。但是,向外界泄露的内部信息越少,操作的安全性越高。这可防止他人利用后端服务器(此处存储重要业务信息)的潜在漏洞,进一步窃取机密信息。
DNS 部署的解决方案
下面列出了一些解决原始配置安全问题的方案:
- 两个域/区域使用各自的 DNS 服务器。
- 由 Internet 服务提供商 (ISP) 托管外部 DNS。
- 将两个区域放在一台服务器中,并用正确的访问控制配置 Active Directory。
使用各自的 DNS 服务器
解决安全问题的一种方法是使用两台单独的 DNS 服务器将两个区域的 DNS 操作分开,一个放在公共网段,另一个仅用于内部 DNS 查询。
但是,对于小型 Web 操作,并不希望再多管理一台服务器。实际上,根据一般建议所述,每个区域至少配置两台权威名称服务器,那么我们需要安装四台 DNS 服务器为两个域(带有主 DNS 服务器和辅 DNS 服务器)提供足够的容错功能。这样,如果其中一台服务器出现故障,站点仍可正常工作。
在较大的 Web 群中,这可能是首选设置,因为它可以绝对控制整个操作环境,并将对第三方系统的依赖性降到最低。
由 ISP 托管外部 DNS
另一个常用的方法是由 Internet 服务提供商维护外部域,而我们自己继续管理内部域的 DNS 服务器。对于此类配置,DNS 服务器仅连接到内部网络,不能通过 Internet 访问它。
这可能是隔离两个域并最大限度降低管理其它 DNS 服务器额外开销的最简单方法。同时,ISP 为其 DNS 服务器提供了更好的网络和系统冗余。然后,我们可以在内部网络上安装辅 DNS 服务器,为内部名称搜索提供容错功能。
配置 Active Directory 访问控制
可以将两个区域放在一个服务器中,并将该区域与 Active Directory 安全功能集成起来。通过正确控制对 Active Directory 中 DNS 文件的访问,可将内部 DNS 查询仅限于经过身份验证的用户。
但是,我们还没有验证该解决方案。由于该方案非常复杂,所以必须进行大量的试验,确保设置正确并且没有误将内部信息输出到 Internet。
注册域名
要避免与其它组织的名称空间冲突,外部域的指定名称“DuwamishOnline.com”必须由相应的域名颁发机构(称为“注册机构”)注册。
对于整个域名空间,过去只有一个注册机构。但是,随着美国政府对整个 Internet 基础结构的不断私有化和全球化,现在出现了许多注册机构。
在 Internet 名称和号码分配社团 (ICANN) 的 Web 站点 ( http://www.icann.org/ ) 上,可以找到世界各地的可信注册机构的列表,该社团是由美国政府唯一缔约的非赢利组织,监督 IP 地址的分配和 DNS 基础结构的管理。
尽管不同注册机构的注册过程有所差异,但是,它们大致还是相同的。您可以先登录到其中的某个 Web 站点,搜索想要使用的域名,看看是否已经存在。如果此域名还未使用,就会要求您提供合同和记帐信息。另外,您需要提供两个 IP 地址和 FQDN,用于主 DNS 服务器和辅 DNS 服务器。
如果您的 ISP 正在管理 Internet 域的 DNS 服务器,请在开始注册过程之前,先向他们询问此类信息。事实上,现在大多数提供商除了给您的域提供 DNS 服务外,还替您提交注册请求。
因为内部域的 DNS 服务器安装是由 Active Directory 安装向导自动完成的,所以本文不再讨论这个简单的过程。详细信息,请参阅文章设置 Active Directory 域。
外部域的 DNS 服务器配置
如果选择为外部域管理一组单独的 DNS 服务器,则可通过以下步骤获得一组基本外部 DNS 服务器配置。
在 Windows 2000 中安装 DNS
在 Windows 2000 Server、Advanced Server 和 Datacenter Server 中,DNS 是作为操作系统软件的一部分提供的。但是,它并不是默认安装的一部分,必须在安装 DNS 服务器之前进行安装。
要安装 DNS
- 从开始菜单,指向设置 / 控制面板。双击添加/删除程序,单击添加/删除 Windows 组件,然后单击组件按钮。
- 在“Windows 组件向导”中,选择网络服务,然后单击详细信息。选择域名系统组件,并单击确定。
安装主 DNS 服务器
主 DNS 服务器包含外部区域 DuwamishOnline.com 的资源记录。辅 DNS 服务器用作该服务器的备份服务器。
要安装主 DNS 服务器
- 从开始菜单,指向程序 / 管理工具。单击 DNS 启用 DNS 控制台程序。
- 在左侧窗格中,选择正在配置的服务器。
- 如果还没有配置 DNS 服务器,请从操作菜单单击配置服务器,启动“配置 DNS 向导”。此向导将引导您完成“正向搜索区域”和“反向搜索区域”的设置。
注意 如果已经给其它区域配置了该 DNS 服务器,则无法从菜单上使用该选项。需要分别右键单击“正向搜索区域”和“反向搜索区域”文件夹,指向新建区域,启动“新建区域向导”。设置过程与下面的步骤类似。
- 按照向导的指示设置正向搜索区域。“正向搜索区域”是将域名转换成 IP 地址的资源记录集。无疑,这是 DNS 服务器最重要的数据文件。
- 在新建区域向导对话框中,单击选项按钮将区域类型指定为标准主要区域,后者以传统文本文件格式存储区域数据。
注意 如果网络上使用 Active Directory 服务器,您可以选择 Active Directory 集成的区域选项按钮。该选项允许将区域数据存储在 Active Directory 数据库中,并自动复制到其它 Active Directory 服务器中。
- 输入完全合格的域名称(本例中为“DuwamishOnline.com”)。
- 接受新区域文件的默认文件名。
- 如果需要,请创建一个反向搜索区域。“反向搜索区域”是将 IP 地址转换回相应域名的资源记录集。许多 Internet 服务经常需要使用此信息进行安全验证。
- 要设置“反向搜索区域”的名称,系统将要求您输入外部网络的网络 ID。例如,如果 DNS 服务器位于一个完全 C 类网络中,则输入该服务器 IP 地址的前三段。不过,您应该从 ISP 那里获得此类信息。(有关 IP 地址类别的详细信息,请参阅 http://msdn.microsoft.com/library/wcedoc/wcecomm/tcpip_11.htm 。)
- 将区域名用作“反向搜索区域”的数据文件名。
此时,您已完成了主 DNS 服务器的安装,并已准备好配置该区域的其它资源记录。
配置主 DNS 服务器
在 Windows 2000 DNS 服务器中有很多有用的功能。下面讲述了为 DuwamishOnline.com 这样的 Web 群配置主 DNS 服务器的最小需求。假定您已如上所述成功创建了一个新的正向和反向搜索区域。
要修改 SOA 和名称服务器记录
- 从 DNS 控制台左侧窗格中,展开选定计算机名称下面的树状结构。指向正向搜索区域文件夹中的 FQDN(本例中,FQDN 就是“duwamishonline.com”);右键单击并选择属性。
- 在属性对话框中,单击起始授权机构 (SOA) 选项卡。
- 根据需要修改主服务器字段。该字段应包含主 DNS 服务器的 FQDN。
- 根据需要修改负责人字段。该字段应包含 DNS 管理员的电子邮件地址。但是按照 DNS 标准,应该用“.”来替代“@”。例如,如果管理员的电子邮件地址是“admin@duwamishonline.com”,则该字段应包含“admin.duwamishonline.com”。
- 单击名称服务器选项卡。
- 如果已修改了 SOA 选项卡上的主服务器字段,则修改第一个服务器项。
- 添加第二项,指定辅 DNS 服务器的 FQDN 和 IP 地址。
- 单击区域复制选项卡。单击选项按钮,以便允许对只有在“名称服务器”选项卡中列出的服务器进行区域复制。单击确定。
- 将看到一个带有辅 DNS 服务器信息的新“名称服务器”记录。
注意 您可以按下 F5 键刷新屏幕并查看所作的修改。
要创建新的主机地址记录
- 从 DNS 控制台左侧窗格中,展开选定计算机名称下面的树状结构。指向正向搜索区域文件夹中的 FQDN(本例中,FQDN 就是“duwamishonline.com”);右键单击并选择新建主机。
- 在名称字段中,输入 Web 服务器的主机名,例如,本例中为“www”。
- 在 IP 地址字段中,输入 Web 服务器的 IP 地址。
- 选择该复选框以创建相关的指针 (PTR) 记录。这样,在“反向搜索区域”中就会自动创建相应主机的新指针记录。
- 单击添加主机按钮,然后单击完成以应用更改。
- 就会在“正向搜索区域”中看见一个新的资源记录。
注意 您可以按下 F5 键刷新屏幕并查看所作的修改。
安装辅 DNS 服务器
安装辅 DNS 服务器与安装主服务器一样容易。
注意,不能将辅 DNS 服务器与主 DNS 服务器安装在同一台计算机上。这样,将导致 DNS 服务没有冗余。
安装辅 DNS 服务器
- 请执行“安装 DNS”一节中的第 1 步和第 2 步。
- 然后,完成与安装主 DNS 服务器相同的步骤,此时将区域类型指定为标准辅助区域。并要求您将主 DNS 服务器的 IP 地址添加到主 DNS 服务器列表中。
小结
我们选择由 ISP 托管外部 DNS 信息,以加快部署过程并最大限度地减少站点的操作和维护工作。因为这是许多 ISP 所提供的普通功能,所以我们认为这将是 Web 群中大多数用户所使用的配置。