Citrix ADC

TCP优化配置

在配置TCP优化之前,请在Citrix ADC设备上应用以下基本配置设置:

初始配置:

enable ns feature LB IPv6PT enable ns mode FR L3 USIP MBF Edge USNIP PMTUD disable ns feature SP disable ns mode TCPB set LB parameter -preferDirectRoute NO set LB parameter -vServerSpecificMac ENABLED set l4param -l2ConnMethod Vlan set rsskeytype -rsstype SYMMETRIC set ns param -useproxyport DISABLED 

注意

如果更改rsskeytype系统参数,请重新启动Citrix ADC设备。

TCP终止

Citrix ADC T1要应用TCP优化,首先需要终止传入的TCP流量。为,此应创建一个通配符TCP虚拟服务器并配置为拦截入口流量,然后将其转发到互联网路由器。

静态或动态路由环境

对于具有静态或动态路由的环境,虚拟服务器可以依靠路由表信息将数据包转发到互联网路由器。默认路由必须指向互联网路由器,并且必须将客户端子网的条目路由到无线路由器:

示例:

add lb vserver vsrv-wireless TCP * * -persistenceType NONE -Listenpolicy "CLIENT.VLAN.ID.EQ(100) && SYS.VSERVER("vsrv-wireless").STATE.EQ(UP)"-m IP -cltTimeout 9000添加路由0.0.0.0 0.0.0.0 192.168.2.1添加路由10.0.0.0 255.0.0.0 192.168.1.1 

Vlan到Vlan(策略路由)环境

在某些客户环境中,订阅者流量被分割为多个流,并且需要根据传入流量参数转发到不同的路由器。基于策略的路由(PBR)可用于基于传入数据包参数(如VLAN, MAC地址,接口,源IP、源端口,目标IP地址和目标端口)路由数据包。

本地化后的图片

示例:

add lb vserver vsrv -vlan -wireless TCP * * -m IP -l2Conn ON -listenpolicy "CLIENT.VLAN.ID.EQ(100) || CLIENT.VLAN.ID.EQ(101) || CLIENT.VLAN.ID.EQ(102)" add ns策略br pbr-vlan100- vlan200 ALLOW -vlan100 -nexthop 172.16.200.1 add ns策略br pbr-vlan101-to-vlan201 ALLOW -vlan101 -nexthop 172.16.201.1 add ns策略br pbr-vlan102- vlan202 ALLOW -vlan102 -nexthop 172.16.202.1 

使用基于策略的路由来路由TCP优化的流量是在版本11.1 50.10中添加的一项新功能。对于以前的版本,每个VLAN具有多个“模式MAC”虚拟服务器实体是多VLAN环境的替代解决方案。每个虚拟服务器都有一个绑定服务,表示特定流的互联网路由器。

示例:

添加服务器internet_router_1 172.16.200.1添加服务器internet_router_2 172.16.201.1添加服务器internet_router_3 172.16.202.1添加服务svc-internet-1 internet_router_1 TCP *切实是的-useproxyport不添加服务svc-internet-2 internet_router_2 TCP *切实是的-useproxyport不添加服务svc-internet-3 internet_router_3 TCP *切实是的-useproxyport不绑定服务svc-internet-1 -monitorName arp绑定服务svc-internet-2 -monitorName arp绑定服务svc-internet-3 -monitorName arp添加lb vserver vsrv-wireless-1 TCP * * -Listenpolicy "CLIENT.VLAN.ID.EQ(100) && SYS.VSERVER("vsrv-wireless-1").STATE.EQ(UP)"-m MAC -l2Conn ON add lb vserver vsrv-wireless-2 TCP * * -Listenpolicy "CLIENT.VLAN.ID.EQ(101) && SYS.VSERVER("vsrv-wireless-2").STATE.EQ(UP)"-m MAC -l2Conn ON add lb vserver vsrv-wireless-3 TCP * * -Listenpolicy "CLIENT.VLAN.ID.EQ(102) && SYS.VSERVER("vsrv-wireless-3").STATE.EQ(UP)"-m MAC -l2Conn ON bind lb vserver vsrv-wireless-1 svc-internet-1 bind lb vserver vsrv-wireless-2 svc-internet-2 bind lb vserver vsrv-wireless-3 svc-internet-3 

注意:虚拟服务器模式是mac,与之前的示例相比,它是模式ip。当我们有服务绑定到虚拟服务器时,需要这样做才能保留目标IP信息。此外、额外的策略路由配置需要路由未优化的流量。

TCP优化

开箱即用的Citrix ADC TCP终止配置为TCP直通功能。TCP直通本质上意味着Citrix ADC T1可以透明地拦截客户端——服务器TCP流,但不保留单独的客户端/服务器缓冲区,也不应用任何优化技术。

要启用TCP优化,一个名为nstcpprofile的TCP配置文件用于指定TCP配置,如果在服务或虚拟服务器级别没有提供TCP配置,则该配置文件应按以下方式进行修改:

命令:

add ns tcpProfile nstcpprofile -WS ENABLED -SACK ENABLED -WSVal 8 -mss 1460 -maxBurst 30 -initialCwnd 16 -oooQSize 15000 -minRTO 800 -bufferSize 4000000 -flavor BIC -dynamicReceiveBuffering ENABLED -KA ENABLED -sendBuffsize 4000000 - rstwindowattenate ENABLED -spoofSynDrop ENABLED -ecn ENABLED -frto ENABLED -maxcwnd 1000000 -fack ENABLED -rstMaxAck ENABLED -tcpmode ENDPOINT 

注意:如果没有明确创建并绑定到虚拟服务器和服务的任何配置文件,则默认情况下将绑定配置文件nstcp_default ult_profile。

在需要多个TCP配置文件的情况下,可以创建额外的TCP配置文件并与相应的虚拟服务器关联

命令:

add ns tcpProfile custom_profile -WS ENABLED -SACK ENABLED -WSVal 8 -mss 1460 -maxBurst 30 -initialCwnd 16 -oooQSize 15000 -minRTO 800 -bufferSize 4000000 -flavor BIC -dynamicReceiveBuffering ENABLED -KA ENABLED -sendBuffsize 4000000 -rstWindowAttenuate ENABLED -spoofSynDrop ENABLED -ecn ENABLED -frto ENABLED -maxcwnd 1000000 -fack ENABLED -rstMaxAck ENABLED -tcpmode ENDPOINT set lb vserver vsrv-wireless -tcpProfileName custom_profile 

注意:对于具有虚拟服务器-m MAC和服务的部署,应将相同的配置文件与服务关联。

set service svc-internet -tcpProfileName custom_profile 

TCP优化功能

Citrix ADC设备的大多数相关TCP优化功能都通过相应的TCP配置文件公开。创建TCP配置文件时应考虑的典型cli参数如下:

  1. 窗口缩放(ws): tcp窗口缩放允许将tcp接收窗口大小增加到65535字节以上。它有助于提高TCP的整体性能,特别是在高带宽和长延迟网络中。它有助于减少延迟和缩短TCP的响应时间。
  2. 选择性确认(sak): tcp sak解决了多个数据包丢失的问题,从而降低了总吞吐量。通过选择性确认,接收者可以通知发送者成功接收的所有段,使发送者只能重新传输丢失的段。此技术有助于t1提高总吞吐量并减少连接延迟。
  3. 窗口缩放因子(WSVal):用于计算新窗口大小的因子。它必须配置一个较高的值,以允许ns播发窗口至少等于缓冲区大小。
  4. 最大段大小(mss):单个TCP段的mss。此值取决于中间路由器和最终客户端上的mtu设置。一个值1460对应于一个1500的mtu。
  5. 最大突发:突发中允许的最大TCP段数。
  6. 初始拥塞窗口大小(InitialCWnd): tcp初始拥塞窗口大小决定在事务开始时可以处于未完成状态的字节数。它使t1能够发送这么多的字节,而不会打扰电线上的拥塞。
  7. 最大OOO数据包队列大小(OOQsize): tcp维护不顺序队列,以保留ooo数据包在tcp通信中。如果队列大小为长,只要数据包需要保留在运行时内存中,则此设置会影响系统内存。因此,需要根据网络类型和应用特征来保持优化水平。
  8. 最小RTO (MinRTO):基于内部实现逻辑,根据每个接收的ack计算TCP重新传输超时。默认重新传输超时发生在 1 秒开始时,可以使用此设置进行调整。对于这些数据包的第二次重新传输RTO将由N * 2计算,然后N * 4 N * 8…一直持续到最后一次重新传输尝试。
  9. 缓冲区尺寸/SendBuffSize:这些数据指t1可以从服务器和缓冲区内部接收的最大数据量,而无需发送到客户端。它们应设置为大于底层传输通道的带宽延迟积(至少双倍)的值。
  10. 味道:这是指TCP拥塞控制算法。有效值为默认值,BIC, CUBIC, Westwood和Nile。
  11. 态接收缓冲:允许根据内存和网络条件动态调整接收缓冲区。它将尽可能地填充缓冲区,以保持客户端的下载管道满,而不是填充,通过从服务器提前读取固定大小的缓冲区,后者是在TCP配置文件中指定的,通常基于2 * BDP等标准,用于连接。Citrix ADC T1监视客户端的网络条件,并估计应从服务器提前读取的数量。
  12. 保持活动状态(ka):发送定期TCP保持活动状态(ka)探测,以检查对等状态是否仍在运行状态。
  13. RSTWindows衰减:保护TCP免受欺骗攻击。当序列号无效时,它将使用纠正ack进行回复。
  14. RstMaxack:启用或禁用接受窗外但回显最高ack序列号的rst。
  15. 欺骗SynDrop:删除无效SYN数据包以防止欺骗。
  16. 显式拥塞通知(ecn):它向数据的发送者发送网络拥塞状态的通知,并采取纠正措施纠正数据拥塞或数据损坏。
  17. 前向rto恢复:在发生虚假重传输的情况下,拥塞控制配置将恢复到其原始状态。
  18. TCP最大拥塞窗口(maxcwnd): tcp最大拥塞窗口大小是用户可配置的。
  19. 转发确认(fack):通过显式测量网络中未完成的数据字节总数,并帮助发件人(T1或客户端)控制重新传输超时期间注入到网络的数据量,避免TCP拥堵。
  20. tcpmode:特定配置文件的TCP优化模式。有两种TCP优化模式-透明和端点。
  • 端点。在此模式下,设备分别管理客户端和服务器连接。
  • 透明。在透明模式下,客户端需要直接访问服务器,而不需要干预虚拟服务器。服务器IP地址必须是公共的,因为客户端需要能够访问这些服务器。在下图显示的示例中,NetScaler设备位于客户端与服务器之间,因此流量必须经由此设备。

静默地删除空闲连接

在电信网络中,Citrix ADC设备的TCP连接中将近50%处于空闲状态,并且设备会发送RST数据包来关闭这些连接。通过无线电通道发送的数据包会不必要地激活这些通道,从而导致大量消息,从而导致设备生成大量服务拒绝消息。默认的TCP配置文件现在包括DlophalfClodConnonNO超时和DropestconNO超时参数,默认情况下这些参数是禁用的。如果您启用这两个功能,则无论是半关闭连接还是已建立的连接都不会导致在连接超时时将RST数据包发送到客户端。设备只是断开连接。

set ns tcpProfile nstcpprofile -DropHalfClosedConnOnTimeout ENABLED 
TCP优化配置