使用直接工作负载连接优化到工作空间的连接
使用Citrix Cloud中的直接工作负载连接,你可以优化工作空间中的应用程序和桌面的内部流量,使HDX会话更快。一般情况下,内外网络的用户都需要通过外部网关连接到虚拟网关。直接工作负载连接(Direct Workload Connection)允许内部用户绕过网关直接连接vda,减少内部网络流量延迟。
要设置直接工作负载连接,需要使用网络位置服务(network Location Service, NLS)与环境中的VDAs对应的网络位置。你有两个选项来配置网络位置:
- 使用网络位置在Citrix云的菜单选项。
- 使用一个PowerShell模块Citrix提供。
网络位置对应于您的内部用户所连接的网络的公网IP范围,例如您的办公室或分支机构的位置。Citrix Cloud使用公共IP地址来确定在工作区中启动虚拟应用或桌面的网络是公司内部网络还是外部网络。如果用户从内部网络连接,Citrix Cloud会绕过Citrix Gateway,直接将连接路由到VDA。如果用户外部连接,Citrix Cloud通过Citrix Gateway将其路由,然后通过Citrix Cloud Connector将用户重定向到内部网络中的VDA。
重要的是:
如果你的环境包括Citrix Virtual Apps和desktop Standard for Azure以及本地vda,配置直接工作负载连接会导致从内部网络启动失败。
安全浏览器、Citrix Virtual Apps Essentials和Citrix Virtual Desktops Essentials总是通过网关启动路由。这些启动不会从配置直接工作负载连接中获得性能改进。
需求
网络需求
- 公司网络和客户Wi-Fi网络必须有独立的公网IP地址。如果您的企业网络和客户网络共享公共IP地址,客户网络上的用户无法启动虚拟应用程序和桌面会话。
- 使用内部用户连接的网络的公网IP地址范围。这些网络中的内部用户必须与vda直接连接。否则,当Workspace试图将内部用户直接路由到VDA时,虚拟资源的启动将会失败,这是不可能的。
TLS需求
在配置网络位置时,必须在PowerShell中启用TLS 1.2。使用PowerShell模块时,如果需要强制PowerShell使用TLS 1.2协议,请在使用PowerShell模块前执行以下命令:
【净。ServicePointManager]:: SecurityProtocol =[净。SecurityProtocolType]:: Tls12
工作空间的需求
- 您在Citrix Cloud中配置了一个工作区。
- 启用“虚拟应用和桌面”服务工作空间配置>服务集成.
- 您正在使用本地VDAs向工作区订阅者交付虚拟资源。
为HTML5连接的工作区应用启用TLS
如果您的订阅者使用Citrix Workspace应用程序的HTML5来启动应用程序和桌面,Citrix建议您在内部网络的VDAs上启用TLS。TLS保证与VDAs的直接连接。如果VDAs没有启用TLS,当用户使用Citrix Workspace应用程序的HTML5时,应用程序和桌面启动将通过网关路由。使用桌面查看器启动不受影响。有关使用TLS保护直接VDA连接的更多信息,请参见CTX134123在Citrix支持知识中心。
Citrix云网络位置配置
通过Citrix Cloud直接工作负载连接配置涉及使用内部用户连接的每个分支位置的公共IP地址范围创建网络位置。
创建网络位置
- 在Citrix Cloud控制台中,导航到网络位置从主菜单。
- 选择添加网络位置右上角的按钮。
- 输入网络位置名称、位置的公网IP范围和位置标记。
- 对要添加的每个新网络位置重复这些步骤。
修改或移除网络位置
- 在Citrix Cloud控制台中,导航到网络位置从主菜单。
- 选择要修改或删除的网络位置旁边的省略号,然后选择:
- 选择编辑修改网络位置,然后保存您的更改可以在网络位置页面中看到它们;或
- 选择删除删除网络位置。您被要求在删除网络位置之前确认该决定。你不能撤销这个行动。
PowerShell网络位置配置
您可以使用PowerShell脚本来配置直接工作负载连接,而不是使用Citrix Cloud。PowerShell的直接工作负载连接配置包括以下任务:
- 确定内部用户连接的每个分支位置的公网IP地址范围。
- 下载PowerShell模块.
- 创建安全的API客户端在Citrix Cloud中,记录客户端ID和秘密。
- 导入PowerShell模块并使用API客户端详细信息连接到网络位置服务(NLS)。
- 使用您先前确定的公共IP地址范围为您的每个分支位置创建NLS站点。直接工作负载连接对任何来自您指定的内部网络位置的启动都会自动启用。
- 从内部网络的设备启动一个应用程序或桌面,并验证连接直接到VDA,绕过网关。
下载PowerShell模块
在设置网络位置之前,请下载citrix提供的软件PowerShell模块(nls.psm1)来自Citrix Github存储库。使用此模块,您可以为VDAs设置所需的任意多个网络位置。
- 在浏览器中,转到https://github.com/citrix/sample-scripts/blob/master/workspace/nls.psm1.
- 新闻ALT当单击生按钮。
- 在您的计算机上选择一个位置并单击保存.
需要配置细节
要设置网络位置,您需要以下所需信息:
- Citrix云安全客户端客户ID、客户端ID和客户端机密。要获得这些值,请参见创建安全客户端在这篇文章中。
- 您的内部用户将连接的网络的公共IP地址范围。有关这些公网IP地址范围的更多信息,请参见需求在这篇文章中。
创建安全客户端
- 登录到Citrix云
https://citrix.cloud.com
. - 从Citrix Cloud菜单中选择身份与访问管理然后选择API访问.
- 在安全客户端选项卡,注意您的客户ID。
- 输入客户端名称,然后选择创建客户端.
- 复制客户端ID和客户端机密。
配置网络位置
- 打开PowerShell命令窗口,导航到保存PowerShell模块的同一个目录。
- 导入模块:
Import-Module \ nls。psm1 force
- 使用的安全客户端信息设置所需的变量创建安全客户端:
美元clientId = " YourSecureClientID "
美元客户= " YourCustomerID "
美元clientSecret = " YourSecureClientSecret "
使用您的安全客户端凭证连接到网络位置服务:
Connect-NLS -clientId $clientId -clientSecret $clientSecret -customer $customer . txt
创建一个网络位置,用内部用户直接连接的内部网络对应的值替换参数值:
新建- nlssite -name "YourSiteName" -tags @("YourTags") -ipv4Ranges @("PublicIpsOfYourNetworkSites") -longitude 12.3456 -latitude 12.3456
要指定单个IP地址而不是范围,请添加/ 32到IP地址的末尾。例如:
新建- nlssite -name "YourSiteName" -tags @("YourTags") -ipv4Ranges @(" publicicipofyournetworksite /32") -longitude 12.3456 -latitude 12.3456 .
重要的是:
当使用
New-NLSSite
命令,每个参数至少包含一个值。如果不带任何命令行参数运行此命令,PowerShell会提示您为每个参数输入适当的值,每次一个。的值标签
参数,输入每个标签值后按“ENTER”。当您完成标记输入后,再次按ENTER以继续下一个参数。网络位置创建成功后,命令窗口显示网络位置的详细信息。
- 对于所有用户将进行连接的网络位置重复步骤5。
- 运行以下命令
Get-NLSSite
返回已配置NLS的所有站点的列表,并验证它们的详细信息是否正确。
验证内部启动是否被正确路由
要验证内部启动是否直接访问VDAs,可以使用以下方法之一:
- 通过虚拟应用程序和桌面控制台查看VDA连接。
- 使用ICA文件日志来验证客户端连接的正确寻址。
虚拟应用和桌面服务控制台
选择管理>监控然后搜索一个有活动会话的用户。在控制台的会话详细信息部分,直接VDA连接显示为UDP连接,而网关连接显示为TCP连接。
ICA文件日志记录
在客户端计算机上启用ICA文件日志记录,请参见启用启动日志记录。ica文件.启动会议后,检查地址和SSLProxyHost日志文件中的条目。
对于直接的VDA连接,地址属性包含VDA的IP地址和端口,以及SSLProxyHost属性包含VDA的FQDN和端口。
对于网关连接,地址属性包含STA票和SSLProxyHost属性包含网关的FQDN和端口。
修改网络位置
修改现有网络位置。
- 从PowerShell命令窗口,列出所有现有的网络位置:
Get-NLSSite
修改特定网络位置的IP范围
(Get-NLSSite) [N] -ipv4Ranges @(“1.2.3.4/32”、“4.3.2.1/32”)| Set-NLSSite
在哪里
[N]
数字是否对应于列表中的位置(从0开始)和“1.2.3.4/32”、“4.3.2.1/32”
是要使用的以逗号分隔的IP范围。例如,要修改第一个列出的位置,可以输入以下命令:(Get-NLSSite) [0] -ipv4Ranges @(“98.0.0.1/32”、“141.43.0.0/24”)| Set-NLSSite
删除网络位置
要删除不再使用的网络位置,请执行以下操作:
- 从PowerShell命令窗口,列出所有现有的网络位置:
Get-NLSSite
- 要删除所有网络位置,输入
Get-NLSSite | Remove-NLSSite
- 要删除特定的网络位置,输入
(Get-NLSSite) [N] | Remove-NLSSite
,在那里[N]
是列表中对应位置的数字。例如,要删除第一个列出的位置,可以输入(Get-NLSSite) [0] | Remove-NLSSite
.
示例脚本
示例脚本包括您可能需要为分支位置添加、修改和删除公共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 # 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地址范围来自正确的网络。在配置网络位置时,必须使用内部用户连接的网络的公网IP地址范围。有关更多信息,请参见需求在这篇文章中。
要验证VDA的公网IP地址,请登录每台VDA机器,访问https://google.com
,在搜索栏中输入“我的ip是什么”。
内部VDA启动仍然通过网关路由
如果内部启动的VDA会话仍然通过网关进行路由,就像外部会话一样,请验证您为内部用户连接的网络使用的IP地址范围是否正确。尽管您的用户可能通过VPN访问VDAs,但这些通常是与您的VDAs所在的网络相对应的公共IP地址范围。请勿使用vda的本地IP地址。有关更多信息,请参见需求在这篇文章中。
要验证VDA的公网IP地址,请登录每台VDA机器,访问https://google.com
,在搜索栏中输入“我的ip是什么”。
在非windows平台上运行PowerShell cmdlet时出现错误
如果在PowerShell Core上使用正确的参数运行cmdlet时遇到错误,请验证操作是否成功执行。例如,如果您在运行New-NLSSite cmdlet时遇到错误,请运行Get-NLSSite
以验证站点是否已创建。使用PowerShell Core在MacOS或Linux平台上运行这些cmdlet可能会导致错误,即使操作运行成功。
如果您在使用PowerShell在Windows平台上运行具有正确参数的cmdlet时遇到这个问题,请确保您使用的是最新版本的PowerShell模块.使用最新版本的PowerShell模块,在Windows平台上不会出现此问题。
额外的帮助和支持
如有疑难解答或疑问,请与您的Citrix销售代表联系Citrix的支持.