IP virtuale e loopback virtuale
Importante:
Windows 10 Enterprise multisessione non supporta la virtualizzazione IP di Desktop remoto (IP virtuale) e Citrix non supporta né l’IP virtuale né il loopback virtuale in Windows 10 Enterprise multisessione.
Le funzionalità Virtual IP e di loopback virtuale sono supportate sulle macchine Windows Server 2016. Queste funzionalità non si applicano alle macchine con sistema operativo desktop Windows.
La funzionalità di indirizzo IP virtuale di Microsoft fornisce a un’applicazione pubblicata un indirizzo IP univoco assegnato dinamicamente per ciascuna sessione. La funzione di loopback virtuale Citrix consente di configurare applicazioni che dipendono dalle comunicazioni con localhost (127.0.0.1 per impostazione predefinita) per l’uso di un indirizzo di loopback virtuale univoco compreso nell’intervallo localhost (127.*).
Alcune applicazioni, quali CRM e Computer Telephony Integration (CTI), utilizzano un indirizzo IP per indirizzamento, licenza, identificazione o altri scopi che richiedono un indirizzo IP univoco o un indirizzo di loopback. Altre applicazioni potrebbero essere collegate a una porta statica, quindi i tentativi di avviare istanze aggiuntive di un’applicazione in un ambiente multiutente non riescono perché la porta è in uso. Per assicurare che tali applicazioni funzionino correttamente in un ambiente Citrix Virtual Apps, è necessario un indirizzo IP univoco per ciascun dispositivo.
L’IP virtuale e il loopback virtuale sono funzionalità indipendenti. È possibile utilizzare una delle due o entrambe.
Sinossi dell’azione dell’amministratore:
- Per utilizzare Microsoft Virtual IP, abilitarlo e configurarlo sul server Windows (Le impostazioni dei criteri Citrix non sono necessarie).
- Per utilizzare il loopback virtuale Citrix, configurare due impostazioni in un criterio Citrix.
IP virtuale
Quando l’IP virtuale è abilitato e configurato sul server Windows, ogni applicazione configurata in esecuzione in una sessione sembra avere un indirizzo univoco. Gli utenti accedono a queste applicazioni su un server Citrix Virtual Apps nello stesso modo in cui accedono a qualsiasi altra applicazione pubblicata. Un processo richiede un IP virtuale in uno dei seguenti casi:
- Il processo utilizza un numero di porta TCP hardcoded
- Il processo utilizza socket Windows e richiede un indirizzo IP univoco o un numero di porta TCP specificato
Per determinare se un’applicazione deve utilizzare indirizzi IP virtuali:
- Ottenete lo strumento TCPView da Microsoft. Questo strumento elenca tutte le applicazioni che collegano indirizzi IP e porte specifici.
- Disabilitare la funzione Risolvi indirizzi IP in modo da visualizzare gli indirizzi anziché i nomi host.
- Avviare l’applicazione e utilizzare TCPView per vedere quali indirizzi IP e quali porte sono aperte dall’applicazione e quali nomi di processo stanno aprendo queste porte.
- Configurare tutti i processi che aprono l’indirizzo IP del server, 0.0.0.0 o 127.0.0.1.
- Per garantire che un’applicazione non apra lo stesso indirizzo IP su una porta diversa, avviare un’altra istanza dell’applicazione.
Come funziona la virtualizzazione IP di Microsoft Remote Desktop (RD)
-
Sul server Microsoft deve essere abilitato l’indirizzamento IP virtuale.
Ad esempio, in un ambiente Windows Server 2016, da Server Manager espandere Servizi Desktop remoto > Connessioni host sessione Desktop remoto per abilitare la funzionalità di virtualizzazione IP Desktop remoto e configurare le impostazioni per assegnare dinamicamente gli indirizzi IP utilizzando il server DHCP (Dynamic Host Configuration Protocol) per quella sessione o per quel programma. Per istruzioni, vedere la documentazione Microsoft.
-
Dopo aver attivato la funzione, all’avvio della sessione il server richiede gli indirizzi IP assegnati dinamicamente dal server DHCP.
-
La funzione Virtualizzazione IP Desktop remoto assegna indirizzi IP alle connessioni desktop remote per sessione o per programma. Se si assegnano indirizzi IP a più programmi, questi hanno lo stesso indirizzo IP per sessione.
-
Dopo aver assegnato un indirizzo a una sessione, la sessione utilizza l’indirizzo virtuale anziché l’indirizzo IP principale del sistema ogni volta che vengono effettuate le seguenti chiamate:
bind¸closesocket¸connect
,WSAConnect
,WSAAccept
,getpeername
,getsockname
,sendto
,WSASendTo
,WSASocketW
,gethostbyaddr
,getnameinfo
,getaddrinfo
.
Quando si utilizza la funzionalità di virtualizzazione IP Microsoft all’interno della configurazione di hosting di sessione Desktop remoto, le applicazioni vengono associate a specifici indirizzi IP inserendo un componente “filtro” tra l’applicazione e le chiamate di funzione Winsock. L’applicazione vede quindi solo l’indirizzo IP corretto da utilizzare. Qualsiasi tentativo da parte dell’applicazione di ascoltare le comunicazioni TCP o UDP è associato automaticamente all’indirizzo IP virtuale allocato (o indirizzo di loopback). Le connessioni di origine aperte dall’applicazione provengono dall’indirizzo IP associato all’applicazione.
Nelle funzioni che restituiscono un indirizzo (ad esempio GetAddrInfo()
, controllato da un criterio di Windows), se viene richiesto l’indirizzo IP dell’host locale, l’IP virtuale esamina l’indirizzo IP restituito e lo modifica per corrispondere all’indirizzo IP virtuale della sessione. Le applicazioni che tentano di ottenere l’indirizzo IP del server locale tramite tali funzioni di nome vedono solo l’indirizzo IP virtuale univoco assegnato a quella sessione. Questo indirizzo IP viene spesso utilizzato nelle chiamate socket successive, quali bind o connect. Per ulteriori informazioni sui criteri di Windows, vedere Virtualizzazione IP RDS in Windows Server.
Spesso, un’applicazione richiede di collegarsi a una porta per l’ascolto sull’indirizzo 0.0.0.0. Quando un’applicazione esegue questa operazione e utilizza una porta statica, non è possibile avviare più istanze dell’applicazione. La funzione di indirizzo IP virtuale cerca anche 0.0.0.0 in questi tipi di chiamata e modifica la chiamata in ascolto sull’indirizzo IP virtuale specifico, che consente a più di un’applicazione di ascoltare sulla stessa porta dello stesso computer perché sono tutte in ascolto su indirizzi diversi. La chiamata viene modificata solo se si trova in una sessione ICA e se la funzione di indirizzo IP virtuale è abilitata. Ad esempio, se due istanze di un’applicazione in esecuzione in sessioni diverse provano entrambe a collegarsi a tutte le interfacce (0.0.0.0) e a una porta specifica (ad esempio 9000), queste si associano a VIPAddress1:9000 e a VIPAddress2:9000 e non vi sono conflitti.
Loopback virtuale
L’abilitazione delle impostazioni dei criteri di loopback IP virtuale Citrix consente a ogni sessione di disporre del proprio indirizzo di loopback per la comunicazione. Quando un’applicazione utilizza l’indirizzo localhost (impostazione predefinita= 127.0.0.1) in una chiamata Winsock, la funzione di loopback virtuale sostituisce semplicemente 127.0.0.1 con 127.X.X.X, dove X.X.X è una rappresentazione dell’ID sessione + 1. Ad esempio, un ID di sessione 7 è 127.0.0.8. Nell’improbabile caso in cui l’ID di sessione superi il quarto ottetto (più di 255), l’indirizzo passa all’ottetto successivo (127.0.1.0), fino al massimo di 127.255.255.255.
Un processo richiede il loopback virtuale in uno dei seguenti casi:
- Il processo utilizza l’indirizzo di loopback del socket Windows (localhost) (127.0.0.1)
- Il processo utilizza un numero di porta TCP hardcoded
Utilizzare le impostazioni dei criteri di loopback virtuale per le applicazioni che utilizzano un indirizzo di loopback per la comunicazione tra processi. Non è richiesta alcuna configurazione aggiuntiva. Il loopback virtuale non dipende dall’IP virtuale, quindi non è necessario configurare il server Microsoft.
- Supporto loopback IP virtuale. Se abilitata, questa impostazione dei criteri consente a ogni sessione di avere il proprio indirizzo di loopback virtuale. Questa impostazione è disabilitata per impostazione predefinita. La funzionalità si applica solo alle applicazioni specificate con l’impostazione dei criteri di elenco dei programmi di loopback virtuale Virtual IP.
- Elenco dei programmi di loopback virtuale Virtual IP. Questa impostazione dei criteri specifica le applicazioni che utilizzano la funzione di loopback IP virtuale. Questa impostazione si applica solo quando è abilitata l’impostazione del criterio di supporto per il loopback Virtual IP.
Funzionalità correlata
È possibile utilizzare le seguenti impostazioni del Registro di sistema per garantire che il loopback virtuale abbia la preferenza rispetto all’IP virtuale. Questa funzione è chiamata loopback preferito. Tuttavia, procedere con cautela:
- Utilizzare il loopback preferito solo se sono abilitati sia l’IP virtuale che il loopback virtuale. In caso contrario, si potrebbero avere risultati non intenzionali.
- La modifica non corretta del Registro di sistema può causare seri problemi che potrebbero richiedere la reinstallazione del sistema operativo. Citrix non può garantire che i problemi derivanti dall’uso non corretto dell’Editor del Registro di sistema possano essere risolti. Utilizzare l’Editor del Registro di sistema a proprio rischio. Assicurarsi di eseguire il backup del Registro di sistema prima di modificarlo.
Eseguire regedit sui server in cui risiedono le applicazioni.
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\VIP
- Nome: PreferLoopback, Tipo: REG_DWORD, Data: 1
- Nome: PreferLoopbackProcesses, Tipo: REG_MULTI_SZ, Dati: <elenco dei processi>