Citrix DaaS™

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 de 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 te permite configurar aplicaciones que dependen de 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.*).

  • Algunas aplicaciones, como CRM y la integración de telefonía informática (CTI), usan una dirección IP para el direccionamiento, la concesión de licencias, la identificación u otros fines y, por lo tanto, requieren una dirección IP única o una dirección de bucle invertido en las sesiones. 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 fallarán porque el puerto ya 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. Puedes usar una o ambas.

  • Resumen de acciones del administrador:

  • Para usar la IP virtual de Microsoft, habilítala 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.

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 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 IP virtuales:
  1. Obtén la herramienta TCPView de Microsoft. Esta herramienta enumera todas las aplicaciones que vinculan direcciones IP y puertos específicos.
  2. Deshabilita 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 una instancia adicional 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, expande 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 configura los ajustes para asignar direcciones IP dinámicamente mediante el servidor del Protocolo de configuración dinámica de host (DHCP) por sesión o por programa. Consulta 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 asignas direcciones IP para varios programas, comparten una dirección IP por sesión.

  • Una vez que se asigna 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 siempre que se realicen 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 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), y 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 está controlada por 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 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 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 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 IP virtual está habilitada. Por ejemplo, si dos instancias de una aplicación que se ejecutan en diferentes sesiones 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

Habilitar las configuraciones de directiva de bucle invertido de IP virtual de Citrix permite que cada sesión tenga su propia dirección de bucle invertido virtual 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 las configuraciones de directiva de bucle invertido virtual para 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á 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 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á habilitada.

Función relacionada

Puedes usar las siguientes configuraciones del Registro para asegurarte de que el bucle invertido virtual tenga preferencia sobre la IP virtual; esto se denomina bucle invertido preferido. Sin embargo, procede con precaución:

  • Usa el bucle invertido preferido solo si tanto la IP virtual como el bucle invertido virtual están habilitados; de lo contrario, podrías obtener resultados inesperados.
  • Editar el registro incorrectamente puede causar problemas graves que podrían 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 se encuentran 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