Virtuelle IP und virtuelles Loopback
Wichtig:
Windows 10 Enterprise Multi-Session unterstützt keine Remote Desktop IP-Virtualisierung (virtuelle IP), und wir unterstützen weder virtuelle IP noch virtuelles Loopback unter Windows 10 Enterprise Multi-Session.
Die Funktionen für virtuelle IP und virtuelles Loopback werden auf Windows Server 2016-Maschinen unterstützt. Diese Funktionen gelten nicht für Windows-Desktop-Betriebssystemmaschinen.
Die Microsoft-Funktion für virtuelle IP-Adressen stellt einer veröffentlichten Anwendung für jede Sitzung eine eindeutige, dynamisch zugewiesene IP-Adresse bereit. Die Citrix-Funktion für virtuelles Loopback ermöglicht es Ihnen, Anwendungen, die auf die Kommunikation mit localhost (standardmäßig 127.0.0.1) angewiesen sind, so zu konfigurieren, dass sie eine eindeutige virtuelle Loopback-Adresse im localhost-Bereich (127.*) verwenden.
Bestimmte Anwendungen, wie CRM und Computer Telephony Integration (CTI), verwenden eine IP-Adresse für Adressierung, Lizenzierung, Identifizierung oder andere Zwecke, die eine eindeutige IP-Adresse oder Loopback-Adresse erfordern. Andere Anwendungen binden möglicherweise an einen statischen Port, sodass Versuche, zusätzliche Instanzen einer Anwendung in einer Mehrbenutzerumgebung zu starten, fehlschlagen, da der Port belegt ist. Damit solche Anwendungen in einer Citrix Virtual Apps™-Umgebung korrekt funktionieren, ist für jedes Gerät eine eindeutige IP-Adresse erforderlich.
Virtuelle IP und virtuelles Loopback sind unabhängige Funktionen. Sie können eine oder beide verwenden.
Zusammenfassung der Administratoraktionen:
- Um Microsoft Virtual IP zu verwenden, aktivieren und konfigurieren Sie es auf dem Windows-Server. (Citrix®-Richtlinieneinstellungen sind nicht erforderlich.)
- Um Citrix Virtual Loopback zu verwenden, konfigurieren Sie zwei Einstellungen in einer Citrix-Richtlinie.
Virtuelle IP
Wenn die virtuelle IP auf dem Windows-Server aktiviert und konfiguriert ist, scheint jede konfigurierte Anwendung, die in einer Sitzung ausgeführt wird, eine eindeutige Adresse zu haben. Benutzer greifen auf diese Anwendungen auf einem Citrix Virtual Apps-Server auf die gleiche Weise zu, wie sie auf jede andere veröffentlichte Anwendung zugreifen. Ein Prozess erfordert in einem der folgenden Fälle eine virtuelle IP:
- Der Prozess verwendet eine fest codierte TCP-Portnummer
- Der Prozess verwendet Windows-Sockets und erfordert eine eindeutige IP-Adresse oder eine bestimmte TCP-Portnummer
So ermitteln Sie, ob eine Anwendung virtuelle IP-Adressen verwenden muss:
- Besorgen Sie sich das TCPView-Tool von Microsoft. Dieses Tool listet alle Anwendungen auf, die bestimmte IP-Adressen und Ports binden.
- Deaktivieren Sie die Funktion zum Auflösen von IP-Adressen, damit Sie die Adressen anstelle von Hostnamen sehen.
- Starten Sie die Anwendung und verwenden Sie TCPView, um zu sehen, welche IP-Adressen und Ports die Anwendung öffnet und welche Prozessnamen diese Ports öffnen.
- Konfigurieren Sie alle Prozesse, die die IP-Adresse des Servers, 0.0.0.0 oder 127.0.0.1 öffnen.
- Um sicherzustellen, dass eine Anwendung nicht dieselbe IP-Adresse auf einem anderen Port öffnet, starten Sie eine weitere Instanz der Anwendung.
Funktionsweise der IP-Virtualisierung von Microsoft Remote Desktop (RD)
-
Die virtuelle IP-Adressierung muss auf dem Microsoft-Server aktiviert sein.
Beispielsweise erweitern Sie in einer Windows Server 2016-Umgebung im Server-Manager Remotedesktopdienste > RD-Sitzungshostverbindungen, um die RD-IP-Virtualisierungsfunktion zu aktivieren und die Einstellungen so zu konfigurieren, dass IP-Adressen dynamisch über den DHCP-Server (Dynamic Host Configuration Protocol) pro Sitzung oder pro Programm zugewiesen werden. Anweisungen finden Sie in der Microsoft-Dokumentation.
-
Nachdem die Funktion aktiviert wurde, fordert der Server beim Sitzungsstart dynamisch zugewiesene IP-Adressen vom DHCP-Server an.
-
Die RD-IP-Virtualisierungsfunktion weist Remotedesktopverbindungen IP-Adressen pro Sitzung oder pro Programm zu. Wenn Sie IP-Adressen für mehrere Programme zuweisen, teilen diese sich eine IP-Adresse pro Sitzung.
-
Nachdem einer Sitzung eine Adresse zugewiesen wurde, verwendet die Sitzung die virtuelle Adresse anstelle der primären IP-Adresse für das System, wann immer die folgenden Aufrufe getätigt werden:
bind¸closesocket¸connect,WSAConnect,WSAAccept,getpeername,getsockname,sendto,WSASendTo,WSASocketW,gethostbyaddr,getnameinfo,getaddrinfo.
Bei Verwendung der Microsoft IP-Virtualisierungsfunktion innerhalb der Remotedesktop-Sitzungshostkonfiguration werden Anwendungen an bestimmte IP-Adressen gebunden, indem eine „Filter“-Komponente zwischen der Anwendung und den Winsock-Funktionsaufrufen eingefügt wird. Die Anwendung sieht dann nur die korrekte IP-Adresse, die verwendet werden soll. Jeder Versuch der Anwendung, auf TCP- oder UDP-Kommunikation zu lauschen, wird automatisch an ihre zugewiesene virtuelle IP-Adresse (oder Loopback-Adresse) gebunden. Alle von der Anwendung geöffneten ausgehenden Verbindungen stammen von der IP-Adresse, die an die Anwendung gebunden ist.
In Funktionen, die eine Adresse zurückgeben (wie GetAddrInfo(), die von einer Windows-Richtlinie gesteuert wird), wenn die lokale Host-IP-Adresse angefordert wird, prüft die virtuelle IP die zurückgegebene IP-Adresse und ändert sie in die virtuelle IP-Adresse der Sitzung. Anwendungen, die versuchen, die IP-Adresse des lokalen Servers über solche Namensfunktionen abzurufen, sehen nur die eindeutige virtuelle IP-Adresse, die dieser Sitzung zugewiesen ist. Diese IP-Adresse wird häufig in nachfolgenden Socket-Aufrufen wie bind oder connect verwendet. Weitere Informationen zu Windows-Richtlinien finden Sie unter RDS IP Virtualization in Windows Server.
Oft fordert eine Anwendung an, sich an einen Port zu binden, um auf der Adresse 0.0.0.0 zu lauschen. Wenn eine Anwendung dies tut und einen statischen Port verwendet, können Sie nicht mehr als eine Instanz der Anwendung starten. Die Funktion für virtuelle IP-Adressen sucht auch nach 0.0.0.0 in diesen Aufruftypen und ändert den Aufruf so, dass er auf der spezifischen virtuellen IP-Adresse lauscht, wodurch mehr als eine Anwendung auf demselben Port auf demselben Computer lauschen kann, da sie alle auf verschiedenen Adressen lauschen. Der Aufruf wird nur geändert, wenn er sich in einer ICA-Sitzung befindet und die Funktion für virtuelle IP-Adressen aktiviert ist. Wenn beispielsweise zwei Instanzen einer Anwendung, die in verschiedenen Sitzungen ausgeführt werden, versuchen, sich an alle Schnittstellen (0.0.0.0) und einen bestimmten Port (z. B. 9000) zu binden, werden sie an VIPAddress1:9000 und VIPAddress2:9000 gebunden, und es gibt keinen Konflikt.
Virtuelles Loopback
Durch Aktivieren der Citrix Richtlinieneinstellungen für virtuelles IP-Loopback kann jede Sitzung ihre eigene Loopback-Adresse für die Kommunikation verwenden. Wenn eine Anwendung die Localhost-Adresse (Standard = 127.0.0.1) in einem Winsock-Aufruf verwendet, ersetzt die virtuelle Loopback-Funktion 127.0.0.1 einfach durch 127.X.X.X, wobei X.X.X eine Darstellung der Sitzungs-ID + 1 ist. Beispielsweise ist eine Sitzungs-ID von 7 gleich 127.0.0.8. Für den unwahrscheinlichen Fall, dass die Sitzungs-ID das vierte Oktett (mehr als 255) überschreitet, wird die Adresse auf das nächste Oktett (127.0.1.0) umgestellt, bis zum Maximum von 127.255.255.255.
Ein Prozess erfordert virtuelles Loopback in einem der folgenden Fälle:
- Der Prozess verwendet die Windows Socket Loopback-Adresse (Localhost) (127.0.0.1)
- Der Prozess verwendet eine fest codierte TCP-Portnummer
Verwenden Sie die Richtlinieneinstellungen für virtuelles Loopback für Anwendungen, die eine Loopback-Adresse für die Interprozesskommunikation verwenden. Es ist keine zusätzliche Konfiguration erforderlich. Virtuelles Loopback ist nicht von Virtual IP abhängig, sodass Sie den Microsoft-Server nicht konfigurieren müssen.
- Unterstützung für virtuelles IP-Loopback. Wenn diese Richtlinieneinstellung aktiviert ist, kann jede Sitzung ihre eigene virtuelle Loopback-Adresse verwenden. Diese Einstellung ist standardmäßig deaktiviert. Die Funktion gilt nur für Anwendungen, die mit der Richtlinieneinstellung „Liste der virtuellen IP-Loopback-Programme“ angegeben sind.
- Liste der virtuellen IP-Loopback-Programme. Diese Richtlinieneinstellung gibt die Anwendungen an, die die virtuelle IP-Loopback-Funktion verwenden. Diese Einstellung gilt nur, wenn die Richtlinieneinstellung „Unterstützung für virtuelles IP-Loopback“ aktiviert ist.
Verwandte Funktion
Sie können die folgenden Registrierungseinstellungen verwenden, um sicherzustellen, dass virtuelles Loopback gegenüber virtuellem IP bevorzugt wird. Diese Funktion wird als bevorzugtes Loopback bezeichnet. Gehen Sie jedoch mit Vorsicht vor:
- Verwenden Sie bevorzugtes Loopback nur, wenn sowohl Virtual IP als auch virtuelles Loopback aktiviert sind. Andernfalls können unerwartete Ergebnisse auftreten.
- Eine falsche Bearbeitung der Registrierung kann schwerwiegende Probleme verursachen, die möglicherweise eine Neuinstallation Ihres Betriebssystems erfordern. Citrix kann nicht garantieren, dass Probleme, die durch die falsche Verwendung des Registrierungs-Editors entstehen, behoben werden können. Verwenden Sie den Registrierungs-Editor auf eigenes Risiko. Sichern Sie die Registrierung unbedingt, bevor Sie sie bearbeiten.
Führen Sie regedit auf den Servern aus, auf denen sich die Anwendungen befinden.
- HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\VIP
- Name: PreferLoopback, Type: REG_DWORD, Data: 1
- Name: PreferLoopbackProcesses, Type: REG_MULTI_SZ, Data: <Liste der Prozesse>