用例 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。
下表列出了此示例中使用的设置。
实体 | 名称 | 详细信息 |
---|---|---|
客户端 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 发出的请求的流量:
-
客户端 CL1 创建一个 200 字节的 HTTP 请求以发送到 NS1 的虚拟服务器 LBVS-1。
-
CL1 打开了与 NS1 的 LBVS-1 的连接。CL1 和 NS1 在建立连接时交换各自的 TCP MSS 值。
-
由于 NS1 的 MSS 大于 HTTP 请求,CL1 将单个 IP 数据包中的请求数据发送到 NS1。
请求数据包的大小 = [IP 标头 + TCP 标头 + TCP 请求] = [20 + 20 + 200] = 240
-
NS1 在接口 10/1 接收请求数据包,然后处理数据包中的 HTTP 请求数据。
-
LBVS-1 的负载平衡算法选择服务器 S1,然后 NS1 在其中一个 SNIP 地址和 S1 之间建立连接。NS1 和 CL1 在建立连接时交换各自的 TCP MSS 值。
-
由于 S1 的 MSS 大于 HTTP 请求,NS1 将单个 IP 数据包中的请求数据发送到 S1。
请求数据包的大小 = [IP 标头 + TCP 标头 + [TCP 请求] = [20 + 20 + 200] = 240
以下是本示例中 S1 响应 CL1 的流量流量:
- 服务器 S1 创建一个 18000 字节的 HTTP 响应以发送到 NS1 的 SNIP 地址。
-
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
- NS1 在接口 10/2 接收响应数据包。
- 从这些 IP 数据包中,NS1 将所有 TCP 数据段组合起来,构成 18000 字节的 HTTP 响应数据。NS1 会处理此响应。
-
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 |
set int 10/1-mtu 1500 set int 10/2-mtu 9000 |
创建 VLAN 并设置所需 VLAN 的 MTU 以支持巨型帧 | add vlan |
add vlan 10 -mtu 1500 add vlan 20 -mtu 9000 |
将接口绑定到 VLAN | bind vlan |
bind vlan 10-ifnum 10/1 bind vlan 20-ifnum 10/2 |
添加 SNIP 地址 | add ns ip |
add ns ip 198.51.100.18 255.255.255.0 -type SNIP |
创建表示 HTTP 服务器的服务 | add 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 |
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 |
add tcpprofile NS1-SERVERS-JUMBO -mss 8960 |
将自定义 TCP 配置文件绑定到所需的服务 | set service |
set service SVC-S1 -tcpProfileName NS1-SERVERS-JUMBO, set service SVC-S2 -tcpProfileName NS1-SERVERS-JUMBO |
保存配置 | save ns config、show ns config |