Citrix Virtual Apps and Desktops

Virtuelle IP und virtuelles Loopback

Wichtig:

  • Windows 10 Enterprise-Multisitzungs-OS unterstützt keine IP-Virtualisierung (virtuelle IP) für Remotedesktops und Citrix unterstützt weder Remotedesktop-IP-Virtualisierung noch virtuelles Loopback für Windows 10-Multisitzungs-OS.
  • Remotedesktop-IP-Virtualisierung (Virtual IP) wird auf in der Cloud gehosteten Maschinen nicht unterstützt. Informationen hierzu finden Sie in der Dokumentation von Microsoft.

Die Features Remotedesktop-IP-Virtualisierung und virtuelles Loopback werden auf Maschinen unter Windows Server 2016, Windows Server 2019 und Windows Server 2022 unterstützt. Die Features gelten nicht für Windows-Desktopbetriebssystemmaschinen.

Das Feature IP-Virtualisierungsadresse von Microsoft-Remotedesktop stellt einer veröffentlichten Anwendung eine eindeutige dynamisch zugewiesene IP-Adresse für jede Sitzung bereit. Mit dem Citrix Feature für virtuelles Loopback können Sie Anwendungen, die mit dem lokalen Host (localhost) kommunizieren (normalerweise 127.0.0.1), so konfigurieren, dass sie eine eindeutige virtuelle Loopbackadresse im Bereich des lokalen Hosts verwenden (127.*).

Einige Anwendungen, z. B. CRM oder CTI, verwenden eine IP-Adresse für die Adressierung, Lizenzierung, Identifizierung und andere Zwecke und erfordern daher eine eindeutige IP-Adresse oder Loopbackadresse. Andere Anwendungen binden sich möglicherweise an einen statischen Port an, sodass das Starten weitere Instanzen einer Anwendung in Mehrbenutzerumgebungen fehlschlägt, da der Port verwendet wird. Damit solche Anwendungen in einer Citrix Virtual Apps-Umgebung richtig ausgeführt werden können, benötigen Sie für jedes Gerät eine eindeutige IP-Adresse.

Remotedesktop-IP-Virtualisierung und virtuelles Loopback sind voneinander unabhängige Features. Sie können ein Feature oder beide wählen.

Zusammenfassung der Administratoraktion:

  • Zur Verwendung von IP-Virtualisierung von Microsoft-Remotedesktop aktivieren und konfigurieren Sie die Funktion auf dem Windows-Server. (Citrix-Richtlinieneinstellungen sind nicht erforderlich.)
  • Für die Verwendung von virtuellem Loopback von Citrix konfigurieren Sie zwei Einstellungen in einer Citrix Richtlinie.

Remotedesktop-IP-Virtualisierung (virtuelle IP)

Wenn Remotedesktop-IP-Virtualisierung aktiviert und auf dem Windows-Server 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 genauso wie auf andere veröffentlichte Anwendungen zu. Ein Prozess erfordert die Remotedesktop-IP-Virtualisierung in den folgenden Fällen:

  • Der Prozess verwendet eine hartcodierte TCP-Portnummer
  • Der Prozess verwendet Windows Sockets und benötigt eine eindeutige IP-Adresse oder eine angegebene TCP-Portnummer

So ermitteln Sie, ob eine Anwendung Remotedesktop-IP-Virtualisierungsadressen verwenden muss:

  1. Beziehen Sie das TCPView-Tool von Microsoft. Das Programm zeigt alle Anwendungen an, die an spezifische IP-Adressen und Ports binden. Weitere Informationen zu TCPView finden Sie in der Dokumentation von Microsoft.
  2. Deaktivieren Sie das Auflösen von IP-Adressen, sodass statt der Adressen die Hostnamen angezeigt werden.
  3. Starten Sie die Anwendung und ermitteln Sie mit TCPView, welche IP-Adressen und Ports von der Anwendung geöffnet werden und welche Prozesse 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. Starten Sie eine weitere Instanz der Anwendung, um sicherzustellen, dass sie nicht dieselbe IP-Adresse auf einem anderen Port öffnet.

Funktionsweise der IP-Virtualisierung von Microsoft-Remotedesktop

  • Die virtuelle IP-Adressierung muss auf dem Microsoft Server aktiviert sein.

    Beispiel: In einer Umgebung mit Windows Server 2016 erweitern Sie im Server-Manager Remotedesktopdienste > Remotedesktop-Sitzungshostverbindungen, um das Remotedesktop-IP-Virtualisierungsfeature zu aktivieren, und konfigurieren Sie die Einstellungen so, dass IP-Adressen dynamisch mit dem DHCP-Server pro Sitzung oder pro Programm zugewiesen werden. Weitere Informationen zur Konfiguration der Remotedesktop-IP-Virtualisierung finden Sie in der Microsoft-Dokumentation.

  • Nach der Aktivierung des Features fordert der Server beim Sitzungsstart dynamisch zugewiesene IP-Adressen vom DHCP-Server an.

  • Das Feature der Remotedesktop-IP-Virtualisierung weist den Remotedesktopverbindungen die IP-Adressen pro Sitzung oder pro Programm zu. Wenn Sie IP-Adressen für mehrere Programme zuweisen, verwenden sie eine gemeine IP-Adresse pro Sitzung.

  • Nachdem eine Adresse einer Sitzung zugewiesen wurde, verwendet die Sitzung bei jedem der folgenden Aufrufe die virtuelle Adresse anstelle der primären IP-Adresse für das System: bind¸closesocket¸connect, WSAConnect, WSAAccept, getpeername, getsockname, sendto, WSASendTo, WSASocketW, gethostbyaddr, getnameinfo, getaddrinfo.

Wenn das IP-Virtualisierungsfeature von Microsoft in der Hostingkonfiguration der Remotedesktopsitzung verwendet wird, sind Anwendungen an bestimmte IP-Adressen gebunden, indem eine Filterkomponente zwischen die Anwendung und den Winsock-Funktionsaufrufen eingefügt wird. Die Anwendung erkennt dann nur die korrekte IP-Adresse, die sie verwenden soll. Jeder Versuch der Anwendung, auf TCP- oder UDP-Kommunikation zu lauschen, wird automatisch an die zugewiesene virtuelle IP-Adresse (oder Loopbackadresse) gebunden. Alle von der Anwendung geöffneten ursprünglichen Verbindungen stammen von der an die Anwendung gebundenen IP-Adresse.

In Funktionen, die eine Adresse ausgeben, (wie z. B. GetAddrInfo(), über eine Windows–Richtlinie gesteuert), untersucht die Remotedektop-IP-Virtualisierung beim Abrufen der IP-Adresse des lokalen Hosts die zurückgegebene IP-Adresse und ändert sie in die Remotedesktop-IP-Virtualisierungsadresse der Sitzung. Anwendungen, die mit solchen Namensfunktionen versuchen, die IP-Adresse des lokalen Servers zu ermitteln, erhalten nur die eindeutige Remotedesktop-IP-Virtualisierungsadresse, die der Sitzung zugeordnet wurde. Diese IP-Adresse wird oft in späteren Socket-Aufrufen, wie “Bind” oder “Connect”, verwendet. Weitere Informationen zu Windows-Richtlinien finden Sie unter RDS IP Virtualization in Windows Server.

Oft fordern Anwendungen eine Bindung an einen Port zum Abhören der Adresse 0.0.0.0. Wenn eine Anwendung dies versucht und einen statischen Port verwendet, können Sie höchstens eine Instanz der Anwendung starten. Das Feature Remotedesktop-IP-Virtualisierungsadresse sucht in diesen Aufruftypen auch nach 0.0.0.0. Es ändert den Aufruf so, dass er die spezifische Remotedesktop-IP-Virtualisierungsadresse abhört, wodurch mehr als eine Anwendung denselben Port auf demselben Computer abhören kann, da sie alle an unterschiedlichen Adressen lauschen. Der Aufruf wird nur geändert, wenn er in einer ICA-Sitzung erfolgt und das Feature Remotedesktop-IP-Virtualisierungsadresse aktiviert ist. Beispiel: Wenn zwei Instanzen einer Anwendung, die in unterschiedlichen Sitzungen ausgeführt werden, eine Bindung mit allen Schnittstellen (0.0.0.0) und einen bestimmten Port (z. B. 9000) versuchen, werden sie an VIPAddress1:9000 und VIPAddress2:9000 gebunden und es gibt keinen Konflikt.

Virtuelles Loopback

Wenn die Einstellungen der Citrix Richtlinie für Remotedesktop-IP-Virtualisierung-Loopback aktiviert sind, kann jede Sitzung eine eigene Loopbackadresse für die Kommunikation haben. Wenn eine Anwendung die localhost-Adresse (Standard = 127.0.0.1) in einem Winsock-Aufruf verwendet, ersetzt das virtuelle Loopback einfach 127.0.0.1 durch 127.X.X.X, wobei X.X.X für die Sitzungs-ID + 1 steht. Wenn die Sitzungs-ID zum Beispiel 7 ist, ist die Adresse 127.0.0.8. Im unwahrscheinlichen Fall, dass die Sitzungs-ID größer ist, als im vierten Oktett zulässig (mehr als 255), wird beim nächsten Oktett weitergemacht (127.0.1.0) bis zum Maximum von 127.255.255.255.

Ein Prozess erfordert das virtuelle Loopback in den folgenden Fällen:

  • Der Prozess verwendet die Windows- Sockets-Loopbackadresse (localhost) (127.0.0.1)
  • Der Prozess verwendet eine hartcodierte TCP-Portnummer

Verwenden Sie die Richtlinieneinstellungen für virtuelles Loopback für Anwendungen, die eine Loopbackadresse für prozessübergreifende Kommunikation verwenden. Eine zusätzliche Konfiguration ist nicht erforderlich. Virtuelles Loopback ist nicht von virtueller IP abhängig, sodass der Microsoft-Server nicht konfiguriert werden muss.

  • Virtuelle IP - Loopbackunterstützung: Wenn diese Richtlinieneinstellung aktiviert ist, kann jede Sitzung eine eigene virtuelle Loopbackadresse haben. Diese Einstellung ist standardmäßig deaktiviert. Das Feature gilt nur für Anwendungen, die mit der Richtlinieneinstellung Virtuelle IP - Programme für virtuelles Loopback angegeben wurden.
  • Virtuelle IP - Programme für virtuelles Loopback: Mit dieser Richtlinieneinstellung geben Sie die Anwendung an, die das Feature “Virtuelles IP-Loopback” verwenden. Diese Einstellung gilt nur, wenn die Richtlinieneinstellung Virtuelle IP - Loopbackunterstützung aktiviert ist.

Verwandtes Feature

Mit den folgenden Registrierungseinstellungen stellen Sie sicher, dass virtuelles Loopback den Vorrang vor virtuelle IP erhält. Dieses Feature wird als “bevorzugtes Loopback” bezeichnet. Achten Sie jedoch auf Folgendes:

  • Verwenden Sie bevorzugtes Loopback nur, wenn virtuellen IP-Adressen und das virtuelle Loopback aktiviert sind. Andernfalls kommt es evtl. zu unerwünschten Ergebnissen.
  • Eine unsachgemäße Bearbeitung der Registrierung kann schwerwiegende Probleme verursachen und eine Neuinstallation des Betriebssystems erforderlich machen. Citrix übernimmt keine Garantie dafür, dass Probleme, die auf eine unsachgemäße Verwendung des Registrierungs-Editors zurückzuführen sind, behoben werden können. Die Verwendung des Registrierungs-Editors geschieht daher auf eigene Gefahr. Machen Sie auf jeden Fall ein Backup der Registrierung, bevor Sie sie bearbeiten.

Führen Sie regedit auf den Servern aus, auf dem die Anwendungen installiert sind.

  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\VIP
  • Name: PreferLoopback, Typ: REG_DWORD, Wert: 1
  • Name: PreferLoopbackProcesses, Type: REG_MULTI_SZ, Data: <Liste der Prozesse>
Virtuelle IP und virtuelles Loopback