管理客户端连接

为了便于管理客户端连接,您可以启用延迟清理到虚拟服务器的连接。然后,您可以通过配置 DNS 策略来管理本地 DNS 流量。

启用虚拟服务器连接的延迟清理

虚拟服务器的状态取决于绑定到它的服务的状态,每个服务的状态取决于绑定到它的监视器。如果服务器速度较慢或较慢,则监视探测器会超时,代表服务器的服务将标记为“向下”。只有当绑定到虚拟服务器的所有服务都标记为“向下”时,虚拟服务器才会被标记为“向下”。您可以将服务和虚拟服务器配置为在连接停机时终止所有连接,或允许连接通过。后一种设置适用于服务因服务器速度较慢而被标记为“关闭”的情况。

配置关闭状态刷新选项时,Citrix ADC 设备将执行延迟清理与关闭的 GSLB 服务的连接。

使用命令行界面启用延迟清理虚拟服务器连接

在命令提示符下,键入以下命令以配置延迟的连接清理并验证配置:

set gslb service <name> -downStateFlush (ENABLED | DISABLED)  
show gslb service <name>  

示例:

set gslb service Service-GSLB-1 -downStateFlush ENABLED
Done

show gslb service Service-GSLB-1
Done

使用配置实用程序启用延迟清理虚拟服务器连接

  1. 导航至“流量 管理”>“GSLB”>“服务”,然后双击该服务。
  2. 单击“其他设置”部分,然后选择“向下状态刷新”选项。

使用 DNS 策略管理本地 DNS 流量

您可以使用 DNS 策略实现站点关联性,方法是将流量从本地 DNS 解析程序或网络的 IP 地址引导到预定义的目标 GSLB 站点。通过使用 DNS 表达式创建 DNS 策略并在 Citrix ADC 设备上全局绑定策略来配置这些策略。

DNS 表达式

Citrix ADC 设备提供某些预定义 DNS 表达式,可用于配置特定于域的操作。例如,此类操作可以删除某些请求、为特定域选择特定视图或将某些请求重定向到特定位置。

将这些 DNS 表达式(也称为 规则)组合起来创建 DNS 策略,然后在 Citrix ADC 设备上全局绑定这些策略。

以下是 Citrix ADC 设备上可用的预定义 DNS 限定符的列表:

  • CLIENT.UDP.DNS.DOMAIN.EQ(“domainname”)
  • CLIENT.UDP.DNS.IS_AREC
  • CLIENT.UDP.DNS.IS_AAAAREC
  • CLIENT.UDP.DNS.IS_SRVREC
  • CLIENT.UDP.DNS.IS_MXREC
  • CLIENT.UDP.DNS.IS_SOAREC
  • CLIENT.UDP.DNS.IS_PTRREC
  • CLIENT.UDP.DNS.IS_CNAME
  • CLIENT.UDP.DNS.IS_NSREC
  • CLIENT.UDP.DNS.IS_ANYREC

CLIENT.UDP.DNS.DOMAIN DNS 表达式可以与字符串表达式一起使用。如果您使用域名作为表达式的一部分,则它们必须以句点 (.) 结尾。例如,CLIENT.UDP.DNS.DOMAIN.ENDSWITH(“abc.com.”)

使用配置实用程序创建表达式

  1. 单击“表达式”文本框旁边的图标。单击“添加”。(将“流类型”和“协议”下拉列表框留空。) 按照以下步骤创建规则。
  2. 在“限定符”框中,选择一个限定符(例如,位置)。
  3. 在“操作员”框中,选择一个操作员(例如 ==)。
  4. 在“值”框中,键入一个值(例如,亚洲、日本…)。
  5. 单击确定。单击创建并单击关闭。此规则已创建。
  6. 单击确定。

配置 DNS 操作

DNS 策略包括策略规则计算结果为 TRUE 时要执行的 DNS 操作的名称。DNS 操作可以执行以下操作之一:

  • 向客户端发送您已为其配置 DNS 视图的 IP 地址。有关 DNS 视图的更多信息,请参阅添加 DNS 视图
  • 在引用覆盖静态邻近行为的首选位置列表后,向客户端发送 GSLB 服务的 IP 地址。有关首选位置的更多信息,请参阅通过配置首选位置覆盖静态邻近行为
  • 向客户端发送由 DNS 查询或响应评估确定的特定 IP 地址(DNS 响应重写)。
  • 将请求转发到名称服务器,而不在设备的 DNS 缓存中执行查找。
  • 删除一个请求。

您不能创建用于删除 DNS 请求或绕过设备上的 DNS 缓存的 DNS 操作。如果要删除 DNS 请求,请使用内置操作 dns_default_act_Drop。如果要绕过 DNS 缓存,请使用内置操作 dns_default_act_Cachebypass。这两个操作与“创建 DNS 策略”和“配置 DNS 策略”对话框中的自定义操作一起可用。这些内置操作无法修改或删除。

使用命令行界面配置 DNS 操作

在命令提示符下,键入以下命令以配置 DNS 操作并验证配置:

add dns action <actionName> <actionType> (-IPAddress <ip_addr | ipv6_addr> ... | -viewName <string> | -preferredLocList <string> ...) [-TTL <secs>]

show dns action [<actionName>]
示例

示例 1:配置 DNS 响应重写。当操作绑定到的策略计算结果为 true 时,以下 DNS 操作向客户端发送预配置的 IP 地址:

add dns action dns_act_response_rewrite Rewrite_Response -IPAddress 192.0.2.20 192.0.2.56 198.51.100.10
 Done

show dns action dns_act_response_rewrite
1)  ActionName:  dns_act_response_rewrite ActionType:  Rewrite_Response TTL:  3600               IPAddress:  192.0.2.20 192.0.2.56 198.51.100.10
 Done

示例 2:配置基于 DNS 视图的响应。以下 DNS 操作向客户端发送您已为其配置 DNS 视图的 IP 地址:

add dns action send_ip_from_view_internal_ip ViewName -viewName view_internal_ip
Done

show dns action send_ip_from_view_internal_ip
1)  ActionName:  send_ip_from_view_internal_ip ActionType:  ViewName    ViewName:  view_internal_ip
 Done

示例 3:根据首选位置列表配置响应。以下 DNS 操作向客户端发送与其从指定位置列表中选择的首选位置相对应的 IP 地址:

add dns action send_preferred_location GslbPrefLoc -preferredLocList NA.tx.ns1.\*.\*.* NA.tx.ns2.\*.\*.* NA.tx.ns3.\*.\*.*
Done

show dns action  send_preferred_location
1)  ActionName:  send_preferred_location ActionType:  GslbPrefLoc PreferredLocList:  "NA.tx.ns1.\*.\*.\*" "NA.tx.ns2.\*.\*.\*" "NA.tx.ns3.\*.\*.*"
 Done

使用 Citrix ADC 配置实用程序配置 DNS 操作

  1. 导航到流量管理 > DNS > 操作,创建或编辑 DNS 操作。
  2. 在“创建 DNS 操作”或“配置 DNS 操作”对话框中,设置以下参数:
    • 操作名称(现有 DNS 操作无法更改)
    • 类型(对于现有 DNS 操作无法更改)若 要设置 Type 参数,请执行以下操作之一:
      • 若要创建与 DNS 视图关联的 DNS 操作,请选择“视图名称”。然后,从“视图名称”列表中,选择要在操作中使用的 DNS 视图。
      • 要使用首选位置列表创建 DNS 操作,请选择首选位置列表。在首选位置中,输入位置,然后单击添加。根据需要添加尽可能多的 DNS 位置。
      • 要根据策略评估配置用于重写 DNS 响应的 DNS 操作,请选择“重写响应”。在 IP 地址中,输入 IP 地址,然后单击添加。只要您想添加尽可能多的 IP 地址。
    • TTL(仅适用于重写响应操作类型)

配置 DNS 策略

DNS 策略在使用静态和自定义 IP 地址的位置数据库上运行。传入的本地 DNS 请求的属性被定义为表达式的一部分,目标站点被定义为 DNS 策略的一部分。在定义操作和表达式时,您可以使用一对单引号 (“”) 作为通配符限定符来指定多个位置。配置 DNS 策略并收到 GSLB 请求后,首先查询自定义 IP 地址数据库以获取定义源位置属性的条目:

  • 当 DNS 查询来自 LDNS 时,将根据配置的策略评估 LDNS 的特性。如果它们匹配,则执行适当的操作(站点关联性)。如果 LDNS 特征匹配多个站点,则请求在与 LDNS 特征匹配的站点之间进行负载平衡。
  • 如果在自定义数据库中找不到该条目,则会查询静态 IP 地址数据库的条目,如果存在匹配,则重复上述策略评估。
  • 如果在自定义数据库或静态数据库中找不到该条目,则会根据配置的负载平衡方法在 DNS 响应中选择并发送最佳站点。

以下限制适用于在 Citrix ADC 设备上创建的 DNS 策略。

  • 最多支持 64 个策略。

  • DNS 策略对 Citrix ADC 设备具有全局性,无法应用于特定虚拟服务器或域。

  • 不支持特定于域或虚拟服务器的策略绑定。

您可以使用 DNS 策略将与特定 IP 地址范围匹配的客户端定向到特定站点。例如,如果您的 GSLB 设置包含多个在地理上分隔的 GSLB 站点,则可以将 IP 地址在特定范围内的所有客户端引导到特定数据中心。

可以评估基于 TCP 和基于 UDP 的 DNS 流量。策略表达式可用于服务器上基于 UDP 的 DNS 流量以及客户端基于 UDP 的 DNS 流量和基于 TCP 的 DNS 流量。此外,您可以配置表达式来评估仅涉及以下 DNS 问题类型(或 QTYPE 值)的查询和响应:

  • A
  • AAAA
  • NS
  • SRV
  • PTR
  • CNAME
  • SOA
  • MX
  • ANY

还支持以下响应代码(RCODE 值):

  • NOERROR - 无错误
  • FORERR-格式错误
  • SERVFAIL - 服务器故障
  • NXDOMAIN - 不存在域
  • NOTIMP - 查询类型未实现
  • REFUSED - 查询被拒绝

您可以配置表达式来评估 DNS 流量。DNS 表达式以 DNS.REQ 或 DNS.RES 前缀开头。函数可用于评估查询的域、查询类型和运营商协议。有关 DNS 表达式的详细信息,请参阅策略配置和参考中的“用于评估 DNS 邮件和识别其运营商协议的表达式”。

使用命令行界面添加 DNS 策略

在命令提示符下,键入以下命令以创建 DNS 策略并验证配置:

add dns policy <name> <rule> <actionName>
show dns policy <name>

示例:

> add dns policy policy-GSLB-1 'CLIENT.UDP.DNS.DOMAIN.EQ("domainname")' my_dns_action
 Done
> show dns policy policy-GSLB-1
    Name: policy-GSLB-1
    Rule: CLIENT.UDP.DNS.DOMAIN.EQ("domainname")
    Action Name: my_dns_action
    Hits: 0
    Undef Hits: 0

 Done

使用命令行界面删除已配置的 DNS 策略

在命令提示窗口中,键入:

rm dns policy <name>

使用 Citrix ADC 配置实用程序配置 DNS 策略

  1. 导航到流量管理 > DNS > 策略并创建 DNS 策略。
  2. 在“创建 DNS 策略”或“配置 DNS 策略”对话框中,设置以下参数:
    • 策略名称(现有策略无法更改)
    • 操作
    • 表达式 要指定表达式,请执行以下操作:
      1. 单击“添加”,然后在出现的下拉框中,选择要用来开始表达式的表达式元素。将出现第二个列表。该列表包含一组表达式元素,您可以在 firs 表达式元素之后立即使用这些元素。
      2. 在第二个列表中,选择所需的表达式元素,然后输入句点。
      3. 在每次选择之后,如果输入句点,下一组有效的表达式元素将显示在列表中。选择表达式元素并将参数填充到函数中,直到您拥有所需的表达式。
  3. 单击创建或确定,然后单击关闭。

绑定 DNS 策略

DNS 策略在 Citrix ADC 设备上全局绑定,并且可用于所有已配置的 GSLB 虚拟服务器。即使 DNS 策略是全局绑定的,也可以通过在表达式中指定域来限制策略执行到特定的 GSLB 虚拟服务器。

注意:即使绑定 dns 全局命令接受 REQ_OVERRIDE 和 RES_OVERRIDE 作为有效的绑定点,这些绑定点是多余的,因为 DNS 策略只能在全局范围内绑定。仅将 DNS 策略绑定到 REQ_DEFAULT 和 RES_DEFAULT 绑定点。

使用命令行界面全局绑定 DNS 策略

在命令提示符处,键入以下命令以全局绑定 DNS 策略并验证配置:

bind dns global <policyName> <priority> [-gotoPriorityExpression <string>] [-type <type>]  
show dns global -type <type>  

示例:

bind dns global policy-GSLB-1 10 -gotoPriorityExpression END
 Done
show dns global -type REQ_DEFAULT
1)  Policy Name: policy-GSLB-1
    Priority: 10
    GotoPriorityExpression: END
 Done

使用配置实用程序全局绑定 DNS 策略

  1. 导航到流量管理 > DNS > 策略。
  2. 在详细信息窗格中,单击全局绑定。
  3. 在“绑定/取消绑定到全局的 DNS 策略”对话框中,单击“插入策略”。
  4. 在“策略名称”列中,从列表中选择要绑定的策略。或者,在列表中,单击“新建策略”,然后通过在“创建 DNS 策略”对话框中设置参数来创建 DNS 策略。
  5. 若要修改已全局绑定的策略,请单击策略的名称,然后单击修改策略。然后,在“配置 DNS 策略”对话框中,修改该策略,然后单击“确定”。
  6. 若要取消绑定策略,请单击策略的名称,然后单击取消绑定策略。
  7. 要修改分配给策略的优先级,请双击优先级值,然后输入新值。
  8. 若要重新生成分配的优先级,请单击“重新生成优先级”。将优先级值修改为从 100 开始,增量为 10,而不影响评估顺序。
  9. 单击确定。

使用命令行界面查看 DNS 策略的全局绑定

在命令提示窗口中,键入:

show dns global

使用配置实用程序查看 DNS 策略的全局绑定

  1. 导航到 流量管理 > DNS > 策略
  2. 在详细信息窗格中,单击 全局绑定。此对话框中将显示所有 DNS 策略的全局绑定。

添加 DNS 视图

您可以配置 DNS 视图以标识各种类型的客户端,并为查询相同 GSLB 域的一组客户端提供适当的 IP 地址。DNS 视图通过使用选择发送回客户端的 IP 地址的 DNS 策略来配置。

例如,如果您为公司的域配置了 GSLB,并将服务器托管在公司的网络中,则可以为从公司内部网络中查询域的客户端提供服务器的内部 IP 地址而不是公有 IP 地址。另一方面,可以向从 Internet 查询域的 DNS 的客户端提供域的公有 IP 地址。

要添加 DNS 视图,您可以为其分配最多 31 个字符的名称。前导字符必须是数字或字母。也允许使用以下字符:@ _-。 (句号): (冒号) # 和空格 (). 添加视图后,您可以配置一个策略以将其与客户端和网络的一部分相关联,并将该策略全局绑定。要配置和绑定 DNS 策略,请参阅使用 DNS 策略管理本地 DNS 流量

使用命令行界面添加 DNS 视图

在命令提示符下,键入以下命令以创建 DNS 视图并验证配置:

add dns view <viewName>
show dns view <viewName>

示例:

add dns view PrivateSubnet
show dns view PrivateSubnet

使用命令行界面删除 DNS 视图

在命令提示窗口中,键入:

rm dns view <viewName>

使用配置实用程序添加 DNS 视图

导航到流量管理 > DNS > 视图并添加 DNS 视图。

有关如何创建 DNS 策略以及如何全局绑定 DNS 策略的详细信息,请参阅使用 DNS 策略管理本地 DNS 流量