Citrix Virtual Apps and Desktops 7 2203 LTSR

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 IP virtual ni bucle invertido virtual en Windows 10 Enterprise multisession.

Las funciones de IP virtual y bucle invertido virtual son compatibles con las máquinas con Windows Server 2016. Estas funciones no se aplican a las máquinas con sistema operativo de escritorio Windows.

La función de dirección IP virtual de Microsoft proporciona a una aplicación publicada una dirección IP única asignada dinámicamente para cada sesión. La función de bucle invertido virtual de Citrix le permite 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 CTI (integración de telefonía informática), utilizan 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 IP virtual y el bucle invertido virtual son funciones independientes. Puede usar una o ambas.

Sinopsis de la acción del administrador:

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

IP virtual

Cuando la IP virtual está habilitada 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 IP virtual en cualquiera de los siguientes casos:

  • El proceso utiliza un número de puerto TCP codificado
  • El proceso utiliza 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 IP virtuales:

  1. Obtenga la herramienta TCPView de Microsoft. Esta herramienta enumera todas las aplicaciones que asocian direcciones IP y puertos específicos.
  2. Deshabilite la función Resolver direcciones IP para que vea las direcciones en lugar de los nombres de host.
  3. Inicie la aplicación y use TCPView para ver qué direcciones IP y puertos abre la aplicación y qué nombres de proceso abren estos puertos.
  4. Configure cualquier proceso que abra la dirección IP del servidor, 0.0.0.0 o 127.0.0.1.
  5. Para asegurarse de que una aplicación no abra la misma dirección IP en un puerto diferente, inicie otra instancia de la aplicación.

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

  • El direccionamiento IP virtual 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 RD para habilitar la función de virtualización de IP de RD y configurar los ajustes para asignar dinámicamente direcciones IP mediante el servidor DHCP (Dynamic Host Configuration Protocol) por sesión o por programa. Consulte la documentación de Microsoft para obtener instrucciones.

  • Una vez habilitada 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 asigna direcciones IP para varios programas, estos comparten una dirección IP por sesión.

  • Una vez que se asigna 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 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 asocian 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 asocia automáticamente a su dirección IP virtual asignada (o dirección de bucle invertido). Las conexiones de origen abiertas por la aplicación se originan desde la dirección IP asociada 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 IP virtual examina la dirección IP devuelta y la cambia a la dirección IP 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 IP virtual única asignada a esa sesión. Esta dirección IP se utiliza a menudo en llamadas de socket posteriores, como bind o connect. Para obtener más información sobre las directivas de Windows, consulte Virtualización de IP de RDS en Windows Server.

A menudo, una aplicación solicita asociarse a un puerto para escuchar en la dirección 0.0.0.0. Cuando una aplicación hace esto y utiliza un puerto estático, no puede iniciar más de una instancia de la aplicación. La función de dirección IP virtual también busca 0.0.0.0 en estos tipos de llamadas y cambia la llamada para escuchar en la dirección IP virtual específica, lo que permite que más de una aplicación escuche en el mismo puerto del mismo equipo, ya que todas escuchan en direcciones diferentes. La llamada solo se cambia si está en una sesión ICA y la función de dirección IP virtual está habilitada. Por ejemplo, si dos instancias de una aplicación que se ejecutan en sesiones diferentes intentan asociarse a todas las interfaces (0.0.0.0) y a un puerto específico (como 9000), se asocian a VIPAddress1:9000 y VIPAddress2:9000, y no hay conflicto.

Bucle invertido virtual

Habilitar la configuración de la directiva de bucle invertido IP virtual de Citrix permite que cada sesión tenga su propia dirección de bucle invertido para la comunicación. Cuando una aplicación utiliza la dirección de localhost (predeterminada = 127.0.0.1) en una llamada 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 utiliza la dirección de bucle invertido (localhost) del socket de Windows (127.0.0.1)
  • El proceso utiliza un número de puerto TCP codificado

Utilice la configuración de la directiva de bucle invertido virtual para las aplicaciones que utilizan una dirección de bucle invertido para la comunicación entre procesos. No se requiere ninguna configuración adicional. El bucle invertido virtual no depende de la IP virtual, por lo que no es necesario configurar el servidor de Microsoft.

  • Compatibilidad con bucle invertido de IP virtual. Cuando está habilitada, esta configuración de directiva permite que cada sesión tenga su propia dirección de bucle invertido virtual. Esta configuración está deshabilitada 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 utilizan la función de bucle invertido de IP virtual. Esta configuración se aplica solo cuando la configuración de directiva de compatibilidad con bucle invertido de IP virtual está habilitada.

Función relacionada

Puede utilizar la siguiente configuración del Registro para asegurarse de que el bucle invertido virtual tenga preferencia sobre la IP virtual. Esta función se denomina bucle invertido preferido. Sin embargo, proceda con precaución:

  • Utilice el bucle invertido preferido solo si tanto la IP virtual como el bucle invertido virtual están habilitados. De lo contrario, podría tener resultados no deseados.
  • La edición incorrecta del Registro puede causar problemas graves que pueden requerir la reinstalación del sistema operativo. Citrix no puede garantizar que los problemas resultantes del uso incorrecto del Editor del Registro puedan resolverse. Utilice el Editor del Registro bajo su propia responsabilidad. Asegúrese de hacer una copia de seguridad del Registro antes de editarlo.

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