ADC

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

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

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

图 1. 带有 TOS 的 NetScaler 设备处于 DSR 模式

使用 TOS 的 DSR 模式

TOS 功能是为受控环境定制的,如下所示:

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

在示例中,Service-any-1 已创建并绑定到虚拟服务器 vserver-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>
<!--NeedCopy-->

示例:

set lb vserver Vserver-LB-1 -m TOS -tosId 3
<!--NeedCopy-->

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

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

使用命令行界面为 TOS 配置透明显示器

在命令提示符下,键入:

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

示例:

add monitor mon1 PING -destip 10.102.33.91 -tos Yes  -tosId 3
<!--NeedCopy-->

使用配置实用程序为 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>
<!--NeedCopy-->

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

在命令提示符下,键入:

bind lb monitor <monitorName> <serviceName>

show lb monitor <monitorName>
<!--NeedCopy-->

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

  1. 导航到“流量管理”>“负载平衡”>“监视器”。
  2. 使用以下参数设置添加显示器:
    • 类型 = <protocol>
    • TOS = YES

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

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

在以下示例配置中,V1、V2 和 V3 是 ANY 类型的负载平衡虚拟服务器,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)。然后,NetScaler 将这些探测数据包发送到由 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
<!--NeedCopy-->