ADC

常见问题解答

超时

重要

在使用 任何 nsapimgr 旋钮之前,请咨询 Citrix 客户支持人员。

以下是可以在 NetScaler T1 虚拟服务器和服务上设置的不同空闲连接超时列表。在虚拟服务器或服务级别为客户端或服务器连接设置的空闲超时仅适用于处于 TCP 已建立状态且处于空闲状态的连接。

  • 负载平衡虚拟服务器 cltTimeout 参数指定在设备关闭连接之前,从客户端到负载平衡虚拟服务器的连接必须处于空闲状态的时间(以秒为单位)。
  • 服务 svrTimeout 参数以秒为单位指定设备与服务或服务器的连接在设备关闭连接之前必须处于空闲状态的时间。
  • 服务 cltTimeout 参数指定在设备关闭连接之前,从客户端到服务的连接必须处于空闲状态的时间(以秒为单位)。

当服务绑定到负载平衡虚拟服务器时,负载平衡虚拟服务器的 cltTimeout 优先,服务的 cltTimeout 会被忽略。

如果没有服务绑定到负载平衡虚拟服务器,则全局空闲超时,即 TcpServer,用于服务器端连接。它可以配置如下:

命令:

set ns timeout –tcpServer 9000
<!--NeedCopy-->

其他状态下的连接具有不同的超时值:

  • 半开连接空闲超时:120 秒(硬编码值)
  • TIME_WAIT 连接空闲超时:40 秒(硬编码值)
  • 半封闭连接空闲超时。默认情况下,它是 10 秒,可以使用代码片段在 1 到 600 秒之间进行配置

命令:

 set ns timeout –halfclose 10
<!--NeedCopy-->

触发半关闭超时时,连接将移至僵尸状态。当僵尸超时到期时,僵尸清理开始,默认情况下,T1 在客户端和服务器端为给定连接发送 RST。

  • 僵尸超时:僵尸清理过程必须运行以清理非活动的 TCP 连接的时间间隔。默认超时值为 120 秒,可以配置在 1 到 600 秒之间。

命令:

set ns timeout –zombie 120
<!--NeedCopy-->

最大分段大小表

NetScaler T1 设备通过使用 SYN Cookie 而不是在系统内存堆栈上保持半开连接来防御 SYN 洪水攻击。设备向请求 TCP 连接的每个客户端发送 Cookie,但它不保持半打开连接的状态。相反,设备仅在收到最终的 ACK 数据包时为连接分配系统内存,或者对于 HTTP 流量,在接收 HTTP 请求时分配系统内存。这样可以防止 SYN 攻击,并允许与合法客户端继续进行不间断的正常 TCP 通信。默认情况下,特定功能处于启用状态,没有禁用选项。

但是,需要注意的是,标准 SYN Cookie 将连接限制为仅使用八个最大分段大小 (MSS) 值。如果连接 MMS 与任何预定义值不匹配,它将从客户端和服务器端获取下一个可用的较低值。

预定义的 TCP 最大分段大小 (MSS) 值如下,可通过新的 nsapimgr 旋钮进行配置。

               
1460 1440 1330 1220 956 536 384 128

新的 MSS 表:

  • 不必包含巨型帧支持。尽管默认情况下,在 MSS 表中为巨型帧保留 8 个值,但可以修改表设置,使其仅包括标准以太网大小的帧。
  • 应该有 16 个值
  • 值应按降序排列
  • 应包含 128 作为最后一个值

如果新的 MSS 表有效,则在 Syn-Cookie 轮换时存储该表并将旧值切换出去。否则,新表将返回错误。更改将应用于新连接,而现有连接会保留旧的 MSS 表,直到连接过期或终止。

要在 NetScaler 设备中显示当前 MSS 表,请键入以下命令。

命令:

>shell

#nsapimgr -d mss_table

示例:

#nsapimgr -d mss_table

MSS table

{9176,9156,8192,7168,6144,4196,3072,2048,1460,1440,1330,1212,956,536,384,128}

Done.

要更改 mss 表,请键入以下命令:

命令:

>shell

#nsapimgr -s mss_table=<16 comma seperated values>

示例:

#nsapimgr -ys mss_table=9176,9156,8192,7168,6144,4196,3072,2048,1460,1400,1330,1212,956,536,384,128

# nsapimgr -d mss_table

MSS table

{9176,9156,8192,7168,6144,4196,3072,2048,1460,1400,1330,1212,956,536,384,128}

Done.

下面介绍了一个使用标准以太网大小值的示例:

示例:

#nsapimgr -ys mss_table=1460,1440,1420,1400,1380,1360,1340,1320,1300,1280,1260,1212,956,536,384,128

# nsapimgr -d mss_table

MSS table

{1460,1440,1420,1400,1380,1360,1340,1320,1300,1280,1260,1212,956,536,384,128}

Done.

要在 NetScaler 设备重新启动后使此更改永久化,请在“/nsconfig/rc.netscaler”文件中包含 #nsapimgr -ys mss_table=<16 comma seperated values> 命令。如果“rc.netscaler”文件不存在,请在“/nsconfig”文件夹下创建该文件,然后附加命令。

内存过载保护

如果 NetScaler 数据包处理引擎 (PPE) 使用的内存超过指定的高水位线值,则该引擎 (PPE) 会开始绕过来自 TCP 优化的连接。如果 PPE 内存利用率超过大约 2.6GB,则它会开始绕过优化中的 任何新连接 。现有连接(之前允许进行优化的连接)继续得到优化。此水印值是特意选择的,不建议进行调整。

注意

如果您认为有充分的理由更改该水印值,请联系客户支持。

支持 Happy Eyeballs 客户端

如果 NetScaler 设备收到状态未知的目标的 SYN,则设备会首先检查服务器的可访问性,然后确认客户端。这种探测机制使具有双 IP 堆栈的客户端能够发现双栈互联网服务器的可访问性。如果客户端发现 IPv6 和 IPv4 访问都可用,它会与响应速度更快的服务器建立连接,然后重置另一个。如果 NetScaler 设备的连接被重置,它将重置相应的服务器端连接。

注意:此功能没有用户可配置的 TCP 设置,无法在 NetScaler 设备上禁用/启用。

有关 Happy Eyeballs 支持的更多信息,请参阅 RFC 6555。

常见问题解答