HDX™ Direct für Linux
Beim Zugriff auf von Citrix bereitgestellte Ressourcen ermöglicht HDX Direct sowohl internen als auch externen Clientgeräten, eine sichere Direktverbindung mit dem Sitzungshost herzustellen, sofern eine direkte Kommunikation möglich ist.
Systemanforderungen
Im Folgenden sind die Systemanforderungen für die Verwendung von HDX Direct aufgeführt:
-
Steuerungsebene
- Citrix DaaS™
- Citrix Virtual Apps and Desktops™ 2503 oder höher
-
Virtual Delivery Agent (VDA)
- Linux: Version 2503 oder höher
-
Workspace-App
- Windows: Version 2503 oder höher
- Linux: Version 2411 oder höher
- Mac: Version 2411 oder höher
-
Zugriffsebene
- Citrix Workspace™
- Citrix StoreFront™ 2503 oder höher
- Citrix Gateway Service
- Citrix NetScaler® Gateway
Netzwerkanforderungen
Im Folgenden sind die Netzwerkanforderungen für die Verwendung von HDX Direct aufgeführt.
Sitzungshosts
Wenn Ihre Sitzungshosts über eine Firewall verfügen, müssen Sie den folgenden eingehenden Datenverkehr für interne Verbindungen zulassen.
| Beschreibung | Quelle | Protokoll | Port |
|---|---|---|---|
| Direkte interne Verbindung | Client | TCP | 443 |
| Direkte interne Verbindung | Client | UDP | 443 |
Clientnetzwerk
Die folgende Tabelle beschreibt das Clientnetzwerk für interne und externe Benutzer.
Interne Benutzer
| Beschreibung | Protokoll | Quelle | Quellport | Bestimmungsort | Zielport |
|---|---|---|---|---|---|
| Direkte interne Verbindung | TCP | Client-Netzwerk | 1024–65535 | VDA-Netzwerk | 443 |
| Direkte interne Verbindung | UDP | Client-Netzwerk | 1024–65535 | VDA-Netzwerk | 443 |
Externe Benutzer
| Beschreibung | Protokoll | Quelle | Quellport | Bestimmungsort | Zielport |
|---|---|---|---|---|---|
| STUN (nur externe Benutzer) | UDP | Clientnetzwerk | 1024–65535 | Internet (siehe Hinweis unten) | 3478, 19302 |
| Verbindung für externe Benutzer | UDP | Clientnetzwerk | 1024–65535 | Öffentliche IP-Adresse des Datencenters | 1024–65535 |
Datacenter-Netzwerk
Die folgende Tabelle beschreibt das Rechenzentrumsnetzwerk für interne und externe Benutzer.
Interne Benutzer
| Beschreibung | Protokoll | Quelle | Quellport | Bestimmungsort | Zielport |
|---|---|---|---|---|---|
| Direkte interne Verbindung | TCP | Clientnetzwerk | 1024–65535 | VDA-Netzwerk | 443 |
| Direkte interne Verbindung | UDP | Clientnetzwerk | 1024–65535 | VDA-Netzwerk | 443 |
Externe Benutzer
| Beschreibung | Protokoll | Quelle | Quellport | Bestimmungsort | Zielport |
|---|---|---|---|---|---|
| STUN (nur externe Benutzer) | UDP | VDA-Netzwerk | 1024–65535 | Internet (siehe Hinweis unten) | 3478, 19302 |
| Verbindung externer Benutzer | UDP | DMZ / Internes Netzwerk | 1024–65535 | VDA-Netzwerk | 55000–55250 |
| Verbindung externer Benutzer | UDP | VDA-Netzwerk | 55000–55250 | Öffentliche IP des Clients | 1024–65535 |
Hinweis:
Sowohl der VDA als auch die Workspace-App versuchen, STUN-Anfragen in der gleichen Reihenfolge an die folgenden Server zu senden:
- stun.cloud.com:3478
- stun.cloudflare.com:3478
- stun.l.google.com:19302
Wenn Sie den Standardportbereich für externe Benutzerverbindungen mithilfe der Richtlinieneinstellung HDX Direct-Portbereich ändern, müssen die entsprechenden Firewallregeln Ihrem benutzerdefinierten Portbereich entsprechen.
Konfiguration
HDX Direct ist standardmäßig deaktiviert. Sie können diese Funktion mithilfe der Einstellung HDX Direct in der Citrix-Richtlinie konfigurieren.
- HDX Direct: Zum Aktivieren oder Deaktivieren einer Funktion.
- HDX Direct-Modus: Legt fest, ob HDX Direct nur für interne Clients oder für interne und externe Clients verfügbar ist.
- HDX Direct-Portbereich: Definiert den Portbereich, den der VDA für Verbindungen von externen Clients verwendet.
Überlegungen
Im Folgenden sind Überlegungen zur Verwendung von HDX Direct aufgeführt:
- HDX Direct für externe Benutzer ist nur mit EDT (UDP) als Transportprotokoll verfügbar. Daher muss Adaptiver Transport aktiviert sein.
- Wenn Sie HDX Insight verwenden, beachten Sie, dass die Verwendung von HDX Direct die Datenerfassung von HDX Insight verhindert, da die Sitzung nicht mehr über NetScaler Gateway geleitet wird.
- Die Verwendung eigener Zertifikate mit HDX Direct wird derzeit nicht unterstützt.
Funktionsweise
HDX Direct ermöglicht Clients den Aufbau einer direkten Verbindung zum Sitzungshost, wenn eine direkte Kommunikation verfügbar ist. Wenn direkte Verbindungen über HDX Direct hergestellt werden, werden selbstsignierte Zertifikate verwendet, um die direkte Verbindung mit Netzwerkverschlüsselung (TLS/DTLS) zu sichern.
Interne Benutzer
Das folgende Diagramm zeigt die Übersicht über den HDX Direct-Verbindungsprozess für interne Benutzer.

- Der Client stellt eine HDX-Sitzung über den Gateway-Dienst her.
- Nach einer erfolgreichen Verbindung sendet der VDA dem Client den FQDN des VDA-Computers, eine Liste seiner IP-Adressen und das Zertifikat des VDA-Computers über die HDX-Verbindung.
- Der Client prüft die IP-Adressen, um festzustellen, ob er den VDA direkt erreichen kann.
- Wenn der Client den VDA direkt über eine der freigegebenen IP-Adressen erreichen kann, stellt der Client eine direkte Verbindung mit dem VDA her, die mit (D)TLS unter Verwendung eines Zertifikats gesichert ist, das mit dem in Schritt (2) ausgetauschten übereinstimmt.
- Sobald die direkte Verbindung erfolgreich hergestellt wurde, wird die Sitzung auf die neue Verbindung übertragen und die Verbindung zum Gateway-Dienst beendet.
Hinweis:
Nach dem Herstellen der Verbindung in Schritt 2 oben ist die Sitzung aktiv. Die nachfolgenden Schritte verzögern oder beeinträchtigen die Fähigkeit des Benutzers, die virtuelle Anwendung oder den Desktop zu verwenden, nicht. Wenn einer der nachfolgenden Schritte fehlschlägt, wird die Verbindung über das Gateway aufrechterhalten, ohne die Benutzersitzung zu unterbrechen.
Externe Benutzer
Das folgende Diagramm zeigt die Übersicht über den HDX Direct-Verbindungsprozess für externe Benutzer:

- Der Client stellt eine HDX-Sitzung über den Gateway-Dienst her.
- Nach einer erfolgreichen Verbindung senden sowohl der Client als auch der VDA eine STUN-Anfrage, um ihre öffentlichen IP-Adressen und Ports zu ermitteln.
- Der STUN-Server antwortet dem Client und dem VDA mit ihren entsprechenden öffentlichen IP-Adressen und Ports.
- Über die HDX-Verbindung tauschen der Client und der VDA ihre öffentlichen IP-Adressen und UDP-Ports aus, und der VDA sendet sein Zertifikat an den Client.
- Der VDA sendet UDP-Pakete an die öffentliche IP-Adresse und den UDP-Port des Clients. Der Client sendet UDP-Pakete an die öffentliche IP-Adresse und den UDP-Port des VDA.
- Nach Empfang einer Nachricht vom VDA antwortet der Client mit einer sicheren Verbindungsanfrage.
- Während des DTLS-Handshakes überprüft der Client, ob das Zertifikat mit dem in Schritt 4 ausgetauschten Zertifikat übereinstimmt. Nach der Validierung sendet der Client sein Autorisierungstoken. Eine sichere Direktverbindung ist nun hergestellt.
- Sobald die Direktverbindung erfolgreich hergestellt wurde, wird die Sitzung auf die neue Verbindung übertragen und die Verbindung zum Gateway-Dienst beendet.
Hinweis:
Nachdem die Verbindung in Schritt 2 hergestellt wurde, ist die Sitzung aktiv. Die nachfolgenden Schritte verzögern oder beeinträchtigen die Fähigkeit des Benutzers, die virtuelle Anwendung oder den Desktop zu verwenden, nicht. Schlagen nachfolgende Schritte fehl, wird die Verbindung über das Gateway aufrechterhalten, ohne die Benutzersitzung zu unterbrechen.
NAT-Kompatibilität
Um eine direkte Verbindung zwischen einem externen Benutzergerät und dem Sitzungshost herzustellen, nutzt HDX Direct Hole Punching für die NAT-Traversal und STUN, um den Austausch der öffentlichen IP-Adresse und Port-Mappings für das Clientgerät und den Sitzungshost zu erleichtern. Dies ähnelt der Funktionsweise von VoIP-, Unified Communications- und P2P-Lösungen.
Solange Firewalls und andere Netzwerkkomponenten so konfiguriert sind, dass sie den UDP-Verkehr für die STUN-Anfragen und die HDX-Sitzungen zulassen, sollte HDX Direct für externe Benutzer funktionieren. Es gibt jedoch bestimmte Szenarien, in denen die NAT-Typen der Benutzer- und Sitzungshost-Netzwerke zu einer inkompatiblen Kombination führen, wodurch HDX Direct fehlschlägt.
Validierungen
Sie können den NAT-Typ und die Filterung auf dem Client und dem Sitzungshost mithilfe des STUNTMAN-STUN-Client-Dienstprogramms validieren:
- Laden Sie das entsprechende Paket für die Zielplattform von stunprotocol.org herunter und extrahieren Sie den Inhalt.
- Öffnen Sie eine Terminal-Eingabeaufforderung und navigieren Sie zu dem Verzeichnis, in das der Inhalt extrahiert wurde.
- Führen Sie den folgenden Befehl aus:
./stunclient stunserver2024.stunprotocol.org --mode behavior -
Beachten Sie die Ausgabe.
Wenn die Bindungs- und Verhaltenstests erfolgreich sind, melden sowohl der Bindungstest als auch der Verhaltenstest den Erfolg, und ein NAT-Verhalten wird angegeben:

Wenn die Tests fehlschlagen, melden der Bindungstest und/oder der Verhaltenstest den Fehler.

- Führen Sie den folgenden Befehl aus:
./stunclient stunserver2024.stunprotocol.org --mode filtering -
Beachten Sie die Ausgabe.

Siehe die folgende Tabelle, um zu bestimmen, ob HDX Direct für externe Benutzer voraussichtlich funktioniert, basierend auf den Testergebnissen sowohl des Clients als auch des Sitzungshosts:
| Client-NAT-Verhalten | Client-NAT-Filterung | NAT-Verhalten des Sitzungshosts | NAT-Filterung des Sitzungshosts | Sollte funktionieren? |
|---|---|---|---|---|
| Endpunktunabhängiges Mapping | Beliebig | Endpunktunabhängiges Mapping | Beliebig | Ja |
| Endpunktunabhängiges Mapping | Endpunktunabhängige Filterung | Adressabhängiges Mapping | Beliebig | Ja |
| Endpunktunabhängiges Mapping | Adressabhängige Filterung | Adressabhängige Zuordnung | Beliebig | Nein |
| Endpunktunabhängige Zuordnung | Adress- und portabhängige Filterung | Adressabhängige Zuordnung | Beliebig | Nein |
| Endpunktunabhängige Zuordnung | Endpunktunabhängige Filterung | Adress- und portabhängige Zuordnung | Endpunktunabhängige Filterung | Ja |
| Endpunktunabhängige Zuordnung | Adressabhängige Filterung | Adressabhängige Zuordnung | Beliebig | Nein |
| Endpunktunabhängige Zuordnung | Adress- und portabhängige Filterung | Adressabhängige Zuordnung | Beliebig | Nein |
| Adressabhängige Zuordnung | Beliebig | Endpunktunabhängige Zuordnung | Endpunktunabhängige Filterung | Ja |
| Adressabhängige Zuordnung | Beliebig | Endpunktunabhängiges Mapping | Adressabhängige Filterung | Nein |
| Adressabhängiges Mapping | Beliebig | Endpunktunabhängiges Mapping | Adress- und portabhängige Filterung | Nein |
| Adressabhängiges Mapping | Beliebig | Adressabhängiges Mapping | Beliebig | Nein |
| Adressabhängiges Mapping | Beliebig | Adress- und Port-abhängiges Mapping | Beliebig | Nein |
| Adress- und Port-abhängiges Mapping | Beliebig | Endpunkt-unabhängiges Mapping | Endpunkt-unabhängiges Filtern | Ja |
| Adress- und Port-abhängiges Mapping | Beliebig | Endpunkt-unabhängiges Mapping | Adress-abhängiges Filtern | Nein |
| Adress- und Port-abhängiges Mapping | Beliebig | Endpunktunabhängige Zuordnung | Adress- und Portabhängige Filterung | Nein |
| Adress- und Portabhängige Zuordnung | Beliebig | Adressabhängige Zuordnung | Beliebig | Nein |
| Adress- und Portabhängige Zuordnung | Beliebig | Adress- und Portabhängige Zuordnung | Beliebig | Nein |
| Fehlschlag | Beliebig | Beliebig | Beliebig | Nein |
| Beliebig | Beliebig | Fehler | Beliebig | Nein |
| Fehler | Beliebig | Fehler | Beliebig | Nein |