Linux 用 HDX™ Direct
Citrix が提供するリソースにアクセスする場合、HDX Direct を使用すると、直接通信が可能な場合に、内部および外部のクライアントデバイスの両方がセッションホストとの安全な直接接続を確立できます。
-
システム要件
-
HDX Direct を使用するためのシステム要件は次のとおりです。
-
コントロールプレーン
- Citrix DaaS™
- Citrix Virtual Apps and Desktops™ 2503 以降
-
-
Virtual Delivery Agent (VDA)
-
Linux: バージョン 2503 以降
-
Workspace アプリ
- Windows: バージョン 2503 以降
- Linux: バージョン 2411 以降
-
Mac: バージョン 2411 以降
-
アクセス層
- Citrix Workspace™
- Citrix StoreFront™ 2503 以降
- Citrix Gateway Service
- Citrix NetScaler® Gateway
-
ネットワーク要件
HDX Direct を使用するためのネットワーク要件は次のとおりです。
セッションホスト
セッションホストにファイアウォールがある場合は、内部接続に対して次の受信トラフィックを許可する必要があります。
| 説明 | 送信元 | プロトコル | ポート |
|---|---|---|---|
| 直接内部接続 | クライアント | TCP | 443 |
| 直接内部接続 | クライアント | UDP | 443 |
クライアントネットワーク
次の表は、内部ユーザーと外部ユーザーのクライアントネットワークについて説明しています。
内部ユーザー
| 説明 | プロトコル | 送信元 | 送信元ポート | 宛先 | 宛先ポート |
|---|---|---|---|---|---|
| 直接内部接続 | TCP | クライアントネットワーク | 1024–65535 | VDA ネットワーク | 443 |
| 直接内部接続 | UDP | クライアントネットワーク | 1024–65535 | VDA ネットワーク | 443 |
外部ユーザー
| 説明 | プロトコル | 送信元 | 送信元ポート | 宛先 | 宛先ポート |
|---|---|---|---|---|---|
| STUN (外部ユーザーのみ) | UDP | クライアントネットワーク | 1024–65535 | インターネット (下記の注記を参照) | 3478, 19302 |
| 外部ユーザー接続 | UDP | クライアントネットワーク | 1024–65535 | データセンターのパブリック IP アドレス | 1024–65535 |
データセンターネットワーク
- 次の表は、内部ユーザーと外部ユーザーのデータセンターネットワークについて説明しています。
内部ユーザー
-
説明 プロトコル 送信元 送信元ポート 宛先 宛先ポート - | — | — | — | – | – | – |
-
直接内部接続 TCP クライアントネットワーク 1024–65535 VDA ネットワーク 443 直接内部接続 UDP クライアントネットワーク 1024–65535 VDA ネットワーク 443
外部ユーザー
| 説明 | プロトコル | 送信元 | 送信元ポート | 宛先 | 宛先ポート |
|---|---|---|---|---|---|
| STUN (外部ユーザーのみ) | UDP | VDA ネットワーク | 1024–65535 | インターネット (下記の注記を参照) | 3478, 19302 |
| 外部ユーザー接続 | UDP | DMZ / 内部ネットワーク | 1024–65535 | VDA ネットワーク | 55000–55250 |
| 外部ユーザー接続 | UDP | VDA ネットワーク | 55000–55250 | クライアントのパブリック IP | 1024–65535 |
注:
VDA と Workspace アプリの両方が、次のサーバーに同じ順序で STUN リクエストを送信しようとします。
- stun.cloud.com:3478
- stun.cloudflare.com:3478
- stun.l.google.com:19302
HDX Direct ポート範囲ポリシー設定を使用して外部ユーザー接続のデフォルトポート範囲を変更した場合、対応するファイアウォールルールはカスタムポート範囲と一致する必要があります。
構成
HDX Direct はデフォルトで無効になっています。この機能は、Citrix ポリシーの HDX Direct 設定を使用して構成できます。
- HDX Direct: 機能を有効または無効にする。
- HDX Direct モード: HDX Direct を内部クライアントのみで利用可能にするか、内部クライアントと外部クライアントの両方で利用可能にするかを決定します。
- HDX Direct ポート範囲: VDA が外部クライアントからの接続に使用するポート範囲を定義します。
考慮事項
HDX Direct を使用する際の考慮事項は次のとおりです。
- 外部ユーザー向けの HDX Direct は、トランスポートプロトコルとして EDT (UDP) を使用する場合にのみ利用可能です。そのため、Adaptive Transport を有効にする必要があります。
- HDX Insight を使用している場合、HDX Direct を使用すると、セッションが NetScaler Gateway を介してプロキシされなくなるため、HDX Insight のデータ収集が妨げられることに注意してください。
- HDX Direct で独自の証明書を使用することは、現在サポートされていません。
動作原理
HDX Direct を使用すると、直接通信が可能な場合にクライアントがセッションホストへの直接接続を確立できます。HDX Direct を使用して直接接続が行われる場合、自己署名証明書が使用され、ネットワークレベルの暗号化 (TLS/DTLS) によって直接接続が保護されます。
内部ユーザー
次の図は、内部ユーザーの HDX Direct 接続プロセスの概要を示しています。

- クライアントは Gateway Service を介して HDX セッションを確立します。
- 接続が成功すると、VDA は HDX 接続を介して、VDA マシンの FQDN、その IP アドレスのリスト、および VDA マシンの証明書をクライアントに送信します。
- クライアントは IP アドレスをプローブし、VDA に直接到達できるかどうかを確認します。
- 共有されたいずれかの IP アドレスでクライアントが VDA に直接到達できる場合、クライアントは VDA との直接接続を確立し、ステップ (2) で交換された証明書と一致する証明書を使用して (D)TLS で保護します。
- 直接接続が正常に確立されると、セッションは新しい接続に転送され、Gateway Service への接続は終了します。
注:
上記のステップ 2 で接続が確立された後、セッションはアクティブになります。その後のステップは、ユーザーが仮想アプリケーションまたはデスクトップを使用する能力を遅延させたり、妨げたりすることはありません。その後のいずれかのステップが失敗した場合でも、Gateway を介した接続はユーザーのセッションを中断することなく維持されます。
外部ユーザー
次の図は、外部ユーザーの HDX Direct 接続プロセスの概要を示しています。

- クライアントは Gateway Service を介して HDX セッションを確立します。
- 接続が成功すると、クライアントと VDA の両方が STUN リクエストを送信して、それぞれのパブリック IP アドレスとポートを検出します。
- STUN サーバーは、クライアントと VDA に対応するパブリック IP アドレスとポートで応答します。
- HDX 接続を介して、クライアントと VDA はそれぞれのパブリック IP アドレスと UDP ポートを交換し、VDA はその証明書をクライアントに送信します。
- VDA はクライアントのパブリック IP アドレスと UDP ポートに UDP パケットを送信します。クライアントは VDA のパブリック IP アドレスと UDP ポートに UDP パケットを送信します。
- VDA からのメッセージを受信すると、クライアントはセキュアな接続リクエストで応答します。
- DTLS ハンドシェイク中に、クライアントは証明書がステップ 4 で交換された証明書と一致することを確認します。検証後、クライアントは認証トークンを送信します。これでセキュアな直接接続が確立されます。
- 直接接続が正常に確立されると、セッションは新しい接続に転送され、Gateway Service への接続は終了します。
注:
上記のステップ 2 で接続が確立された後、セッションはアクティブになります。その後のステップは、ユーザーが仮想アプリケーションまたはデスクトップを使用する能力を遅延させたり、妨げたりすることはありません。その後のいずれかのステップが失敗した場合でも、Gateway を介した接続はユーザーのセッションを中断することなく維持されます。
NAT の互換性
外部ユーザーデバイスとセッションホスト間の直接接続を確立するために、HDX Direct は NAT トラバーサルのためのホールパンチングと、クライアントデバイスおよびセッションホストのパブリック IP アドレスとポートマッピングの交換を容易にするための STUN を活用します。これは、VoIP、ユニファイドコミュニケーション、P2P ソリューションの動作に似ています。
ファイアウォールやその他のネットワークコンポーネントが STUN リクエストおよび HDX セッションの UDP トラフィックを許可するように構成されている限り、外部ユーザー向けの HDX Direct は機能すると予想されます。ただし、ユーザーとセッションホストのネットワークの NAT タイプが互換性のない組み合わせにつながる特定のシナリオがあり、その結果 HDX Direct が失敗する可能性があります。
検証
STUNTMAN の STUN クライアントユーティリティを使用して、クライアントとセッションホストの NAT タイプとフィルタリングを検証できます。
- stunprotocol.org からターゲットプラットフォームに適したパッケージをダウンロードし、内容を抽出します。
- ターミナルプロンプトを開き、内容が抽出されたディレクトリに移動します。
- 次のコマンドを実行します。
./stunclient stunserver2024.stunprotocol.org --mode behavior -
出力をメモします。
バインディングテストと動作テストが成功した場合、binding test と behavior test の両方が成功を報告し、NAT 動作が指定されます。

テストが失敗した場合、binding test および/または behavior test が失敗を報告します。

- 次のコマンドを実行します。
./stunclient stunserver2024.stunprotocol.org --mode filtering -
出力をメモします。

クライアントとセッションホストの両方のテスト結果に基づいて、外部ユーザー向けの HDX Direct が機能すると予想されるかどうかを判断するには、次の表を参照してください。
| クライアント NAT 動作 | クライアント NAT フィルタリング | セッションホスト NAT 動作 | セッションホスト NAT フィルタリング | 機能するか? |
|---|---|---|---|---|
| エンドポイント独立マッピング | 任意 | エンドポイント独立マッピング | 任意 | はい |
| エンドポイント独立マッピング | エンドポイント独立フィルタリング | アドレス依存マッピング | 任意 | はい |
| エンドポイント独立マッピング | アドレス依存フィルタリング | アドレス依存マッピング | 任意 | いいえ |
| エンドポイント独立マッピング | アドレスおよびポート依存フィルタリング | アドレス依存マッピング | 任意 | いいえ |
| エンドポイント独立マッピング | エンドポイント独立フィルタリング | アドレスおよびポート依存マッピング | エンドポイント独立フィルタリング | はい |
| エンドポイント独立マッピング | アドレス依存フィルタリング | アドレス依存マッピング | 任意 | いいえ |
| エンドポイント独立マッピング | アドレスおよびポート依存フィルタリング | アドレス依存マッピング | 任意 | いいえ |
| アドレス依存マッピング | 任意 | エンドポイント独立マッピング | エンドポイント独立フィルタリング | はい |
| アドレス依存マッピング | 任意 | エンドポイント独立マッピング | アドレス依存フィルタリング | いいえ |
| アドレス依存マッピング | 任意 | エンドポイント独立マッピング | アドレスおよびポート依存フィルタリング | いいえ |
| アドレス依存マッピング | 任意 | アドレス依存マッピング | 任意 | いいえ |
| アドレス依存マッピング | 任意 | アドレスおよびポート依存マッピング | 任意 | いいえ |
| アドレスおよびポート依存マッピング | 任意 | エンドポイント独立マッピング | エンドポイント独立フィルタリング | はい |
| アドレスおよびポート依存マッピング | 任意 | エンドポイント独立マッピング | アドレス依存フィルタリング | いいえ |
| アドレスおよびポート依存マッピング | 任意 | エンドポイント独立マッピング | アドレスおよびポート依存フィルタリング | いいえ |
| アドレスおよびポート依存マッピング | 任意 | アドレス依存マッピング | 任意 | いいえ |
| アドレスおよびポート依存マッピング | 任意 | アドレスおよびポート依存マッピング | 任意 | いいえ |
| 失敗 | 任意 | 任意 | 任意 | いいえ |
| 任意 | 任意 | 失敗 | 任意 | いいえ |
| 失敗 | 任意 | 失敗 | 任意 | いいえ |