VDA 注册

本节概述

注意:

在本地环境中,VDA 向交付控制器注册。在 Citrix Cloud 服务环境中,VDA 向云连接器注册。在混合环境中,一些 VDA 向交付控制器注册,而另一些则向云连接器注册。

VDA 必须先向站点上的一个或多个 Controller 或 Cloud Connector 注册(建立通信),然后才能使用。VDA 通过检查名为 ListofDDCs 的列表来查找 Controller 或 Connector。VDA 上的 ListOfDDCs 包含 DNS 条目,这些条目将该 VDA 指向站点上的 Controller 或 Cloud Connector。为了实现负载平衡,VDA 会自动将连接分配到列表中的所有 Controller 或 Cloud Connector。

为什么 VDA 注册如此重要?

  • 从安全角度来看,注册是一项敏感操作。您正在 Controller 或 Cloud Connector 与 VDA 之间建立连接。对于此类敏感操作,如果一切不完美,则预期行为是拒绝连接。您实际上正在建立两个独立的通信通道:VDA 到 Controller 或 Cloud Connector,以及 Controller 或 Cloud Connector 到 VDA。连接使用 Kerberos,因此时间同步和域成员资格问题是不可原谅的。Kerberos 使用服务主体名称 (SPN),因此您不能使用负载平衡的 IP\主机名。
  • 如果您在添加和删除 Controller(或 Cloud Connector)时,VDA 没有准确和最新的 Controller 或 Cloud Connector 信息,则 VDA 可能会拒绝由未列出的 Controller 或 Cloud Connector 代理的会话启动。无效条目可能会延迟虚拟桌面系统软件的启动。VDA 不会接受来自未知和不受信任的 Controller 或 Cloud Connector 的连接。

除了 ListofDDCs 之外,ListOfSIDs(安全 ID)还指示 ListofDDCs 中哪些计算机是受信任的。ListofSIDs 可用于减少 Active Directory 上的负载或避免来自受损 DNS 服务器的潜在安全威胁。有关详细信息,请参阅 ListOfSIDs

如果 ListofDDCs 指定了多个 Controller 或 Cloud Connector,VDA 会尝试以随机顺序连接到它们。在本地部署中,ListofDDCs 还可以包含 Controller 组。VDA 会尝试连接到组中的每个 Controller,然后才移动到 ListofDDCs 中的其他条目。

Citrix Virtual Apps and Desktops™ 在 VDA 安装期间自动测试与已配置的控制器或云连接器的连接。如果无法访问控制器或云连接器,则会显示错误。如果您忽略了无法联系控制器或云连接器的警告(或者在 VDA 安装期间未指定控制器或云连接器地址),则会显示消息提醒您。

用于配置控制器或云连接器地址的方法

管理员在 VDA 首次注册(初始注册)时选择要使用的配置方法。在初始注册期间,VDA 上会创建一个持久缓存。在后续注册期间,除非检测到配置更改,否则 VDA 会从此本地缓存中检索 Controller 或 Cloud Connector 列表。

在后续注册期间检索该列表的最简单方法是使用自动更新功能。自动更新默认启用。有关详细信息,请参阅自动更新。

有几种方法可以在 VDA 上配置控制器或云连接器地址。

  • 基于策略的 (LGPO 或 GPO)
  • 基于注册表的 (手动、组策略首选项 (GPP)、在 VDA 安装期间指定)
  • 基于 Active Directory 组织单位的 (旧版组织单位发现)
  • MCS-based (personality.ini)

您在安装 VDA 时指定初始注册方法。(如果您禁用自动更新,则在 VDA 安装期间选择的方法将用于后续注册。)

下图显示了 VDA 安装向导的交付控制器页面。

VDA 安装向导中的交付控制器页面(/zh-cn/citrix-virtual-apps-desktops/2507-ltsr/media/vda-install-controllers-all.png)

基于策略的 (LGPO\GPO)

Citrix® 建议使用 GPO 进行初始 VDA 注册。它具有最高优先级。(尽管自动更新被列为最高优先级,但自动更新仅在初始注册后使用。) 基于策略的注册提供了使用组策略进行配置的集中化优势。

要指定此方法,请完成以下两个步骤:

  • 在 VDA 安装向导的Delivery Controller 页面上,选择稍后执行 (高级)。向导会多次提醒您指定 Controller 地址,即使您在 VDA 安装期间未指定它们。(VDA 注册非常重要。)
  • 通过 Citrix 策略使用 Virtual Delivery Agent Settings > Controllers 设置启用或禁用基于策略的 VDA 注册。(如果安全性是您的首要任务,请使用 Virtual Delivery Agent Settings > Controller SIDs 设置。)

此设置存储在 HKLM\Software\Policies\Citrix\VirtualDesktopAgent (ListOfDDCs) 下。

基于注册表的

要指定此方法,请完成以下步骤之一:

  • 在 VDA 安装向导的“交付控制器”页面上,选择“手动操作”。然后,输入已安装控制器的 FQDN,再单击“添加”。如果您安装了更多控制器,请添加它们的地址。
  • 对于命令行 VDA 安装,请使用 /controllers 选项并指定已安装控制器或云连接器的 FQDN。

此信息存储在注册表项 HKLM\Software\Citrix\VirtualDesktopAgentHKLM\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\Software\Citrix\VirtualDesktopAgent 注册表位置同时包含 ListOfDDCsFarmGUID 键,则 ListOfDDCs 用于控制器或云连接器发现。如果在 VDA 安装期间指定了站点 OU,则存在 FarmGUID。(这可能用于旧版部署。)

(可选)更新 ListOfSIDs 注册表项(有关详细信息,请参阅 ListOfSIDs

HKEY_LOCAL_MACHINE\Software\Citrix\VirtualDesktopAgent\ListOfSIDs (REG_SZ)

请记住:如果您还通过 Citrix 策略启用基于策略的 VDA 注册,该策略会覆盖您在 VDA 安装期间指定的设置,因为它是一种优先级更高的方法。

基于活动目录组织单位(旧版)

此方法主要用于向后兼容,不推荐使用。如果您仍在使用此方法,Citrix 建议改用其他方法。

要指定此方法,请完成以下两个步骤:

  • 在 VDA 安装向导的“交付控制器”页面上,选择“从 Active Directory 中选择位置”。
  • 使用 Set-ADControllerDiscovery.ps1 脚本(在每个控制器上均可用)。此外,在每个 VDA 上配置 FarmGuid 注册表项以指向正确的 OU。此设置可以使用组策略进行配置。

基于 MCS

如果您使用 MCS 预配 VM,MCS 会设置 Controller 或 Cloud Connector 列表。此功能与自动更新配合使用。创建目录时,MCS 会在初始预配期间将 Controller 或 Cloud Connector 列表注入到 Personality.ini 文件中。自动更新会使列表保持最新。

要指定此方法,请在 VDA 安装向导的“交付控制器”页面上,选择“让计算机创建服务™ 执行此操作”。

概述与推荐建议

最佳做法如下:

  • 对于首次注册,请使用组策略注册方法。
  • 使用自动更新(默认启用)使 Controller 列表保持最新。
  • 在多区域部署中,使用组策略进行初始配置(至少包含两个 Controller 或 Cloud Connector)。将 VDA 指向其区域本地的 Controller 或 Cloud Connector。使用自动更新使其保持最新。自动更新会自动优化卫星区域中 VDA 的 ListofDDCs
  • ListOfDDCs 注册表项上列出多个 Controller,以空格分隔,以防止在 Controller 不可用时出现注册问题。例如:

     DDC7x.xd.local DDC7xHA.xd.local
    
     32-bit: HKEY_LOCAL_MACHINE \Software\Citrix\VirtualDesktopAgent\ListOfDDCs
    
     HKEY_LOCAL_MACHINE \Software\Citrix\VirtualDesktopAgent\ListOfDDCs (REG_SZ)
     <!--NeedCopy-->
    
  • 确保 ListofDDCs 下列出的所有值都映射到有效的完全限定域名,以防止启动注册延迟。

自动更新

自动更新(在 XenApp 和 XenDesktop 7.6 中引入)默认启用。它是使 VDA 注册保持最新状态的最有效方法。尽管不用于初始注册,但自动更新软件会在初始注册发生时将 ListofDDCs 下载并存储在 VDA 上的持久缓存中。此过程针对每个 VDA 执行。缓存还包含计算机策略信息,可确保策略设置在重新启动后仍保留。

使用 MCS 或 Citrix Provisioning™ 预配计算机时支持自动更新,但 Citrix Provisioning 服务器端缓存除外。服务器端缓存不是常见方案,因为没有用于自动更新缓存的持久存储。

要指定此方法:

  • 通过包含设置 Virtual Delivery Agent Settings > Enable auto update of Controllers 的 Citrix 策略启用或禁用自动更新。此设置默认启用。

工作原理:

  • 每次 VDA 重新注册(例如,在计算机重新启动后),缓存都会更新。每个 Controller 或 Cloud Connector 也会每 90 分钟检查一次站点数据库。如果自上次检查以来添加或删除了 Controller 或 Cloud Connector,或者发生了影响 VDA 注册的策略更改,则 Controller 或 Cloud Connector 会向其注册的 VDA 发送更新列表,并且缓存会更新。VDA 接受其最新缓存列表中所有 Controller 或 Cloud Connector 的连接。
  • 如果 VDA 收到的列表中不包含其注册的控制器或云连接器(换句话说,该控制器或云连接器已从站点中删除),则 VDA 会重新注册,从 ListofDDCs 中的控制器或云连接器中进行选择。

示例:

  • 一个部署有三个 Controller:A、B 和 C。一个 VDA 注册到 Controller B(在 VDA 安装期间指定)。
  • 稍后,将两个 Controller(D 和 E)添加到站点。在 90 分钟内,VDA 会收到更新列表,然后接受来自 Controller A、B、C、D 和 E 的连接。(在 VDA 重新启动之前,负载不会均匀分布到所有 Controller。)
  • 再后来,Controller B 被移动到另一个站点。在 90 分钟内,原始站点中的 VDA 会收到更新列表,因为自上次检查以来 Controller 已发生更改。最初注册到 Controller B(不再在列表中)的 VDA 会重新注册,从当前列表(A、C、D 和 E)中的 Controller 中进行选择。

在多区域部署中,卫星区域中的自动更新首先会自动缓存所有本地 Controller。主区域中的所有 Controller 都缓存在备份组中。如果卫星区域中没有可用的本地 Controller,则会尝试向主区域中的 Controller 注册。

如以下示例所示,缓存文件包含主机名和安全 ID 列表 (ListofSIDs)。VDA 不查询 SID,因此减少了 Active Directory 负载。

VDA 注册缓存文件示例

您可以使用 WMI 调用检索缓存文件。但是,它存储在只有 SYSTEM 帐户才能读取的位置。

重要提示:

此信息仅用于提供参考。请勿对本文件进行任何修改。对本文件或文件夹进行的任何修改都将导致配置不受支持。

Get-WmiObject -Namespace "Root\Citrix\DesktopInformation" -Class "Citrix_VirtualDesktopInfo" -Property "PersistentDataLocation"

如果出于安全原因(与减少 Active Directory 负载不同)需要手动配置 ListofSIDs,则无法使用自动更新功能。有关详细信息,请参阅 ListOfSIDs

自动更新优先级的例外

尽管自动更新通常在所有 VDA 注册方法中具有最高优先级并覆盖其他方法的设置,但存在一个例外。缓存中的 NonAutoListOfDDCs 元素指定了初始 VDA 配置方法。自动更新会监视此信息。如果初始注册方法发生更改,注册过程将跳过自动更新,并使用下一个最高优先级的配置方法。当您将 VDA 移动到另一个站点时(例如,在灾难恢复期间),此过程会很有帮助。

配置方面的考量

查看常见的 VDA 注册配置。

查看 VDA 注册步骤。

配置可能影响 VDA 注册的项目时,请考虑以下事项。

控制器或云连接器地址

无论您使用哪种方法指定 Controller 或 Cloud Connector,Citrix 都建议使用 FQDN 地址。IP 地址不被视为受信任的配置,因为 IP 比 DNS 记录更容易受到攻击。如果您手动填充 ListofSIDs,则可以在 ListofDDCs 中使用 IP。但是,仍然建议使用 FQDN。

负载平衡

如前所述,VDA 会自动将连接分配到 ListofDDCs 中的所有 Controller 或 Cloud Connector。故障转移和负载平衡功能内置于 Citrix Brokering Protocol (CBP) 中。如果您在配置中指定了多个 Controller 或 Cloud Connector,则注册会在需要时自动在它们之间进行故障转移。启用自动更新后,所有 VDA 都会自动进行故障转移。

出于安全原因,您不能使用网络负载平衡器,例如 Citrix ADC。VDA 注册使用 Kerberos 相互身份验证,其中客户端 (VDA) 必须向服务 (Controller) 证明其身份。但是,控制器或云连接器也必须向 VDA 证明其身份。这意味着 VDA 和控制器或云连接器同时充当服务器和客户端。如本文开头所述,存在两个通信通道:VDA 到控制器/云连接器以及控制器/云连接器到 VDA。

此过程中的一个组件称为服务主体名称 (SPN),它作为属性存储在 Active Directory 计算机对象中。当您的 VDA 连接到 Controller 或 Cloud Connector 时,它必须指定要与之通信的对象。此地址是 SPN。如果您使用负载平衡 IP,Kerberos 相互身份验证会正确识别该 IP 不属于预期的 Controller 或 Cloud Connector。

有关详细信息,请参阅:

  • 克贝罗斯 简介
  • 使用 Kerberos 进行相互身份验证(https://docs.microsoft.com/zh-cn/windows-server/security/kerberos/kerberos-authentication-overview)

自动更新取代 CNAME

自动更新功能取代了 XenApp 和 XenDesktop 7.x 之前版本中的 CNAME(DNS 别名)功能。从 XenApp 和 XenDesktop 7 开始,CNAME 功能已禁用。请使用自动更新而不是 CNAME。(如果必须使用 CNAME,请参阅 CTX137960。为了使 DNS 别名一致地工作,请勿同时使用自动更新和 CNAME。)

控制器/云连接器组

在某些情况下,您可能希望以组的形式处理 Controller 或 Cloud Connector,其中一个组是首选组,如果所有 Controller/Cloud Connector 都失败,则使用另一个组进行故障转移。请记住,Controller 或 Cloud Connector 是从列表中随机选择的,因此分组有助于强制优先使用。

这些组旨在用于单个站点(而非多个站点)内。

使用括号指定控制器/云连接器组。例如,如果有四个控制器(两个主控制器和两个备份控制器),分组可能如下所示:

(XDC-001.cdz.lan XDC-002.cdz.lan) (XDC-003.cdz.lan XDC-004.cdz.lan)

在此示例中,首先处理第一组中的 Controller(001 和 002)。如果两者都失败,则处理第二组中的 Controller(003 和 004)。

对于 XenDesktop 7.0 或更高版本,您需要执行一个额外步骤才能使用 注册组 功能。您需要从 Studio 禁止 启用 Controller 自动更新 策略。

SID 列表

VDA 可以联系以进行注册的 Controller 列表是 ListofDDCs。VDA 还必须知道要信任哪些 Controller,因为 VDA 不会自动信任 ListofDDCs 中的 Controller。ListofSIDs(安全 ID)标识受信任的 Controller。VDA 仅尝试向受信任的 Controller 注册。

在大多数环境中,ListofSIDs 是从 ListofDDCs 自动生成的。您可以使用 CDF 跟踪来读取 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),但两个控制器用于代理 (List OfSIDs)。

用于注册和代理的不同控制器示例

VDA 注册期间的控制器搜索

当 VDA 尝试注册时,Broker Agent 首先在本地域中执行 DNS 查找,以确保可以访问指定的控制器。

如果初始查找未能找到控制器,Broker Agent 可以启动 AD 中的回退自上而下查询。该查询会搜索所有域,并频繁重复。如果控制器地址无效(例如,管理员在安装 VDA 时输入了不正确的 FQDN),则该查询活动可能会导致域控制器上出现分布式拒绝服务 (DDoS) 情况。

以下注册表项控制 Broker Agent 在初始搜索期间无法找到控制器时是否使用回退自上而下查询。

HKEY_LOCAL_MACHINE\Software\Citrix\VirtualDesktopAgent

  • 名称: DisableDdcWildcardNameLookup
  • 类型: DWORD
  • 值: 0(默认)或任何非零值

当设置为 0 时,将启用备用搜索。如果对 Controller 的初始搜索失败,则会启动备用自上而下搜索。这是默认行为。但是,如果设置为任何非零值,则会禁用备用搜索。如果对 Controller 的初始搜索失败,Broker 代理将停止查找。

使用只读域控制器进行 VDA 注册期间的 LDAP 绑定序列

当 VDA 注册到只读域控制器 (RODC) 时,Broker 代理必须选择要忽略的轻型目录访问协议 (LDAP) 绑定。为了进行此选择,Broker 代理需要一个合适的注册表项。

如果未提供注册表项,或者注册表项字段为空,则 VDA 注册到 RODC 的时间会更长,因为它需要通过原始 LDAP 绑定序列。

要修改 LDAP 绑定序列,已将注册表项 ListofIgnoredBindings 添加到 HKEY_LOCAL_MACHINE\Software\Policies\Citrix\VirtualDesktopAgent。使用 ListofIgnoredBindings 可以根据需要修改 LDAP 绑定序列,从而加快 VDA 注册到 RODC 的速度。

  • 名称: ListofIgnoredBindings
  • 类型: REG_SZ
  • 值包括:DefaultPath, DomainPath, PDCPath

该值是绑定路径选项的列表,每个选项之间用逗号分隔。注册表项会忽略它不识别为有效的值。

VDA 注册问题故障排除

如前所述,VDA 必须注册到 Delivery Controller 或 Cloud Connector,才能在启动代理会话时被考虑。未注册的 VDA 可能导致原本可用的资源利用不足。VDA 未注册的原因有很多,其中许多管理员可以排除故障。Studio 在目录创建向导中以及创建 Delivery Group 后提供故障排除信息。

  • 在计算机目录创建期间识别问题: 在目录创建向导中,添加现有计算机后,计算机帐户名称列表会指示每台计算机是否适合添加到目录。将鼠标悬停在每台计算机旁边的图标上,以显示有关该计算机的信息性消息。

    如果消息识别出有问题的计算机,您可以删除该计算机(使用删除按钮),或添加该计算机。例如,如果消息指示未获取到有关某台计算机的信息(可能是因为它从未注册过),您仍然可以选择添加该计算机。

    目录的功能级别控制目录中计算机可用的产品功能。使用新产品版本中引入的功能可能需要新的 VDA。设置功能级别可使该版本中引入的所有功能(如果功能级别不变,则包括更高版本的功能)可用于目录中的计算机。但是,目录中具有较早 VDA 版本的计算机将无法注册。

  • 创建 Delivery Group 后识别问题: 创建 Delivery Group 后,Studio 会显示与该组关联的计算机的详细信息。

    交付组的详细信息窗格指示必须注册但未注册的计算机数量。换句话说,可能有一台或多台计算机已开机且未处于维护模式,但当前未向控制器注册。查看“未注册但必须注册”的计算机时,请检查详细信息窗格中的故障排除选项卡,以了解可能的原因和建议的纠正措施。

有关 VDA 注册故障排除的更多信息

  • 有关功能级别的更多信息,请参阅VDA 版本和功能级别

  • 有关 VDA 注册故障排除的更多信息,请参阅CTX136668

  • 您还可以使用 Citrix Scout 运行状况检查来排除 VDA 注册和会话启动故障。有关详细信息,请参阅关于运行状况检查