Citrix ADC

用例 5:使用 TOS 时配置 DSR 模式

差异化服务 (DS),也称为 TOS(服务类型),是 IPv4 数据包报头的一部分的字段。IPv6 标头中的等效字段是“流量类”。TOS 被上层协议用于优化数据包的路径。TOS 信息对 Citrix ADC 设备虚拟 IP 地址 (VIP) 进行编码,负载平衡服务器从中提取 VIP。

在以下情况下,设备将 VIP 添加到数据包的 TOS 字段中,然后将数据包转发到负载平衡服务器。然后,负载平衡服务器直接响应客户端,绕过设备,如下图所示。

图 1. 使用 TOS 处于 DSR 模式的 Citrix ADC 设备

德斯维斯托斯

TOS 功能针对受控环境定制,如下所示:

  • 环境在设备和负载平衡服务器之间的路径中不得包含任何有状态的设备,例如有状态防火墙和 TCP 网关。
  • 网络所有入口点的路由器必须从所有传入数据包中删除 TOS 字段,以确保负载平衡服务器不会将其他 TOS 字段与设备添加的字段混淆。
  • 每台服务器只能有 63 个 VIP。
  • 中间路由器不得发送有关碎片的 ICMP 错误消息。客户端不理解该消息,因为源 IP 地址是负载平衡服务器的 IP 地址,而不是 Citrix ADC VIP。
  • TOS 仅适用于基于 IP 的服务。您不能将基于域名的服务与 TOS 一起使用。

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

实体类型 名称 IP 地址 协议
虚拟服务器 Vserver-LB-1 10.102.33.91 任何
服务 Service-ANY-1 10.102.100.44 任何
显示器 PING

使用 TOS 的 DSR 要求在第 3 层设置负载平衡。要为第 3 层配置基本负载平衡设置,请参阅设置基本负载平衡。使用上表中描述的值命名实体并设置参数。

配置负载平衡设置后,必须通过配置重定向模式来自定义 DSR 模式的负载平衡设置,以允许服务器解除数据包,然后直接响应客户端并绕过设备。

指定重定向模式后,您可以选择启用设备以透明方式监视服务器。这使得设备能够透明地监视负载平衡服务器。

使用命令行界面配置虚拟服务器的重定向模式

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

set lb vserver <vServerName> -m <Value> -tosId <Value>

示例:

set lb vserver Vserver-LB-1 -m TOS -tosId 3

使用配置实用程序配置虚拟服务器的重定向模式

  1. 导航到流量管理 > 负载平衡 > 虚拟服务器
  2. 打开虚拟服务器,然后在重定向模式下,选择 TOS ID。

使用命令行界面配置 TOS 的透明监视器

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

add monitor <MonitorName> <Type> -destip <DestinationIP> -tos <Value> -tosId <Value>

示例:

add monitor mon1 PING -destip 10.102.33.91 -tos Yes  -tosId 3

使用配置实用程序为 TOS 创建透明监视器

  1. 导航到流量管理 > 负载平衡 > 监视器
  2. 创建监视器,选择 TOS,然后键入您为虚拟服务器指定的 TOS ID。

通配符 TOS 监视器

在 DSR 模式下使用 TOS 字段进行负载平衡配置时,监视其服务需要创建 TOS 监视器并将其绑定到这些服务。使用 TOS 字段,DSR 模式下的每个负载均衡配置都需要一个单独的 TOS 监视器,因为 TOS 监视器需要 VIP 地址和 TOS ID 来创建 VIP 地址的编码值。监视器创建探测数据包,其中 TOS 字段设置为 VIP 地址的编码值。然后,它将探测数据包发送到由负载平衡配置的服务表示的服务器。

对于许多负载平衡配置,为每个配置创建单独的自定义 TOS 监视器是一项重要而繁琐的任务。管理这些 TOS 监视器也是一项重要的任务。现在,您可以创建通配符 TOS 监视器。为使用相同协议的所有负载平衡配置(例如,TCP 或 UDP)仅创建一个通配符 TOS 监视器。

通配符 TOS 监视器具有以下强制设置:

  • 类型 =<protocol>
  • TOS = 是

以下参数可以设置为值,也可以留空:

  • 目标 IP
  • 目的端口
  • TOS ID

绑定到 DSR 服务的通配符 TOS 监视器(未设置目标 IP、目标端口和 TOS ID)会自动获取 TOS ID 和负载平衡虚拟服务器的 VIP 地址。监视器创建探测数据包,TOS 字段设置为编码 VIP 地址,然后将探测数据包发送到 DSR 服务所代表的服务器。

使用 CLI 创建通配符 TOS 监视器

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

add lb monitor <monitorName> <Type> -tos YES

show lb monitor <monitorName>

使用 CLI 将通配符 TOS 监视器绑定到服务

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

bind lb monitor <monitorName> <serviceName>

show lb monitor <monitorName>

使用 GUI 创建通配符 TOS 监视器

  1. 导航到流量管理 > 负载平衡 > 监视器
  2. 添加具有以下参数设置的监视器:
    • 类型 =<protocol>
    • TOS = 是

使用 GUI 将通配符 TOS 监视器绑定到服务

  1. 导航到流量管理 > 负载平衡 > 服务
  2. 打开服务并将通配符 TOS 监视器绑定到它。

在以下示例配置中,V1、V2 和 V3 是任何类型的负载平衡虚拟服务器,并将 TOS ID 分别设置为 1、2 和 3。S1、S2、S3、S4 和 S5 是任意类型的服务。S1 和 S2 绑定到 V1 和 V2。S3、S4 和 S5 并绑定到 V1 和 V3。WLCD-TOS-MON 是 TCP 类型的通配符 TOS 监视器,绑定到 S1、S2、S3、S4 和 S5。

WLCD-TOS-MON 会自动学习绑定到 S1、S2、S3、S4 和 S5 的虚拟服务器的 TOD ID 和 VIP 地址。

因为 S1 绑定到 V1 和 V2,WLCD-TOS-MON 会为 S1 创建两种类型的探测数据包,一种是 TOS 字段设置为 V1 的编码 VIP 地址 (203.0.113.1),另一种是 V2 的 VIP 地址 (203.0.113.2)。然后 Citrix ADC 将这些探测数据包发送到由 S1 表示的服务器。同样,WLCD-TOS-MON 为 S2、S3、S4 和 S5 创建探测数据包。

add lb monitor WLCD-TOS-MON  TCP -tos YES

Done

add lb vserver V1 ANY 203.0.113.1 * -m TOS –tosID 1

Done

add lb vserver V2 ANY 203.0.113.2 * -m TOS –tosID 2

Done

add lb vserver V3 ANY 203.0.113.3 * -m TOS –tosID 3

Done

add service S1 198.51.100.1 ANY *

Done

add service S2 198.51.100.2 ANY *

Done

add service S3 198.51.100.3 ANY *

Done

add service S4 198.51.100.4 ANY *

Done

add service S5 198.51.100.5 ANY *

Done

bind lb monitor WLCD-TOS-MON S1

Done

bind lb monitor WLCD-TOS-MON S2

Done

bind lb monitor WLCD-TOS-MON S3

Done

bind lb monitor WLCD-TOS-MON S4

Done

bind lb monitor WLCD-TOS-MON S5

Done

bind lb vserver V1 S1, S2, S3, S4, S5

Done

bind lb vserver V2, S1, S2

Done

bind lb vserver V3 S3, S4, S5

Done

用例 5:使用 TOS 时配置 DSR 模式