HDX™ Direct Linux向け
Citrixが提供するリソースにアクセスする場合、HDX Directは、直接通信が可能な場合、内部および外部のクライアントデバイスがセッションホストとの安全な直接接続を確立することを可能にします。
システム要件
HDX Directを使用するためのシステム要件は以下のとおりです。
-
コントロールプレーン
-
シトリックス DaaS™
-
シトリックス Virtual Apps and Desktops™ 2503 以降
-
-
仮想配信エージェント (VDA)
-
Linux: バージョン 2503 以降
-
-
Workspace アプリ
-
Windows: バージョン 2503 以降
-
Linux: バージョン 2411 以降
-
Mac: バージョン 2411 以降
-
-
アクセス層
-
シトリックス ワークスペース™
-
Citrix StoreFront™ 2503 以降
-
シトリックス ゲートウェイ サービス
-
Citrix NetScaler® ゲートウェイ
-
ネットワーク要件
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) を使用する場合にのみ利用可能です。したがって、アダプティブトランスポートを有効にする必要があります。
-
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マシンの証明書をクライアントに送信します。
-
クライアントは、VDAに直接到達できるかどうかを確認するためにIPアドレスをプローブします。
-
クライアントが共有されたいずれかの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が失敗する特定のシナリオがあります。
検証
クライアントおよびセッションホスト上のNATタイプとフィルタリングは、STUNTMANのSTUNクライアントユーティリティを使用して検証できます。
-
stunprotocol.orgからターゲットプラットフォームに適したパッケージをダウンロードし、その内容を抽出します。
-
ターミナルプロンプトを開き、内容が抽出されたディレクトリに移動します。
-
次のコマンドを実行します:
./stunclient stunserver2024.stunprotocol.org --mode behavior -
出力を記録します。バインディングテストと動作テストが成功した場合、バインディングテストと動作テストの両方が成功を報告し、NAT動作が指定されます。NAT の成功(/en-us/linux-virtual-delivery-agent/2607-ltsr/media/nat-compatibility-report-success.png)テストが失敗した場合、バインディングテストおよび/または動作テストが失敗を報告します。NAT の失敗(/en-us/linux-virtual-delivery-agent/2607-ltsr/media/nat-compatibility-report-failure.png)
-
次のコマンドを実行します:
./stunclient stunserver2024.stunprotocol.org --mode filtering -
出力を記録します。NAT フィルタリング(/en-us/linux-virtual-delivery-agent/2607-ltsr/media/nat-compatibility-report-filtering.png)
クライアントとセッションホストの両方のテスト結果に基づいて、外部ユーザー向けのHDX Directが機能するかどうかを判断するには、次の表を参照してください。
| クライアントNATの動作 | クライアントNATのフィルタリング | セッションホストNATの動作 | セッションホストNATのフィルタリング | 動作が期待されますか? |
|---|---|---|---|---|
| エンドポイント独立マッピング | 任意 | エンドポイント独立マッピング | 任意 | はい |
| エンドポイント独立マッピング | エンドポイント独立フィルタリング | アドレス依存マッピング | 任意 | はい |
| エンドポイント独立マッピング | アドレス依存フィルタリング | アドレス依存マッピング | 任意 | いいえ |
| エンドポイント独立マッピング | アドレスおよびポート依存フィルタリング | アドレス依存マッピング | 任意 | いいえ |
| エンドポイント独立マッピング | エンドポイント独立フィルタリング | アドレスおよびポート依存マッピング | エンドポイント独立フィルタリング | はい |
| エンドポイント独立マッピング | アドレス依存フィルタリング | アドレス依存マッピング | 任意 | いいえ |
| エンドポイント独立マッピング | アドレスおよびポート依存フィルタリング | アドレス依存マッピング | 任意 | いいえ |
| アドレス依存マッピング | 任意 | エンドポイント独立マッピング | エンドポイント独立フィルタリング | はい |
| アドレス依存マッピング | 任意 | エンドポイント独立マッピング | アドレス依存フィルタリング | いいえ |
| アドレス依存マッピング | 任意 | エンドポイント独立マッピング | アドレスおよびポート依存フィルタリング | いいえ |
| アドレス依存マッピング | 任意 | アドレス依存マッピング | 任意 | いいえ |
| アドレス依存マッピング | 任意 | アドレスおよびポート依存マッピング | 任意 | いいえ |
| アドレスおよびポート依存マッピング | 任意 | エンドポイント独立マッピング | エンドポイント独立フィルタリング | はい |
| アドレスおよびポート依存マッピング | 任意 | エンドポイント独立マッピング | アドレス依存フィルタリング | いいえ |
| アドレスおよびポート依存マッピング | 任意 | エンドポイント独立マッピング | アドレスおよびポート依存フィルタリング | いいえ |
| アドレスおよびポート依存マッピング | 任意 | アドレス依存マッピング | 任意 | いいえ |
| アドレスおよびポート依存マッピング | 任意 | アドレスおよびポート依存マッピング | 任意 | いいえ |
| 失敗 | 任意 | 任意 | 任意 | いいえ |
| 任意 | 任意 | 失敗 | 任意 | いいえ |
| 失敗 | 任意 | 失敗 | 任意 | いいえ |