ADC

用例 3:在直接服务器返回模式下配置负载平衡

服务器直接返回 (DSR) 模式下的负载平衡允许服务器使用不流经 Citrix ADC 设备的返回路径直接响应客户端。但是,在 DSR 模式下,设备可以继续对服务执行运行状况检查。在高数据量环境中,以 DSR 模式直接将服务器流量发送到客户端会增加设备的整体数据包处理容量,因为数据包不会在设备中流动。

DSR 模式具有以下功能和限制:

  • 它支持单臂模式和内联模式。
  • 设备会话基于空闲超时过时。
  • 由于设备不代理 TCP 连接(即它不向客户端发送 SYN-ACK),因此它不会关闭 SYN 攻击。通过使用 SYN 数据包速率筛选器,可以控制 SYN 到服务器的速率。要控制 SYN 的速率,请为 SYN 的速率设置阈值。要获得 SYN 攻击的保护,必须将设备配置为代理 TCP 连接。但是,这需要反向流量流经设备。
  • 在 DSR 配置中,Citrix ADC 设备不会将负载平衡虚拟服务器的 IP 地址替换为目标服务器的 IP 地址。相反,它通过使用服务器的 MAC 地址将数据包转发到服务。必须在服务器上配置 VIP,并且必须为服务器上配置的 VIP 禁用 ARP。这样可以防止客户端请求在单臂模式下配置设备时绕过设备。例如,用户必须在环回界面中配置 VIP,然后为同一 VIP 禁用 ARP。
  • 设备从绑定到服务的监视器获取服务器的 MAC 地址。但是,使用 Citrix ADC 设备上存储的脚本的自定义用户监视器(类型为 USER 的监视器)不会了解服务器的 MAC 地址。如果在 DSR 配置中仅使用自定义监视器,则对于虚拟服务器接收的每个请求,设备都会尝试将目标 IP 地址解析为 MAC 地址(通过发送 ARP 请求)。由于目标 IP 地址是 Citrix ADC 设备所拥有的虚拟 IP 地址,因此 ARP 请求始终解析为 Citrix ADC 接口的 MAC 地址。因此,虚拟服务器接收的所有流量都将循环回设备。如果在 DSR 配置中使用用户监视器,则还必须为服务配置另一种不同类型的监视器(例如,PING 监视器),理想情况下,探测之间的间隔更长,以便了解服务器的 MAC 地址。
  • Citrix ADC 设备从绑定到服务的监视器中学习服务器 L2 参数。对于 UDP-ECV 监视器,配置接收字符串以使设备能够了解服务器的 L2 参数。如果未配置接收字符串并且服务器未响应,则设备不会学习 L2 参数,但服务设置为 UP。此服务的流量是黑洞的。

在示例方案中,将创建服务 Service-ANY-1、Service-ANY-2 和 Service-ANY-3 并绑定到虚拟服务器 Vserver-LB-1。虚拟服务器负载平衡客户端对服务的请求,并且该服务直接响应客户端,绕过 Citrix ADC 设备。下表列出了在 DSR 模式下在 Citrix ADC 设备上配置的实体的名称和值。

实体类型 名称 IP 地址 协议
虚拟服务器 Vserver-LB-1 10.102.29.94 任何
服务 Service-ANY-1 10.102.29.91 任何
  Service-ANY-2 10.102.29.92 任何
  Service-ANY-3 10.102.29.93 任何
显示器 TCP

下图显示了要在设备上配置的参数的负载平衡实体和值。

图 1. DSR 模型中负载均衡的实体模型

lb-entity-dsr-mode

要使设备在 DSR 模式下正常工作,客户端请求中的目标 IP 必须保持不变。相反,设备将目标 MAC 更改为所选服务器的目标 MAC。此设置使服务器能够确定在绕过服务器时将请求转发到客户端的客户端 MAC 地址。

接下来,按照设置基本负载平衡中所述配 置基本负载平衡设置、命名实体并使用上表中描述的值设置参数。

配置基本负载平衡设置后,必须为 DSR 模式自定义该设置。为此,您可以配置受支持的负载平衡方法,例如带有无会话虚拟服务器的源 IP 哈希方法。您还需要设置重定向模式,以允许服务器确定用于转发响应并绕过设备的客户端 MAC 地址。

配置负载平衡方法和重定向模式后,需要在每个服务上启用 USIP 模式。然后,服务在转发响应时使用源 IP 地址。

使用命令行界面为无会话虚拟服务器配置负载平衡方法和重定向模式

在命令提示符下,键入:

set lb vserver <vServerName> -lbMethod <LBMethodOption> -m <RedirectionMode> -sessionless <Value>
<!--NeedCopy-->

示例

set lb vserver Vserver-LB-1 -lbMethod SourceIPHash -m MAC -sessionless enabled
<!--NeedCopy-->

注意

对于绑定到已启用-m MAC 选项的虚拟服务器的服务,必须绑定非用户监视器。

使用配置实用程序为无会话虚拟服务器配置负载平衡方法和重定向模式

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 打开虚拟服务器,选择重定向模式为基于 MAC,然后选择方法作为 Sourcephash。
  3. 在“流量设置”中,选择“无会话负载平衡”。

使用命令行界面将服务配置为使用源 IP 地址

在命令提示符下,键入:

set service <ServiceName> -usip <Value>
<!--NeedCopy-->

示例:

set service Service-ANY-1 -usip yes
<!--NeedCopy-->

使用配置实用程序将服务配置为使用源 IP 地址

  1. 导航到流量管理 > 负载平衡 > 服务
  2. 打开服务,然后在 “流量设置” 中,选择 “ 使用源 IP 地址”。

在某些情况下,需要采取一些额外步骤,下文将介绍这些步骤。