ADC

部署适用于 Azure DNS 私有区域的 NetScaler

Azure DNS 是 Microsoft 基础结构上的服务,用于托管 DNS 域和提供名称解析。

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

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

Azure DNS 概述

域名系统 (DNS) 负责将服务名称转换或解析为其 IP 地址。Azure DNS 是一款面向 DNS 域的托管服务,它使用 Microsoft Azure 基础结构提供名称解析。除了支持面向Internet的 DNS 域外,Azure DNS 现在还支持私有 DNS 域。

Azure DNS 提供可靠、安全的 DNS 服务来管理和解析虚拟网络中的域名,而无需自定义 DNS 解决方案。通过使用私有 DNS 区域,您可以使用自己的自定义域名,而不是 Azure 提供的名称。使用自定义域名可帮助您定制虚拟网络体系结构,以最适合您组织的需求。它为虚拟网络内和虚拟网络之间的虚拟机 (VM) 提供名称解析。此外,客户还可以使用水平分割视图配置区域名称,从而允许私有 DNS 区域和公有 DNS 区域共享名称。

为什么 NetScaler GSLB 适用于 Azure DNS 私有区域

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

用例

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

用例解决方案

NetScaler 包括全局服务器负载平衡 (GSLB) 功能,以满足 Azure PTM 的要求。GSLB 的作用类似于 DNS 服务器,它获取 DNS 请求并将该 DNS 请求解析为相应的 IP 地址以提供:

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

在支持的众多负载平衡方法中,以下方法可能适用于此解决方案:

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

    1. NetScaler 上基于 EDNS 客户端子网 (ECS) 的 GSLB。
    2. 为每个虚拟网络部署 DNS 转发器。

拓扑

下图描述了 Azure 私有 DNS 区域的 NetScaler GSLB 部署。

图 1:适用于 Azure 的 NetScaler GSLB DNS 私有区域

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

为 Azure DNS 私有区域配置 NetScaler

经过测试的产品和版本:

产品 版本
Azure 云端订阅
NetScaler VPX BYOL(自带许可证)

注意:

部署已经过测试,并且在 NetScaler 12.0 及更高版本中保持不变。

必备条件

以下是一般先决条件。

解决方案描述

如果你想托管一个应用程序 Azure DNS 私有区域 (rr.ptm.mysite.net),该区域在 HTTP 上运行,部署在 Azure 和本地,可根据循环 GSLB 负载平衡方法进行内部网访问。要实现此部署,请使用包含以下配置的 NetScaler 为 Azure 私有 DNS 区域启用 GSLB:

  1. 配置 Azure 和本地安装程序。
  2. Azure 虚拟网络上的 NetScaler 设备。

配置 Azure 和本地安装程序

如拓扑所示,设置 Azure 虚拟网络(在本例中为 vNet A、vNet B)和本地设置。

  1. 使用域名 (mysite.net) 创建 Azure 私有 DNS 区域。
  2. 在 Azure 区域的中心和分支模型中创建两个虚拟网络(vNet A、vNet B)。
  3. 在 vNet A 中部署 App Server、DNS 转发器、Windows 10 Pro 客户端、NetScaler
  4. 如果有任何客户端位于 vNet B 中,则部署应用服务器并部署 DNS 转发器
  5. 在本地部署应用程序服务器、DNS 转发器和 Windows 10 专业版客户端。

Azure 私有 DNS 区域

使用域名创建 Azure 私有 DNS 区域。

  1. 登录 Azure 门户并选择或创建仪表板。
  2. 单击 “ 创建资源”, 然后搜索要创建的 DNS 区域(在本例中为 mysite.net)带有域名(mysite.net)的 Azure 私有 DNS 区域(mysite.net)。

Azure 门户 DNS 区域示例

中心和分支模式中的 Azure 虚拟网络(vNet A、vNet B)

在 Azure 区域的中心和分支模型中创建两个虚拟网络(vNet A、vNet B)。

  1. 创建两个虚拟网络。
  2. 选择同 一个仪表板并单击 “创建资源 ”,搜索虚拟网络,在同一区域中创建两个虚拟网络,即 vNet A、vNet B,并将它们对等以形成集线器和分支模型,如下图所示。 有关如何设置中心和分支拓扑的更多信息,请参见在 Azure 中实现中心辐射型网络拓扑

    Virtual Network A (VNet A)

    Virtual Network B (VNet B)

VNet A 到 vNet B 对等

要对等 vNet A 和 vNet B,请执行以下操作:

  1. 从 vN et A 和 对等 vNet B 的 “ 设置 ” 菜单中单击 “对等”。

  2. 启用 “ 允许转发流量 ” 和 “ 允许网关传输 ”,如下图所示。

    vNet A 到 B

下图描绘了 vNet A 与 vNet B 的成功对等关系。

虚拟网络 A 对等

vNet B 到 vNet A 对等

要对等 vNet B 和 vNet A,请执行以下操作:

  1. 从 vN et B 和 对等 vNet A 的 “ 设置 ” 菜单中单击 “对等”
  2. 启用 “ 允许转发流量 ” 并使用远程网关,如下图所示。
![VNet B to A](/en-us/citrix-adc/media/image-07.png)

下图描绘了 vNet B 与 vNet A 的成功对等关系。 虚拟网络 B 对等体

在 vNet A 中部署应用程序服务器、DNS 转发器、Windows 10 Pro 客户端、NetScaler

我们将简要讨论应用服务器、DNS 转发器、Windows 10 专业版客户端和 vNet A 上的 NetScaler。

  1. 选择同一个控制面板,单击 “ 创建资源”。
  2. 搜索相应的实例并从 vNet A 子网分配一个 IP。

应用程序服务器

应用服务器不过是 Web 服务器(HTTP 服务器),其中 Ubuntu 服务器 16.04 作为实例部署在 Azure 或本地虚拟机上。要将其设为 Web 服务器,请在命令提示符下键入:

sudo apt install apache2

Windows 10 Pro 客户端

在 vNet A 和本地以客户端计算机的身份启动 Windows 10 专业版实例。

NetScaler

NetScaler 通过 NetScaler MAS 的运行状况检查和分析来补充 Azure DNA 私有区域。根据你的要求从 Azure 市场启动 NetScaler,此处我们使用了 NetScaler (BYOL) 进行此部署。

有关如何在微软 Azure 上部署 NetScaler 的详细步骤。参见 在微软 Azure 上部署 NetScaler VPX 实例

部署后,使用 NetScaler IP 配置 NetScaler GSLB。

DNS 转发器

它用于转发绑定到 NetScaler GSLB(ADNS IP)的托管域的客户端请求。以 Linux 实例启动 Ubuntu 服务器 16.04(Ubuntu 服务器 16.04),并参考以下 URL 了解如何将其设置为 DNS 转发器。

注意:

对于 Round Robin GSLB 负载平衡方法,一个 Azure 区域的 DNS 转发器就足够了,但是对于静态邻近性,我们需要每个虚拟网络一个 DNS 转发器。

  1. 部署转发器后,使用 vNet A DNS 转发器 IP 将虚拟网络 A 的 DNS 服务器设置从默认设置更改为自定义,如下图所示。
  2. 修改 vNet A DNS 转发器中的 named.conf.options 文件,将域 (mysite.net) 和子域 (ptm.mysite.net) 的转发规则添加到 NetScaler GSLB 的 ADNS IP 中。
  3. 重新启动 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; };
    };
 <!--NeedCopy-->

注意:

对于域(“mysite.net”)区域 IP 地址,请使用你的 Azure 区域的 DNS IP 地址。对于子域(“ptm.mysite.net”)区域 IP 地址,请使用您的 GSLB 实例的所有 ADNS IP 地址。

如果 vNet B 中有客户端,则部署应用程序服务器和 DNS 转发器

  1. 对于虚拟网络 B,选择相同的控制面板,单击 “ 创建资源”。
  2. 搜索相应的实例,然后从 vNet B 子网分配一个 IP。
  3. 如果存在类似于 vNet A 的静态临近 GSLB 负载平衡,则启动应用程序服务器和 DNS 转发器。
  4. 在中编辑 vNet B DNS 转发器设置 named.conf.options ,如以下设置所示:

    VNet B DNS 转发器设置:

    zone "ptm.mysite.net" {
        type forward;
        forwarders { 10.8.0.5; };
    };
<!--NeedCopy-->

下图描绘了 vNet B 的 DNS 转发器设置: 虚拟网络A DNS 服务器

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

  1. 对于本地,请在裸机上启动虚拟机,然后使用类似于 vNet A 的应用程序服务器、DNS 转发器和 Windows 10 pro 客户端。

  2. 在中编辑本地 DNS 转发器设置 named.conf.options ,如以下示例所示。

本地 DNS 转发器设置

    zone "mysite.net" {
               type forward;
               forwarders { 10.8.0.6; };
    };
    zone "ptm.mysite.net" {
        type forward;
        forwarders { 10.8.0.5; };
    };
<!--NeedCopy-->

因为 mysite.net,我们提供了 vNet A 的 DNS 转发器 IP,而不是 Azure 私有 DNS 区域服务器 IP,因为这是一个特殊的 IP 地址,无法从本地访问。因此,需要在本地的 DNS 转发器设置中进行此更改。

在 Azure 虚拟网络上配置 NetScaler

如拓扑所示,在 Azure 虚拟网络(在本例中为 vNet A)上部署 NetScaler,然后通过 NetScaler GUI 对其进行访问。

配置 NetScaler GSLB

  1. 创建 ADNS 服务。
  2. 创建本地和远程站点。
  3. 为本地虚拟服务器创建服务。
  4. 为 GSLB 服务创建虚拟服务器。

添加 ADNS 服务

  1. 登录 NetScaler GUI。
  2. 在 “ 配置 ” 选项卡中,导航到 “ 流量管理” > “负载平衡” > “服务”。
  3. 添加服务。 我们建议您在 TCP 和 UDP 中同时配置 ADNS 服务,如下图所示:

负载平衡服务现有服务器

负载平衡服务新服务器

交通管理服务

添加 GSLB 网站

  1. 添加要在其中配置 GSLB 的本地和远程站点。
  2. 配置 选项卡上,导航到 流量管理 > GSLB > GSLB站点。 添加一个站点,如以下示例所示,然后对其他站点重复相同的步骤。

    创建 GSLB 网站

    群集 IP GSLB 站点

    GSLB 网站

添加 GSLB 服务

  1. 为本地和远程虚拟服务器添加 GSLB 服务,以平衡应用程序服务器的负载。
  2. 配置 选项卡上,导航到 流量管理 > GSLB > GSLB 服务
  3. 添加服务,如以下示例所示。
  4. 绑定 HTTP 监视器以检查服务器状态。

    GSLB 服务设置 1

    GSLB 服务设置 2

  5. 创建服务后,转到 GSLB 服务内的 高级设置 选项卡。
  6. 单击 “ 添加监视器 ” 将 GSLB 服务与 HTTP 监视器绑定以显示服务状态。 GSLB 服务负载平衡监视器

  7. 与 HTTP 监视器绑定后,服务状态将标记为 UP,如下图所示: GSLB服务

添加 GSLB 虚拟服务器

添加 GSLB 虚拟服务器,通过该服务器可以访问应用程序服务器的别名 GSLB 服务。

  1. 配置 选项卡上,导航到 流量管理 > GSLB > GSLB虚拟服务器。
  2. 添加虚拟服务器,如以下示例所示。
  3. 将 GSLB 服务和域名绑定到它。

    GSLB 虚拟服务器

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

    GSLB 虚拟服务器域绑定

  5. 转到虚拟服务器内的 高级设置 选项卡,然后单击 添加域 选项卡绑定域。

  6. 转至 高级 > 服务 ,然后单击箭头绑定 GSLB 服务,并将所有三个服务(vNet A、vNet B、本地)绑定到虚拟服务器。

    GSLB 服务和服务组绑定

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

    GSLB 虚拟服务器设置

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

GSLB 虚拟服务器负载平衡

要测试部署,请 rr.ptm.mysite.net 从云客户端计算机或本地客户端计算机访问域 URL。如果您从云端 Windows 客户端计算机访问它,请确保在私有 DNS 区域中访问本地应用程序服务器,无需第三方或自定义 DNS 解决方案。

部署适用于 Azure DNS 私有区域的 NetScaler