IP virtual y bucle invertido virtual
Nota: Estas funciones solo son válidas para máquinas con sistema operativo Windows Server compatibles. No se aplican a máquinas con sistema operativo Windows de escritorio.
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 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, 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 XenApp®, 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 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 XenApp 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:
- Obtenga la herramienta TCPView de Microsoft. Esta herramienta enumera todas las aplicaciones que vinculan direcciones IP y puertos específicos.
- Deshabilite la función Resolver direcciones IP para ver las direcciones en lugar de los nombres de host.
- Inicie la aplicación y use TCPView para ver qué direcciones IP y puertos abre la aplicación y qué nombres de proceso están abriendo esos puertos.
- Configure cualquier proceso que abra la dirección IP del servidor, 0.0.0.0 o 127.0.0.1.
- Para asegurarse de que una aplicación no abra la misma dirección IP en un puerto diferente, inicie una instancia adicional de la aplicación.
Cómo funciona la virtualización de IP de Microsoft Remote Desktop (RD)
-
El direccionamiento IP virtual debe estar habilitado en el servidor de Microsoft.
Por ejemplo, en un entorno de Windows Server 2008 R2, 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 configure los ajustes para asignar dinámicamente direcciones IP utilizando el servidor del Protocolo de configuración dinámica de host (DHCP) 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 utilizar 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 política 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.
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 se 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 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 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
La habilitación de la configuración de la política de bucle invertido de 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 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 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 (/es-es/xenapp-and-xendesktop/7-15-ltsr/policies/reference/virtual-ip-policy-settings.html)configuración de 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 tiene dependencia de la IP virtual, por lo que no es necesario configurar el servidor de Microsoft.
- Soporte de 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á inhabilitada 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 soporte de bucle invertido de IP virtual está habilitada.
Función relacionada
Puede utilizar las siguientes configuraciones del Registro para asegurarse de que el bucle invertido virtual tenga preferencia sobre la IP virtual; esto se denomina bucle invertido preferido. Sin embargo, proceda con precaución:
- El bucle invertido preferido solo es compatible con Windows Server 2008 R2 y Windows Server 2012 R2.
- Utilice el bucle invertido preferido solo si tanto la IP virtual como el bucle invertido virtual están habilitados; de lo contrario, puede obtener resultados inesperados.
- 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 (HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\VIP para máquinas de 32 bits)
- Nombre: PreferLoopback, Tipo: REG_DWORD, Datos: 1
- Nombre: PreferLoopbackProcesses, Tipo: REG_MULTI_SZ, Datos: <lista de procesos>