IP virtual e loopback virtual
Importante:
O Windows 10 Enterprise multissessão não oferece suporte à Virtualização de IP da Área de Trabalho Remota (IP Virtual) e não oferecemos suporte a IP Virtual nem a loopback virtual no Windows 10 Enterprise multissessão.
Os recursos de IP virtual e loopback virtual são compatíveis com máquinas Windows Server 2016. Esses recursos não se aplicam a máquinas com sistema operacional Windows desktop.
O recurso de endereço IP virtual da Microsoft fornece a um aplicativo publicado um endereço IP exclusivo atribuído dinamicamente para cada sessão. O recurso de loopback virtual da Citrix permite configurar aplicativos que dependem de 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 CTI (Computer Telephony Integration), usam um endereço IP para endereçamento, licenciamento, identificação ou outras finalidades que exigem um endereço IP ou de loopback exclusivo. Outros aplicativos podem se vincular a uma porta estática, de modo que 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 um ou ambos.
Sinopse da ação do administrador:
- Para usar o IP virtual da Microsoft, habilite-o e configure-o no servidor Windows. (As configurações de política do Citrix® não são necessárias.)
- Para usar o loopback virtual da Citrix, configure duas definições em uma política da Citrix.
IP virtual
Quando o IP virtual é habilitado e configurado no servidor Windows, 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 qualquer 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:
- Obtenha a ferramenta TCPView da Microsoft. Essa ferramenta lista todos os aplicativos que vinculam endereços IP e portas específicos.
- Desabilite o recurso “Resolver Endereços IP” para que você veja os endereços em vez dos nomes de host.
- Inicie o aplicativo e use o TCPView para ver quais endereços IP e portas o aplicativo abre e quais nomes de processo estão abrindo essas portas.
- Configure todos os processos que abrem o endereço IP do servidor, 0.0.0.0 ou 127.0.0.1.
- 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 da Área de Trabalho Remota (RD) da Microsoft
-
O endereçamento IP virtual deve ser habilitado no servidor Microsoft.
Por exemplo, em um ambiente Windows Server 2016, no Gerenciador do Servidor, expanda “Serviços de Área de Trabalho Remota” > “Conexões do Host da Sessão RD” para habilitar o recurso de Virtualização de IP RD e configurar as definições para atribuir dinamicamente endereços IP usando o servidor DHCP (Dynamic Host Configuration Protocol) por sessão ou por programa. Consulte a documentação da Microsoft para obter instruções.
-
Após o recurso ser habilitado, na inicialização da sessão, o servidor solicita endereços IP atribuídos dinamicamente do servidor DHCP.
-
O recurso de Virtualização de IP RD 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 compartilharão 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 na configuração de hospedagem de sessão da Área de Trabalho Remota, os aplicativos são vinculados a endereços IP específicos inserindo um componente de “filtro” entre o aplicativo e as chamadas de função Winsock. O aplicativo então vê apenas o endereço IP correto a ser usado. Qualquer tentativa do aplicativo de escutar comunicações TCP ou UDP é vinculada automaticamente ao seu endereço IP virtual (ou endereço de loopback) alocado. Quaisquer conexões de origem abertas pelo aplicativo se originam do endereço IP vinculado 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. Aplicativos que tentam obter o endereço IP do servidor local por meio de tais funções de nome veem apenas o endereço IP virtual exclusivo atribuído a essa sessão. Este endereço IP é frequentemente usado em chamadas de soquete subsequentes, como bind ou connect. Para obter mais informações sobre as políticas do Windows, consulte Virtualização de IP RDS no Windows Server.
Frequentemente, um aplicativo solicita vincular-se a uma porta para escutar 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 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 todos estão escutando em endereços diferentes. A chamada é alterada somente se estiver em uma sessão ICA e o recurso de endereço IP virtual estiver habilitado. Por exemplo, se duas instâncias de um aplicativo em execução em sessões diferentes tentarem se vincular a todas as interfaces (0.0.0.0) e a uma porta específica (como 9000), elas serão vinculadas a VIPAddress1:9000 e VIPAddress2:9000 e não haverá conflito.
Loopback virtual
A habilitação das configurações de política de loopback de IP virtual da Citrix permite que cada sessão tenha 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 da 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 próximo octeto (127.0.1.0), até o máximo de 127.255.255.255.
Um processo requer loopback virtual em qualquer um dos seguintes casos:
- O processo usa o endereço de loopback do soquete do Windows (localhost) (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 de IP virtual, portanto, você não precisa configurar o servidor Microsoft.
- Suporte a loopback de IP virtual. Quando habilitada, essa configuração de política permite que cada sessão tenha seu próprio endereço de loopback virtual. Essa configuração é desabilitada por padrão. O recurso se aplica apenas a aplicativos especificados com a configuração de política “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 virtual de IP virtual. Essa configuração se aplica somente quando a configuração de política “Suporte a loopback de IP virtual” está habilitada.
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, prossiga com cautela:
- Use o loopback preferencial somente se o IP virtual e o loopback virtual estiverem habilitados. Caso contrário, você poderá ter resultados inesperados.
- A edição incorreta do registro pode causar problemas sérios que podem exigir a reinstalação do 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. Certifique-se de fazer backup do registro antes de editá-lo.
Execute o 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>