Virtuelle IP und virtuelles Loopback
Hinweis: Diese Funktionen sind nur für unterstützte Windows-Servermaschinen gültig. Sie 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 von der Kommunikation mit localhost (standardmäßig 127.0.0.1) abhängen, so zu konfigurieren, dass sie eine eindeutige virtuelle Loopback-Adresse im localhost-Bereich (127.*) verwenden.
Bestimmte Anwendungen, wie z. B. CRM und Computer Telephony Integration (CTI), verwenden eine IP-Adresse für Adressierung, Lizenzierung, Identifizierung oder andere Zwecke und erfordern daher eine eindeutige IP-Adresse oder eine Loopback-Adresse in Sitzungen. Andere Anwendungen können an einen statischen Port gebunden sein, sodass Versuche, zusätzliche Instanzen einer Anwendung in einer Mehrbenutzerumgebung zu starten, fehlschlagen, da der Port bereits verwendet wird. Damit solche Anwendungen in einer XenApp®-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 XenApp-Server auf die gleiche Weise zu, wie sie auf jede andere veröffentlichte Anwendung zugreifen. Ein Prozess erfordert eine virtuelle IP 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
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 „IP-Adressen auflösen“, damit Sie die Adressen anstelle der Hostnamen sehen.
- Starten Sie die Anwendung und verwenden Sie TCPView, um zu sehen, welche IP-Adressen und Ports von der Anwendung geöffnet werden 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 zusätzliche 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 2008 R2-Umgebung im Server-Manager die Option Remote Desktop Services > RD Session Host Connections, um die Funktion RD IP Virtualization 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 ist, fordert der Server beim Start der Sitzung dynamisch zugewiesene IP-Adressen vom DHCP-Server an.
-
Die Funktion RD IP Virtualization weist IP-Adressen für Remotedesktopverbindungen 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, wenn 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 in 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 IP-Adresse, die sie verwenden soll. Jeder Versuch der Anwendung, auf TCP- oder UDP-Kommunikation zu lauschen, wird automatisch an ihre zugewiesene virtuelle IP-Adresse (oder Loopback-Adresse) gebunden, und alle von der Anwendung geöffneten Ursprungsverbindungen stammen von der an die Anwendung gebundenen IP-Adresse.
In Funktionen, die eine Adresse zurückgeben (z. B. GetAddrInfo(), die durch eine Windows-Richtlinie gesteuert wird), prüft die virtuelle IP-Adresse, wenn die lokale Host-IP-Adresse angefordert wird, 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 dieser Sitzung zugewiesene eindeutige virtuelle IP-Adresse. Diese IP-Adresse wird häufig in nachfolgenden Socket-Aufrufen wie bind oder connect verwendet.
Oft fordert eine Anwendung an, sich an einen Port zum Lauschen an der Adresse 0.0.0.0 zu binden. Wenn eine Anwendung dies tut und einen statischen Port verwendet, können Sie nicht mehr als eine Instanz der Anwendung starten. Die virtuelle IP-Adressfunktion 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 Computer auf demselben Port 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 virtuelle IP-Adressfunktion 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 eine eigene Loopback-Adresse für die Kommunikation haben. 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. Eine Sitzungs-ID von 7 ist beispielsweise 127.0.0.8. In dem unwahrscheinlichen Fall, dass die Sitzungs-ID das vierte Oktett überschreitet (mehr als 255), wird die Adresse auf das nächste Oktett (127.0.1.0) bis zum Maximum von 127.255.255.255 umgestellt.
Ein Prozess benötigt in einem der folgenden Fälle ein virtuelles Loopback:
- 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 vom virtuellen 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 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.
Verwandte Funktion
Sie können die folgenden Registrierungseinstellungen verwenden, um sicherzustellen, dass virtuelles Loopback gegenüber virtuellem IP bevorzugt wird; dies wird als bevorzugtes Loopback bezeichnet. Gehen Sie jedoch mit Vorsicht vor:
- Bevorzugtes Loopback wird nur unter Windows Server 2008 R2 und Windows Server 2012 R2 unterstützt.
- Verwenden Sie bevorzugtes Loopback nur, wenn sowohl virtuelles 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 des Betriebssystems erforderlich machen können. Citrix kann nicht garantieren, dass Probleme, die aus der falschen Verwendung des Registrierungs-Editors resultieren, behoben werden können. Verwenden Sie den Registrierungs-Editor auf eigenes Risiko. Sichern Sie die Registrierung, 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 (HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\VIP für 32-Bit-Computer)
- Name: PreferLoopback, Typ: REG_DWORD, Daten: 1
- Name: PreferLoopbackProcesses, Typ: REG_MULTI_SZ, Daten: <Liste von Prozessen>