使用 Azure DNS 委托 DNS 区域

Azure DNS 允许托管 DNS 域和管理 DNS 区域记录。 若要在 Azure 中托管域,必须在 Azure 中创建区域,并通过域注册机构将其委托给 Azure 授权 DNS 服务器。 Azure DNS 不是域注册机构。 本文介绍域委托的工作原理,以及如何将域委托给 Azure DNS。

另请参阅:教程:在 Azure DNS 中托管域

DNS 委托的工作原理

域和区域

域名系统 (DNS) 是域的层次结构。 该层次结构从名为“.”的 root 域开始。 此域的下面是顶级域,例如 comnetorgukjp。 这些顶级域的下面是二级域,例如 org.ukco.jp。 依此类推。 DNS 层次结构中的域作为单独的 DNS 区域存在。 这些区域遍布全球,由世界各地的 DNS 名称服务器托管。

DNS 区域 - 公共 DNS 区域具有唯一名称(例如:contoso.com)并由一系列资源记录组成。 DNS 区域托管各种类型的 DNS 资源记录。 例如,域 contoso.com 可能包含 DNS 记录,如 mail.contoso.com(用于邮件服务器)和 www.contoso.com(用于网站)。

域注册机构 - 域注册机构是可以提供 Internet(公共)域名的组织。 他们会验证你想要使用的 Internet 域名是否可用,并提供购买机会。 注册域名时,你就是该域名的合法所有者。 如果你已拥有 Internet 域,则可以使用当前域注册机构将此域委托给 Azure DNS。

有关认证的域注册机构的详细信息,请参阅 ICANN 认证的注册机构

解析和委托

有两种类型的 DNS 服务器:

  • 权威 DNS 服务器托管 DNS 区域。 它只应答这些区域中的 DNS 记录查询。
  • 递归 DNS 服务器不托管 DNS 区域。 它调用权威 DNS 服务器来收集所需的数据,以应答所有 DNS 查询。

Azure DNS 提供权威 DNS 服务。 它不提供公共递归 DNS 服务。 有关 Azure 专用 DNS 递归服务的信息,请参阅什么是 Azure DNS 专用解析程序。 默认情况下,Azure 中的云服务和 VM 配置为使用 Azure 基础结构中单独提供的递归 DNS 服务。 有关如何更改这些 DNS 设置的详细信息,请参阅 Name Resolution in Azure(Azure 中的名称解析)。

电脑或移动设备中的 DNS 客户端通常调用递归 DNS 服务器来执行客户端应用程序所需的任何 DNS 查询。

当递归 DNS 服务器收到 DNS 记录查询时(例如 www.contoso.com),必须先找到托管 contoso.com 域的授权名称服务器。 若要查找名称服务器,请从根名称服务器开始,接着查找托管 com 域的名称服务器。 然后,查询 com 名称服务器,查找托管 contoso.com 域的名称服务器。 最后,就能够查询 www.contoso.com 的名称服务器。

此过程称为 DNS 名称解析。 严格地说,DNS 解析包括更多的步骤,例如跟踪 CNAME,但这对于了解 DNS 委托的工作原理并不重要。

父区域如何指向子区域的名称服务器? 方法是使用一种特殊的 DNS 记录,名为 NS 记录(NS 代表“名称服务器”)。 例如,根区域包含 com 的 NS 记录,并显示 com 域的名称服务器。 反过来,com 域包含 contoso.com 的 NS 记录,这些记录显示 contoso.com 域的名称服务器。 在父区域中设置子区域的 NS 记录称为委托域。

下图显示了一个 DNS 查询示例。 contoso.netpartners.contoso.net 区域是已委托给 Azure 授权 DNS 服务器的公共 DNS 域。

显示低 DNS 委托工作原理的概念图。

  1. 客户端从其本地 DNS 服务器请求 www.partners.contoso.net
  2. 本地 DNS 服务器没有记录,因此向根名称服务器发出请求。
  3. 根名称服务器没有记录,但知道 .net 名称服务器的地址,于是将该地址提供给本地 DNS 服务器
  4. 本地 DNS 服务器将请求发送到 .net 名称服务器。
  5. .net 名称服务器没有该记录,但知道 contoso.net 名称服务器的地址。 在这种情况下,它会响应 Azure DNS 中托管的 DNS 域的名称服务器的地址。
  6. 本地 DNS 服务器将请求发送到 Azure DNS 中托管的 contoso.net 域的名称服务器。
  7. 区域 contoso.net 没有记录,但知道 partners.contoso.net 的名称服务器,于是使用地址进行响应。 本示例中为托管在 Azure DNS 中的 DNS 域。
  8. 本地 DNS 服务器将请求发送到 partners.contoso.net 域的名称服务器。
  9. partners.contoso.net 区域具有 www 的 A 记录,并使用 IP 地址进行响应。
  10. 本地 DNS 服务器为客户端提供 IP 地址。
  11. 客户端连接到网站 www.partners.contoso.net

每个委托实际上有两份 NS 记录:一份在父区域中指向子区域,另一份在子区域本身。 contoso.net 区域包含 contoso.net 的 NS 记录(还包含 net 中的 NS 记录)。 这些记录称为权威 NS 记录,位于子区域的顶点处。

后续步骤

了解如何将域委托给 Azure DNS