Citrix Virtual Apps and Desktops

IP virtual y bucle invertido virtual

Importante:

  • La multisesión de Windows 10 Enterprise no incluye la función de virtualización de IP de Escritorio remoto (IP virtual) y nosotros no incluimos la función de Virtualización de IP de Escritorio remoto ni bucle invertido virtual en multisesión con Windows 10 Enterprise.
  • 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, consulte la documentación de Microsoft.

La virtualización de IP de escritorio remoto y las funciones de bucle invertido virtual son compatibles con las máquinas Windows Server 2016, Windows Server 2019 y Windows Server 2022. Sin embargo, no se aplican a las máquinas con SO de escritorio Windows.

La función de dirección de Virtualización de IP de Microsoft proporciona una dirección IP exclusiva a una aplicación publicada, asignada dinámicamente para cada sesión. Con la función de bucle invertido virtual de Citrix, puede configurar aplicaciones que dependen de la comunicación con el host local (127.0.0.1 de forma predeterminada) para utilizar una dirección de bucle invertido virtual exclusiva en el intervalo de host local (127.*).

Algunas aplicaciones, como CRM y Computer Telephony Integration (CTI), utilizan una dirección IP para el direccionamiento, las licencias, la identificación y otros fines, lo que requiere una dirección IP exclusiva o una dirección de bucle invertido. Otras aplicaciones pueden enlazar con un puerto estático, por lo que, al intentar iniciar instancias adicionales de una aplicación en un entorno multiusuario, se produce un error porque el puerto ya está en uso. Para que estas aplicaciones funcionen correctamente en un entorno Citrix Virtual Apps, se necesita una dirección IP exclusiva para cada dispositivo.

La virtualización de IP de escritorio remoto y el bucle invertido virtual son funciones independientes entre sí. Puede usar solo una de ellas o ambas.

Sinopsis de acciones de administrador:

  • Para usar la virtualización IP de escritorio remoto de Microsoft, habilítela y configúrela en el servidor Windows. (No se necesitan configuraciones de directivas de Citrix.)
  • Para usar el bucle virtual de Citrix, configure dos parámetros en una directiva de Citrix.

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

Cuando la función de Virtualización de IP está habilitada y configurada en el servidor Windows, cada una de las aplicaciones configuradas que se ejecutan en una sesión parece tener una dirección exclusiva. Los usuarios acceden a dichas aplicaciones en un servidor de Citrix Virtual Apps del mismo modo que acceden a cualquier otra aplicación publicada. Un proceso requiere la virtualización IP de escritorio remoto en cualquiera de los siguientes casos:

  • El proceso utiliza un número de puerto TCP integrado en el código
  • El proceso utiliza Windows Sockets y requiere una dirección IP exclusiva o un número de puerto TCP específico

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

  1. Obtenga la herramienta TCPView de Microsoft. Esta herramienta muestra todas las aplicaciones que enlazan puertos y direcciones IP específicas. Para obtener más información sobre TCPView, consulte la documentación de Microsoft.
  2. Inhabilite la función de resolución de direcciones IP de forma que vea las direcciones en lugar de los nombres de host.
  3. Ejecute la aplicación y con ayuda de TCPView consulte qué direcciones IP y puertos abre la aplicación y qué nombres de proceso abren estos puertos.
  4. Configure los procesos que abren la dirección IP del servidor, 0.0.0.0 o 127.0.0.1.
  5. Para asegurarse de que la aplicación no abre la misma dirección IP en otro puerto, ejecute otra instancia de la aplicación.

Funcionamiento de la virtualización de IP de Escritorio remoto (RD) de Microsoft

  • El uso de direcciones IP virtuales debe estar habilitado en el servidor de Microsoft.

    Por ejemplo: en un entorno de Windows Server 2016, desde el Administrador del servidor, expanda Servicios de Escritorio remoto > Conexiones de host de sesión de Escritorio remoto para activar la función Virtualización de IP de Escritorio remoto y configure los parámetros para asignar direcciones IP dinámicamente mediante el servidor DHCP (Dynamic Host Configuration Protocol) para cada sesión o cada programa. Para obtener más información sobre la configuración de la virtualización de IP de escritorio remoto, consulte la documentación de Microsoft.

  • Después de habilitar la función, al comenzar una sesión, el servidor solicita al servidor DHCP las direcciones IP asignadas dinámicamente.

  • La función de Virtualización de IP de Escritorio remoto asigna direcciones IP a las conexiones a escritorios remotos por sesión y por programa. Si se asignan direcciones IP para varios programas, éstos comparten una dirección IP por sesión.

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

Con la función de virtualización de IP de Microsoft en la configuración de host de sesiones de Escritorio remoto, las aplicaciones se vinculan con direcciones IP específicas mediante la introducción de un componente de “filtro” entre la aplicación y las llamadas de función de Winsock. La aplicación solo ve entonces la dirección IP que debe usar. Cualquier intento de la aplicación de escuchar comunicaciones TCP o UDP se vincula inmediatamente a su dirección IP virtual asignada (o dirección de bucle invertido). Todas las conexiones de origen abiertas por la aplicación se originan desde la dirección IP vinculada a la aplicación.

En funciones que devuelven una dirección (tales como GetAddrInfo(), que está controlada por una directiva de Windows), si se solicita la dirección IP local del host, 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 virtual 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 exclusiva asignada a dicha sesión. Esta dirección IP se utiliza con frecuencia en las posteriores llamadas de socket (tales como bind o connect). Para obtener más información acerca de las directivas de Windows, consulte 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. En ese caso, si además la aplicación utiliza un puerto estático, no podrá ejecutar más de una instancia de la aplicación. La función de direcciones de virtualización 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 varias aplicaciones puedan escuchar en el mismo puerto en el mismo equipo, puesto que todas escuchan en diferentes direcciones. La llamada solo se cambia si se está en una sesión ICA y la función de dirección de virtualización IP de escritorio remoto está habilitada. Por ejemplo: si dos instancias de una aplicación que se ejecutan en distintas sesiones intentan vincularse a todas las interfaces (0.0.0.0) y un puerto específico, por ejemplo, el 9000, se vinculan a VIPAddress1:9000 y VIPAddress2:9000, por lo que no existen conflictos.

Bucle invertido virtual

La habilitación de los parámetros de la directiva de bucle invertido de virtualización de IP de escritorio remoto de Citrix permite que cada sesión disponga de su propia dirección de bucle invertido para las comunicaciones. Cuando una aplicación usa la dirección de host local (predeterminada = 127.0.0.1) en una llamada de Winsock, la función de bucle invertido virtual sencillamente sustituye 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 caso improbable de que un ID de sesión fuera superior al cuarto octeto (más de 255), la dirección pasaría al octeto siguiente (127.0.1.0) hasta el máximo de 127.255.255.255.

Un proceso requiere el bucle invertido virtual en los siguientes casos:

  • El proceso usa la dirección de bucle invertido de Windows Sockets del host local (127.0.0.1)
  • El proceso utiliza un número de puerto TCP integrado en el código

Use la configuración de directiva de bucle invertido para aplicaciones que usan una dirección de bucle invertido para la comunicación entre procesos. No se requiere ninguna configuración adicional. La función de bucle invertido virtual no depende de la dirección IP virtual, de modo que no es necesario configurar el servidor de Microsoft.

  • Funcionalidad de bucle invertido de IP virtual. Cuando está habilitada, esta configuración de directiva permite que cada sesión tenga su propia dirección virtual de bucle invertido. Este parámetro está inhabilitado de forma predeterminada. La función solo se aplica a las aplicaciones especificadas en la configuración de directiva lista de programas para bucle invertido de IP virtual.
  • Lista de programas para bucle invertido de IP virtual. Esta configuración de directiva especifica las aplicaciones que usan la función de bucle invertido de IP virtual. Esta configuración solo se aplica cuando está habilitada la configuración de directiva Funcionalidad de bucle invertido de IP virtual.

Funciones relacionadas

Se pueden usar los siguientes parámetros del Registro del sistema para garantizar que se da preferencia al bucle invertido sobre la IP virtual. Esta funcionalidad se denomina bucle invertido preferido. Sin embargo, hay que actuar con precaución:

  • Utilice el bucle invertido preferido solo cuando tanto IP virtual como Bucle invertido virtual están habilitados. De lo contrario, podría obtener resultados imprevistos.
  • Si se modifica el Registro de forma incorrecta, pueden producirse problemas graves que obliguen a reinstalar el sistema operativo. Citrix no puede garantizar que los problemas derivados de la utilización inadecuada del Editor del Registro puedan resolverse. Use el Editor del Registro bajo su propia responsabilidad. Haga una copia de seguridad del Registro antes de modificarlo.

Ejecute 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