ADC

用例 3 — 巨型和非巨型流在同一组接口上共存

举一个在 NetScaler 设备 NS1 上配置负载平衡虚拟服务器 LBVS-1 和 LBVS-2 的示例。LBVS-1 用于对服务器 S1 和 S2 之间的 HTTP 流量进行负载平衡,LBVS-2 用于对服务器 S3 和 S4 之间的流量进行负载平衡。

CL1 在 VLAN 10 上,S1 和 S2 在 VLAN20 上,CL2 在 VLAN 30 上,S3 和 S4 在 VLAN 40 上。VLAN 10 和 VLAN 20 支持巨型帧,而 VLAN 30 和 VLAN 40 仅支持常规帧。

换句话说,CL1 和 NS1 之间的连接以及 NS1 和服务器 S1 或 S2 之间的连接都支持巨型帧。CL2 和 NS1 之间的连接以及 NS1 与服务器 S3 或 S4 之间的连接仅支持常规框架。

NS1 的接口 10/1 接收或发送来自客户端的流量。NS1 的接口 10/2 接收或发送来自服务器的流量。

接口 10/1 作为标记接口绑定到 VLAN 10 和 VLAN 30,接口 10/2 作为标记接口绑定到 VLAN 20 和 VLAN 40。

为了支持巨型帧,接口 10/1 和 10/2 的 MTU 设置为 9216。

在 NS1 上,支持巨型帧的 VLAN 10 的 MTU 设置为 9000,VLAN 30 的 MTU 设置为 1500,VLAN 30 的 MTU 设置为默认值 1500,VLAN 40 的 MTU 设置为默认值 1500,仅支持常规帧。

NetScaler 接口上用于标记为 VLAN 的数据包的有效 MTU 是该接口的 MTU 或 VLAN 的 MTU(以较低者为准)。例如:

  • 接口 10/1 的 MTU 为 9216。VLAN 10 的 MTU 为 9000。在接口 10/1 上,带有 VLAN 10 标记的数据包的 MTU 为 9000。
  • 接口 10/2 的 MTU 为 9216。VLAN 20 的 MTU 为 9000。在接口 10/2 上,带有 VLAN 20 标记的数据包的 MTU 为 9000。
  • 接口 10/1 的 MTU 为 9216。VLAN 30 的 MTU 为 1500。在接口 10/1 上,带有 VLAN 30 标记的数据包的 MTU 为 1500。
  • 接口 10/2 的 MTU 为 9216。VLAN 40 的 MTU 为 1500。在接口 10/2 上,带有 VLAN 40 标记的数据包的 MTU 为 9000。

CL1、S1、S2 以及 CL1 和 S1 或 S2 之间的所有网络设备都配置为巨型帧。

由于 HTTP 流量基于 TCP,因此会在每个端点相应设置 MSS 以支持巨型帧。

  • 对于 CL1 与 NS1 的虚拟服务器 LBVS-1 之间的连接,在 TCP 配置文件中设置 NS1 上的 MSS,然后将其绑定到 LBVS-1。
  • 对于 NS1 和 S1 的 SNIP 地址之间的连接,在 TCP 配置文件中设置 NS1 上的 MSS,然后将其绑定到 NS1 上代表 S1 的服务 (SVC-S1)。

巨型 UC3

下表列出了本示例中使用的设置: 巨型帧使用案例 3 示例设置

以下是 CL1 的请求到 S1 的流量:

  1. 客户端 CL1 创建一个 20000 字节的 HTTP 请求以发送到 NS1 的虚拟服务器 LBVS-1。
  2. CL1 打开了与 NS1 的 LBVS-1 的连接。CL1 和 NS1 在建立连接时交换它们的 TCP MSS 值。
  3. 由于 NS1 的 MSS 值小于 HTTP 请求,因此 CL1 将请求数据分割成 NS1 MSS 的倍数,并将这些段标记为 VLAN 10 的 IP 数据包发送到 NS1。
    • 前两个数据包的大小 = [IP 标头 + TCP 标头 + (TCP 分段=NS1 MSS)] = [20 + 20 + 8960] = 9000
    • 最后一个数据包的大小 = [IP 标头 + TCP 标头 + (剩余的 TCP 数据段)] = [20 + 20 + 2080] = 2120
  4. NS1 在接口 10/1 接收这些数据包。NS1 接受这些数据包是因为这些数据包的大小等于或小于带有 VLAN 10 标记的数据包的接口 10/1 的有效 MTU (9000)。
  5. 从这些 IP 数据包中,NS1 将所有 TCP 数据段组合起来构成 20000 字节的 HTTP 请求。NS1 正在处理此请求。
  6. LBVS-1 的负载平衡算法选择服务器 S1,然后 NS1 在其中一个 SNIP 地址和 S1 之间建立连接。NS1 和 CL1 在建立连接时交换各自的 TCP MSS 值。
  7. NS1 将请求数据分割成 S1 MSS 的倍数,并将这些段以标记为 VLAN 20 的 IP 数据包发送到 S1。
    • 前两个数据包的大小 = [IP 标头 + TCP 标头 + (TCP 有效负载=S1 MSS)] = [20 + 20 + 8960] = 9000
    • 最后一个数据包的大小 = [IP 标头 + TCP 标头 + (剩余的 TCP 数据段)] = [20 + 20 + 2080] = 2120

以下是 S1 对 CL1 的响应的流量流:

  1. 服务器 S1 创建一个 30000 字节的 HTTP 响应以发送到 NS1 的 SNIP 地址。
  2. S1 将响应数据分成多个 NS1 的 MSS,然后将这些数据段以标记为 VLAN 20 的 IP 数据包的形式发送到 NS1。这些 IP 数据包来自 S1 的 IP 地址,并指定到 NS1 的 SNIP 地址。
    • 前三个数据包的大小 = [IP 标头 + TCP 标头 + (TCP 分段=NS1 的 MSS 大小)] = [20 + 20 + 8960] = 9000
    • 最后一个数据包的大小 = [IP 标头 + TCP 标头 + (剩余的 TCP 分段)] = [20 + 20 + 3120] = 3160
  3. NS1 在接口 10/2 接收响应数据包。NS1 接受这些数据包,因为对于带有 VLAN 20 标记的数据包,它们的大小等于或小于接口 10/2 的有效 MTU 值 (9000)。
  4. 从这些 IP 数据包中,NS1 汇集所有 TCP 数据段以构成 30000 字节的 HTTP 响应。NS1 会处理此响应。
  5. NS1 将响应数据分割为 CL1 的 MSS 的倍数,然后将这些数据段以标记为 VLAN 10 的 IP 数据包的形式从接口 10/1 发送到 CL1。这些 IP 数据包来自 LBVS 的 IP 地址,并注定到 CL1 的 IP 地址。
    • 前三个数据包的大小 = [IP 标头 + TCP 标头 + [(TCP 有效负载=CL1 的 MSS 大小)] = [20 + 20 + 8960] = 9000
    • 最后一个数据包的大小 = [IP 标头 + TCP 标头 + (剩余的 TCP 分段)] = [20 + 20 + 3120] = 3160

配置任务

下表列出了在 NetScaler 设备上创建所需配置的任务、命令和示例: 巨型帧用例 3配置任务。

用例 3 — 巨型和非巨型流在同一组接口上共存