VDA注册
简介
VDA必须先向站点中的一个或多个控制器或云连接器注册(建立连接),然后该共识才可以使用。(在本地XenApp和XenDesktop部署中,共识在控制器中注册。在XenApp和XenDesktop服务部署中,共识在云连接器中注册)VDA通过检查名为ListofDDCs的列表来查找控制器或连接器。的共识上的ListOfDDCs包含将该VDA指向站点中的控制器或云连接器的DNS条目。为实现负载平衡,VDA会自动在列表中的所有控制器或云连接器之间分发连接。
为什么VDA注册如此重要吗?
- 从安全角度而言,注册是一种敏感操作:您将在控制器或云连接器与共识之间建立连接。对于此类敏感操作,如果所有情况未达到良好状态,预期行为是拒绝连接。您将有效地建立两个单独的通信通道:VDA至控制器或云连接器和控制器或云连接器至VDA。连接使用Kerberos,因此不允许存在时间同步和域成员身份问题。Kerberos使用服务主体名称(SPN),因此您不能使用负载平衡的IP \主机名。
- 添加和删除控制器或云连接器后,如果VDA没有准确的控制器或云连接器最新信息,VDA可能会拒绝未列出的控制器或云连接器代理的会话启动。无效的项会使虚拟桌面系统软件的启动发生延迟。VDA不会接受来自未知的不可信控制器或云连接器的连接。
除了ListOfDDCs之外,ListOfSIDs(安全ID)也可以指示ListOfDDCs中的哪些计算机可信。ListOfSIDs可用于降低 Active Directory 上的负载或避免来自受感染 DNS 服务器的潜在安全威胁。有关详细信息,请参阅ListOfSIDs。
如果ListOfDDCs指定多个控制器或云连接器,VDA将尝试以随机顺序连接这些控制器或云连接器。在本地部署中,ListOfDDCs还可以包含控制器组。VDA将尝试连接组中的每个控制器,然后转向ListOfDDCs中的其他项。
XenApp和XenDesktop会在VDA安装期间自动测试与配置的控制器或云连接器的连接。如果无法访问控制器或云连接器,会显示错误。如果您忽略无法访问控制器或云连接器的警告(或者在VDA安装期间未指定地址时),系统会显示消息提醒您。
控制器或云连接器地址配置方法
管理员将选择VDA首次注册时使用的配置方法。(这称为首次注册)。在首次注册期间,会在VDA上创建永久性缓存。在后续注册期间,除非检测到配置更改,否则VDA将从此本地缓存中检索控制器或云连接器列表。
在后续注册期间检索该列表的最简单的方法是使用自动更新功能。默认情况下启用自动更新。有关详细信息,请参阅”自动更新“。
在VDA上配置控制器或云连接器地址的方法有多种。
- 基于策略(LGPO或GPO)
- 基于注册表(手动,GPP,在VDA安装期间指定)
- 基于Active Directory OU(旧欧发现)
- 基于MCS (personality.ini)
首次注册方法在安装VDA时指定。(如果禁用自动更新,则在VDA安装期间选择的方法也将用于后续注册)。
下图显示了VDA安装向导的交付控制器页面。
基于策略(LGPO \ GPO)
Citrix建议VDA首次注册时使用GPO。它的优先级最高。(尽管以前列出的自动更新的优先级最高,但仅在首次注册之后使用自动更新。)基于策略的注册具有使用组策略进行配置的集中优势。
要指定此方法,请完成以下两个步骤:
- 在VDA安装向导中的交付控制器页面上,选择以后(高级)。该向导会多次提醒您指定控制器地址,即使您在VDA安装期间不指定它们也是如此。(因为VDA注册如此重要!)
- 可以在“
虚拟交付代理设置>控制器
“设置中通过Citrix策略启用或禁用基于策略的VDA注册。(如果安全性是您的首要任务,请使用>控制器sid
设置。)
此设置存储在HKLM \ Software \ \ Citrix \ VirtualDesktopAgent政策(ListOfDDCs)
下。
基于注册表
要指定此方法,请完成以下步骤之一:
- 在VDA安装向导中的交付控制器页面上,选择手动操作。然后输入所安装控制器的FQDN,并单击添加。如果您已安装更多控制器,请添加其地址。
- 对于命令行VDA安装,请使用/控制器选项并指定所安装控制器或云连接器的FQDN。
此信息通常存储在注册表项HKLM \ Software \ Citrix \ VirtualDesktopAgent
或HKLM \ Software \ Wow6432Node \ Citrix \ VirtualDesktopAgent
下的注册表值ListOfDDCs中。
还可以手动配置此注册表项或使用组策略首选项(GPP)。此方法可能优于基于策略的方法(例如,如果您要对不同的控制器或云连接器进行有条件的处理,如:对名称以xdw - 001开头的计算机使用xdc - 001)。
更新ListOfDDCs注册表项,该注册表项用于列出站点中所有控制器或云连接器的FQDN。(此注册表项相当于Active Directory站点OU)。
HKEY_LOCAL_MACHINE \ Software \ Citrix \ \ VirtualDesktopAgent \ ListOfDDCs (REG_SZ)
如果注册表位置HKEY_LOCAL_MACHINE \ \ Citrix \ VirtualDesktopAgent软件
包括ListOfDDCs和FarmGUID两个注册表项,则ListOfDDCs用于控制器或云连接器发现。如果在VDA安装期间指定站点你,则存在FarmGUID。(这可能用于旧部署中)。
(可选)更新ListOfSIDs注册表项(有关详细信息,请参阅ListOfSIDs):
HKEY_LOCAL_MACHINE \ Software \ Citrix \ VirtualDesktopAgent \ ListOfSIDs (REG_SZ)
谨记:
如果您还通过Citrix策略启用基于策略的VDA注册,则该配置会覆盖您在VDA安装期间指定的设置,因为该方法的优先级更高。
基于Active Directory OU(旧)
支持此方法主要是为了向后兼容,建议不要使用此方法。如果您仍在使用此方法,Citrix建议改为其他方法。
要指定此方法,请完成以下两个步骤:
- 在VDA安装向导中的交付控制器页面上,选择从Active Directory中选择位置。
- 使用
Set-ADControllerDiscovery.ps1
脚本(在每个控制器上都可用)。此外,在每个VDA上配置FarmGuid注册表项以指向正确的OU。可以使用组策略配置此设置。
有关详细信息,请参阅基于Active Directory OU的发现。
基于MCS
如果您计划只使用MCS来预配VM,可以指示MCS设置控制器或云连接器列表。此功能与自动更新兼容:在首次预配期间(创建计算机目录时),MCS将控制器或云连接器列表填入Personality.ini
文件中。自动更新会使该列表保持最新。
建议不要将此方法用于大型环境中。在下列情况下,可以使用此方法:
- 小型环境
- 不会在站点之间移动的共识
- 只使用MCS预配VM
- 您不想使用组策略
要指定此方法,请执行以下操作:
- 在VDA安装向导中的交付控制器页面上,选择让机器创建服务自动创建。
建议
最佳做法:
- 首次注册时使用组策略注册方法。
- 使用自动更新(默认情况下启用)使控制器列表保持最新。
- 在多区域部署中,首次配置时使用组策略(至少有两个控制器或云连接器)。将两指向其区域中的本地控制器或云连接器。使用自动更新使其保持最新。自动更新会自动优化卫星区域中 VDA 的 ListOfDDCs。
自动更新
默认情况下启用自动更新(在XenApp和XenDesktop 7.6中引入)。这是使VDA注册保持最新的最有效方法。尽管首次注册时不使用自动更新,但在首次注册时,自动更新软件会下载ListOfDDCs并将其存储在共识上的永久性缓存中。对每个VDA都会执行此操作。(此缓存中还保存计算机策略信息,这样可以确保在重新启动后保留策略设置)。
使用MCS或pv预配计算机时支持自动更新,但pv服务器端缓存除外(这不是常见场景,因为自动更新缓存没有对应的静态存储)。
要指定此方法,请执行以下操作:
- 通过包含设置”
虚拟交付代理设置>启用控制器自动更新
”的Citrix策略启用或禁用自动更新。默认情况下,启用此设置。
工作原理:
- 每次VDA重新注册时(例如,重新启动计算机后),都会更新缓存。此外,每个控制器或云连接器每90分钟检查一次站点数据库。如果自上次检查后添加或删除了控制器或云连接器,或者如果发生了影响VDA注册的策略更改,控制器或云连接器会向其注册的VDA发送更新列的表,并更新缓存。VDA接受来自其最新缓存列表中所有控制器或云连接器的连接。
- 如果VDA接收的列表不包括其注册的控制器或云连接器(即,已从站点中删除该控制器或云连接器),VDA将从ListOfDDCs中选择控制器或云连接器并重新注册。
例如:
- 某个部署包含三个控制器:A、B和C。VDA向控制器B注册(该控制器在VDA安装期间指定)。
- 之后,将D和E两个控制器添加到站点中。在90分钟内,VDA收到更新的列表,然后接受来自控制器A, B, C, D和E的连接。(在重新启动VDA之前,负载不会平均分布到所有控制器)。
- 再之后,控制器B移至另一个站的点。在90分钟内,原始站点中的VDA收到更新的列表,因为自上次检查后控制器已发生更改。最初已向控制器B注册的共识(该控制器已不在列表中)将从当前列表(A、C、D和E)中选择控制器并重新注册。
在一个多区域部署中,卫星区域中的自动更新会先自动缓存所有本地控制器。主要区域中的所有控制器都缓存在备份组中。如果卫星区域中无本地控制器可用,将尝试向主要区域中的控制器注册。
如下例所示,缓存文件包含主机名和安全ID列表(ListOfSIDs)。VDA不会查询SID,这会降低Active Directory负载。
可以使用WMI调用来检索缓存文件。但是,它存储在只有系统帐户可读的位置中。提供此信息只是供参考。请勿修改此文件。如果修改此文件或文件夹,会导致配置不受支持。
Get-WmiObject -Namespace " Root\Citrix\DesktopInformation " -Class " Citrix_VirtualDesktopInfo " -Property " PersistentDataLocation "
如果出于安全原因(不同于降低Active Directory负载)需要手动配置ListOfSIDs,不能使用自动更新功能。有关详细信息,请参阅ListOfSIDs。
自动更新优先级例外情况
尽管通常情况下,在所有VDA注册方法中自动更新的优先级最高,它会覆盖其他方法的设置,仍有一个例外情况。缓存中的NonAutoListOfDDCs
元素指定VDA首次配置方法。自动更新会监视此信息。如果首次注册方法更改,则注册过程会跳过自动更新,并使用配置的优先级次高的方法。将VDA移至另一个站点时(例如,在灾难恢复期间),这很有用。
配置注意事项
控制器或云连接器地址
无论使用哪种方法指定控制器或云连接器,Citrix都建议使用FQDN地址。IP地址并不视为可信配置,因为与DNS记录相比,IP更容易受影响。如果手动填充ListOfSIDs,可以在ListOfDDCs中使用IP。但是,仍建议使用FQDN。
负载平衡
如前所述,VDA会自动在ListOfDDCs中的所有控制器或云连接器之间分发连接。Citrix代理协议(CBP)中内置了故障转移和负载平衡功能。如果在配置中指定多个控制器或云连接器,需要时,注册会自动在这些控制器或云连接器之间进行故障转移。由于自动更新功能,会自动为所有VDA进行故障转移。
出于安全原因,不能使用网络负载平衡器(例如Citrix ADC)。VDA注册使用Kerberos 双向身份验证,在这种验证中,客户端 (VDA) 必须向服务 (Controller) 证明其身份。但是,Controller 或 Cloud Connector 必须向 VDA 证明其身份。这意味着 VDA 和 Controller 或 Cloud Connector 同时用作服务器和客户端。如本文开头所述,有两种通信通道:VDA 到 Controller 或 Cloud Connector 和 Controller 或Cloud Connector 到 VDA。
此过程中的组件称为服务主体名称(SPN),它作为属性存储在Active Directory计算机对象中。VDA连接到控制器或云连接器时,它必须指定要与“谁”通信。此地址为SPN。如果使用负载平衡的IP,则Kerberos双向身份验证会正确识别该IP不属于预期的控制器或云连接器。
有关详细信息,请参阅:
- Kerberos简介:https://blogs.technet.microsoft.com/askds/2008/03/06/kerberos-for-the-busy-admin/
- 使用Kerberos的双向身份验证:https://docs.microsoft.com/en-us/windows/win32/ad/mutual-authentication-using-kerberos?redirectedfrom=MSDN
自动更新替代CNAME
自动更新功能替代了XenApp和XenDesktop 7。x之前版本中的CNAME (DNS别名)功能。从XenApp和XenDesktop 7开始,禁用CNAME功能。使用自动更新替代CNAME。(如果必须使用CNAME,请参阅CTX137960。为了持续使用DNS别名,请勿同时使用自动更新和CNAME。)
控制器/云连接器组
您可能希望分组处理控制器或云连接器。分组后,如果所有控制器/云连接器都出现故障,则首选一个组,另一个组用于故障转移。请注意,控制器或云连接器是随机从列表中选择的,因此,分组可以有助于实施优先使用。
使用括号指定控制器/云连接器组。例如,有四个控制器(两个主要,两个备份),分组方式可以如下:
(xdc - 001. - cdz。局域网xdc - 002. - cdz.lan) (xdc cdz——003.。局域网xdc - 004. - cdz.lan)。
在此示例中,先处理第一个组(001和002)中的控制器。如果它们都发生故障,则处理第二个组中(003和004)的控制器。
ListOfSIDs
VDA可以访问以进行注册的控制器列表是ListOfDDCs。VDA还必须知道信任哪些控制器;VDA不会自动信任ListOfDDCs中的控制器。ListOfSIDs(安全ID)用于标识可信控制器。VDA将只向可信控制器尝试注册。
在大多数环境中,会自动基于ListOfDDCs生成ListOfSIDs。可以使用它跟踪来读取ListOfSIDs。
通常,无需手动修改ListOfSIDs。存在几种例外情况。由于有了较新的技术,前两种例外情况已不存在。
- 控制器使用单独的角色:在XenApp和XenDesktop 7.7中引入区域之前,仅当一部分控制器用于注册时手动配置ListOfSIDs。例如,如果使用xdc - 001和xdc - 002作为XML代理,使用xdc - 003和xdc - 004进行VDA注册,则在ListOfSIDs中指定所有控制器,在ListOfDDCs中指定xdc - 003和xdc - 004。这不是典型配置也不是建议的配置,不应在较新的环境中使用。而是改用区域。
- 降低Active Directory负载:在XenApp和XenDesktop 7.6中引入自动更新功能之前,使用ListOfSIDs来降低域控制器上的负载。通过预填充ListOfSIDs,可以跳过从DNS名称到SID的解析。但是,有了自动更新功能后,不再需要执行此操作,因为此永久性缓存中包含SID。Citrix建议使自动更新功能保持启用状态。
- 安全性:在一些受到高度保护的环境中,手动配置了可信控制器的SID以避免来自受感染DNS服务器的潜在安全威胁。但是,如果禁用了该策略,则必须禁用自动更新功能。否则,将使用永久性缓存中的配置。
因此,除非有特殊原因,否则请勿修改ListOfSIDs。
如果必须修改ListOfSIDs,请在HKLM \ Software \ Citrix \ VirtualDesktopAgent下面创建名为ListOfSIDs (REG_SZ)的注册表项。值为可信SID列表,如果有多个,用空格分隔开。
在以下示例中,一个控制器用于VDA注册(ListOfDDCs),两个控制器用于代理(OfSIDs列表)。
在VDA注册期间搜索控制器
当VDA尝试注册时,经纪人代理首先在本地域中执行DNS查找,以确保可以访问指定的控制器。
如果初始查找找不到控制器,经纪人代理可以在广告中启动回退自上而下查询。该查询将搜索所有域,并经常重复。如果控制器地址无效(例如,管理员在安装VDA时输入了不正确的FQDN),该查询的活动可能会导致域控制器上的分布式拒绝服务(DDoS)条件。
下面的注册表项控制在初始搜索期间找不到控制器时代理代理是否使用回退自上而下查询。
HKEY_LOCAL_MACHINE \ Software \ \ Citrix \ VirtualDesktopAgent政策
- 名称:
DisableDdcWildcardNameLookup
- 类型:
双字
- 值:
1
(默认值)或0
如果设置为1
,则将禁用回退搜索。如果控制器的初始搜索失败,经纪人代理将停止查找。此为默认设置。如果设置为0
,则启用回退搜索。如果控制器的初始搜索失败,则启动回退自上而下搜索。
VDA注册问题故障排除
如前所述,必须向要在启动代理会话时考虑使用的交付控制器注册的共识。未注册的共识会导致无法充分利用原本可用的资源。VDA无法注册的原因有多种,其中许多都可由管理员进行故障排除。工作室在目录创建向导中,以及在您创建了交付组之后,提供故障排除信息。
在计算机目录创建期间发现问题:
在目录创建向导中,添加现有计算机之后,计算机帐户名称列表会指示每台计算机是否都适合添加到该目录。将鼠标悬停在每个计算机旁边的图标上,以显示有关该计算机的有用消息。
如果该消息确定存在一台有问题的计算机,您可以删除该计算机(使用删除按钮),也可以添加计算机。例如,如果一条消息指示未获取有关某台计算机的信息(可能因为它始终未向交付控制器注册),您可能会选择添加计算机。
目录的功能级别控制哪些产品功能可用于目录中的计算机。要使用新产品版本中采用的功能,可能需要使用新的共识。通过设置功能级别,该版本(及更高版本,如果功能级别未更改)中采用的所有功能均可用于目录中的计算机。但是,具有早期VDA版本的目录中的计算机将无法注册。
在创建了交付组之后发现问题:
创建了交付组之后,工作室会显示与该组关联的计算机的详细信息。交付组的详细信息窗格中指示预期注册但未注册的计算机数。即,可能存在一台或多台已开启且不是处于维护模式但当前未向控制器注册的计算机。查看“未注册,但应注册的“计算机时,请查看详细信息窗格中的故障排除选项卡,了解可能的原因以及建议的更正措施。
有关功能级别的详细信息,请参阅创建计算机目录中的VDA版本和功能级别部分。
有关VDA注册故障排除的详细信息,请参阅CTX136668。
还可以使用Citrix健康助理对VDA注册和会话启动进行故障排除。有关详细信息,请参阅CTX207624。