Citrix Virtual Apps and Desktops

IP virtual e loopback virtual

Importante:

O Windows 10 Enterprise multissessão não suporta Virtualização IP de Área de Trabalho Remota (IP Virtual) e não oferecemos suporte a IP virtual nem loopback virtual em Windows 10 Enterprise multissessão.

Os recursos de IP virtual e loopback virtual são suportados em máquinas Windows Server 2016. Esses recursos não se aplicam a máquinas com SO Windows Desktop.

O recurso de endereço IP virtual da Microsoft fornece um aplicativo publicado com um endereço IP atribuído dinamicamente e exclusivo para cada sessão. O recurso de loopback virtual da Citrix permite configurar aplicativos que dependem das comunicações com o localhost (127.0.0.1 por padrão) para usar um endereço de loopback virtual exclusivo no intervalo do localhost (127.*).

Certos aplicativos, como CRM e Computer Telephony Integration (CTI), usam um endereço IP para endereçamento, licenciamento, identificação ou outros fins que exigem um endereço IP exclusivo ou um endereço de loopback. Outros aplicativos podem se associar a uma porta estática, portanto, as tentativas de iniciar instâncias adicionais de um aplicativo em um ambiente multiusuário falham porque a porta está em uso. Para que esses aplicativos funcionem corretamente em um ambiente Citrix Virtual Apps, é necessário um endereço IP exclusivo para cada dispositivo.

IP virtual e loopback virtual são recursos independentes. Você pode usar apenas um ou os dois.

Sinopse da ação do administrador:

  • Para usar o IP virtual da Microsoft, ative-o e configure-o no Windows Server. (As configurações de política Citrix não são necessárias.)
  • Para usar o loopback virtual do Citrix, configure dois parâmetros em uma política Citrix.

IP virtual

Quando o IP virtual está ativado e configurado no Windows Server, cada aplicativo configurado em execução em uma sessão parece ter um endereço exclusivo. Os usuários acessam esses aplicativos em um servidor Citrix Virtual Apps da mesma forma que acessam qualquer outro aplicativo publicado. Um processo requer IP virtual em um dos seguintes casos:

  • O processo usa um número de porta TCP codificado
  • O processo usa soquetes do Windows e requer um endereço IP exclusivo ou um número de porta TCP especificado

Para determinar se um aplicativo precisa usar endereços IP virtuais:

  1. Obtenha a ferramenta TCPView da Microsoft. Essa ferramenta lista todos os aplicativos que associam endereços IP específicos e portas.
  2. Desative o recurso Resolver endereços IP para ver endereços em vez de nomes de host.
  3. Inicie o aplicativo e use o TCPView para ver quais endereços IP e portas o aplicativo abre e quais nomes de processo abrem essas portas.
  4. Configure todos os processos que abrem o endereço IP de um servidor, 0.0.0.0 ou 127.0.0.1.
  5. Para garantir que um aplicativo não abra o mesmo endereço IP em uma porta diferente, inicie outra instância do aplicativo.

Como funciona a virtualização de IP de Área de Trabalho Remota (RD) da Microsoft

  • O endereçamento de IP virtual deve estar ativado no Microsoft Server.

    Por exemplo, em um ambiente Windows Server 2016, a partir do Gerenciador do Servidor, expanda Serviços de Área de Trabalho Remota > Conexões de Host da Sessão da Área de Trabalho Remota para ativar a funcionalidade de Virtualização de IP de Área de Trabalho Remota e configurar as definições para atribuir endereços IP dinamicamente utilizando o servidor DHCP (Dynamic Host Configuration Protocol) por sessão ou por programa. Consulte a documentação da Microsoft para obter instruções.

  • Depois que o recurso é ativado, na inicialização da sessão, o servidor solicita endereços IP atribuídos dinamicamente a partir do servidor DHCP.

  • O recurso de Virtualização de IP de Área de Trabalho Remota atribui endereços IP a conexões de área de trabalho remota por sessão ou por programa. Se você atribuir endereços IP para vários programas, eles compartilham um endereço IP por sessão.

  • Depois que um endereço é atribuído a uma sessão, a sessão usa o endereço virtual em vez do endereço IP principal para o sistema sempre que as seguintes chamadas são feitas: bind¸closesocket¸connect, WSAConnect, WSAAccept, getpeername, getsockname, sendto, WSASendTo, WSASocketW, gethostbyaddr, getnameinfo, getaddrinfo.

Ao usar o recurso de virtualização de IP da Microsoft dentro da configuração de host da sessão de Área de Trabalho Remota, os aplicativos são associados a endereços IP específicos inserindo um componente “filter” entre as chamadas de função do aplicativo e do Winsock. O aplicativo então vê somente o endereço IP correto a ser usado. Qualquer tentativa do aplicativo de escutar comunicações TCP ou UDP é associada automaticamente ao seu endereço IP virtual (ou endereço de loopback) alocado. Quaisquer conexões de origem abertas pelo aplicativo são originárias do endereço IP associado ao aplicativo.

Em funções que retornam um endereço (como GetAddrInfo(), que uma política do Windows controla), se o endereço IP do host local for solicitado, o IP virtual examina o endereço IP retornado e o altera para o endereço IP virtual da sessão. Os aplicativos que tentam obter o endereço IP do servidor local através de tais funções de nome veem apenas o endereço IP virtual exclusivo atribuído à sessão. Esse endereço IP é frequentemente usado em chamadas subsequentes do soquete, tais como associação ou conexão. Para obter mais informações sobre as políticas do Windows, consulte RDS IP Virtualization in Windows Server.

Muitas vezes, um aplicativo solicita associar-se a uma porta para escuta no endereço 0.0.0.0. Quando um aplicativo faz isso e usa uma porta estática, você não pode iniciar mais de uma instância do aplicativo. O recurso de endereço IP virtual também procura por 0.0.0.0 nesses tipos de chamada e altera a chamada para escutar no endereço IP virtual específico, o que permite que mais de um aplicativo escute na mesma porta no mesmo computador porque estão todos escutando em endereços diferentes. A chamada é alterada apenas se estiver em uma sessão ICA e o recurso de endereço IP virtual estiver ativado. Por exemplo, se duas instâncias de um aplicativo em execução em sessões diferentes tentam se associar a todas as interfaces (0.0.0.0) e a uma porta específica (como 9000), elas são associadas a VIPAddress1:9000 e VIPAddress2:9000, sem haver conflito.

Loopback virtual

Ativar as configurações de política de loopback de IP virtual da Citrix permite que cada sessão tenha o seu próprio endereço de loopback para comunicação. Quando um aplicativo usa o endereço localhost (padrão = 127.0.0.1) em uma chamada Winsock, o recurso de loopback virtual simplesmente substitui 127.0.0.1 por 127.X.X.X, onde X.X.X é uma representação do ID de sessão + 1. Por exemplo, um ID de sessão de 7 é 127.0.0.8. No caso improvável de o ID da sessão exceder o quarto octeto (mais de 255), o endereço passa para o octeto seguinte (127.0.1.0), até o máximo de 127.255.255.255.

Um processo requer loopback virtual em um dos seguintes casos:

  • O processo usa o endereço (localhost) de loopback do soquete do Windows (127.0.0.1)
  • O processo usa um número de porta TCP codificado

Use as configurações de política de loopback virtual para aplicativos que usam um endereço de loopback para comunicação entre processos. Nenhuma configuração adicional é necessária. O loopback virtual não tem dependência do IP virtual, portanto, você não precisa configurar o servidor Microsoft.

  • Suporte a loopback de IP virtual. Quando ativada, essa configuração de política permite que cada sessão tenha o seu próprio endereço de loopback virtual. Essa configuração é desativada por padrão. O recurso se aplica apenas a aplicativos especificados com a configuração de política de lista de programas de loopback virtual de IP virtual.
  • Lista de programas de loopback virtual de IP virtual. Essa configuração de política especifica os aplicativos que usam o recurso de loopback de IP virtual. Essa configuração se aplica somente quando a configuração de política de suporte de loopback de IP virtual está ativada.

Recurso relacionado

Você pode usar as seguintes configurações de registro para garantir que o loopback virtual tenha preferência sobre o IP virtual. Esse recurso é chamado de loopback preferencial. No entanto, proceda com cautela:

  • Use o loopback preferencial somente se o IP virtual e o loopback virtual estiverem ativados. Caso contrário, os resultados podem ser inesperados.
  • Editar o registro incorretamente pode causar sérios problemas e exigir que você reinstale seu sistema operacional. A Citrix não pode garantir que os problemas resultantes do uso incorreto do Editor do Registro possam ser resolvidos. Use o Editor do Registro por sua conta e risco. Tenha o cuidado de fazer backup do registro antes de editá-lo.

Execute regedit nos servidores onde os aplicativos residem.

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\VIP
  • Nome: PreferLoopback, Tipo: REG_DWORD, Dados: 1
  • Nome: PreferLoopbackProcesses, Tipo: REG_MULTI_SZ, Dados: <lista de processos>
IP virtual e loopback virtual