高级概念

思杰 ADC 用于 Azure DNS 私有区域部署指南

内容介绍

Citrix ADC(前身为 NetScaler)是应用交付控制器™ (ADC) 领域的世界一流产品,在负载均衡、管理全球流量、压缩和保护应用程序方面具有成熟能力。

Azure DNS 是 Microsoft Azure 基础设施上的一项服务,用于托管 DNS 域并提供名称解析。

Azure DNS 私有区域是一项专注于在私有网络中解析域名的服务。通过私有区域,客户可以使用自己的自定义域名,而不是目前 Azure 提供的名称。

Azure 域名系统概述

域名系统(或 DNS)负责将服务名称转换为(或解析为)其 IP 地址。作为 DNS 域的托管服务,Azure DNS 通过使用 Microsoft Azure 基础设施提供名称解析。除了支持面向互联网的 DNS 域之外,Azure DNS 现在还支持私有 DNS 域。

Azure DNS 提供可靠、安全的 DNS 服务,用于在虚拟网络中管理和解析域名,而无需自定义 DNS 解决方案。通过使用私有 DNS 区域,您可以使用自己的自定义域名,而不是目前 Azure 提供的名称。使用自定义域名有助于您根据组织的需要量身定制虚拟网络架构。它为虚拟网络内和虚拟网络之间的虚拟机 (VM) 提供名称解析。此外,客户可以配置具有分层视图的区域名称,这允许私有和公共 DNS 区域共享一个名称。

Citrix GSLB 适用于 Azure DNS 私有区域的原因是什么?

在当今世界,企业希望将其工作负载从本地迁移到 Azure 云。向云的过渡使他们能够利用上市时间、资本支出/价格、部署便利性和安全性。Azure DNS 私有区域服务为将其部分工作负载迁移到 Azure 云的企业提供了独特的价值主张。当这些企业使用私有区域服务时,他们可以创建他们在本地部署中使用了多年的私有 DNS 名称。在这种内部网应用程序服务器位于本地和通过安全 VPN 隧道连接到 Azure 云的混合模式下,一个挑战是如何让用户无缝访问这些内部网应用程序。Citrix ADC 通过其全局负载均衡功能解决了这一独特的用例,该功能将应用程序流量路由到本地或 Azure 云上最优化的分布式工作负载/服务器,并提供应用程序服务器健康状态。

用例

本地网络和不同 Azure VNET 中的用户应该能够连接到内部网络中最优化的服务器以访问所需内容。这确保了应用程序始终可用、成本优化且用户体验良好。Azure 私有流量管理 (PTM) 是这里的主要要求。Azure PTM 确保用户的 DNS 查询解析为应用程序服务器的相应私有 IP 地址。

用例解决方案

Citrix ADC 包含全局服务器负载均衡 (GSLB) 功能,这有助于满足 Azure PTM 要求。GSLB 充当 DNS 服务器,它接收 DNS 请求并将 DNS 请求解析为适当的 IP 地址,以提供:

  • 无缝的基于 DNS 的故障转移
  • 从本地到云的分阶段迁移
  • 对新功能进行 A/B 测试

在支持的众多负载均衡方法中,以下方法在此解决方案中可能很有用:

  1. 轮询调度
  2. 静态邻近性(基于位置的服务器选择):它可以通过两种方式部署

    1. Citrix ADC 上基于 EDNS 客户端子网 (ECS) 的全局服务器负载均衡
    2. 为每个虚拟网络部署一个 DNS 转发器

拓扑

  • 适用于 Azure 私有 DNS 区域的 Citrix ADC GSLB 部署在逻辑上如图 1 所示。

图 1:适用于 Azure DNS 私有区域的 Citrix ADC 全局服务器负载均衡

  • 用户可以根据 Azure 私有 DNS 区域中的 Citrix ADC GSLB 负载均衡方法访问 Azure 或本地的任何应用服务器
  • 本地与 Azure 虚拟网络之间的所有流量仅通过安全的 VPN 隧道传输
  • 应用程序流量、DNS 流量和监控流量显示在上述拓扑中。
  • 根据所需的冗余,Citrix ADC 和 DNS 转发器可以部署在虚拟网络和数据中心中。为简单起见,此处仅显示一个 Citrix ADC,但我们建议每个 Azure 区域至少部署一套 Citrix ADC 和 DNS 转发器。
  • 所有用户 DNS 查询首先发送到 DNS 转发器,该转发器定义了将查询转发到相应 DNS 服务器的规则。

为 Azure DNS 私有区域配置 思杰 ADC

测试的产品和版本

产品 版本
微软 Azure 云服务 云服务订阅
思杰 应用交付控制器 VPX BYOL (自带许可证)

注意: 此部署已通过测试,并且与 Citrix ADC 12.0 及更高版本保持一致。

先决条件和配置注意事项

以下是本指南中测试的通用先决条件和配置,请在配置 Citrix ADC 之前进行交叉检查:

解决方案描述

假设客户希望托管一个 Azure DNS 私有区域 (rr.ptm.mysite.net) 应用程序,该应用程序运行在 HTTPs 上,并基于轮询 GSLB 负载均衡方法部署在 Azure 和本地环境之间,提供内网访问。通过为 Azure 私有 DNS 区域启用 Citrix ADC 的 GSLB 来实现此部署,包括两个部分——配置 Azure、本地环境和 Citrix ADC 设备。

第 1 部分:配置 Azure,本地设置

如拓扑所示,设置 Azure 虚拟网络(本例中为 VNet A、VNet B)和本地设置。 步骤 1:创建具有域名 (mysite.net) 的 Azure 私有 DNS 区域 步骤 2:在 Azure 区域中以中心辐射模型创建两个虚拟网络(VNet A、VNet B) 步骤 3:在 VNet A 中部署应用服务器、DNS 转发器、Windows 10 专业版客户端、Citrix ADC 步骤 4:如果 VNet B 中有任何客户端,则部署应用服务器并部署 DNS 转发器 步骤 5:在本地部署应用服务器、DNS 转发器和 Windows 10 专业版客户端

Azure 私有域名系统区域

登录 Azure 门户并选择或创建仪表板。现在,单击 创建资源并搜索 DNS 区域 以创建一个(本例中为 mysite.net),如以下图像所示。

Azure 门户 DNS 区域示例

中心辐射模型中的 Azure 虚拟网络(VNet A、VNet B)

选择相同的仪表板,然后单击 创建资源并搜索虚拟网络 以在同一区域中创建两个虚拟网络,即 VNet A 和 VNet B,并将它们对等互连以形成中心辐射模型,如以下图像所示。有关如何设置中心辐射拓扑的信息,请参阅 在 Azure 中实施中心辐射网络拓扑

虚拟网络 A (虚拟网络 A)

虚拟网络 B (虚拟网络 B)

虚拟网络 A 到 虚拟网络 B 对等互连

要对等互连 VNet A 和 VNet B,请从 VNet A 的设置菜单中单击“对等互连”,然后对等互连 VNet B,启用“允许转发流量”和“允许网关传输”,如以下图像所示。

虚拟网络 A 到 虚拟网络 B

成功对等互连后,您将看到以下图像所示内容:

虚拟网络 A 对等互连

虚拟网络 B 到 虚拟网络 A 对等互连

要对等连接 VNet B 和 VNet A,请从 VNet B 的设置菜单中点击 peerings,并对等连接 VNet A,启用“允许转发流量”和“使用远程网关”,如下图所示。

虚拟网络 B 到 虚拟网络 A

成功对等连接后,您将看到如下图所示:

虚拟网络 B 对等连接(/zh-cn/advanced-concepts/media/image-08.png)

在 VNet A 中部署应用服务器、DNS 转发器、Windows 10 专业版客户端、Citrix ADC

我们将简要讨论 VNet A 上的应用服务器、DNS 转发器、Windows 10 专业版客户端和 Citrix ADC。选择相同的仪表板,点击“创建资源”,搜索相应的实例并从 VNet A 子网分配一个 IP。

应用服务器

应用服务器就是 Web 服务器 (HTTP 服务器),其中 Ubuntu Server 16.04 作为实例部署在 Azure 或本地虚拟机上,并运行 CLI 命令:sudo apt install apache2,使其成为 Web 服务器。

Windows 10 专业版客户端

在 VNet A 和本地启动 Windows 10 专业版实例作为客户端计算机。

思杰 ADC

思杰 ADC 通过 Citrix MAS 的运行状况检查和分析来补充 Azure DNS 私有区域。根据您的要求从 Azure Marketplace 启动 思杰 ADC,在此部署中,我们使用了 思杰 ADC (BYOL)。有关如何在 Microsoft Azure 上部署 思杰 ADC 的详细步骤,请参阅以下 URL。部署后,使用 思杰 ADC IP 配置 思杰 ADC GSLB。请参阅 在 Microsoft Azure 上部署 NetScaler VPX 实例

DNS 转发器

它用于转发绑定到 Citrix ADC 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) 添加转发规则到 Citrix ADC GSLB 的 ADNS IP。现在,重新启动 DNS 转发器以反映在文件 named.conf.options 中所做的更改。

虚拟网络 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 Forwarder Settings:
zone "ptm.mysite.net" {
    type forward;
    forwarders { 10.8.0.5; };
};

虚拟网络 A DNS 服务器

在本地部署应用服务器、DNS 转发器和 Windows 10 专业版客户端

现在对于本地环境,在裸机上启动虚拟机,并部署类似于 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 转发器设置中需要进行此更改。

第 2 部分:配置 思杰应用交付控制器

如拓扑所示,在 Azure 虚拟网络(本例中为 VNet A)上部署 Citrix ADC,并通过 Citrix ADC GUI 访问它。

配置 Citrix ADC 全局服务器负载均衡

步骤 1:创建 ADNS 服务 步骤 2:创建站点 – 本地和远程 步骤 3:为本地虚拟服务器创建服务 步骤 4:为 GSLB 服务创建虚拟服务器

添加 ADNS 服务

登录 Citrix ADC GUI。在“配置”选项卡上,导航到“流量管理 > 负载平衡 > 服务”。添加服务。建议同时在 TCP 和 UDP 中配置 ADNS 服务,如下所示:

负载平衡服务现有服务器

负载平衡服务新服务器

流量管理服务

添加 GSLB 站点

添加将配置 GSLB 的本地和远程站点。在“配置”选项卡上,导航到“流量管理 > GSLB > GSLB 站点”。按此处所示添加站点,并对其他站点重复相同的过程。

创建 GSLB 站点

集群 IP 全局服务器负载均衡站点

GSLB 站点配置

添加 GSLB 服务

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

GSLB 服务设置 1

GSLB 服务设置 2

创建服务后,进入 GSLB 服务中的高级设置选项卡,并添加“监视器”选项卡,将 GSLB 服务与 HTTP 监视器绑定,以使服务状态变为“启动” GSLB 服务负载平衡监视器

绑定 HTTP 监视器后,服务状态将变为“启动”,如下所示: GSLB 服务

添加 GSLB 虚拟服务器

添加 GSLB 虚拟服务器,通过它可访问应用服务器的别名 GSLB 服务。在“配置”选项卡上,导航到“流量管理”>“GSLB”>“GSLB 虚拟服务器”。按照以下示例添加虚拟服务器。将 GSLB 服务和域名绑定到它。 GSLB 虚拟服务器

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

GSLB 虚拟服务器域绑定

转到虚拟服务器内的“高级设置”选项卡,并转到“添加域”选项卡以绑定域

转到“高级”>“服务”并单击箭头以绑定 GSLB 服务,并将所有三个服务(VNet A、VNet B、本地)绑定到虚拟服务器

GSLB 服务和服务组绑定

将 GSLB 服务和域绑定到虚拟服务器后,它将显示如下:

GSLB 虚拟服务器设置

检查 GSLB 虚拟服务器是否已启动且 100% 正常运行。当监视器显示服务器已启动且正常运行时,表示站点已同步且后端服务可用。

GSLB 虚拟服务器负载平衡

要测试部署,请从云客户端计算机或本地客户端计算机访问域 URL rr.ptm.mysite.net。例如,从云 Windows 客户端计算机访问它,您会发现即使是本地应用服务器也可以在私有 DNS 区域中访问,而无需任何第三方或自定义 DNS 解决方案。

总结性说明

Citrix ADC 作为领先的应用程序交付解决方案,最适合为 Azure DNS 私有区域提供负载平衡和 GSLB 功能。通过订阅 Azure DNS 私有区域,企业可以依靠 Citrix ADC 全局服务器负载平衡 (GSLB) 的强大功能和智能,通过安全的 VPN 隧道将内部网络流量分配到位于多个地理区域和数据中心的工作负载。这种协作保证了企业可以无缝访问他们希望迁移到 Azure 公有云的部分工作负载。

思杰 ADC 用于 Azure DNS 私有区域部署指南