Citrix Virtual Apps and Desktops

Virtuelle IP und virtuelles Loopback

Wichtig:

  • Windows 10 Enterprise Multi-Session unterstützt die Remote Desktop IP-Virtualisierung (virtuelle IP) nicht, und wir unterstützen die Remote Desktop IP-Virtualisierung oder virtuelles Loopback auf Windows 10 Enterprise Multi-Session nicht.
  • Die Remote Desktop IP-Virtualisierung (virtuelle IP) wird auf Cloud-gehosteten Maschinen nicht unterstützt. Weitere Informationen finden Sie in der Microsoft-Dokumentation.

Die Funktionen Remote Desktop IP-Virtualisierung und virtuelles Loopback werden auf Windows Server 2016-, Windows Server 2019- und Windows Server 2022-Maschinen unterstützt. Diese Funktionen gelten nicht für Windows Desktop-Betriebssystemmaschinen.

Die Adressfunktion der Microsoft Remote Desktop IP-Virtualisierung stellt einer veröffentlichten Anwendung für jede Sitzung eine eindeutige, dynamisch zugewiesene IP-Adresse zur Verfügung. Mit der Citrix Funktion für virtuelles Loopback können Sie Anwendungen, die von der Kommunikation mit localhost (standardmäßig 127.0.0.1) abhängen, so 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, weil 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.

Remote Desktop IP-Virtualisierung und virtuelles Loopback sind voneinander unabhängige Funktionen. Sie können entweder die eine oder die andere oder beide verwenden.

Zusammenfassung der Administratoraktionen:

  • Um die Microsoft Remote Desktop IP-Virtualisierung zu verwenden, aktivieren und konfigurieren Sie diese auf dem Windows-Server. (Citrix®-Richtlinieneinstellungen sind nicht erforderlich.)
  • Um das Citrix virtuelle Loopback zu verwenden, konfigurieren Sie zwei Einstellungen in einer Citrix Richtlinie.

Remote Desktop IP-Virtualisierung (virtuelle IP)

Wenn die Remote Desktop IP-Virtualisierung 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 die Remote Desktop IP-Virtualisierung in einem der folgenden Fälle:

  • Der Prozess verwendet eine fest codierte TCP-Portnummer
  • Der Prozess verwendet Windows-Sockets und erfordert eine eindeutige IP-Adresse oder eine bestimmte TCP-Portnummer

Um festzustellen, ob eine Anwendung Remote Desktop IP-Virtualisierungsadressen verwenden muss:

  1. Beziehen Sie das Tool TCPView von Microsoft. Dieses Tool listet alle Anwendungen auf, die bestimmte IP-Adressen und Ports binden. Weitere Informationen zu TCPView finden Sie in der Microsoft-Dokumentation.
  2. Deaktivieren Sie die Funktion IP-Adressen auflösen, damit Sie die Adressen anstelle von Hostnamen sehen.
  3. 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.
  4. Konfigurieren Sie alle Prozesse, die die IP-Adresse des Servers, 0.0.0.0 oder 127.0.0.1 öffnen.
  5. Um sicherzustellen, dass eine Anwendung nicht dieselbe IP-Adresse auf einem anderen Port öffnet, starten Sie eine weitere Instanz der Anwendung.

Funktionsweise der Microsoft Remote Desktop (RD) IP-Virtualisierung

  • 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 Dynamic Host Configuration Protocol (DHCP)-Server sitzungs- oder programmweise zugewiesen werden. Weitere Informationen zum Konfigurieren der Remote Desktop IP-Virtualisierung finden Sie in der Microsoft-Dokumentation.

  • Nach dem Aktivieren der Funktion fordert der Server beim Sitzungsstart dynamisch zugewiesene IP-Adressen vom DHCP-Server an.

  • Die Funktion RD IP-Virtualisierung weist Remote-Desktop-Verbindungen IP-Adressen sitzungs- oder programmweise zu. Wenn Sie IP-Adressen für mehrere Programme zuweisen, teilen diese sich eine sitzungsbezogene IP-Adresse.

  • 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 der 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 zu verwenden ist. 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 an die Anwendung gebundenen IP-Adresse.

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 Remote Desktop IP-Virtualisierung die zurückgegebene IP-Adresse und ändert sie in die Remote Desktop IP-Virtualisierungsadresse der Sitzung. Anwendungen, die versuchen, die IP-Adresse des lokalen Servers über solche Namensfunktionen abzurufen, sehen nur die eindeutige Remote Desktop IP-Virtualisierungsadresse, 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 Adressfunktion der Remote Desktop IP-Virtualisierung sucht auch nach 0.0.0.0 in diesen Aufruftypen. Sie ändert den Aufruf so, dass er auf der spezifischen Remote Desktop IP-Virtualisierungsadresse lauscht, was es ermöglicht, dass mehr als eine Anwendung auf demselben Port auf demselben Computer lauscht, da sie alle auf verschiedenen Adressen lauschen. Der Aufruf wird nur geändert, wenn er sich in einer ICA-Sitzung befindet und die Adressfunktion der Remote Desktop IP-Virtualisierung 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

Das Aktivieren der Einstellungen der Citrix Remote Desktop IP-Virtualisierungs-Loopback-Richtlinie ermöglicht jeder Sitzung, eine eigene Loopback-Adresse für die Kommunikation zu haben. Wenn eine Anwendung die Localhost-Adresse (Standard = 127.0.0.1) in einem Winsock-Aufruf verwendet, ersetzt die virtuelle Loopback-Funktion einfach 127.0.0.1 durch 127.X.X.X, wobei X.X.X eine Darstellung der Sitzungs-ID + 1 ist. Zum Beispiel ist eine Sitzungs-ID von 7 gleich 127.0.0.8. In dem unwahrscheinlichen Fall, dass die Sitzungs-ID das vierte Oktett (mehr als 255) überschreitet, rollt die Adresse auf das nächste Oktett (127.0.1.0) über, 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-(localhost)-Adresse (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 hat keine Abhängigkeit von virtueller IP, sodass Sie den Microsoft-Server nicht konfigurieren müssen.

  • Unterstützung für virtuelles IP-Loopback. Wenn diese Richtlinieneinstellung aktiviert ist, ermöglicht sie jeder Sitzung, eine eigene virtuelle Loopback-Adresse zu haben. 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.
  • Ausschluss von virtuellen IP-Loopback-Ports. Wenn eine Anwendung die Loopback-Adresse auf den in dieser Einstellung angegebenen Ports aufruft, ändert das virtuelle Loopback den Aufruf nicht in die sitzungsspezifische Loopback-Adresse.

Verwandte Funktion

Sie können die folgenden Registrierungseinstellungen verwenden, um sicherzustellen, dass virtuelles Loopback gegenüber virtueller IP bevorzugt wird. Diese Funktion wird als bevorzugtes Loopback bezeichnet. Gehen Sie jedoch mit Vorsicht vor:

  • Verwenden Sie bevorzugtes Loopback nur, wenn sowohl virtuelle IP als auch virtuelles Loopback aktiviert sind. Andernfalls können unerwünschte Ergebnisse auftreten.
  • Eine falsche Bearbeitung der Registrierung kann schwerwiegende Probleme verursachen, die eine Neuinstallation Ihres Betriebssystems erforderlich machen können. Citrix kann nicht garantieren, dass Probleme, die aus der falschen Verwendung des Registrierungs-Editors resultieren, gelöst 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>
Virtuelle IP und virtuelles Loopback