本文详细介绍了如何使用跨不同区域部署的两个或更多个 Azure DNS 专用解析程序来消除本地 DNS 服务中的单一故障点。 通过将本地解析程序指定为主 DNS 并将相邻区域中的解析程序指定为辅助 DNS,即可启用 DNS 故障转移。 如果主 DNS 服务器无法响应,则 DNS 客户端会自动使用辅助 DNS 服务器重试。
本教程介绍如何执行下列操作:
- 使用本地条件转发器和 Azure DNS 专用解析程序解析 Azure 专用 DNS 区域。
- 为 Azure 专用 DNS 区域启用本地 DNS 故障转移。
下图显示了本文中讨论的故障转移场景。
在此场景中,你有两个本地位置到两个 Azure 中心 VNet 的连接。
- 在北部区域,主要路径是北部 vnet 中心。 你与东部中心建立了辅助连接。 已反向配置东部区域。
- 由于 Internet 连接问题,与一个 vnet(东部)的连接暂时中断。
- 由于冗余设计,这两个区域的服务都得到了维护。
DNS 解析路径为:
故障转移场景不需要出站终结点和 DNS 转发规则集,但为了完整起见,将其包含在此处。 可以使用规则集从 Azure 解析本地域。 有关详细信息,请参阅 Azure DNS 专用解析程序终结点和规则集以及解析 Azure 和本地域。
- 具有活动订阅的 Azure 帐户。 创建试用帐户。
- 两个区域中的两个 Azure 虚拟网络
- 从本地到每个虚拟网络的 VPN 或 ExpressRoute 链接
- 每个虚拟网络中的 Azure DNS 专用解析程序
- 链接到每个虚拟网络的 Azure 专用 DNS 区域
- 本地 DNS 服务器
备注
在本教程中,azure.contoso.com
是 Azure 专用 DNS 区域。 将 azure.contoso.com
替换为你的专用 DNS 区域名称。
登录 Azure 门户。
记下分配给 DNS 专用解析程序的入站终结点的 IP 地址。 IP 地址将用于配置本地 DNS 转发器。
在此示例中,两个区域中有两个虚拟网络:
- mynorthvnet 位于“中国北部 3”区域,分配的地址空间为 10.10.0.0/16
- myeastvnet 位于“中国东部 3区域,其中分配了地址空间 10.20.0.0/16
搜索“DNS 专用解析程序”,并从第一个区域选择专用解析程序。 例如:mynorthresolver。
在“设置”下,选择“入站终结点”并记下“IP 地址”设置。 例如:10.10.0.4。
返回到 DNS 专用解析程序列表,并从其他区域选择解析程序。 例如:myeastresolver。
在“设置”下,选择“入站终结点”并记下此解析程序的“IP 地址”设置。 例如:10.20.0.4。
若要解析 Azure DNS 专用区域中的 DNS 记录,区域必须链接到虚拟网络。 在此示例中,区域 azure.contoso.com
链接到 mynorthvnet 和 myeastvnet。 也可以存在指向其他 VNet 的链接。
搜索“专用 DNS 区域”并选择专用区域。 例如:azure.contoso.com。
在“设置”下,选择“虚拟网络链接”,并验证在上一过程中用于入站终结点的 VNet 是否也列在“虚拟网络”下。 例如:mynorthvnet 和 myeastvnet。
如果尚未链接一个或多个 VNet,可以添加,操作步骤如下:选择“添加”,提供“链接名称”,选择“订阅”,然后选择“虚拟网络”。
提示
还可以使用对等互连来解析专用 DNS 区域中的记录。 有关详细信息,请参阅 Azure DNS 专用解析程序终结点和规则集。
检查虚拟网络的 DNS 设置是否设置为“默认(Azure 提供的)”。
搜索“虚拟网络”并选择第一个 VNet。 例如:mynorthvnet。
在“设置”下,选择“DNS 服务器”,并验证是否选择了“默认(Azure 提供的)”。
选择下一个 Vnet(例如 myeastvnet)并确认是否选择了“默认”(由 Azure 提供)。
备注
也可以使自定义 DNS 设置起作用,但这不在当前场景的范围内。
搜索“专用 DNS 区域”并选择专用区域名称。 例如:azure.contoso.com。
通过选择“+ 记录集”并添加新的 A 记录,在区域中创建测试记录。 例如:test。
使用本地客户端打开命令提示符,并使用 nslookup 使用你记下的第一个专用解析程序 IP 地址(例如:10.10.0.4)查找测试记录。 请参阅以下示例:
nslookup test.azure.contoso.com 10.10.0.4
查询应返回你分配给测试记录的 IP 地址。
使用针对第二个专用解析程序写下的 IP 地址(例如:10.20.0.4)重复此 nslookup 查询。
备注
如果专用区域的 DNS 解析不起作用,请检查到 Azure VNet 的本地链接是否已连接。
现在,DNS 解析正使用两个不同的 Azure DNS 专用解析程序从本地连接到 Azure,我们可以配置转发以使用这两个地址。 这将在与 Azure 的连接之一中断的情况下启用冗余。 配置转发器的过程将取决于所使用的 DNS 服务器类型。 以下示例使用运行 DNS 服务器角色服务且 IP 地址为 10.100.0.2 的 Windows Server。
备注
用于配置转发的 DNS 服务器应该是网络上客户端设备将用于 DNS 解析的服务器。 如果配置的服务器不是默认服务器,则需要在配置转发后直接查询其 IP 地址(例如:nslookup test.azure.contoso.com 10.100.0.2)。
打开提升的 Windows PowerShell 提示符并发出以下命令。 将 azure.contoso.com 替换为专用区域的名称,并将下面的 IP 地址替换为专用解析程序的 IP 地址。
Add-DnsServerConditionalForwarderZone -Name "azure.contoso.com" -MasterServers 10.20.0.4,10.10.0.4
如果愿意,还可以使用 DNS 控制台输入条件转发器。 请参阅以下示例:
现在,转发已到位,请发出在上一过程中使用的相同 DNS 查询。 但是,这次不要输入查询的目标 IP 地址。 查询将使用客户端的默认 DNS 服务器。
现在可以证明当其中一个连接断开时 DNS 解析有效。
通过禁用或断开接口来中断从本地到其中一个 VNet 的连接。 验证连接不会按需自动重新连接。
使用不再连接的 VNet 中的专用解析程序运行 nslookup 查询,并验证它是否失败(见下文)。
使用默认 DNS 服务器(配置了转发器)运行 nslookup 查询,并验证它是否因为你启用了冗余而仍然有效。
- 查看 Azure DNS 专用解析程序的组件、优势和要求。
- 了解如何使用 Azure PowerShell 或 Azure 门户创建 Azure DNS 专用解析程序。
- 了解如何使用 Azure DNS 专用解析程序解析 Azure 和本地域。
- 了解 Azure DNS 专用解析程序终结点和规则集。
- 了解如何使用专用解析程序配置混合 DNS。
- 了解 Azure 的一些其他关键网络功能。