Citrix ADC

负载均衡远程桌面协议服务器

远程桌面协议(RDP)是一种支持多通道的协议,它允许使用单独的虚拟通道来传输表示数据、串行设备通信、许可信息、高度加密的数据(键盘和鼠标活动)等等。

RDP用于向网络上的另一台计算机提供GUI。RDP与Windows终端服务器一起使用,即使在低带宽连接上,也能提供几乎实时传输鼠标移动和按键的快速访问。

当部署多个终端服务器以提供远程桌面服务时,Citrix ADC设备提供终端服务器的负载平衡(Windows 2003和2008 Server Enterprise edition)。有时,远程访问应用程序的用户可能希望让应用程序在远程计算机上运行,但关闭本地计算机。因此,用户将关闭本地应用程序,而无需注销远程应用程序。重新连接到远程计算机后,用户必须能够继续使用远程应用程序。为了提供此功能,Citrix ADC RDP实现遵守终端服务会话目录或代理设置的路由令牌(cookie),以便客户端可以重新连接到之前连接的同一终端服务器。会话目录在Windows 2003终端服务器上实现,在Windows 2008终端服务器上称为代理。

当客户端和负载均衡虚拟服务器之间建立TCP连接时,Citrix ADC应用指定的负载均衡方法并将请求转发到其中一个终端服务器。终端服务器检查会话目录,以确定客户端是否在域中的任何其他终端服务器上运行会话。

如果任何其他终端服务器上没有活动会话,则终端服务器通过为客户端请求提供服务来响应,Citrix ADC设备将响应转发给客户端。

如果任何其他终端服务器上存在活动会话,接收请求的终端服务器将插入一个cookie(称为路由令牌),其中包含活动会话的详细信息,并将数据包返回给Citrix ADC设备,后者将数据包返回给客户端。服务器关闭与客户端的连接。当客户端重新尝试连接时,Citrix ADC读取cookie信息,并将数据包转发到客户端有活动会话的终端服务器。

客户端机器上的用户将体验到服务的延续,无需采取任何特定操作。

注意:Windows会话目录特性需要Windows XP首次发布的远程桌面客户端。如果与Windows 2000或Windows NT 4.0 Terminal Server客户端的会话断开,客户端重新连接时,将根据负载均衡算法选择与之建立连接的服务器。

RDP负载均衡如下图所示。

图1。RDP负载均衡拓扑

RDP拓扑

请注意

  • 配置RDP服务时,通过路由令牌自动维护持久化。您不需要显式地启用持久性。
  • Citrix ADC设备仅支持基于ip的cookie。
  • 当前版本的Windows服务器不支持nsrdp.pl脚本。

确保在后端终端服务器上清除已断开的RDP会话,避免RDP会话断开而不注销时在两台终端服务器之间震荡。有关更多信息,请参见https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc758177 (v = ws.10) # BKMK_2

在添加RDP服务时,默认情况下,Citrix ADC添加TCP类型的监视器并将其绑定到服务。默认监控器是一个简单的TCP监控器,用于检查RDP服务指定的服务器上的3389端口上是否存在监听进程。如果在3389有监听进程,Citrix ADC将此服务标记为UP,如果没有监听进程,则将该服务标记为DOWN。

为了更有效地监视RDP服务,除了默认监控器之外,还可以配置用于RDP协议的脚本监控器。在配置脚本监控器时,Citrix ADC打开到指定服务器的TCP连接并发送RDP包。监视器仅在从物理服务器接收到连接确认时才将服务标记为UP。因此,从脚本监控器,Citrix ADC可以知道RDP服务是否准备好为请求提供服务。

监视器是一个用户类型的监视器,脚本位于Citrix ADC的/nsconfig/monitors/nsrdp.pl。当您配置用户监视器时,Citrix ADC会自动运行脚本。要配置脚本监控器,需要添加监控器并将其绑定到RDP服务。

若要配置RDP负载均衡,需要创建RDP类型的服务,并将其绑定到RDP虚拟服务器上。

通过命令行配置RDP负载均衡业务

在命令提示符下,键入以下命令来配置RDP负载均衡设置并验证配置:

add service @    

注意:重复执行以上命令可添加更多服务。

例子

> add service ser1 10.102.27.182 RDP 3389 Done > add service ser2 10.102.27.183 RDP 3389 Done >show service ser1 ser127.182:3389) - RDP State: UP…Server Name: 10.102.27.182 Server ID: 0 Monitor Threshold: 0 Down State flush: ENABLED…1)Monitor Name: tcp-default State: UP Weight: 1…Response Time: 4.152 milliseconds Done 

使用配置实用工具配置RDP负载均衡业务

导航到流量管理>负载均衡>业务,并创建RDP类型的服务。

通过命令行配置RDP负载均衡虚拟服务器

在命令提示符下,输入以下命令配置RDP负载均衡虚拟服务器并验证配置:

add lb vserver @    bind lb vserver @ 将所有需要负载均衡的RDP服务绑定到虚拟服务器。<!——NeedCopy >

例子:

本例中有两个RDP服务绑定到RDP虚拟服务器。

add lb vs v1 rdP 10.102.27.186 3389 Done bind lb vs v1 ser1 service "ser1" bound bind lb vs v1 ser2 service "ser2" bound Done sh lb vs v1 v1 (10.102.27.186:3389) - rdP Type: ADDRESS State: UP…of Bound Services: 2 (Total) 2 (Active) Configured Method: LEASTCONNECTION Current Method: Round Robin, Reason: A new service is Bound Mode: IP Persistence: NONE L2Conn: OFF 1) ser1 (10.102.27.182: 3389) - RDPState: UP Weight: 1 2) ser2 (10.102.27.183: 3389) - RDPState: UP Weight: 1 Done 

使用配置实用工具配置RDP负载均衡虚拟服务器

导航到流量管理>负载均衡>虚拟服务器,创建RDP类型的虚拟服务器,并将RDP服务绑定到该虚拟服务器上。

使用命令行接口为RDP服务配置脚本监控器

在命令提示符下,输入以下命令:

add lb monitor  USER -scriptName nsrdp.pl bind lb monitor   

例子:

add service ser1 10.102.27.182 RDP 3389 add lb monitor RDP_MON USER -scriptName nsrdp.pl bind lb monitor RDP_MON ser1 

使用配置实用程序为RDP服务配置脚本监控器

  1. 导航到流量管理>负载均衡>监控,并创建一个USER类型的监视器。
  2. 在“特殊参数”中,在“脚本名称”列表中选择“nsrdp.pl”,然后将该监视器绑定到RDP服务。