Citrix Virtual Apps and Desktops

IP virtual y bucle invertido virtual

Importante:

  • Windows 10 Enterprise multisession no es compatible con la virtualización de IP de Escritorio remoto (IP virtual) y no admitimos la virtualización de IP de Escritorio remoto ni el bucle invertido virtual en Windows 10 Enterprise multisession.
  • La virtualización de IP de Escritorio remoto (IP virtual) no es compatible con las máquinas alojadas en la nube. Para obtener más información, consulta la documentación de Microsoft.

Las funciones de virtualización de IP de Escritorio remoto y de bucle invertido virtual son compatibles con las máquinas con Windows Server 2016, Windows Server 2019 y Windows Server 2022. Estas funciones no se aplican a las máquinas con sistema operativo de escritorio Windows.

La función de dirección de virtualización de IP de Escritorio remoto de Microsoft proporciona a una aplicación publicada una dirección IP única asignada dinámicamente para cada sesión. Con la función de bucle invertido virtual de Citrix, puedes configurar aplicaciones que dependen de las comunicaciones con localhost (127.0.0.1 de forma predeterminada) para usar una dirección de bucle invertido virtual única en el rango de localhost (127.*).

Ciertas aplicaciones, como CRM y la integración de telefonía informática (CTI), usan una dirección IP para el direccionamiento, las licencias, la identificación u otros fines que requieren una dirección IP o una dirección de bucle invertido únicas. Otras aplicaciones pueden vincularse a un puerto estático, por lo que los intentos de iniciar instancias adicionales de una aplicación en un entorno multiusuario fallan porque el puerto está en uso. Para que estas aplicaciones funcionen correctamente en un entorno de Citrix Virtual Apps™, se requiere una dirección IP única para cada dispositivo.

La virtualización de IP de Escritorio remoto y el bucle invertido virtual son funciones independientes entre sí. Puedes usar una o ambas.

Sinopsis de la acción del administrador:

  • Para usar la virtualización de IP de Escritorio remoto de Microsoft, actívala y configúrala en el servidor Windows. (No se necesitan las configuraciones de directiva de Citrix®.)
  • Para usar el bucle invertido virtual de Citrix, configura dos ajustes en una directiva de Citrix.

Virtualización de IP de Escritorio remoto (IP virtual)

Cuando la virtualización de IP de Escritorio remoto está activada y configurada en el servidor Windows, cada aplicación configurada que se ejecuta en una sesión parece tener una dirección única. Los usuarios acceden a estas aplicaciones en un servidor de Citrix Virtual Apps de la misma manera que acceden a cualquier otra aplicación publicada. Un proceso requiere la virtualización de IP de Escritorio remoto en cualquiera de los siguientes casos:

  • El proceso usa un número de puerto TCP codificado.
  • El proceso usa sockets de Windows y requiere una dirección IP única o un número de puerto TCP especificado.

Para determinar si una aplicación necesita usar direcciones de virtualización de IP de Escritorio remoto:

  1. Obtén la herramienta TCPView de Microsoft. Esta herramienta enumera todas las aplicaciones que vinculan direcciones IP y puertos específicos. Para obtener más información sobre TCPView, consulta la documentación de Microsoft.
  2. Desactiva la función Resolver direcciones IP para que veas las direcciones en lugar de los nombres de host.
  3. Inicia la aplicación y usa TCPView para ver qué direcciones IP y puertos abre la aplicación y qué nombres de proceso están abriendo estos puertos.
  4. Configura cualquier proceso que abra la dirección IP del servidor, 0.0.0.0 o 127.0.0.1.
  5. Para asegurarte de que una aplicación no abra la misma dirección IP en un puerto diferente, inicia otra instancia de la aplicación.

Cómo funciona la virtualización de IP de Escritorio remoto (RD) de Microsoft

  • El direccionamiento de IP virtual debe estar activado en el servidor de Microsoft.

    Por ejemplo, en un entorno de Windows Server 2016, desde el Administrador del servidor, expande Servicios de Escritorio remoto > Conexiones de host de sesión de RD para activar la función de virtualización de IP de RD y configurar los ajustes para asignar dinámicamente direcciones IP usando el servidor de Protocolo de configuración dinámica de host (DHCP) por sesión o por programa. Para obtener más información sobre cómo configurar la virtualización de IP de Escritorio remoto, consulta la documentación de Microsoft.

  • Después de activar la función, al iniciar la sesión, el servidor solicita direcciones IP asignadas dinámicamente al servidor DHCP.

  • La función de virtualización de IP de RD asigna direcciones IP a las conexiones de Escritorio remoto por sesión o por programa. Si asignas direcciones IP para varios programas, comparten una dirección IP por sesión.

  • Después de asignar una dirección a una sesión, la sesión usa la dirección virtual en lugar de la dirección IP principal del sistema cada vez que se realizan las siguientes llamadas: bind¸closesocket¸connect, WSAConnect, WSAAccept, getpeername, getsockname, sendto, WSASendTo, WSASocketW, gethostbyaddr, getnameinfo, getaddrinfo.

Al usar la función de virtualización de IP de Microsoft dentro de la configuración de alojamiento de sesiones de Escritorio remoto, las aplicaciones se vinculan a direcciones IP específicas insertando un componente de “filtro” entre la aplicación y las llamadas a funciones de Winsock. La aplicación solo ve la dirección IP correcta que debe usar. Cualquier intento de la aplicación de escuchar comunicaciones TCP o UDP se vincula automáticamente a su dirección IP virtual asignada (o dirección de bucle invertido). Cualquier conexión de origen abierta por la aplicación se origina desde la dirección IP vinculada a la aplicación.

En las funciones que devuelven una dirección (como GetAddrInfo(), que controla una directiva de Windows), si se solicita la dirección IP del host local, la virtualización de IP de Escritorio remoto examina la dirección IP devuelta y la cambia a la dirección de virtualización de IP de Escritorio remoto de la sesión. Las aplicaciones que intentan obtener la dirección IP del servidor local a través de dichas funciones de nombre solo ven la dirección de virtualización de IP de Escritorio remoto única asignada a esa sesión. Esta dirección IP se usa a menudo en llamadas de socket posteriores, como bind o connect. Para obtener más información sobre las directivas de Windows, consulta Virtualización de IP de RDS en Windows Server.

A menudo, una aplicación solicita vincularse a un puerto para escuchar en la dirección 0.0.0.0. Cuando una aplicación hace esto y usa un puerto estático, no puedes iniciar más de una instancia de la aplicación. La función de dirección de virtualización de IP de Escritorio remoto también busca 0.0.0.0 en estos tipos de llamadas. Cambia la llamada para escuchar en la dirección de virtualización de IP de Escritorio remoto específica, lo que permite que más de una aplicación escuche en el mismo puerto en el mismo equipo porque todas están escuchando en direcciones diferentes. La llamada se cambia solo si está en una sesión ICA y la función de dirección de virtualización de IP de Escritorio remoto está activada. Por ejemplo, si dos instancias de una aplicación que se ejecutan en sesiones diferentes intentan vincularse a todas las interfaces (0.0.0.0) y a un puerto específico (como 9000), se vinculan a VIPAddress1:9000 y VIPAddress2:9000 y no hay conflicto.

Bucle invertido virtual

Activar la configuración de la directiva de bucle invertido de virtualización de IP de Escritorio remoto de Citrix permite que cada sesión tenga su propia dirección de bucle invertido para la comunicación. Cuando una aplicación usa la dirección de localhost (predeterminada = 127.0.0.1) en una llamada a Winsock, la función de bucle invertido virtual simplemente reemplaza 127.0.0.1 por 127.X.X.X, donde X.X.X es una representación del ID de sesión + 1. Por ejemplo, un ID de sesión de 7 es 127.0.0.8. En el improbable caso de que el ID de sesión exceda el cuarto octeto (más de 255), la dirección pasa al siguiente octeto (127.0.1.0), hasta un máximo de 127.255.255.255.

Un proceso requiere bucle invertido virtual en cualquiera de los siguientes casos:

  • El proceso usa la dirección de bucle invertido (localhost) del socket de Windows (127.0.0.1).
  • El proceso usa un número de puerto TCP codificado.

Usa la configuración de directiva de bucle invertido virtual para las aplicaciones que usan una dirección de bucle invertido para la comunicación entre procesos. No se requiere ninguna configuración adicional. El bucle invertido virtual no tiene dependencia de la IP virtual, por lo que no tienes que configurar el servidor de Microsoft.

  • Compatibilidad con bucle invertido de IP virtual. Cuando está activada, esta configuración de directiva permite que cada sesión tenga su propia dirección de bucle invertido virtual. Esta configuración está desactivada de forma predeterminada. La función se aplica solo a las aplicaciones especificadas con la configuración de directiva de lista de programas de bucle invertido virtual de IP virtual.
  • Lista de programas de bucle invertido virtual de IP virtual. Esta configuración de directiva especifica las aplicaciones que usan la función de bucle invertido virtual de IP virtual. Esta configuración se aplica solo cuando la configuración de directiva de compatibilidad con bucle invertido de IP virtual está activada.
  • Exclusión de puerto de bucle invertido de IP virtual. Cuando una aplicación llama a la dirección de bucle invertido en los puertos especificados en esta configuración, el bucle invertido virtual no cambia la llamada a la dirección de bucle invertido específica de la sesión.

Función relacionada

Puedes usar la siguiente configuración del Registro para asegurarte de que el bucle invertido virtual tenga preferencia sobre la IP virtual. Esta función se llama bucle invertido preferido. Sin embargo, procede con precaución:

  • Usa el bucle invertido preferido solo si la IP virtual y el bucle invertido virtual están activados. De lo contrario, podrías obtener resultados inesperados.
  • Editar el Registro incorrectamente puede causar problemas graves que pueden requerir que reinstales tu sistema operativo. Citrix no puede garantizar que los problemas resultantes del uso incorrecto del Editor del Registro puedan resolverse. Usa el Editor del Registro bajo tu propia responsabilidad. Asegúrate de hacer una copia de seguridad del Registro antes de editarlo.

Ejecuta regedit en los servidores donde residen las aplicaciones.

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\VIP
  • Nombre: PreferLoopback, Tipo: REG_DWORD, Datos: 1
  • Nombre: PreferLoopbackProcesses, Tipo: REG_MULTI_SZ, Datos: <lista de procesos>
IP virtual y bucle invertido virtual