ADC

用例 2 — 非巨型到巨型设置

举一个常规到大型设置的示例,在该设置中,在 NetScaler 设备 NS1 上配置的负载平衡虚拟服务器 LBVS-1 用于对服务器 S1 和 S2 之间的流量进行负载平衡。客户端 CL1 和 NS1 之间的连接支持常规帧,NS1 与服务器之间的连接支持巨型帧。

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

NS1 的接口 10/1 和 10/2 分别是 VLAN 10 和 VLAN 20 的一部分。为了仅支持 CL1 和 NS1 之间的常规帧,接口 10/1 和 VLAN 10 的 MTU 均设置为默认值 1500

为了支持 NS1 和服务器之间的巨型帧,接口 10/2 和 VLAN 20 的 MTU 设置为 9000。NS1 和服务器之间的服务器和所有其他网络设备也配置为支持巨型帧。

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

  • 为了支持 NS1 与 S1 或 S2 的 SNIP 地址之间的连接使用巨型帧,NS1 上的 MSS 是在自定义 TCP 配置文件中相应设置的,该配置文件绑定到 NS1 上代表 S1 和 S2 的服务(SVC-S1 和 SVC-S1)。
  • 为了仅支持 CL1 与 NS1 的虚拟服务器 LBVS-1 之间的连接使用常规帧,使用默认 TCP 配置文件 nstcp_default_profile,该配置文件在默认情况下绑定到 LBVS-1 并将 MSS 设置为默认值 1460。

jumbo uc2

下表列出了此示例中使用的设置。

实体 名称 详细信息
客户端 CL1 的 IP 地址 192.0.2.10
服务器的 IP 地址 S1 198.51.100.19
S2
NS1 上的 SNIP 地址 198.51.100.18
为 NS1 上的接口和 VLAN 指定了 MTU 10/1 1500
10/2
VLAN 10
VLAN 20
默认 TCP 配置文件 nstcp_default_profile MSS: 1460
自定义 TCP 配置文件 NS1-SERVERS-JUMBO MSS:8960
NS1 上代表服务器的服务 SVC-S1 IP 地址:198.51.100.19,协议:HTTP,端口:80,TCP 配置文件:NS1-SERVERS-JUMBO(MSS:8960)
SVC-S2
在 VLAN 10 上对虚拟服务器进行负载平衡 LBVS-1 IP 地址 = 203.0.113.15,协议:HTTP,端口:80,绑定服务:SVC-S1、SVC-S2、TCP 配置文件:nstcp_default_profile (MSS: 1460)

以下是本示例中 CL1 向 S1 发出的请求的流量:

  1. 客户端 CL1 创建一个 200 字节的 HTTP 请求以发送到 NS1 的虚拟服务器 LBVS-1。

  2. CL1 打开了与 NS1 的 LBVS-1 的连接。CL1 和 NS1 在建立连接时交换各自的 TCP MSS 值。

  3. 由于 NS1 的 MSS 大于 HTTP 请求,CL1 将单个 IP 数据包中的请求数据发送到 NS1。

    请求数据包的大小 = [IP 标头 + TCP 标头 + TCP 请求] = [20 + 20 + 200] = 240

  4. NS1 在接口 10/1 接收请求数据包,然后处理数据包中的 HTTP 请求数据。

  5. LBVS-1 的负载平衡算法选择服务器 S1,然后 NS1 在其中一个 SNIP 地址和 S1 之间建立连接。NS1 和 CL1 在建立连接时交换各自的 TCP MSS 值。

  6. 由于 S1 的 MSS 大于 HTTP 请求,NS1 将单个 IP 数据包中的请求数据发送到 S1。

    请求数据包的大小 = [IP 标头 + TCP 标头 + [TCP 请求] = [20 + 20 + 200] = 240

以下是本示例中 S1 响应 CL1 的流量流量:

  1. 服务器 S1 创建一个 18000 字节的 HTTP 响应以发送到 NS1 的 SNIP 地址。
  2. S1 将响应数据分成多个 NS1 的 MSS,然后将这些数据段以 IP 数据包的形式发送到 NS1。这些 IP 数据包来自 S1 的 IP 地址,并指定到 NS1 的 SNIP 地址。

    • 前两个数据包的大小 = [IP 标头 + TCP 标头 + (TCP 分段=NS1 的 MSS 大小)] = [20 + 20 + 8960] = 9000
    • 最后一个数据包的大小 = [IP 标头 + TCP 标头 +(剩余的 TCP 数据段)] = [20 + 20 + 80] = 120
  3. NS1 在接口 10/2 接收响应数据包。
  4. 从这些 IP 数据包中,NS1 将所有 TCP 数据段组合起来,构成 18000 字节的 HTTP 响应数据。NS1 会处理此响应。
  5. NS1 将响应数据分割为 CL1 的 MSS 的倍数,然后通过 IP 数据包将这些数据段从接口 10/1 发送到 CL1。这些 IP 数据包来自 LBVS-1 的 IP 地址,并注定到 CL1 的 IP 地址。

    • 除最后一个数据包之外的所有数据包的大小 = [IP 标头 + TCP 标头 + (TCP 有效负载=CL1 的 MSS 大小)] = [20 + 20 + 1460] = 1500
    • 最后一个数据包的大小 = [IP 标头 + TCP 标头 + (剩余的 TCP 分段)] = [20 + 20 + 480] = 520

配置任务

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

任务 CLI 语法 示例
设置支持巨型帧的所需接口的 MTU set interface -mtu , show interface set int 10/1-mtu 1500 set int 10/2-mtu 9000
创建 VLAN 并设置所需 VLAN 的 MTU 以支持巨型帧 add vlan -mtu , show vlan add vlan 10 -mtu 1500 add vlan 20 -mtu 9000
将接口绑定到 VLAN bind vlan -ifnum,显示 vlan bind vlan 10-ifnum 10/1 bind vlan 20-ifnum 10/2
添加 SNIP 地址 add ns ip -type SNIP, show ns ip add ns ip 198.51.100.18 255.255.255.0 -type SNIP
创建表示 HTTP 服务器的服务 add service HTTP , show service add service SVC-S1 198.51.100.19 http 80, add service SVC-S2 198.51.100.20 http 80
创建 HTTP 负载平衡虚拟服务器并将服务绑定到该虚拟服务器 add lb vserver HTTP , bind lb vserver , show lb vserver add lb vserver LBVS-1 http 203.0.113.15 80, bind lb vserver LBVS-1 SVC-S1, bind lb vserver LBVS-1 SVC-S2
创建自定义 TCP 配置文件并设置其 MSS 以支持巨型帧 add tcpProfile -mss , show tcpProfile add tcpprofile NS1-SERVERS-JUMBO -mss 8960
将自定义 TCP 配置文件绑定到所需的服务 set service -tcpProfileName , show service set service SVC-S1 -tcpProfileName NS1-SERVERS-JUMBO, set service SVC-S2 -tcpProfileName NS1-SERVERS-JUMBO
保存配置 save ns config、show ns config  
用例 2 — 非巨型到巨型设置