Citrix ADC

管理客户端连接

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

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

虚拟服务器的状态取决于绑定到它的服务的状态,每个服务的状态取决于绑定到虚拟服务器的监视器。如果服务器运行缓慢或停机,监视探测会超时,代表该服务器的服务会被标记为 DOWN。只有当绑定到虚拟服务器的所有服务都标记为 DOWN 时,该虚拟服务器才会被标记为您可以将服务和虚拟服务器配置为在连接断开时终止所有连接,或者允许连接通过。后一种设置适用于由于服务器运行缓慢而将服务标记为 DOWN 的情况。

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

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

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

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

示例:

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

show gslb service Service-GSLB-1
Done
<!--NeedCopy-->

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

  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(“域名”)
  • 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.ENDWITH (“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_cacheBpass。这两个操作与创建 DNS 策略和配置 DNS 策略对话框中的自定义操作一起提供。这些内置操作无法修改或删除。

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

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

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

show dns action [<actionName>]
<!--NeedCopy-->
示例

示例 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
<!--NeedCopy-->

示例 2:配置基于 DNS-View 的响应。以下 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
<!--NeedCopy-->

示例 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
<!--NeedCopy-->

使用 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
  • 任何

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

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

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

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

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

add dns policy <name> <rule> <actionName>
show dns policy <name>
<!--NeedCopy-->

示例:

> add dns policy-GSLB-1 'CLIENT.UDP.DNS.DOMAIN.EQ("domainname")' my_dns_action
 Done
> show dns 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
<!--NeedCopy-->

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

在命令提示符下,键入:

rm dns policy <name>
<!--NeedCopy-->

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

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

绑定 DNS 策略

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

注意:尽管 bind dns global 命令接受 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>
<!--NeedCopy-->

示例:

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
<!--NeedCopy-->

使用配置实用程序全局绑定 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 视图是通过使用 DNS 策略来配置的,这些策略选择发送回客户端的 IP 地址。

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

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

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

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

add dns view <viewName>
show dns view <viewName>
<!--NeedCopy-->

示例:

add dns view PrivateSubnet
show dns view PrivateSubnet
<!--NeedCopy-->

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

在命令提示符下,键入:

rm dns view <viewName>
<!--NeedCopy-->

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

导航到 “流量管理” > “DNS” > “视图”,然后添加 DNS 视图。

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

管理客户端连接