TCP配置
Citrix ADC设备的TCP配置可以在名为TCP配置文件的实体中指定,该实体是TCP设置的集合。然后,tcp配置文件可以与想要使用这些tcp配置的服务或虚拟服务器相关联。
默认TCP配置文件可以配置为设置默认情况下将应用于所有服务和虚拟服务器的TCP配置。
注意:
当TCP参数对于服务,虚拟服务器和全局具有不同的值时,最特定的实体(服务)的值将被赋予最高优先级。Citrix ADC设备还提供了其他配置TCP的方法。请继续阅读以了解更多信息。
支持的TCP配置
Citrix ADC设备支持以下TCP功能:
防御TCP免受欺骗攻击
Citrix ADC的窗口衰减实施符合RFC 4953标准。
显式拥堵通知(ecn)
设备将网络拥塞状态通知发送给数据的发送方,并针对数据拥塞或数据损坏采取纠正措施。ECN的Citrix ADC实施符合RFC 3168标准。
使用时间戳选项进行往返时间测量(rttm)
要使时间戳选项工作,至少必须有一个连接端(客户端或服务器)支持该选项。该时间戳
选项的Citrix ADC实施符合RFC 1323标准。
检测虚假重传输
这可以使用TCP重复选择性确认(D-SACK)和转发RTO恢复(F-RTO)来完成。如果存在虚假的重新传输,拥塞控制配置将恢复到原始状态。D-SACK的Citrix ADC实现符合RFC 2883标准,F-RTO符合RFC 5682标准。
拥塞控制
此功能使用New-Reno, BIC, CUBIC,尼罗河和TCP韦斯特伍德算法。
窗口缩放
这将TCP接收窗口大小增加到其最大值65,535个字节之外。
配置窗口缩放之前要考虑的要点
- 您没有为比例因子设置较高的值,因为这可能会对设备和网络产生不利影响。
- 除非清楚地知道为什么要更改窗口大小,否则不能配置窗口缩放。
- TCP连接中的两台主机在连接建立期间发送窗口缩放选项。如果连接只有一侧设置此选项,则不会对连接使用窗口缩放。
- 同一会话的每个连接都是独立的窗口扩展会话。例如,当客户端的请求和服务器的响应流经设备时,可以在客户端和设备之间进行窗口缩放,而无需在设备和服务器之间缩放窗口。
TCP最大拥塞窗口
窗口大小是用户可配置的。默认值为 8190 个字节。
选择性确认(袋子)
这使用数据接收器(Citrix ADC设备或客户端)向发件人通知已成功接收的所有区段。
转发确认(fack)
此功能通过明确测量网络中未完成的数据字节总数,并帮助发件人(Citrix ADC或客户端)控制在重传超时期间注入网络的数据量,从而避免TCP拥塞。
TCP连接多路复用
此功能可以重复使用现有TCP连接。Citrix ADC设备存储到重用池的已建立的 TCP 连接。每当收到客户端请求时,设备都会检查重用池中是否有可用连接,如果连接可用,则为新客户端提供服务。如果不可用,设备将为客户端请求创建连接,并存储与重用池的连接。Citrix ADC 支持 HTTP、SSL 和 DataStream 连接类型的连接多路复用。
动态接收缓冲
这允许根据内存和网络条件动态调整接收缓冲区。
多路径TCP连接
客户端和Citrix ADC设备之间的多路径TCP (MPTCP)连接。Citrix ADC设备和后端服务器之间不支持MPTCP连接。MPTCP的 Citrix ADC 实现符合 RFC 6824 和 RFC 8684 标准,同时支持 MPTCP 版本 0 和 1。
您可以使用命令行界面查看MPTCP统计信息,例如活动的MPTCP连接和活动子流连接。
在命令提示窗口中,键入以下命令之一以显示MPTCP统计信息的摘要或详细摘要,或清除统计信息显示:
Stat MPTCP
Stat mptcp的细节
Clearstats基本
注意:
要建立MPTCP连接,客户端和Citrix ADC设备必须支持相同的MPTCP版本。如果您使用Citrix ADC设备作为服务器的MPTCP网关,则服务器不必支持MPTCP。当客户端启动新的MPTCP连接时,设备会从SYN数据包中的MP_CAPABALE选项识别客户端的MPTPC版本。如果客户端的版本高于设备支持的版本,则设备会在SYN-ACK数据包的MP_CAPABALE选项中显示其最高版本。然后,客户端回退到较低的版本,并在ack数据包的mp_capabale选项中发送版本号。如果该版本是可支持的,设备将继续MPTCP连接。否则,设备会回退到普通tcp。Citrix ADC设备不会启动子流(MP_JOIN)。设备期望客户端启动子流。
在MPTCP中支持额外的地址广告(add_addr)
在MPTCP部署中,如果您的虚拟服务器绑定了具有其他虚拟服务器IP地址的IP集,则附加地址通告(ADD_ADDR)功能会通告绑定到该IP集的虚拟服务器的IP地址。客户端可以向通告的IP地址发起更多MP-JOIN
子流。
关于MPTCP add_addr功能要记住的要点
- 作为
ADD_ADDR
选项的一部分,您最多可以发送10个IP地址。如果有10个以上的IP地址启用了mptcpAdvertise
参数,则在宣传10个IP地址之后,设备将忽略其余的IP地址。 - 如果将支持议员的子流创建到IP集中的一个IP地址而不是主虚拟服务器IP地址,则虚拟服务器IP地址如果为虚拟服务器IP地址启用了
mptcpAdvertise
参数,则会通告虚拟服务器IP地址
使用cli配置更多地址通告(add_addr)功能以通告更多VIP地址
您可以为IPv4和IPv6地址类型配置MPTCP ADD_ADDR
功能。一般来说,可以将多个IPv4和IPv6 IP附加到单个IP集,并且可以在任何IP地址子集上启用该参数。在ADD_ADDR功能中,只播发启用了 “MPtCPAsAsSENSise” 选项的 IP 地址,而忽略该 IP 集中的剩余 IP 地址。 完成以下步骤来配置该ADD_ADDR
功能:
- 添加IP集。
- 添加启用MPTCP广告的虚拟服务器IP (vip)类型的IP地址。
- 将IP地址与IP集绑定。
- 使用负载平衡虚拟服务器配置IP集。
添加IP集
在命令提示符下,键入:
增加ipset [-td ]
示例:
添加ipset ipset_1
在启用MPTCP广告的情况下添加虚拟服务器IP (vip)类型的IP地址
在命令类型中:
add ns ip @ [-mptcpAdvertise (YES | NO)] -type
示例:
add ns ip 10.10.10.10 255.255.255.255 -mptcpAdvertise YES -type VIP
将IP地址绑定到IP集
在命令提示符下,键入:
绑定ipset
示例:
绑定ipset ipset_1 10.10.10.10
将IP设置配置为负载平衡虚拟服务器
在命令提示符下,键入:
设置lb vserver [-ipset ]
示例:
设置lb vserver lb1 -ipset ipset_1
配置示例:
添加ipset ipset_1 Add ns ip 10.10.10.10 255.255.255.255 -mptcpAdvertise YES -type VIP绑定ipset ipset_1 10.10.10.10 set lb vserver lb1 -ipset ipset_1
使用add_addr功能配置广告外部IP地址
如果播发的IP地址归外部实体所有,并且Citrix ADC设备需要通告IP地址,则必须在禁用状态和ARP参数的情况下启用“mptCP广告“参数。
完成以下步骤以配置ADD_ADDR
用于宣传外部IP地址。
- 添加启用MPTCP广告的虚拟服务器IP (vip)类型的IP地址。
- 将IP地址与IP集绑定。
- 将IP集与负载平衡虚拟服务器绑定
在启用MPTCP通告的情况下添加虚拟服务器IP (vip)类型的外部IP地址
在命令提示符下,键入:
add ns ip @ [-mptcpAdvertise (YES | NO)] -type -state DISABLED -arp DISABLED
示例:
add ns ip 10.10.10.10 255.255.255.255 -mptcpAdvertise YES -type VIP -state DISABLED -arp DISABLED
将IP地址绑定到IP集
在命令提示符下,键入:
绑定ipset
示例:
绑定ipset ipset_1 10.10.10.10
将IP设置配置为负载平衡虚拟服务器
在命令提示符下,键入:
设置lb vserver [-ipset ]
示例:
设置lb vserver lb1 -ipset ipset_1
配置示例:
add ns ip 10.10.10.10 255.255.255.255 -mptcpAdvertise YES -type VIP state DISABLED -arp DISABLED bind ipset ipset_1 10.10.10.10 set lb vserver lb1 -ipset ipset_1
使用Citrix ADC GUI向启用了MPTCP的客户端播发IP地址
完成以下步骤,将IP地址通告给启用了MPTCP的客户端:
- 导航到系统>网络> IP地址。
- 在详细信息窗格中,单击添加。
- 在创建IP地址页面中,选中MPTCP播发复选框以设置参数。默认情况下,它处于禁用状态。
提取tcp / ip路径叠加选项并插入客户端ip HTTP标头
提取tcp / ip路径叠加并插入客户端-ip HTTP头。通过覆盖网络传输的数据通常使用连接终止或网络地址转换(NAT),其中源客户端的IP地址将丢失。为避免这种情况,Citrix ADC设备提取TCP / IP路径叠加选项,然后将源客户端的IP地址插入到HTTP标头中。使用标头中的IP地址,Web服务器可以识别建立连接的源客户端。提取的数据在TCP连接的生命周期内有效,因此,这可以防止下一跳主机再次解释该选项。此选项仅适用于已启用客户端-IP插入选项的Web服务。
TCP分段卸载
将TCP分段卸载到网卡。如果将选项设置为"自动",则如果支持网卡,tcp分段将卸载到网卡。
与客户端同步TCP握手的cookie
这用于抵抗syn洪水攻击。您可以启用或禁用与客户端进行TCP握手的SYNCOOKIE
机制。禁用SYNCOOKIE
可防止Citrix ADC设备上的SYN
攻击保护。
学习mss,为设备上配置的所有虚拟服务器启用mss学习
支持的TCP参数
下表提供了在Citrix ADC设备上配置的TCP参数及其默认值的列表。
参数 | 默认值 | 说明 |
---|---|---|
窗口管理 | ||
TCP延迟答复计时器 | 100 毫秒 | TCP延迟ack的超时时间(以毫秒为单位)。 |
TCP最低重传超时(rto)以毫秒为单位 | 1000 毫秒 | 最小重新传输超时(以毫秒为单位),以 10 毫秒的增量指定(如果除以 10,则值必须产生整数) |
启动保持活动状态探测前的连接空闲时间 | 900 秒 | 在空闲超时时默默地删除TCP建立的连接在空闲超时时建立的连接 |
TCP时间戳选项 | 已禁用 | 时间戳选项允许精确的RTT测量。启用或禁用TCP时间戳选项。 |
多路径TCP会话超时 | 0 秒 | MPTCP会话超时(以秒为单位)。如果未设置此值,则空闲。MPTCP会话在虚拟服务器的客户端空闲超时之后刷新。 |
在空闲超时时静默删除半关闭的连接 | 0 秒 | 在空闲超时时默默地丢弃TCP一半关闭的连接。 |
在空闲超时时默默删除已建立的连接 | 已禁用 | 在空闲超时时默默删除TCP建立的连接 |
内存管理 | ||
TCP缓冲区大小 | 131072 字节 | TCP缓冲区大小是Citrix ADC上的接收缓冲区大小。此缓冲区大小会公布到Citrix ADC的客户端和服务器,并控制其向Citrix ADC发送数据的能力。默认缓冲区大小为8k,通常在与内部服务器群交谈时可以安全地增加此大小。缓冲区大小也受 Citrix ADC 中实际应用层的影响,例如对于 SSL 终端节点情况,缓冲区大小设置为 40 K,对于压缩设置为 96 K。注意:必须设置缓冲区大小参数才能进行动态调整。 |
TCP发送缓冲区大小 | 8190 个字节 | TCP发送缓冲区大小 |
TCP动态接收缓冲 | 已禁用 | 启用或禁用动态接收缓冲。启用后,它允许根据内存和网络条件动态调整接收缓冲区。注意:必须设置缓冲区大小参数才能进行动态调整 |
TCP最大拥塞窗口(cnn) | 524288 个字节 | TCP最大拥塞窗口 |
窗口缩放状态 | 启用 | 启用或禁用窗口缩放。 |
窗口缩放因子 | 8 | 用于计算新窗口大小的因子。仅当启用窗口缩放时才需要此参数。 |
连接设置 | ||
保持活动状态探针 | 已禁用 | 定期发送TCP保持活动状态(ka)探测器以检查对等体是否仍在启动。 |
启动保持活动状态探测前的连接空闲时间 | 900 秒 | 在发送保持活动状态(ka)探测之前,连接处于空闲状态的持续时间(以秒为单位)。 |
保持活动状态探测间隔 | 75 秒 | 如果对等体没有响应,则在下一个保持活动状态(ka)探测之前的时间间隔(以秒为单位)。 |
断开连接之前要错过的最大保持活动状态探测器。 | 3. | 假设对等体关闭之前,未确认时要发送的保持活动状态(ka)探测器的数量。 |
RST窗口衰减(欺骗保护)。 | 已禁用 | 启用或禁用RST窗口衰减以防止欺骗。启用后,当序列号无效时,回复将使用纠正 ACK。 |
接受具有最后确认序列号的rst。 | 已启用 | |
数据传输 | ||
在推送数据包上立即确认 | 已启用 | 在收到带有push标志的TCP数据包时立即发送肯定确认(ack)。 |
每个MSS的最大数据包 | 0 | TCP数据段中允许的最大八位字节数 |
内格尔的算法 | 已禁用 | Nagle的算法与TCP传输中的小数据包问题作斗争。Telnet和其他实时引擎等应用程序需要将每次按键传递给另一端的应用程序通常会创建小数据包。纳格尔使用的算法,Citrix ADC可以缓冲这样的小数据包,并将它们发送在一起,以提高连接效率。此算法需要与Citrix ADC中的其他TCP优化技术一起使用。 |
突发中允许的最大TCP段 | 10海量存储系统(MSS)中 | 突发中允许的最大TCP数据段数 |
要排队的最大无序数据包 | 300 | 无序数据包队列的最大大小。值 0 表示没有限制 |
拥塞控制 | ||
TCP风味 | 立方 | |
初始拥塞窗口(cCNN)设置 | 4海量存储系统(MSS)中 | 指向服务器的TCP链路上可以未处理的TCP数据包数的初始最大上限 |
TCP显式拥塞通知(ecn) | 已禁用 | 显式拥塞通知(ecn)在不丢弃数据包的情况下提供网络拥塞的端到端通知。 |
TCP最大拥塞窗口(cnn) | 524288 个字节 | TCP维护拥塞窗口(cnn),限制了端到端可能在传输中的未确认数据包的总数。在TCP中,拥塞窗口是决定随时可以未完成的字节数的因素之一。拥塞窗口是阻止发送方和接收方之间的链路因流量过载而过载的一种手段。它的计算方法是估计链路上有多少拥堵。 |
TCP混合启动(hyStart) | 8 字节 | |
TCP最低重传超时(rto)以毫秒为单位 | 1000 | 以 10 毫秒为增量指定的最小重传超时(以毫秒为单位)(如果除以 10,则值必须产生整数)。 |
TCP dupack阈值 | 已禁用 | |
突发率控制 | 3. | TCP突发率控制已禁用/固定/动态。固定需要设置TCP费率 |
TCP费率 | 已禁用 | TCP连接有效负载发送速率(Kb/s) |
TCP速率最大队列 | 0 | 使用BurstrateControl时的最大连接队列大小(以字节为单位)。 |
MPTCP | ||
多路径TCP | 已禁用 | 多路径TCP (MPTCP)是常规TCP的一组扩展,用于提供多路径TCP服务,该服务使传输连接能够同时跨多条路径运行。 |
多路径TCP丢弃预先建立的子流上的数据 | 已禁用 | 启用或禁用静默删除预建子流中的数据。启用后,DSS 数据包将静默丢弃,而不是在预先建立的子流上接收数据时丢弃连接。 |
多路径TCP快速开放 | 已禁用 | 启用或禁用多路径TCP fastopen。启用后,在收到 SYN 握手的第三个答案之前,将接受 DSS 数据包。 |
多路径TCP会话超时 | 0 秒 | MPTCP会话超时(以秒为单位)。如果未设置此值,则在虚拟服务器的客户端空闲超时之后刷新空闲MPTCP会话。 |
安全性 | ||
Syn欺骗防护 | 已禁用 | 启用或禁用丢弃无效的syn数据包以防止欺骗。禁用后,在收到 SYN 数据包时重置已建立的连接。 |
TCP Syncookie | 已禁用 | 这用于抵抗syn洪水攻击。启用或禁用与客户端进行 TCP 握手的 SYNCOOKIE 机制。禁用 SYNCOOKIE 可防止 Citrix ADC 设备上的 SYN 攻击保护。 |
损失检测和恢复 | ||
复制选择性确认(dsack) | 已启用 | Citrix ADC设备使用重复选择性确认(DSACK)来确定是否错误地发送了重新传输。 |
转发rto恢复(frto) | 已启用 | 检测虚假的TCP重新传输超时。在重新传输由超时触发的第一个未确认的段后,TCP 发送方的算法会监视传入的确认,以确定超时是否是虚假的。然后,它决定是发送新的区段还是重新传输未确认的区段。该算法有效地有助于避免另一次不必要的重新传输,从而在虚假超时的情况下提高 TCP 性能。 |
TCP转发确认(fack) | 已启用 | 启用或禁用fack(向前确认)。 |
选择性确认(sack)状态 | 已启用 | TCP sack解决了多个数据包丢失的问题,这会降低整体吞吐容量。通过选择性确认,接收方可以将成功接收的所有区段通知发件人,从而使发件人只能重新传输丢失的区段。此技术有助于Citrix ADC提高总吞吐量并减少连接延迟。 |
每次重传的最大数据包数 | 1 | 允许Citrix ADC控制一次性要重新传输的数据包数。当Citrix ADC收到部分确认并且必须进行重新传输时,将考虑此设置。这不会影响基于rto的重新传输。 |
TCP延迟答复计时器 | 100 毫秒 | TCP延迟ack的超时时间(以毫秒为单位) |
TCO优化 | ||
TCP优化模式 | 透明的 | TCP优化模式透明度/终端 |
应用自适应TCP优化 | 已禁用 | 应用自适应TCP优化 |
TCP分段卸载 | 自动 | 将TCP分段卸载到网卡。如果设置为自动,则TCP分段将卸载到网卡(如果网卡支持)。 |
ACK聚合 | 已禁用 | 启用或禁用ack聚合 |
TCP时间等待(或time_WAit) | 40 秒 | 释放已关闭的TCP连接之前有时间过去 |
在RST上取消链接客户端和服务器 | 已禁用 | 当有未完成的数据要发送到另一端时,断开客户端和服务器连接的连接。 |
设置全局TCP参数
Citrix ADC设备允许您为适用于所有Citrix ADC服务和虚拟服务器的TCP参数指定值。这可以通过以下方式完成:
- 默认TCP配置文件
- 全局TCP命令
- TCP缓冲功能
注意:
自9.2版以后,设置ns tcpParam命令的
recvBuffSize
参数已被弃用。在以后的版本中,使用 set ns tcpProfile 命令的bufferSize
参数来设置缓冲区大小。如果升级到已弃用recvBuffSize
参数的版本,则该bufferSize
参数将设置为默认值。
默认TCP配置文件
名为nstcp_default_profile
的TCP配置文件用于指定在服务或虚拟服务器级别没有提供TCP配置时使用的TCP配置。
备注:
并非所有TCP参数都可以通过默认的TCP配置文件进行配置。某些设置必须使用全局TCP命令执行(请参阅下面的部分)。
默认配置文件不必明确绑定到服务或虚拟服务器。
配置默认TCP配置文件
使用命令行界面,在命令提示符处输入:
设置ns tcpProfile<!——NeedCopy >
在GUI上,导航到系统>配置文件,单击TCP配置文件并更新nstcp_default_profile。
全局TCP命令
可以用来配置全局TCP参数的另一种方法是全局TCP命令。除了一些唯一的参数之外,此命令还复制了一些可以使用TCP配置文件设置的参数。对这些重复参数所做的任何更新都会反映在默认TCP配置文件中的相应参数中。
例如,如果使用此方法更新了袋参数,则该值将反映在默认TCP配置文件(nstcp_default_profile)的袋参数中。
注意:
Citrix建议您仅对默认TCP配置文件中不可用的TCP参数使用此方法。
配置全局TCP命令
使用命令行界面,在命令提示符处输入:
设置ns tcpParam…——NeedCopy >
在GUI上,导航到"系统" > "设置"。单击更改TCP参数,然后更新所需的TCP参数。
TCP缓冲功能
Citrix ADC提供了一种名为TCP缓冲的功能,您可以使用该功能来指定TCP缓冲区大小。该功能可以在全局或在服务级别启用。
注意:
还可以在默认TCP配置文件中配置缓冲区大小。如果缓冲区大小在TCP缓冲功能和默认TCP配置文件中具有不同的值,则应用较大的值。
全局配置TCP缓冲功能
在命令提示符下输入:
启用ns模式TCPB
set ns tcpbufParam -size
-memLimit 在GUI上,导航到系统>设置,单击配置模式,然后选择TCP缓冲。
然后,导航到”系统“>”设置",单击"更改TCP参数”,指定缓冲区大小和内存使用限制的值。
设置服务或虚拟服务器特定的TCP参数
使用TCP配置文件,可以为服务和虚拟服务器指定TCP参数。您必须定义TCP配置文件(或使用内置TCP配置文件)并将该配置文件与适当的服务和虚拟服务器关联。
注意:
您还可以根据自己的要求修改默认配置文件的TCP参数。
您可以使用TCP缓冲功能指定的参数在服务级别指定TCP缓冲区大小。
使用命令行界面指定服务或虚拟服务器级别的TCP配置
在命令提示符处,执行以下操作:
配置TCP配置文件。
设置ns tcpProfile
…<!——NeedCopy > 将TCP配置文件绑定到服务或虚拟服务器。
设置service ....<!——NeedCopy >
示例:
> set service service1 -tcpProfileName profile1
将TCP配置文件绑定到虚拟服务器:
设置lb vserver ....<!——NeedCopy >
示例:
> set lbvserver lbvserver1 -tcpProfileName profile1
使用GUI指定服务或虚拟服务器级别的TCP配置
在GUI上,执行以下操作:
配置TCP配置文件。
导航到系统>配置文件>TCP配置文件,然后创建TCP配置文件。
将TCP配置文件绑定到服务或虚拟服务器。
导航到”流量管理“>”负载平衡“>”服务/虚拟服务器,然后创建TCP配置文件,该配置文件应绑定到服务或虚拟服务器。
内置TCP配置文件
为了方便配置,Citrix ADC提供了一些内置的TCP配置文件。查看以下内置配置文件,然后选择一个配置文件并按原样使用,或者对其进行修改以满足您的要求。您可以将这些配置文件绑定到所需的服务或虚拟服务器。
内置配置文件 | 说明 |
---|---|
nstcp_default_profile | 表示设备上的默认全局TCP设置。 |
nstcp_default_tcp_lan | 对于后端服务器连接非常有用,这些服务器与设备位于同一局域网上。 |
nstcp_default_WAN | 对于wan部署很有用。 |
nstcp_default_tcp_lan_thin_stream | 类似于nstcp_default_tcp_lan配置文件。但是,这些设置是针对小型数据包流进行了调整的。 |
nstcp_default_tcp_interactive_stream | 类似于nstcp_default_tcp_lan配置文件。但是,它的延迟ack计时器和推送数据包设置上的确认减少。 |
nstcp_default_tcp_lfp | 对于客户端的长胖管网络(wan)非常有用。长胖管网络具有长时间的延迟、高带宽线路,最小的数据包丢失。 |
nstcp_default_tcp_lfp_thin_stream | 类似于nstcp_default_tcp_lfp配置文件。但是,这些设置是针对小型数据包流进行了调整的。 |
nstcp_default_tcp_lnp | 对于客户端的长窄管网络(wan)很有用。长的窄管网络偶尔会有相当大的数据包丢失。 |
nstcp_default_tcp_lnp_thin_stream | 类似于nstcp_default_tcp_cp_lnp配置文件。但是,这些设置是针对小型数据包流进行了调整的。 |
nstcp_internal_apps | 对于设备上的内部应用程序(例如,gslb站点同步)非常有用。其中包含针对所需应用程序的调整窗口缩放和sack选项。此配置文件不应绑定到内部应用程序以外的其他应用程序。 |
nstcp_default_Mobile_profile | 对移动设备很有用。 |
nstcp_default_XA_XD_profile | 对于Citrix虚拟应用程序和桌面部署非常有用。 |
示例TCP配置
用于配置以下内容的示例命令行界面示例:
防御TCP免受欺骗攻击
启用Citrix ADC以防御TCP免受欺骗攻击。默认情况下,“rstWindowAttenuation”参数处于禁用状态。启用此参数是为了保护设备免受欺骗。如果启用,它会以纠正确认(ack)来回复无效的序列号。可能的值为"已启用","已禁用"。
其中,RST
窗口衰减参数可保护设备免受欺骗。启用后,当序列号无效时,使用纠正 ACK 进行回复。
> set ns tcpProfile profile1 -rstWindowAttenuate ENABLED -spoofSynDrop ENABLED Done > set lbvserver lbvserver1 -tcpProfileName profile1 Done
显式拥堵通知(ecn)
在所需的TCP配置文件上启用ECN
> set ns tcpProfile profile1 -ECN ENABLED Done > set lbvserver lbvserver1 -tcpProfileName profile1 Done
选择性确认(袋子)
在所需的TCP配置文件上启用sack。
> set ns tcpProfile profile1 -SACK ENABLED Done > set lbvserver lbvserver1 -tcpProfileName profile1 Done
转发确认(fack)
在所需的TCP配置文件上启用fack。
> set ns tcpProfile profile1 -FACK ENABLED > set lbvserver lbvserver1 -tcpProfileName profile1
窗口缩放(ws)
启用窗口缩放并在所需的TCP配置文件上设置窗口缩放因子。
set ns tcpProfile profile1 -WS ENABLED -WSVal 9 Done set lbvserver lbvserver1 -tcpProfileName profile1 Done
最大分段大小(mss)
更新MSS相关的配置。
> set ns tcpProfile profile1 - mss 1460 - maxPktPerMss 512 Done > set lbvserver lbvserver1 - tcpprofilename profile1 Done
Citrix ADC学习虚拟服务器的MSS
使Citrix ADC能够了解VSS并更新其他相关配置。
> set ns tcpParam -learnVsvrMSS ENABLED -mssLearnInterval 180 -mssLearnDelay 3600 Done
TCP保持活动状态
启用TCP保持活动状态并更新其他相关配置。
> set ns tcpProfile profile1 -KA ENABLED -KaprobeUpdateLastactivity ENABLED -KAconnIdleTime 900 -KAmaxProbes 3 -KaprobeInterval 75
完成
>配置lbvserver lbvserver1 -tcpProfileName profile1
完成
缓冲区大小-使用TCP配置文件
指定缓冲区大小。
>设置ns tcpProfile profile1 -bufferSize 8190
完成
>配置lbvserver lbvserver1 -tcpProfileName profile1
完成
缓冲区大小-使用TCP缓冲功能
启用TCP缓冲功能(全局或服务),然后指定缓冲区大小和内存限制。
>启用ns特性TCPB
完成
>设置ns tcpbufParam -size 64 -memLimit 64
完成
MPTCP
启用mptcp,然后设置可选的mptcp配置。
>设置ns tcpProfile profile1 -mptcp ENABLED
完成
>设置ns tcpProfile profile1 -mptcpDropDataOnPreEstSF ENABLED -mptcpFastOpen ENABLED -mptcpSessionTimeout 7200
完成
> set ns tcpparam -mptcpConCloseOnPassiveSF ENABLED -mptcpChecksum ENABLED -mptcpSFtimeout 0 -mptcpSFReplaceTimeout 10
-mptcpMaxSF 4 -mptcpMaxPendingSF 4 -mptcpPendingJoinThreshold 0 -mptcpRTOsToSwitchSF 2 -mptcpUseBackupOnDSS ENABLED
完成
拥塞控制
设置所需的TCP拥塞控制算法。
设置ns tcpProfile profile1 -flavor Westwood
完成
>配置lbvserver lbvserver1 -tcpProfileName profile1
完成
动态接收缓冲
在所需的TCP配置文件上启用动态接收缓冲。
>设置ns tcpProfile profile1 -dynamicReceiveBuffering ENABLED
完成
>配置lbvserver lbvserver1 -tcpProfileName profile1
完成
在多路径TCP (mptcp)中支持TCP快速打开(tfo)
Citrix ADC设备现在支持TCP快速开放(TFO)机制,用于建立多路径TCP (MPTCP)连接并加快数据传输速度。该机制允许在 SYN 和 SYN-ACK 数据包中初始 MPTCP 连接握手期间传输子流数据,并允许接收节点在 MPTCP 连接建立过程中使用数据。
有关更多信息,请参阅TCP快速打开主题。
支持MPTCP的可变TFO Cookie大小
Citrix ADC设备现在可以配置TCP配置文件中最小大小为4字节且最大大小为16个字节的可变长度TCP快速开放(TFO)饼干。通过这样做,设备可以使用SYN-ACK数据包中配置的TFO cookie大小响应客户端。
使用命令行界面在TCP配置文件中配置TCP快速开放(TFO) cookie
在命令提示符下,键入:
set tcpProfile nstcp_default_profile -tcpFastOpenCookieSize
示例
set tcpProfile nstcp_default_profile -tcpFastOpenCookieSize
使用GUI在TCP配置文件中配置TCP快速开放(TFO) cookie
- 导航到配置>系统> 配置文件。
- 在详细信息窗格中,转到TCP配置文件选项卡并选择TCP配置文件。
- 在配置TCP配置文件页面中,设置TCP快速打开Cookie的大小。
- 点击确定并完成。
同步Cookie超时间间隔
默认情况下,tcp配置文件中启用该TCPSyncookie
参数,以提供针对syn攻击的强大(rfc 4987)基于rfc 4987的保护。如果您需要容纳与此保护不兼容的自定义TCP客户端,但仍想确保在受到攻击时有回退,则可以通过在autosyncookietimeout
参数确定的时间内自动激活SYNCookie
行为来synAttackDetection
处理此问题。
要使用命令行界面配置最大syn ack重传阈值,请执行以下操作:
在命令提示符下,键入:
set ns tcpparam [-maxSynAckRetx ] set ns tcpparam [-maxSynAckRetx 150]
使用命令行界面配置自动SYN cookie超时间间隔
在命令提示符下,键入:
设置ns tcpparam [-autosyncookietimeout
设置ns tcpparam [-autosyncookietimeout 90]
解除连接客户端和服务器连接
启用后,当有未完成的数据要发送到另一端时,该参数会断开客户端和服务器连接的链接。默认情况下,该参数处于禁用状态。
set ns tcpparam -delinkClientServerOnRST ENABLED Done