部署适用于 Azure DNS 私有区域的 NetScaler®
Azure DNS 是 Microsoft Azure 基础架构上的一项服务,用于托管 DNS 域并提供名称解析。
Azure DNS 私有区域是一项专注于在私有网络中解析域名的服务。通过私有区域,客户可以使用自己的自定义域名,而不是目前可用的 Azure 提供的名称。
NetScaler 作为领先的应用程序交付解决方案,最适合为 Azure DNS 私有区域提供负载平衡和 GSLB 功能。通过订阅 Azure DNS 私有区域,企业可以依靠 NetScaler 全局服务器负载平衡 (GSLB) 的强大功能和智能,通过安全的 VPN 隧道将内网流量分发到多个地理区域和数据中心的工作负载。这种协作保证了企业可以无缝访问他们希望迁移到 Azure 公有云的部分工作负载。
Azure DNS 概述
域名系统 (DNS) 负责将服务名称转换为或解析为其 IP 地址。Azure DNS 作为 DNS 域的托管服务,通过使用 Microsoft Azure 基础架构提供名称解析。除了支持面向互联网的 DNS 域外,Azure DNS 现在还支持私有 DNS 域。
Azure DNS 提供可靠、安全的 DNS 服务,用于在虚拟网络中管理和解析域名,而无需自定义 DNS 解决方案。通过使用私有 DNS 区域,您可以使用自己的自定义域名,而不是 Azure 提供的名称。使用自定义域名有助于您调整虚拟网络架构,以最适合您组织的需求。它为虚拟网络内和虚拟网络之间的虚拟机 (VM) 提供名称解析。此外,客户可以配置具有分割视图的区域名称,这允许私有和公共 DNS 区域共享一个名称。
为什么选择 NetScaler GSLB 用于 Azure DNS 私有区域?
在当今世界,企业希望将其工作负载从本地部署迁移到 Azure 云。向云的过渡使他们能够实现更快的上市时间、更低的资本支出/价格、更简便的部署和更高的安全性。Azure DNS 私有区域服务为正在将其部分工作负载迁移到 Azure 云的企业提供了一个独特的解决方案。当这些企业使用私有区域服务时,他们可以创建他们在本地部署中使用了多年的私有 DNS 名称。在这种内网应用程序服务器位于本地部署和通过安全 VPN 隧道连接的 Azure 云的混合模式下,一个挑战是如何无缝访问这些内网应用程序。NetScaler 通过其全局负载平衡功能解决了这一独特的用例,该功能将应用程序流量路由到本地部署或 Azure 云上最优的分布式工作负载/服务器,并提供应用程序服务器健康状态。
用例
本地网络和不同 Azure VNet 中的用户能够连接到内部网络中最优的服务器以访问所需内容。这确保了应用程序始终可用,成本得到优化,并且用户体验良好。Azure 私有流量管理 (PTM) 是这里的主要要求。Azure PTM 确保用户的 DNS 查询解析为应用程序服务器的相应私有 IP 地址。
用例解决方案
NetScaler 包含全局服务器负载平衡 (GSLB) 功能,以满足 Azure PTM 要求。GSLB 充当 DNS 服务器,获取 DNS 请求并将其解析为相应的 IP 地址,以提供:
-
无缝的基于 DNS 的故障转移。
-
从本地部署到云的分阶段迁移。
-
新功能的 A/B 测试。
在支持的众多负载均衡方法中,以下方法在此解决方案中可能很有用:
-
轮询
-
静态邻近性(基于位置的服务器选择)。它可以通过两种方式部署:
-
基于 NetScaler 上的 EDNS 客户端子网 (ECS) 的 GSLB。
-
为每个虚拟网络部署一个 DNS 转发器。
-
拓扑
下图描绘了 Azure 私有 DNS 区域的 NetScaler GSLB 部署。
用户可以根据 Azure 私有 DNS 区域中的 NetScaler GSLB 方法访问 Azure 或本地的任何应用服务器。本地与 Azure 虚拟网络之间的所有流量仅通过安全的 VPN 隧道。应用程序流量、DNS 流量和监控流量显示在上述拓扑中。根据所需的冗余,NetScaler 和 DNS 转发器可以部署在虚拟网络和数据中心中。为简单起见,此处仅显示一个 NetScaler,但我们建议每个 Azure 区域至少部署一套 NetScaler 和 DNS 转发器。所有用户 DNS 查询首先发送到 DNS 转发器,该转发器定义了将查询转发到相应 DNS 服务器的规则。
为 Azure DNS 私有区域配置 NetScaler
已测试的产品和版本:
| 产品 | 版本 |
|---|---|
| 阿祖尔 | 云订阅 |
| NetScaler VPX | BYOL(自带许可证) |
注意:
此部署经过测试,在 NetScaler 12.0 及更高版本中保持不变。
先决条件
以下是通用先决条件。
-
具有有效订阅的 Microsoft Azure 门户帐户。
-
确保本地环境与 Azure 云之间的连接(安全 VPN 隧道)。要在 Azure 中设置安全 VPN 隧道,请参阅 分步:在 Azure 和本地之间配置站点到站点 VPN 网关。
解决方案说明
如果您想托管一个在 HTTPs 上运行的 Azure DNS 私有区域 (rr.ptm.mysite.net) 应用程序,并且该应用程序基于轮询 GSLB 负载平衡方法部署在 Azure 和本地环境之间,并提供内网访问。要实现此部署,请使用 NetScaler 为 Azure 私有 DNS 区域启用 GSLB,其中包含以下配置:
-
配置 Azure 和本地设置。
-
Azure 虚拟网络上的 NetScaler 设备。
配置 Azure 和本地设置
如拓扑所示,设置 Azure 虚拟网络(本例中为 VNet A、VNet B)和本地设置。
-
创建一个带有域名 (mysite.net) 的 Azure 私有 DNS 区域。
-
在 Azure 区域中,以中心辐射模型创建两个虚拟网络(VNet A、VNet B)。
-
在 VNet A 中部署应用服务器、DNS 转发器、Windows 10 专业版客户端和 NetScaler。
-
如果 VNet B 中有任何客户端,则部署应用服务器和 DNS 转发器。
-
在本地部署应用服务器、DNS 转发器和 Windows 10 专业版客户端。
Azure 私有 DNS 区域
创建一个带有域名的 Azure 私有 DNS 区域。
-
登录 Azure 门户并选择或创建一个仪表板。
-
单击 创建资源 并搜索 DNS 区域以创建(本例中为 mysite.net)带有域名 (mysite.net) 的 Azure 私有 DNS 区域。
中心辐射模型中的 Azure 虚拟网络(VNet A、VNet B)
在 Azure 区域中,以中心辐射模型创建两个虚拟网络(VNet A、VNet B)。
-
创建两个虚拟网络。
-
选择相同的仪表板,然后单击 创建资源 并搜索虚拟网络,以在同一区域中创建两个虚拟网络,即 VNet A 和 VNet B,并将它们对等互连以形成中心辐射模型,如以下图像所示。 有关如何设置中心辐射拓扑的更多信息,请参阅 在 Azure 中实施中心辐射网络拓扑。


VNet A 到 VNet B 的对等互连
要对等互连 VNet A 和 VNet B:
-
从 VNet A 的设置菜单中单击对等互连,并对等互连 VNet B。
-
启用允许转发流量和允许网关传输,如下图所示。

下图显示了 VNet A 到 VNet B 的成功对等互连。
VNet B 到 VNet A 的对等互连
要对等互连 VNet B 和 VNet A:
-
从 VNet B 的设置菜单中单击对等互连,并对等互连 VNet A。
-
启用允许转发流量并使用远程网关,如下图所示。

下图显示了 VNet B 到 VNet A 的成功对等互连。
在 VNet A 中部署应用程序服务器、DNS 转发器、Windows 10 专业版客户端和 NetScaler
我们将简要讨论 VNet A 上的应用程序服务器、DNS 转发器、Windows 10 专业版客户端和 NetScaler。
-
选择相同的仪表板,点击 创建资源。
-
搜索相应的实例,并从 VNet A 子网分配一个 IP。
应用服务器
应用服务器就是 Web 服务器 (HTTP 服务器),其中 Ubuntu Server 16.04 作为实例部署在 Azure 或本地 VM 上。要将其设置为 Web 服务器,请在命令提示符下键入:
sudo apt install apache2
Windows 10 专业版客户端
在 VNet A 和本地启动 Windows 10 专业版实例作为客户端计算机。
NetScaler
NetScaler 通过 NetScaler MAS 的运行状况检查和分析来补充 Azure DNA 私有区域。根据您的要求从 Azure Marketplace 启动 NetScaler,在此部署中我们使用了 NetScaler (BYOL)。
有关如何在 Microsoft Azure 上部署 NetScaler 的详细步骤。请参阅 在 Microsoft Azure 上部署 NetScaler VPX 实例。
部署后,使用 NetScaler IP 配置 NetScaler GSLB。
DNS 转发器
它用于转发绑定到 NetScaler GSLB (ADNS IP) 的托管域的客户端请求。启动 Ubuntu Server 16.04 作为 Linux 实例 (Ubuntu Server 16.04),并参考以下 URL 了解如何将其设置为 DNS 转发器。
注意:
对于轮询 GSLB 负载均衡方法,一个 Azure 区域一个 DNS 转发器就足够了,但对于静态邻近性,每个虚拟网络需要一个 DNS 转发器。
-
部署转发器后,将虚拟网络 A 的 DNS 服务器设置从默认更改为自定义,并使用 VNet A DNS 转发器 IP,如下图所示。
-
修改 VNet A DNS 转发器中的
named.conf.options文件,为域 (mysite.net) 和子域 (ptm.mysite.net) 添加转发规则到 NetScaler GSLB 的 ADNS IP。 -
重启 DNS 转发器以反映在文件
named.conf.options中所做的更改。
VNet A DNS 转发器设置
zone "mysite.net" {
type forward;
forwarders { 168.63.129.16; };
};
zone "ptm.mysite.net" {
type forward;
forwarders { 10.8.0.5; };
};
注意:
对于域 ("mysite.net") 区域 IP 地址,请使用您的 Azure 区域的 DNS IP 地址。对于子域 ("ptm.mysite.net") 区域 IP 地址,请使用您的 GSLB 实例的所有 ADNS IP 地址。
如果任何客户端位于 VNet B 中,则部署应用程序服务器和 DNS 转发器
-
对于虚拟网络 B,选择相同的仪表板,然后单击 创建资源。
-
搜索相应的实例,并从 VNet B 子网分配一个 IP。
-
如果存在类似于 VNet A 的静态邻近 GSLB 负载平衡,则启动应用程序服务器和 DNS 转发器。
-
编辑
named.conf.options中的 VNet B DNS 转发器设置,如下所示:VNet B DNS 转发器设置:
zone "ptm.mysite.net" {
type forward;
forwarders { 10.8.0.5; };
};
下图描绘了 VNet B DNS 转发器设置:
在本地部署应用程序服务器、DNS 转发器和 Windows 10 专业版客户端
-
对于本地部署,在裸机上启动 VM,并部署类似于 VNet A 的应用程序服务器、DNS 转发器和 Windows 10 专业版客户端。
-
编辑
named.conf.options中的本地 DNS 转发器设置,如以下示例所示。
本地 DNS 转发器设置
zone "mysite.net" {
type forward;
forwarders { 10.8.0.6; };
};
zone "ptm.mysite.net" {
type forward;
forwarders { 10.8.0.5; };
};
对于
mysite.net,我们提供了 VNet A 的 DNS 转发器 IP,而不是 Azure 私有 DNS 区域服务器 IP,因为这是一个无法从本地访问的特殊 IP 地址。因此,本地 DNS 转发器设置中需要进行此更改。
在 Azure 虚拟网络上配置 NetScaler
如拓扑所示,将 NetScaler 部署到 Azure 虚拟网络(本例中为 VNet A)并通过 NetScaler GUI 访问它。
配置 NetScaler GSLB
-
创建 ADNS 服务。
-
创建本地和远程站点。
-
为本地虚拟服务器创建服务。
-
为 GSLB 服务创建虚拟服务器。
添加 ADNS 服务
-
登录到 NetScaler GUI。
-
在“配置”选项卡中,导航到“流量管理 > 负载平衡 > 服务”。
-
添加服务。 建议您同时在 TCP 和 UDP 中配置 ADNS 服务,如以下图像所示:


添加 GSLB 站点
-
添加将配置 GSLB 的本地和远程站点。
-
在配置选项卡上,导航到流量管理 > GSLB > GSLB 站点。 按照以下示例添加一个站点,并对其他站点重复相同的过程。



添加 GSLB 服务
-
为本地和远程虚拟服务器添加 GSLB 服务,这些虚拟服务器对应用程序服务器进行负载均衡。
-
在配置选项卡上,导航到流量管理 > GSLB > GSLB 服务。
-
按照以下示例添加服务。
-
绑定 HTTP 监视器以检查服务器状态。


-
创建服务后,进入 GSLB 服务内部的高级设置选项卡。
-
点击添加监视器,将 GSLB 服务与 HTTP 监视器绑定,以使服务状态变为 UP。
-
绑定 HTTP 监视器后,服务的状态将标记为 UP,如下图所示:
添加 GSLB 虚拟服务器
添加 GSLB 虚拟服务器,通过它可访问应用服务器的别名 GSLB 服务。
-
在配置选项卡上,导航到流量管理 > GSLB > GSLB 虚拟服务器。
-
按照以下示例添加虚拟服务器。
-
将 GSLB 服务和域名绑定到它。

-
创建 GSLB 虚拟服务器并选择适当的负载均衡方法(本例中为轮询)后,绑定 GSLB 服务和域以完成此步骤。

-
进入虚拟服务器内部的高级设置选项卡,然后点击添加域选项卡以绑定域。
-
进入高级 > 服务,然后点击箭头以绑定 GSLB 服务,并将所有三个服务(VNet A、VNet B、本地)绑定到虚拟服务器。
将 GSLB 服务和域绑定到虚拟服务器后,它将显示为如下图所示:GSLB 虚拟服务器设置(/en-us/vpx/media/image-23.png)
检查 GSLB 虚拟服务器是否已启动且 100% 正常运行。当监视器显示服务器已启动且正常运行时,表示站点已同步且后端服务可用。
GSLB 虚拟服务器负载均衡(/en-us/vpx/media/image-24.png)
要测试部署,请从云客户端计算机或本地客户端计算机访问域 URL
rr.ptm.mysite.net。如果您从云 Windows 客户端计算机访问它,请确保在私有 DNS 区域中访问本地应用程序服务器,而无需任何第三方或自定义 DNS 解决方案。