DNS 区域是 DNS 服务器上托管的 DNS 命名空间的特定部分。 DNS区域包含资源记录表,DNS服务器对记录查询进行响应。 例如,解析 www.contoso.com
为 IP 地址的权威 DNS 服务器将托管 contoso.com
区域。
DNS 区域内容可以存储在文件或 Active Directory 域服务(AD DS)中。 DNS 服务器将区域存储在文件中时:
- 该文件位于服务器上的本地文件夹中。
- 区域只有一个副本是可写的。
- 其他副本是只读的,称为辅助区域。
存储在 AD DS 中的 DNS 区域称为 Active Directory 集成区域。 Active Directory 集成区域仅在安装了 DNS 服务器角色的域控制器上可用。
DNS 区域类型
DNS 服务器服务支持以下类型的区域:
- 主要区域。
- 次要区域。
- 存根区域。
- 反向查找区域。
主要区域
托管主区域的 DNS 服务器是有关此区域的信息的主要源。 它将区域数据存储在本地文件或 AD DS 中。 若要创建、编辑或删除资源记录,必须使用主区域。 辅助区域是主要区域的只读副本。
可以在本地文件中存储标准主区域,也可以在 AD DS 中存储区域数据。 在 AD DS 中存储区域数据时,其他功能都可用,例如安全的动态更新,以及托管区域的每个域控制器能够充当主要区域并能够处理对区域的更新。 当区域存储在文件中时,默认情况下,主区域文件命名 zone_name.dns
,并且位于 %windir%\System32\Dns
服务器上的文件夹中。
部署 Active Directory 时,会自动创建与组织的 AD DS 域名关联的 DNS 区域。 默认情况下,AD DS DNS 区域将复制到配置为域中 DNS 服务器的任何其他域控制器。 还可以将 Active Directory 集成的 DNS 区域配置为复制到 AD DS 林中的所有域控制器,或在特定 AD DS 域分区中注册的特定域控制器。
次要区域
辅助区域是主要区域的只读副本。 当此 DNS 服务器托管的区域是次要区域时,此 DNS 服务器是有关此区域的辅助源。 必须从托管该区域的另一台远程 DNS 服务器计算机获取此服务器上的区域。 此 DNS 服务器必须具有对远程 DNS 服务器的网络访问权限,该远程服务器向本服务器提供有关该区域的更新信息。 由于辅助区域只是另一台服务器上托管的主区域的副本,因此不能将其作为 Active Directory 集成区域存储在 AD DS 中。
在大多数情况下,次要区域会定期直接从主要区域复制资源记录。 但在一些复杂的配置中,次要区域可以从另一个次要区域复制资源记录。
存根区域
存根区域仅包含有关该区域的权威名称服务器的信息。 DNS 服务器托管的区域必须从托管该区域的另一个 DNS 服务器获取其信息。 此 DNS 服务器必须具有对远程 DNS 服务器的网络访问权限,才能复制有关该区域的权威名称服务器信息。
可以使用存根区域执行下列操作:
- 使委派区域信息保持最新状态。 DNS 服务器会定期更新其子区域的存根记录,托管父区域和存根区域的 DNS 服务器维护子区域的权威 DNS 服务器的当前列表。
- 改进名称解析。 存根区域使 DNS 服务器能够使用存根区域的名称服务器列表执行递归,而无需查询 Internet 或内部根服务器以获取 DNS 命名空间。
- 简化 DNS 管理。 通过在 DNS 基础结构中使用存根区域,可以在不使用次要区域的情况下分发区域的权威 DNS 服务器列表。 但是,存根区域不与次要区域相同,它们不是增强冗余和负载共享的替代方法。
加载和维护存根区域涉及 DNS 服务器的两个列表:
- DNS 服务器从中加载和更新存根区域的名称服务器的列表。 名称服务器可能是该区域的主 DNS 服务器或辅助 DNS 服务器。 在这两种情况下,它都有区域 DNS 服务器的完整列表。
- 区域的权威 DNS 服务器列表。 此列表包含在使用名称服务器 (NS) 资源记录的存根区域中。
当 DNS 服务器加载存根区域(例如 widgets.tailspintoys.com
)时,它会查询名称服务器(可以位于不同位置),以获取区域 widgets.tailspintoys.com
权威服务器的必要资源记录。 名称服务器列表可能包含单个服务器或多台服务器,并且可以随时更改。
存根区域是一个区域的副本,该副本仅包含用于识别该区域的权威域名系统(DNS)服务器所需的资源记录。 通常,使用存根区域解析单独的 DNS 命名空间之间的名称。
使用子区域时,应考虑:
- 存根区域不能托管在对同一区域具有权威性的 DNS 服务器上。
- 如果将存根区域集成到 AD DS 中,则可以指定托管存根区域的 DNS 服务器是否使用本地名称服务器列表或 AD DS 中存储的列表。 如果要使用本地名称服务器列表,则必须为每个名称服务器提供 IP 地址。
反向查找区域
在大多数域名系统(DNS)查找中,客户端通常执行正向查找,这是基于另一台计算机的 DNS 名称的搜索,因为它存储在主机(A)资源记录中。 这种类型的查询需要 IP 地址作为应答响应的资源数据。
DNS 还提供反向查找过程,客户端使用已知的 IP 地址并基于其地址查找计算机名称。 反向查找采用问题的形式,例如“你能告诉我使用 IP 地址 192.168.1.20 的计算机的 DNS 名称吗?
域 in-addr.arpa
是在 DNS 标准中定义的,并在 Internet DNS 命名空间中保留,以提供一种实用且可靠的方法来执行反向查询。 若要创建反向命名空间,需要在in-addr.arpa
域内形成子域,使用 IP 地址的点分十进制表示法中数字的逆序。
该 in-addr.arpa
域适用于基于 Internet 协议版本 4(IPv4)寻址的所有 TCP/IP 网络。 新建区域向导会自动假定在创建新的反向查找区域时使用此域。
构建 in-addr.arpa
域树时,必须反转 IP 地址八位字节的顺序。 DNS in-addr.arpa
树的 IP 地址可以委托给组织,因为它们在 Internet 定义的地址类中分配了一组特定的或有限的 IP 地址。
复制 DNS 数据库
可以有多个区域表示命名空间的同一部分。 在这些区域中有三种类型:
- 主要
- 次要
- 存根
主要区域是对属于该区域的记录进行所有更新的区域。 辅助区域是主要区域的只读副本。 存根区域是主区域的只读副本,该副本仅包含用于标识 DNS 域名权威的 DNS 服务器的资源记录。 对主区域文件所做的任何更改将复制到次要区域文件。 托管主区域、辅助区域或存根区域的 DNS 服务器据说是该区域中 DNS 名称的权威服务器。
由于 DNS 服务器可以托管多个区域,因此它可以托管主区域(具有区域文件的可写副本)和单独的次要区域(获取区域文件的只读副本)。 托管主区域的 DNS 服务器据说是该区域的主 DNS 服务器,托管次要区域的 DNS 服务器据说是该区域的辅助 DNS 服务器。
注释
对于同一域名而言,辅助或存根区域不能在托管主区域的 DNS 服务器上托管。
区域传输
将区域文件复制到多个 DNS 服务器的过程称为区域转移。 可以通过将区域文件从一个 DNS 服务器复制到另一个 DNS 服务器来实现区域转移。 可以从主 DNS 服务器和辅助 DNS 服务器进行区域传输。
主 DNS 服务器是配置为区域传输源的任何权威服务器。 如果 DNS 服务器是主 DNS 服务器,则区域传输直接来自托管主区域的 DNS 服务器。 如果主服务器托管辅助 DNS 区域,则从具有区域传输的主 DNS 服务器接收的区域文件是只读辅助区域文件的副本。
区域传输通过以下方式之一启动:
- 主要 DNS 服务器向一个或多个辅助 DNS 服务器发送通知(RFC 1996),告知区域文件的更改。
- 当辅助 DNS 服务器上的 DNS 服务器服务启动时,或区域刷新间隔过期时,辅助 DNS 服务器会查询主 DNS 服务器以获取更改。 默认情况下,区域 SOA RR 中的刷新间隔设置为 15 分钟。
区域传输设置
通过区域传输,您可以控制次要区域从主要区域复制的条件。 要提高 DNS 基础结构的安全性,请仅允许区域传输发生在记录于名称服务器(NS)资源记录中的 DNS 服务器或指定的 DNS 服务器之间。 如果允许任何 DNS 服务器执行区域传输,则可以将内部网络信息传输到任何可以联系 DNS 服务器的主机。
区域文件复制的类型
有两种类型的区域文件复制。 第一个是完整区域传输(AXFR),复制整个区域文件。 第二个增量区域传输(IXFR)仅复制已修改的记录。
BIND 4.9.3 及更早版本的 DNS 服务器软件以及 Windows NT 4.0 DNS 仅支持完整区域传输(AXFR)。 AXFR 有两种类型的:一种要求每个数据包一条记录,另一种类型允许每个数据包多条记录。 Windows 服务器中的 DNS 服务器服务支持这两种类型的区域传输,但默认情况下每个数据包使用多个记录。 它可以以不同的方式进行配置,以便与不允许每个数据包多条记录的服务器兼容,例如 BIND 服务器版本 4.9.4 及更早版本。
区域委派
可以将域名系统(DNS)命名空间划分为一个或多个区域。 通过委派相应区域的管理权限,可以将命名空间的一部分管理权限委托给组织中的另一个位置或部门。 例如,从 australia.contoso.com
区域委派 contoso.com
区域。
委派一个区域时,请记住,对于创建的每个新区域,需要其他区域中指向新区域的权威 DNS 服务器的委派记录。 对于传输授权和提供新区域授权的新服务器对其他 DNS 服务器和客户端的正确引用,委派记录都是必要的。
访问区域和名称
使用访问控制列表(ACL)控制对 Active Directory 中存储的 DNS 区域和资源记录的访问。 可以为 DNS 服务器服务、整个区域或特定 DNS 名称指定 ACL。 默认情况下,任何经过身份验证的 Active Directory 用户可以在任何区域中创建 A 或 PTR RR。 当所有者创建 A 或 PTR 记录(无论资源记录的类型如何),只有启用了写入权限的 ACL 中指定的用户或组才能修改对应于该名称的记录。 虽然在大多数情况下,此方法是可取的,但某些情况需要单独考虑。
DNSAdmins 组
默认情况下, DNSAdmins 组完全控制 Active Directory 域中的所有区域和记录。 为了使用户能够枚举特定域中的区域,必须在 DNSAdmin 组中登记用户(或用户所属的组)。
域管理员可能不希望向 DNSAdmins 组中列出的所有用户授予完全控制权。 相反,域管理员可能想要为一个区域授予一组特定的用户完全控制权限,并授予其他区域的只读权限。 若要配置这些权限,域管理员可以为每个区域创建一个单独的组,并将特定用户添加到每个组。 然后,每个区域的 ACL 只包含一个对该区域具有完全控制权限的组。 所有组都添加到 DNSAdmins 组,该组只能使用只读权限进行配置。 区域的 ACL 始终包含 DNSAdmins 组,这意味着在特定于区域的组中登记的所有用户都可以读取域中的所有区域。
保留名称
需要高级别安全性的环境可能需要保留区域中的名称,并阻止经过身份验证的用户在该区域中创建新名称,这是默认行为。 若要保护 DNS 记录,可以更改默认 ACL,以便仅允许某些组或用户创建对象。 ACL 的按名称管理为此问题提供了另一种解决方案。 管理员可以在区域中保留名称,让该区域的其余部分保持打开状态,以便由所有经过身份验证的用户创建任何新对象。 管理员为保留的名称创建记录,并在 ACL 中设置相应的组或用户列表。 这意味着,只有 ACL 中列出的用户才能在保留名称下注册另一条记录。