教程:使用专用解析程序设置 DNS 故障转移
本文详细介绍了如何使用跨不同区域部署的两个或更多个 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
登录 Azure 门户。
确定入站终结点 IP 地址
记下分配给 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 专用解析程序终结点和规则集。
验证 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 转发
现在,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 的一些其他关键网络功能。