使用直接工作负载连接优化到工作区的连接
通过Citrix Cloud中的直接工作负载连接,您可以优化到工作空间中的应用程序和桌面的内部流量,从而使HDX会话更快。一般情况下,内网用户和外网用户都通过外部网关接入vda。此网关可能位于您组织中的本地,也可能作为Citrix的服务提供,并添加到Citrix Cloud中的资源位置。Direct Workload Connection允许内部用户绕过网关直接连接到vda,从而减少内部网络流量的延迟。
要设置Direct Workload Connection,需要与客户机在环境中启动应用程序和桌面的位置相对应的网络位置。使用网络位置服务(NLS)为这些客户端所在的每个办公位置添加一个公共地址。配置网络位置有两个选项:
- 使用网络位置菜单选项在Citrix云。
- 使用一个PowerShell模块Citrix提供的。
网络位置对应于内部用户连接的网络的公共IP范围,例如您的办公室或分支机构位置。Citrix Cloud使用公共IP地址来确定用于启动虚拟应用程序或桌面的网络是公司内部网络还是外部网络。如果用户从内部网络连接,Citrix Cloud将连接直接路由到VDA,绕过Citrix Gateway。如果用户从外部连接,Citrix Cloud将通过Citrix Gateway路由他们,然后通过Citrix Cloud Connector将会话流量定向到内部网络中的VDA。如果使用Citrix Gateway服务对接协议启用时,Citrix Cloud将外部用户通过Gateway服务路由到内部网络中的VDA。漫游客户端(如笔记本电脑)可能使用这些网络路由中的任何一种,这取决于客户端在启动时是在公司网络内部还是外部。
重要的是:
如果您的环境包括Citrix DaaS Standard for Azure和本地vda,配置直接工作负载连接将导致从内部网络启动失败。
远程浏览器隔离、Citrix Virtual Apps Essentials和Citrix Virtual desktop Essentials资源启动始终通过网关路由。这些启动不会从配置直接工作负载连接中获得性能改进。
需求
网络需求
- 企业网络和客户Wi-Fi网络必须有独立的公网IP地址。如果企业网络和客户网络共享公共IP地址,则客户网络上的用户无法启动DaaS会话。
- 使用内部用户连接的网络的公共IP地址范围。这些网络中的内部用户必须与vda有直接连接。否则,启动虚拟资源会失败,因为Workspace试图将内部用户直接路由到VDA,这是不可能的。
- 虽然vda通常位于本地网络中,但您也可以使用托管在公共云(如Microsoft Azure)中的vda。客户端启动必须有一个网络路由来联系vda,而不会被防火墙阻塞。这需要从本地网络到vda所在的虚拟网络的VPN隧道。
TLS需求
在配置网络位置时,必须在PowerShell中启用TLS 1.2。要强制PowerShell使用TLS 1.2,请在使用PowerShell模块之前使用以下命令:
【净。ServicePointManager]::SecurityProtocol = [Net. Net.]SecurityProtocolType]:: Tls12
工作空间的需求
- 您在Citrix Cloud中配置了一个工作区。
- 已启用Citrix DaaS工作区配置>服务集成.
为HTML5连接的工作区应用启用TLS
如果您的订阅者使用思杰工作区的HTML5应用程序来启动应用程序和桌面,思杰建议您在内部网络的vda上配置TLS。将您的vda配置为使用TLS连接,以确保可以直接启动到vda。如果vda没有启用TLS,当用户使用Citrix Workspace应用程序进行HTML5时,应用程序和桌面启动必须通过网关路由。使用桌面查看器启动不受影响。有关使用TLS保护直接VDA连接的详细信息,请参见CTX134123在Citrix支持知识中心。
Citrix云网络位置配置
通过Citrix Cloud进行的直接工作负载连接配置包括使用内部用户连接的每个分支位置的公共IP地址范围创建网络位置。
创建一个网络位置
- 在Citrix Cloud控制台中,导航到网络位置从主菜单。
- 选择添加网络位置按钮在右上角。
- 输入网络位置名称、位置的公网IP地址范围和位置标签。
- 对要添加的每个新网络位置重复这些步骤。
修改或删除网络位置
- 在Citrix Cloud控制台中,导航到网络位置从主菜单。
- 选择要修改或删除的网络位置旁边的椭圆,然后:
- 选择编辑修改网络位置,然后保存您的更改,以看到他们在网络位置页面;或
- 选择删除删除网络位置。在删除网络位置之前,会要求您确认此决定。您无法撤消此操作。
PowerShell网络位置配置
您可以使用PowerShell脚本来配置Direct Workload Connection,而不是使用Citrix Cloud管理控制台界面。使用PowerShell配置直接工作负载连接包括以下任务:
- 确定内部用户连接的每个分支位置的公共IP地址范围。
- 下载PowerShell模块.
- 创建一个安全的API客户机在Citrix Cloud中记录客户端ID和秘密。
- 导入PowerShell模块并使用API客户端详细信息连接到网络位置服务(NLS)。
- 使用之前确定的公共IP地址范围为每个分支位置创建NLS站点。对于来自您指定的内部网络位置的任何启动,将自动启用Direct Workload Connection。
- 从内部网络上的设备启动应用程序或桌面,并验证连接是否直接连接到VDA,绕过网关。有关更多信息,请参见ICA文件日志在本文中。
下载PowerShell模块
在设置网络位置之前,下载citrix提供的PowerShell模块(nls.psm1)来自Citrix GitHub存储库。使用此模块,您可以根据需要为vda设置尽可能多的网络位置。
- 在浏览器中,转到https://github.com/citrix/sample-scripts/blob/master/workspace/nls.psm1.
- 新闻ALT同时,单击生按钮。
- 在计算机上选择一个位置,然后单击保存.
所需的配置详细信息
要设置网络位置,您需要以下必需的信息:
- Citrix Cloud安全客户端客户ID、客户端ID和客户端机密。要获取这些值,请参见创建安全客户机在本文中。
- 内部用户所连接的网络的公共IP地址范围。有关这些公网IP地址范围的详细信息,请参见需求在本文中。
创建安全客户机
- 登录到Citrix Cloud
https://citrix.cloud.com
. - 从Citrix Cloud菜单中选择身份和访问管理然后选择API访问.
- 在安全客户端tab,注意你的客户ID。
- 为客户端输入一个名称,然后选择创建客户端.
- 复制客户端ID和客户端秘密。
配置网络位置
- 打开PowerShell命令窗口,并导航到保存PowerShell模块的目录。
- 导入模块:
Import-Module \ nls。psm1 force
- 使用安全客户端信息设置所需的变量创建安全客户机:
$clientId = "YourSecureClientID"
$customer = "YourCustomerID"
$clientSecret = "YourSecureClientSecret"
使用安全客户端凭证连接到网络位置服务:
Connect-NLS -clientId $clientId -clientSecret $clientSecret -customer $customer
创建一个网络位置,将参数值替换为内部用户直接连接的内部网络的值:
New-NLSSite name "YourSiteName" -tags @("YourTags") -ipv4Ranges @(" publicicipsofyournetworksites ") -经度12.3456 -纬度12.3456 -internal $True
如果需要指定单个IP地址,不指定IP地址范围,请使用“add”/ 32到IP地址的结束。例如:
New-NLSSite name "YourSiteName" -tags @("YourTags") -ipv4Ranges @(" publicicipofyournetworksite /32") -经度12.3456 -纬度12.3456 -internal $True
重要的是:
当使用
New-NLSSite
命令时,每个参数至少包含一个值。如果运行这个命令而不带任何命令行参数,PowerShell会提示您为每个参数输入适当的值,每次输入一个。属性的值时标签
参数,输入每个标签值后按ENTER。输入完标记后,再次按ENTER继续输入下一个参数。的内部
property是一个强制的布尔属性,有可能的值:真正的美元
或美元的假
通过PowerShell映射到UI。例如,(UI)网络内部-> (PowerShell) -内部=$True
.创建网络位置成功后,命令窗口将显示网络位置的详细信息。
- 对用户正在连接的所有网络位置重复步骤5。
- 执行命令
Get-NLSSite
返回已配置NLS的所有站点的列表,并验证它们的详细信息是否正确。
修改网络位置
更改已存在的网络位置。
- 在PowerShell命令窗口中,列出所有现有的网络位置:
Get-NLSSite
要修改特定网络位置的IP范围,请输入
(Get-NLSSite) [N] | Set-NLSSite -ipv4Ranges @(“1.2.3.4/32”、“4.3.2.1/32”)
在哪里
[N]
该数字是否对应于列表中的位置(从0开始)和“1.2.3.4/32”、“4.3.2.1/32”
是要使用的逗号分隔的IP范围。例如,要修改第一个列出的位置,键入以下命令:(Get-NLSSite) [0] | Set-NLSSite -ipv4Ranges @(“98.0.0.1/32”、“141.43.0.0/24”)
移除网络位置
删除不再使用的网络位置:
- 在PowerShell命令窗口中,列出所有现有的网络位置:
Get-NLSSite
- 要删除所有网络位置,输入
Get-NLSSite | Remove-NLSSite
- 要删除特定的网络位置,输入
(Get-NLSSite)[N] | Remove-NLSSite
,在那里[N]
与列表中的位置对应的数字。例如,要删除第一个列出的位置,可以键入(Get-NLSSite)[0] | Remove-NLSSite
.
验证内部启动是否正确路由
要验证内部启动是否直接访问vda,请使用以下方法之一:
- 通过DaaS控制台查看VDA连接。
- 使用ICA文件日志记录来验证客户端连接的正确寻址。
Citrix DaaS控制台
选择管理>监视器然后搜索具有活动会话的用户。在控制台的Session Details部分中,直接VDA连接显示为UDP连接,而网关连接显示为TCP连接。
如果你在DaaS控制台中看不到UDP,那么你必须为vda启用HDX自适应传输策略。
ICA文件日志
在客户端计算机上启用ICA文件日志记录,如以启用启动日志记录。ica文件.启动会话后,检查地址而且SSLProxyHost日志文件中的条目。
直接VDA连接
对于直接VDA连接,使用地址属性包含VDA的IP地址和端口。
下面是一个ICA文件的例子,当客户端使用NLS启动应用程序时:
[notepad++ Cloud] Address=;10.0.1.54:1494 SSLEnable=Off
的SSLProxyHost属性在此文件中不存在。此属性仅用于通过网关启动。
网关连接
对于网关连接,使用地址属性包含Citrix Cloud STA票据,即SSLEnable属性设置为在,以及SSLProxyHost属性包含网关的FQDN和端口。
下面是一个ICA文件的例子,当客户端通过Citrix Gateway服务连接并启动应用程序时:
[PowerShell ISE Cloud] Address=;40; cssta;027C02199068B33889A40C819A85CBB4 SSLEnable=On SSLProxyHost=global.g.nssvcstaging.net:443
下面是一个ICA文件的例子,当客户端通过本地网关连接并使用配置在资源位置内的本地网关启动应用程序时:
[PowerShell ISE Cloud] Address=;40; cssta;027C02199068B33889A40C819A85CBB5 SSLEnable=On SSLProxyHost=onpremgateway.domain.com:443
注意:
用于启动虚拟应用程序和桌面的本地网关虚拟服务器必须为VPN虚拟服务器,不能为NFactor AAA虚拟服务器。NFactor AAA虚拟服务器仅用于用户身份验证,不代理资源HDX和ICA启动流量。
示例脚本
示例脚本包括您可能需要添加、修改和删除分支位置的公共IP地址范围的所有命令。但是,您不需要运行所有命令来执行任何单一功能。为了运行脚本,始终包括前10行,从Import-Module通过Connect-NLS.之后,您可以只包含您想要执行的功能的命令。
Import-Module \ nls。psm1 force$clientId = "XXXX" #Replace with your clientId $clientSecret = "YYY" #Replace with your clientSecret $customer = "CCCCCC" #Replace with your customerid # Connect to Network Location Service Connect-NLS -clientId $clientId -clientSecret $clientSecret -customer $customer # Create a new Network Location Service Site (Replace with details corresponding to your branch locations) New-NLSSite -name "New York" -tags @("EastCoast") -ipv4Ranges @("1.2.3.0/24") -longitude 40.7128 -latitude -74.0060 -internal $True # Get the existing Network Location Service Sites (optional) Get-NLSSite # Update the IP Address ranges of your first Network Location Service Site (optional) $s = (Get-NLSSite)[0] $s.ipv4Ranges = @("1.2.3.4/32","4.3.2.1/32") $s | Set-NLSSite # Remove all Network Location Service Sites (optional) Get-NLSSite | Remove-NLSSite # Remove your third site (optional) (Get-NLSSite)[2] | Remove-NLSSite
故障排除
VDA发射故障
如果VDA会话启动失败,请验证您使用的是正确网络中的公共IP地址范围。在配置网络位置时,必须使用内部用户连接到Internet的网络的公网IP地址范围。有关更多信息,请参见需求在本文中。
内部VDA发射仍然通过网关路由
如果内部启动的VDA会话仍然通过网关路由,就像它们是外部会话一样,请验证您使用的是正确的公共IP地址,内部用户从该IP地址连接到他们的工作空间。NLS站点中列出的公网IP地址必须与启动资源的客户端访问Internet的地址相对应。客户端正确的公网IP地址需要登录客户端机器,在搜索引擎中输入“我的IP地址是什么”。
在同一办公位置内启动资源的所有客户端通常使用相同的网络出口公网IP地址访问Internet。这些客户端必须有到vda所在子网的internet网络路由,该路由不会被防火墙阻塞。有关更多信息,请参见需求在本文中。
在非windows平台上运行PowerShell cmdlet时出现错误
如果在PowerShell Core上使用正确的参数运行cmdlets时遇到错误,请验证操作是否成功执行。例如,如果运行new - nlslsite cmdlet时出现错误,请运行Get-NLSSite
来验证站点是否已创建。在MacOS或Linux平台上使用PowerShell Core运行这些cmdlet可能会导致错误,即使操作成功运行。
如果您在使用PowerShell的Windows平台上使用正确的参数运行cmdlets时遇到此问题,请确保您使用的是最新版本的PowerShell模块.使用最新版本的PowerShell模块,在Windows平台上不会出现此问题。
额外的帮助和支持
有关故障排除帮助或问题,请联系Citrix销售代表或Citrix的支持.