Product Documentation

Entorno de Delivery Controller

Nov 11, 2015

En una implementación, Delivery Controller es el componente de servidor que es responsable de la administración del acceso de los usuarios, además de la intermediación y optimización de las conexiones. Los Controllers también proporcionan los Machine Creation Services que crean imágenes de escritorio y servidor.

Un sitio debe tener al menos un Delivery Controller. Después de instalar el Controller inicial y crear un sitio, puede agregarle más Controllers. Tener más de un Controller en un sitio ofrece dos ventajas principales.
  • Redundancia. Se recomienda que un sitio de producción siempre tenga al menos dos Controllers en diferentes servidores físicos. De este modo, si falla un Controller, los otros pueden gestionar las conexiones y administrar el sitio.
  • Escalabilidad. A medida que aumenta la actividad de un sitio, también aumenta el uso de CPU en el Controller y la actividad de la base de datos de SQL Server. Los Controllers adicionales ofrecen la capacidad de administrar más usuarios y más solicitudes de aplicaciones y escritorios, además de mejorar la capacidad general de respuesta.

Cómo detectan los Virtual Delivery Agents (VDA) a los Controllers

Para poder utilizar un VDA, primero se debe registrar (establecer comunicación) con un Controller del sitio. El VDA busca un Controller en una lista de Controllers llamada ListOfDDCs. La ListOfDDCs consta de una o varias entradas DNS o direcciones IP que indican a VDA los Controllers del sitio. Para conseguir un equilibrio de carga, el VDA distribuye automáticamente las conexiones entre todos los Controllers de la lista.

Además de la lista ListOfDDCs, la lista ListOfSIDs indica los identificadores de seguridad de máquina (SID) a los que el agente VDA permite la conexión en calidad de Controllers. La ListOfSIDs se puede utilizar para reducir la carga de Active Directory o para evitar posibles amenazas de seguridad provenientes de un servidor DNS que presente riesgos de seguridad.

Es importante asegurarse de que la ListOfSIDs y la ListOfDDCs de todos los VDA contienen información actualizada sobre los Controllers que se han agregado o quitado del sitio. Si las listas no están actualizadas, un VDA podría rechazar inicios de sesión en los que interviene como intermediario un Controller que no figura en la lista. Las entradas no válidas pueden retrasar el inicio del software del sistema de escritorios virtuales. Para mantener las listas actualizadas:
  • Se puede utilizar la función actualización automática, que actualiza automáticamente las listas ListOfDDCs y ListOfSIDs cuando se agregan o se quitan Controllers. De forma predeterminada, la actualización automática está habilitada.
  • Se puede recurrir a la administración manual: actualización manual de las configuraciones de directivas o de los parámetros de Registro que identifican a los Controllers.
La información que contiene tanto la ListOfDDCs como la ListOfSIDs puede proceder de varios lugares en una implementación. El VDA comprueba las siguientes ubicaciones, por orden, y se detiene en el primer lugar en el que encuentre las listas:
  1. Una ubicación de almacenamiento persistente mantenida para la función de actualización automática. Esta ubicación contiene información acerca de los Controllers si la actualización automática está habilitada, después de la primera vez que el VDA se haya registrado correctamente después de la instalación. (Este almacenamiento también contiene información de directivas de máquina, que garantiza que las configuraciones de directiva se conserven después de reiniciar).

    Para su registro inicial después de la instalación, o cuando la actualización automática está inhabilitada, el VDA comprueba las siguientes ubicaciones.

  2. Configuraciones de directivas (Controllers, SID de Controllers).
  3. La información acerca de Controller que se encuentra debajo de la clave Virtual Desktop Agent en el Registro. El programa de instalación del VDA rellenará inicialmente estos valores a partir de la información referente al Controller indicada al instalar el VDA.
  4. Detección de Controllers basada en OU. Este es un método antiguo, que se mantiene para la compatibilidad con versiones anteriores.
  5. El archivo Personality.ini creado por Machine Creation Services.

Si en una ListOfDDCs se especifica más de un Controller, el VDA intenta conectarse a ellos aleatoriamente. La ListOfDDCs también puede contener grupos de Controllers. Estos grupos se indican con corchetes que engloban dos o más entradas de Controllers. El VDA intenta conectarse a cada Controller del grupo antes de pasar a otras entradas de la ListOfDDCs.

Para los usuarios de XenDesktop que se han actualizado desde versiones anteriores a 7.0, la función de actualización automática sustituye a la función CNAME de la versión anterior. La función CNAME puede volver a habilitarse manualmente, si lo desea; no obstante, para que los alias de DNS funcionen coherentemente, no se pueden usar a la vez la función de actualización automática y la función CNAME. Consulte CTX137960 para obtener información sobre cómo volver a habilitar la función CNAME.

Aspectos a tener en cuenta a la hora de elegir entre la actualización automática y la administración manual

De forma predeterminada, la configuración de directiva que habilita o inhabilita la actualización automática está habilitada.

Los siguientes tipos de implementación no pueden utilizar la actualización automática, por lo que deben utilizar la administración manual.
  • Las implementaciones que utilizan grupos de Controllers.
  • Las implementaciones que utilizan la ListOfSIDs por razones de seguridad. (Las implementaciones que utilizan ListOfSIDs para reducir la carga de Active Directory sí pueden utilizar la actualización automática.)
  • Las implementaciones que utilizan Provisioning Services sin discos de reescritura.
  • Las implementaciones que utilizan la configuración de directiva Controllers o SID de Controller.

Uso de la actualización automática

La configuración de directiva Habilitar actualización automática de Controller se encuentra en la categoría Virtual Delivery Agent.
  • Para habilitar la actualización automática, habilite la configuración de directiva Habilitar actualización automática de Controller. Este parámetro está habilitado de forma predeterminada.
  • Para inhabilitar la actualización automática, inhabilite la configuración de directiva Habilitar actualización automática de Controller.

Cuando la actualización automática está habilitada y se instala un Virtual Delivery Agent (VDA), este intenta registrarse con uno de los valores de Delivery Controller que se especificaron al instalar el VDA. El programa de instalación escribe la información del Controller especificado durante la instalación del VDA en el valor de Registro ListOfDDCs.

Después de que el VDA se registre, el Controller con el que se registró envía al VDA una lista de nombres de dominio completos (FQDN) e identificadores de seguridad (SID) de los Controllers actuales. El VDA escribe esta lista en el almacenamiento persistente de actualizaciones automáticas. Cada Controller también comprueba la base de datos de configuración del sitio cada 90 minutos para consultar información de Controllers: si un Controller se ha agregado o quitado desde la última comprobación, o si se ha producido algún cambio de directiva, el Controller envía listas actualizadas a sus VDA registrados. Los VDA aceptarán conexiones de todos los Controllers de la lista más reciente que hayan recibido.

Si un VDA recibe una lista que no incluye el Controller con el que está registrado (en otras palabras, el Controller se quitó del sitio), el VDA vuelve a registrarse eligiendo algún Controller de la lista. Después de que un VDA se registra o se vuelve a registrar, recibe una lista actualizada.

Por ejemplo:
  1. Una implementación tiene tres Controllers: A, B y C. Se instala un VDA y se registra con el Controller B (el cual se especificó durante la instalación del VDA).
  2. Dos Controllers (D y E) se agregan al sitio. En los 90 minutos siguientes, los VDA reciben listas actualizadas y aceptarán conexiones de los Controllers A, B, C, D y E (la carga no se reparte por igual entre todos los Controllers hasta que se reinicien los VDA).
  3. El Controller B se quita del sitio. En los 90 minutos siguientes, los VDA reciben listas actualizadas porque se ha producido un cambio de Controllers desde la última comprobación. El VDA instalado en el paso 1 está registrado con el Controller B, que ya no está en la lista, de modo que el VDA vuelve a registrarse y elige entre los Controllers de la lista actual (A, C, D y E).

Administración manual de Delivery Controllers

Si no usa la actualización automática, debe actualizar la configuración de directiva de Citrix o los valores de Registro para cada Virtual Delivery Agent (VDA) del sitio (o de la imagen del VDA) después de agregar, transferir o eliminar los Delivery Controllers del sitio. Los cambios en el Registro también se pueden actualizar mediante un objeto de directiva de grupo.

Para realizar una administración manual mediante configuraciones de directiva de Citrix

Actualice los valores FQDN especificados en la configuración de directiva Controllers. Esta configuración de directiva está ubicada en la categoría Virtual Delivery Agent.

Si también usa la lista ListOfSIDs en su implementación, actualice los valores SID especificados en la configuración de directiva SID de Controllers.

Para realizar una administración manual con el Registro

Advertencia: Si modifica el Registro de forma incorrecta, podrían generarse problemas graves que pueden provocar la reinstalación del sistema operativo. Citrix no puede garantizar que los problemas derivados de la utilización inadecuada del Editor del registro puedan resolverse. Si utiliza el Editor del Registro, será bajo su propia responsabilidad. Asegúrese de hacer una copia de seguridad del registro antes de modificarlo.

Actualice la clave de Registro de ListOfDDCs, que enumera los FQDN de todos los Controllers del sitio. (Esta clave es el equivalente de la OU del sitio de Active Directory.) Separe valores con espacios. Ponga los grupos de Controllers entre corchetes.

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

Si la ubicación del Registro HKEY_LOCAL_MACHINE\Software\Citrix\VirtualDesktopAgent contiene tanto la clave ListOfDDCs como la clave FarmGUID, la ListOfDDCs se utiliza para la detección de Controllers; FarmGUID está presente si la OU de un sitio se especificó durante la instalación de VDA.

Si lo desea, puede actualizar la clave de Registro de ListOfSIDs:

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

Cómo agregar, quitar o mover Controllers

Para agregar, quitar o mover un Delivery Controller necesita los roles o permisos siguientes:
OperaciónPropósitoRol del servidorRol de la base de datos
Creación de bases de datosCreación de una base de datos vacía adecuadadbcreator 
Creación de esquemasCrea los esquemas de cada servicio y agrega el primer Controller al sitiosecurityadmin *db_owner
Agregar ControllerAgregar Controller (aparte del primero) al sitiosecurityadmin *db_owner
Agregar Controller (servidor reflejado)Agrega un inicio de sesión de Controller al servidor de la base de datos que se encuentra actualmente en el rol de espejo de la base de datos reflejadasecurityadmin * 
Quitar ControllerQuitar Controller del sitio db_owner
Actualización de esquemasAplica revisiones o actualizaciones a los esquemas db_owner

* Aunque sea técnicamente más restrictivo, en la práctica, el rol de servidor securityadmin debe tratarse como equivalente al rol de servidor sysadmin.

Cuando se utiliza Desktop Studio para realizar estas operaciones, la cuenta de usuario debe formar parte de forma explícita del rol de servidor sysadmin.

Antes de agregar, quitar o mover un Controller, si su implementación usa las funciones de reflejo de base de datos, asegúrese de que la base de datos principal y la reflejada estén ejecutándose. Además, si está usando scripts con SQL Server Management Studio, habilite el modo SQLCMD antes de ejecutar los scripts. Para verificar el reflejo después de agregar, quitar o mover un Controller, ejecute el cmdlet de PowerShell get-configdbconnection para asegurarse de que el asociado de conmutación por error se ha definido en la cadena de conexión con la base de datos reflejada.

Después de agregar, quitar o mover un Controller:
  • Si la actualización automática está habilitada, los Virtual Delivery Agents (VDA) recibirán una lista actualizada de los Controllers en los 90 minutos siguientes.
  • Si la actualización automática no está habilitada, asegúrese de que la configuración de directiva o la clave del Registro ListOfDDCs están actualizadas para todos los VDA. Después de mover un Controller a otro sitio, actualice la configuración de directiva o la clave del Registro en ambos sitios.

Para agregar un Controller

No puede agregar servidores instalados con una versión anterior de este software a un sitio que se haya creado con esta versión.
  1. En el servidor que desea agregar, ejecute el programa de instalación y seleccione Delivery Controller y otros componentes principales que desee instalar.
  2. En Studio, haga clic en Incorporarse a una implementación existente y escriba la dirección del sitio.

Para quitar un Controller

Quitar un Controller no desinstala el software de Citrix ni cualquier otro componente; solo se quita el Controller de la base de datos de forma que ya no se pueda usar para hacer de intermediario (broker) de conexiones ni para realizar otras tareas. Si quita un Controller, es posible volver a agregarlo al mismo sitio o a otro posteriormente. Un sitio requiere como mínimo un Controller; esto significa que no puede quitar el último de la lista de Studio.

Nota: Compruebe que el Controller está ejecutándose de forma que Studio se cargue en menos de una hora. Una vez que Studio carga el Controller que quiere quitar, apague el Controller cuando lo pida el sistema.

Aunque quite un Controller de un sitio, no se quita el inicio de sesión del Controller en el servidor de la base de datos. Esto evita el peligro potencial provocado por la acción de quitar un inicio de sesión que utilizan otros servicios de producto en la misma máquina. En caso de que ya no sea necesario, el inicio de sesión se debe quitar manualmente. Para hacerlo, se necesita el permiso del rol de servidor securityadmin para quitar el inicio de sesión.

Importante: No quite el Controller de Active Directory hasta que lo haya quitado del sitio.

  1. En Studio, seleccione Configuración > Controllers en el panel izquierdo y, a continuación, seleccione el Controller que desea quitar.
  2. Haga clic en Quitar Controller en el panel Acciones. Si no dispone de los roles y permisos adecuados para la base de datos, se le ofrece la opción de generar un script que permite al administrador de bases de datos quitar el Controller por usted.
  3. Es posible que necesite quitar la cuenta de la máquina del Controller del servidor de la base de datos. Antes de hacerlo, compruebe que no hay ningún otro servicio que esté usando la cuenta.

Después de usar Studio para quitar un Controller, el tráfico hacia ese Controller puede permanecer activo durante un corto período de tiempo para garantizar la correcta finalización de las tareas actuales. Si desea forzar la eliminación de un Controller en un período de tiempo muy corto, Citrix recomienda apagar el servidor donde se instaló o quitar ese servidor de Active Directory. A continuación, reinicie el resto de Controllers del sitio para asegurarse de que no hay más comunicaciones con el Controller que ha quitado.

Para mover un Controller a otro sitio

No puede mover un Controller a un sitio creado con una versión anterior del software.
  1. En el sitio donde el Controller se encuentra actualmente (el que será el sitio antiguo), en Studio, seleccione Configuración > Controllers en el panel izquierdo y, a continuación, seleccione el Controller que desee mover.
  2. Haga clic en Quitar Controller en el panel Acciones. Si no dispone de los roles y permisos adecuados para la base de datos, se le ofrece la opción de generar un script que permite al administrador de bases de datos quitar el Controller por usted. Un sitio requiere como mínimo un Controller; esto significa que no puede quitar el último de la lista de Studio.
  3. En el Controller que está moviendo, abra Studio, restablezca los servicios cuando el sistema se lo solicite, haga clic en Incorporarse a un sitio existente e introduzca la dirección del sitio nuevo.

Cómo transferir un Virtual Delivery Agent (VDA) a otro sitio

Puede transferir un VDA a otro sitio (del sitio 1 al sitio 2) al actualizar o transferir la imagen de un VDA que se creó en un sitio de prueba a un sitio de producción. Hay dos formas de hacerlo: mediante el programa de instalación o mediante directivas de Citrix.

Transferencia de un VDA mediante el programa de instalación

Importante: Especifique los Delivery Controllers en el programa de instalación solo si la configuración de directiva de Controllers no se utiliza.

Ejecute el programa de instalación y agregue un Delivery Controller, especificando el nombre de dominio completo o FQDN (entrada DNS) de un Controller en el sitio 2.

Transferencia de un VDA mediante las directivas de Citrix

Use el Editor de directivas de grupo para mover varios VDA entre los sitios.

Por ejemplo:
  1. Cree una directiva en el Sitio 1 que especifique la siguiente configuración y, a continuación, filtre la directiva al nivel de grupo de entrega para iniciar una migración de VDA entre sitios, por fases.
    • Controllers. Contiene los nombres de dominio completo o FQDN (entradas de DNS) de uno o más Controllers del sitio 2.
    • Habilitar actualización automática de Controller. Defínala como inhabilitada.
  2. Cada VDA en el grupo de entrega recibe un aviso sobre la nueva directiva en los siguientes 90 minutos. El VDA ignora la lista de Controllers que recibe (porque la actualización automática está inhabilitada). Selecciona uno de los Controllers especificados en la directiva, la cual especifica una lista de los Controllers en el sitio 2.
  3. Cuando el VDA se registra correctamente con un Controller del sitio 2, recibe la ListOfDDCs y la información de directivas del sitio 2, que tiene la actualización automática habilitada de forma predeterminada. Puesto que el Controller con el que se registró el VDA en el sitio 1 no está en la lista enviada por el Controller del sitio 2, el VDA vuelve a registrarse y selecciona un Controller de la lista de Controllers del sitio 2. A partir de entonces, el VDA se actualiza automáticamente con la información del sitio 2.

Detección de Controllers basada en unidades organizativas de Active Directory

Este método de detección de Delivery Controllers se admite principalmente para la compatibilidad con versiones anteriores y solo es válido para Virtual Delivery Agents (VDA) para escritorios Windows, no VDA para servidores Windows. La detección basada en Active Directory requiere que todos los equipos de un sitio sean miembros de un dominio, con relaciones de confianza mutua entre el dominio que utiliza el Controller y el dominio o los dominios que utilizan los escritorios. Si utiliza este método, debe configurar el GUID de la unidad organizativa (OU) en el Registro de cada escritorio.

Para llevar a cabo una detección de Controllers basada en unidades organizativas, ejecute el script de PowerShell Set-ADControllerDiscovery.ps1 en el Controller (cada Controller contiene este script en la carpeta $Env:ProgramFiles\Citrix\Broker\Service\Setup Scripts). Para ejecutar el script, debe tener permisos CreateChild en una OU principal, además de derechos de administración total.

Cuando crea un sitio, debe crear una unidad organizativa correspondiente en Active Directory para que los escritorios detecten los Controllers del sitio a través de Active Directory. La OU puede crearse en cualquier dominio del bosque que contenga los equipos. También se recomienda que la OU contenga los Controllers del sitio, pero esto no es una obligación ni un requisito. Un administrador de dominio con los privilegios apropiados puede crear la OU como un contenedor vacío y, a continuación, delegar la autoridad de administración sobre la OU a un administrador Citrix.

El script crea varios objetos esenciales. Solo se crean y se usan objetos estándar de Active Directory. No es necesario ampliar el esquema.
  • Un grupo de seguridad de Controllers. La cuenta de equipo de todos los Controllers del sitio debe ser miembro de este grupo de seguridad. Los escritorios de un sitio aceptan datos de los Controllers únicamente si forman parte de este grupo de seguridad.

    Asegúrese de que todos los Controllers incluyen el privilegio "Acceder a este equipo desde la red" en todos los escritorios virtuales que ejecutan el VDA. Puede hacerlo concediendo este privilegio al grupo de seguridad de los Controllers. Si los Controllers no tienen este privilegio, los VDA no se registran.

  • Un objeto de punto de conexión de servicio (SCP) que contenga información acerca del sitio, como el nombre del sitio. Si utiliza la herramienta administrativa de Usuarios y equipos de Active Directory para inspeccionar la OU de un sitio, es posible que deba habilitar la opción Funciones avanzadas en el menú Ver para ver los objetos SCP.
  • Un contenedor denominado RegistrationServices, el cual se crea en la OU del sitio. Esto contiene un objeto SCP por cada Controller del sitio. Cada vez que se inicia el Controller, valida el contenido de su SCP y lo actualiza si es necesario.

Si existe la posibilidad de que varios administradores agreguen y eliminen Controllers después de completarse la instalación inicial, esos administradores necesitan permisos para crear y eliminar objetos secundarios en el contenedor RegistrationServices y propiedades de escritura en el grupo de seguridad de los Controllers (estos permisos se conceden automáticamente al administrador que ejecuta el script Set-ADControllerDiscovery.ps1). El administrador del dominio o el administrador que realizó la instalación original pueden conceder estos permisos. Citrix recomienda configurar un grupo de seguridad para hacerlo.

Al usar la OU de un sitio:
  • La información se escribe en Active Directory solo cuando se instala o desinstala este software o cuando un Controller se inicia y necesita actualizar la información de su SCP (por ejemplo, debido a un cambio en el nombre del Controller o en el puerto de comunicación). De forma predeterminada, el script Set-ADControllerDiscovery.ps1 establece permisos sobre los objetos en la OU del sitio de forma adecuada, con lo que proporciona acceso de escritura en el SCP a los Controllers. El contenido de los objetos en la OU del sitio se utiliza para establecer una relación de confianza entre los escritorios y los Controllers. Asegúrese de que:
    • Solo los administradores autorizados puedan agregar o quitar equipos en el grupo de seguridad de los Controllers mediante la lista de control de acceso del grupo de seguridad (ACL).
    • Solo los administradores autorizados y el Controller correspondiente puedan modificar la información en el SCP del Controller.
  • Si su implementación usa la replicación, tenga en cuenta posibles retrasos; consulte la documentación de Microsoft para obtener más detalles. Esto resulta especialmente importante si crea la OU de un sitio en un dominio que tiene controladores de dominio en varios sitios de Active Directory. Según la ubicación de los escritorios, los Controllers y los controladores de dominio, es posible que los cambios realizados en Active Directory al crear inicialmente la OU del sitio, instalar y desinstalar Controllers o modificar los nombres de los Controllers o los puertos de comunicación no sean visibles en los escritorios hasta que la información se replique en el controlador de dominio apropiado. Los síntomas de esa demora en la replicación incluyen escritorios que no pueden establecer contacto con los Controllers y, por lo tanto, no están disponibles para las conexiones de usuario.
  • Este software utiliza varios atributos de objeto de equipo estándar de Active Directory para administrar los escritorios. Según la implementación, el nombre de dominio completo del objeto de la máquina, como se almacena en el registro de Active Directory del escritorio, puede incluirse como parte de los parámetros de conexión que se devuelven al usuario para establecer una conexión. Asegúrese de que esta información sea coherente con la información en su entorno DNS.

Para mover un Controller a otro sitio mediante detección de Controllers basada en unidades organizativas

Siga las instrucciones en Para mover un Controller. Después de quitar el Controller del sitio anterior (paso 2), ejecute el script de PowerShell: Set-ADControllerDiscover –sync.

El script sincroniza la unidad organizativa con el conjunto actual de Controllers. Después de unirse al sitio existente (paso 4), ejecute el mismo script en cualquier Controller del nuevo sitio.

Uso de SSL en Controllers y cambio de puertos HTTP/HTTPS

XML Service se ejecuta en el Delivery Controller y es compatible con los protocolos HTTP y HTTPS.

Para usar SSL

Para HTTPS, XML Service es compatible con funciones Secure Sockets Layer (SSL) mediante el uso de certificados de servidor, pero no de certificados de cliente. Para utilizar HTTPS, debe obtener, instalar y registrar un certificado de servidor en todos los Controllers, y configurar un puerto con el certificado SSL.

Para cambiar los puertos HTTP o HTTPS predeterminados

De forma predeterminada, XML Service escucha en los puertos 80 para el tráfico HTTP y 443 para el tráfico HTTPS. Aunque puede usar puertos no predeterminados en un Controller para el tráfico HTTP o HTTPS, tenga en cuenta los riesgos de seguridad que implica la exposición de un Controller en redes que no son de confianza. En lugar de cambiar los valores predeterminados, es preferible implementar un servidor StoreFront independiente.

  1. Ejecute el siguiente comando en el Controller: BrokerService.exe -WIPORT http port -WISSLPORT https port

    http port es el número de puerto para el tráfico HTTP y https port es el número de puerto para el tráfico HTTPS.

  2. Si desea que XML Service ignore el tráfico HTTP o HTTPS en los puertos predeterminados, establezca los siguientes valores del Registro en el Controller y reinicie el Broker Service. Ambos valores se encuentran en HKLM\Software\Citrix\DesktopServer\.
    Advertencia: Si modifica el Registro de forma incorrecta, podrían generarse problemas graves que pueden provocar la reinstalación del sistema operativo. Citrix no puede garantizar que los problemas derivados de la utilización inadecuada del Editor del registro puedan resolverse. Si utiliza el Editor del Registro, será bajo su propia responsabilidad. Asegúrese de hacer una copia de seguridad del registro antes de modificarlo.
    • Para ignorar el tráfico HTTP, establezca el valor de XmlServicesEnableNonSsl en 0.
    • Para ignorar el tráfico HTTPS, establezca el valor de XmlServicesEnableSsl en 0.