ADC

配置基于域的自动服务组扩展

基于域的服务组由成员组成,这些成员的 IP 地址是通过解析绑定到服务组的服务器的域名获得的。域名由您在设备上配置其详细信息的名称服务器解析。基于域的服务组还可以包括基于 IP 地址的成员。

基于域的服务器的名称解析过程可能会返回多个 IP 地址。DNS 响应中的 IP 地址数量由域名服务器上为域名配置的地址 (A) 记录数决定。即使名称解析过程返回多个 IP 地址,也只有一个 IP 地址绑定到服务组。要向上扩展或缩小服务组,您需要分别手动将其他基于域的服务器与服务组绑定和解除绑定。

但是,您可以将基于域的服务组配置为根据 DNS 名称服务器为基于域的服务器返回的完整 IP 地址集自动扩展。要配置自动扩展,在将基于域的服务器绑定到服务组时,请启用自动扩展选项。以下是配置自动扩展的基于域的服务组的步骤:

  • 添加用于解析域名的名称服务器。有关在设备上配置名称服务器的更多信息,请参阅 添加名称服务器
  • 添加基于域的服务器。有关添加基于域的服务器的信息,请参阅 配置服务器对象
  • 添加服务组并将基于域的服务器关联到服务组,并将 AutoScale 选项设置为 DNS。有关添加服务组的信息,请参阅 配置服务组

当基于域的服务器绑定到服务组并且在绑定上设置了自动缩放选项时,UDP 监视器和 TCP 监视器将自动创建并绑定到基于域的服务器。两台显示器充当旋转变压器。默认情况下,TCP 监视器处于禁用状态,设备使用 UDP 监视器向名称服务器发送 DNS 查询以解析域名。如果 DNS 响应被截断(将 TC 标志设置为 1),设备将回退到 TCP 并使用 TCP 监视器通过 TCP 发送 DNS 查询。此后,设备将继续仅使用 TCP 监视器。

来自域名服务器的 DNS 响应可能包含域名的多个 IP 地址。设置自动扩展选项后,设备将使用默认监视器轮询每个 IP 地址,然后在服务组中仅包含已启动且可用的 IP 地址。IP 地址记录过期后(根据其生存时间 (TTL) 值的定义),UDP 监视器(如果设备已恢复使用 TCP 监视器,则为 TCP 监视器)会查询名称服务器以获取域解析,并在服务组中包含任何新的 IP 地址。如果 DNS 响应中不存在属于服务组的 IP 地址,则设备会在正常关闭与组成员的现有连接后从服务组中删除该地址,在此过程中,设备不允许与该成员建立任何新连接。如果过去成功解析的域名导致 NXDOMAIN 响应,则会删除与该域关联的所有服务组成员。

静态(基于 IP 地址)成员和动态扩展的基于域的成员可以在服务组中共存。您还可以将具有不同域名的成员绑定到设置了自动扩展选项的服务组。但是,与服务组关联的每个域名在服务组中必须是唯一的。您必须为要用于自动服务组扩展的每个基于域的服务器启用自动扩展选项。如果一个 IP 地址对一个或多个域是公用的,则该 IP 地址只会添加到服务组一次。

重要

  • 集群部署支持 DNS 自动缩放。
  • 集群部署中不支持 AutoScale 服务组的路径监控。

使用命令行界面将服务组配置为自动扩展

在命令提示符下,键入以下命令以配置服务组并验证配置:

add servicegroup <serviceGroupName> <serviceType> -autoscale DNS
<!--NeedCopy-->

示例

在以下示例中,server1 是基于域的服务器。DNS 响应包含多个 IP 地址。有五个地址可用并已添加到服务组中。

> add serviceGroup servGroup -autoScale YES
 Done
> sh servicegroup servGroup
       servGroup - HTTP
        State: ENABLED  Monitor Threshold : 0
              . . .
              . . .
        1)   192.0.2.31:80   State: UP       Server Name: server1 (Auto scale)    Server ID: None Weight: 1

                Monitor Name: tcp-default       State: UP
                Probes: 2       Failed [Total: 0 Current: 0]
                Last response: Success - TCP syn+ack received.

        2)   192.0.2.32:80   State: UP       Server Name: server1 (Auto scale)    Server ID: None Weight: 1

                Monitor Name: tcp-default       State: UP
                Probes: 2       Failed [Total: 0 Current: 0]
                Last response: Success - TCP syn+ack received.

        3)   192.0.2.36:80   State: UP       Server Name: server1 (Auto scale)    Server ID: None Weight: 1

                Monitor Name: tcp-default       State: UP
                Probes: 2       Failed [Total: 0 Current: 0]
                Last response: Success - TCP syn+ack received.

        4)   192.0.2.55:80   State: UP       Server Name: server1 (Auto scale)    Server ID: None Weight: 1

                Monitor Name: tcp-default       State: UP
                Probes: 2       Failed [Total: 0 Current: 0]
                Last response: Success - TCP syn+ack received.

        5)   192.0.2.80:80   State: UP       Server Name: server1 (Auto scale)    Server ID: None Weight: 1

                Monitor Name: tcp-default       State: UP
                Probes: 2       Failed [Total: 0 Current: 0]
                Last response: Success - TCP syn+ack received.
 Done
<!--NeedCopy-->

使用配置实用程序将服务组配置为自动扩展

  1. 导航到 流量管理 > 负载平衡 > 服务组
  2. 创建一个服务组,然后将自动缩放模式设置为 DNS。

覆盖 TTL 值

注意:

Citrix ADC 12.1 版本 51.xx 及更高版本支持此选项。

Citrix ADC 设备配置为在应用程序启动期间定期向 DNS 服务器查询与应用程序关联的 SRV 记录中的任何更新。默认情况下,此查询的周期取决于 SRV 记录中发布的 TTL。在微服务或云世界应用程序中,部署的变化更加动态。因此,代理必须更快地吸收对应用程序部署的任何更改。因此,建议用户将基于域的服务 TTL 参数显式设置为低于 SRV 记录 TTL 且最适合您的部署的值。您可以通过两种方法覆盖 TTL 值:

  • 将成员绑定到服务组时
  • 使用 set lb 参数命令全局设置 TTL 值。

如果 TTL 值是在绑定服务组成员和全局绑定时配置的,那么在绑定服务组成员时指定的 TTL 值将优先使用。 如果绑定服务组成员时或在全局级别均未指定 TTL 值,则星展银行监控时间间隔将从 DNS 响应中的 TTL 值派生出来。

使用 CLI 覆盖 TTL 值

  • 要在绑定时覆盖 TTL 值,请在命令提示符下键入:

     bind serviceGroup <serviceGroupName> (<serverName> [-dbsTTL <secs>])
     <!--NeedCopy-->
    

    示例:

     bind servicegroup svc_grp_1 web_serv -dbsTTL 10
     <!--NeedCopy-->
    
  • 要全局覆盖 TTL 值,请在命令提示符下键入:

     set lb parameter [-dbsTTL <secs>]
     <!--NeedCopy-->
    

    示例:

     set lb parameter -dbsTTL 15
     <!--NeedCopy-->
    

使用图形用户界面覆盖 TTL 值

要在绑定时覆盖 TTL 值,请执行以下操作:

  1. 导航到 流量管理 > 负载平衡 > 服务组

  2. 在“服务组”页面中,选择已创建的服务组,然后单击 编辑

  3. 负载平衡服务组 页面中,单击 服务组成员

  4. 在“服务组成员绑定”页面中,选择已创建的服务器,然后单击“编辑”。

  5. 基于域的服务 TTL中,输入 TTL 值。

要在全局级别覆盖 TTL 值,请执行以下操作:

  1. 导航到 流量管理 > 负载平衡 > 更改负载平衡参数

  2. 基于域的服务 TTL中,输入 TTL 值。

注意:

如果基于域的服务器 TTL 值设置为 0,则使用来自数据包的 TTL 值。

为服务组和域名绑定指定不同的名称服务器

注意:

Citrix ADC 12.1 版本 51.xx 及更高版本支持此选项。

您可以为特定组中的不同域名配置不同的名称服务器。在将 DBS 服务器绑定到服务组时,设置 NameServer 参数是可选的。如果在将成员绑定到服务组时未指定名称服务器,则会考虑使用全局配置的名称服务器。

使用 CLI 将服务器绑定到服务组时指定名称服务器

在命令提示符下,键入:

bind serviceGroup <serviceGroupName> (<serverName> [-nameServer <ip_addr>] [-dbsTTL <secs>])
<!--NeedCopy-->

示例

bind servicegroup svc_grp_1 web_serv  -ns.nameserver.com 10.102.27.155 -dbsTTL 10
<!--NeedCopy-->

使用 GUI 将服务器绑定到服务组时指定名称服务器

  1. 导航到 流量管理 > 负载平衡 > 服务组

  2. 在“服务组”页面中,选择已创建的服务组,然后单击 编辑

  3. 负载平衡服务组 页面中,单击 服务组成员

  4. 在“服务组成员绑定”页面中,选择已创建的服务器,然后单击“编辑”。

  5. 名称服务器中,指定绑定域的查询必须发送到的名称服务器名称。

配置基于域的自动服务组扩展