直接ワークロード接続でワークスペースへの接続を最適化

Citrix Cloudの直接ワークロード接続を使用すると、ワークスペースのアプリとデスクトップへの内部トラフィックを最適化して、HDXセッションを高速化できます。通常、内部ネットワークと外部ネットワークの両方のユーザーが、外部ゲートウェイを経由してVDAに接続します。このゲートウェイは、組織内のオンプレミスであるか、Citrixからサービスとして提供され、Citrix Cloud内のリソースの場所に追加されている場合があります。直接ワークロード接続により、内部ユーザーはゲートウェイを経由せずにVDAに直接接続できるため、内部ネットワークトラフィックの遅延が短縮されます。

直接ワークロード接続を設定するには、環境内でクライアントがアプリとデスクトップを起動する場所に対応したネットワークの場所が必要です。ネットワークの場所サービス(Network Location Service:NLS)を使用して、これらのクライアントが存在するオフィスの場所ごとにパブリックアドレスを追加します。ネットワークの場所を構成するには、次の2つのオプションがあります:

  • Citrix Cloudの [ネットワークの場所] メニューオプションを使用する。
  • Citrixが提供しているPowerShellモジュールを使用する。

ネットワークの場所は、会社のオフィスやブランチの場所など、内部ユーザーの接続元であるネットワークのパブリックIPアドレス範囲に対応しています。Citrix Cloudは、パブリックIPアドレスを使用して、仮想アプリまたは仮想デスクトップを起動するネットワークが企業ネットワークの内部か外部かを判断します。利用者が内部ネットワークから接続している場合、Citrix Cloudでは接続がNetScaler Gatewayを経由せずVDAに直接ルーティングされます。利用者が外部から接続している場合、Citrix Cloudでは利用者がNetScaler Gatewayを経由してルーティングされ、セッショントラフィックがCitrix Cloud Connector経由で内部ネットワークのVDAに送信されます。Citrix Gatewayサービスが使用され、[Rendezvousプロトコル] が有効になっている場合、Citrix CloudはGatewayサービスを使用して、外部ユーザーを内部ネットワークのVDAにルーティングします。ノートPCなどのローミングクライアントは、起動時にクライアントが企業ネットワークの内部にあるか外部にあるかに応じて、これらのネットワークルートのいずれかを使用する可能性があります。

重要:

環境にCitrix DaaS Standard for AzureがオンプレミスVDAとともに含まれている場合、直接ワークロード接続を構成すると、内部ネットワークからの起動が失敗します。

Remote Browser Isolation、Citrix Virtual Apps Essentials、およびCitrix Virtual Desktops Essentialsリソースの起動は、常にゲートウェイを経由してルーティングされます。これらの起動では、直接ワークロード接続を構成してもパフォーマンスは向上しません。

要件

ネットワークの要件

  • 社内ネットワークとゲストWi-Fiネットワークには、個別のパブリックIPアドレスが必要です。企業ネットワークとゲストネットワークがパブリックIPアドレスを共有している場合、ゲストネットワーク上のユーザーはDaaSセッションを起動できません。
  • 内部ユーザーの接続元であるネットワークのパブリックIPアドレス範囲を使用します。これらのネットワーク上の内部ユーザーはVDAに直接接続する必要があります。直接接続しない場合、Workspaceは内部ユーザーをVDAに直接ルーティングしようとするため、仮想リソースを起動できません。
  • 通常、VDAはオンプレミスネットワーク内にありますが、Microsoft Azureなどのパブリッククラウド内でホストされているVDAを使用することもできます。クライアントの起動には、ファイアウォールによってブロックされずにVDAに接続するためのネットワークルートが必要です。これには、オンプレミスネットワークから、VDAがある仮想ネットワークへのVPNトンネルが必要です。

TLSの要件

ネットワークの場所を構成するときは、PowerShellでTLS 1.2を有効にする必要があります。PowerShellでTLS 1.2の使用を強制するには、PowerShellモジュールの使用前に次のコマンドを使用します:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

ワークスペースの要件

  • Citrix Cloudでワークスペースが構成されています。
  • Citrix DaaSが [ワークスペース構成]>[サービス統合] で有効になっています。

HTML5向けWorkspaceアプリの接続でTLSを有効にする

利用者がHTML5向けCitrix Workspaceアプリを使用してアプリやデスクトップを起動する場合、内部ネットワークでVDAのTLSを構成することをお勧めします。TLS接続を使用するようにVDAを構成すると、VDAを直接起動できるようになります。VDAでTLSが有効になっていない場合、利用者がHTML5向けCitrix Workspaceアプリを使用するときに、アプリとデスクトップの起動はゲートウェイを介してルーティングされる必要があります。Desktop Viewerを使用した起動は影響を受けません。TLSを使用した直接VDA接続について詳しくは、CitrixサポートKnowledge CenterのCTX134123を参照してください。

GUIを使用してネットワークの場所を追加する

Citrix Cloudを介した直接ワークロード接続の構成には、内部ユーザーの接続元である各ブランチの場所のパブリックIPアドレス範囲を使用してネットワークの場所を作成することも含まれます。

  1. Citrix Cloudコンソールで、[ネットワークの場所] に移動します。

  2. [ネットワークの場所を追加] をクリックします。

  3. ネットワークの場所名と、その場所のパブリックIPアドレス範囲を入力します。

    ネットワークの場所の追加

  4. [保存]をクリックします。

  5. 追加する新しいネットワークの場所ごとに、上記の手順を繰り返します。

注:

接続の種類は常に [内部] であるため、直接ワークロード接続には場所のタグは必要ありません。[ネットワークの場所を追加] ページの [場所のタグ] フィールド ([Citrix Cloud]>[ネットワークの場所]>[ネットワークの場所を追加]>[場所のタグ]) は、アダプティブアクセス機能が有効になっている場合にのみ表示されます。詳しくは、「アダプティブアクセス機能を有効にする」を参照してください。

ネットワークの場所を変更または削除

  1. Citrix Cloudコンソールで、メインメニューから [ネットワークの場所] に移動します。
  2. 管理するネットワークの場所を見つけて、省略記号ボタンをクリックします。

    省略記号ボタンが強調表示されたネットワークの場所の一覧

  3. 次のいずれかのコマンドを選択します:
    • [編集] を選択して、ネットワークの場所を変更します。変更したら、[保存] をクリックします。
    • [削除] を選択して、ネットワークの場所を削除します。[はい、削除します] をクリックして削除を確定します。このアクションを元に戻すことはできません。

PowerShellを使用してネットワークの場所を追加および変更する

Citrix Cloud管理コンソールインターフェイスを使用する代わりに、PowerShellスクリプトを使用して直接ワークロード接続を構成できます。PowerShellを使用した直接ワークロード接続の構成には、次のタスクが含まれます:

  1. 内部ユーザーの接続元である各ブランチの場所のパブリックIPアドレス範囲を決定します。
  2. PowerShellモジュールをダウンロードします
  3. Citrix CloudでセキュアAPIクライアントを作成し、クライアントIDとシークレットを書き留めます。
  4. PowerShellモジュールをインポートし、APIクライアントの詳細を使用して、ネットワークの場所サービス(NLS:Network Location Service)に接続します。
  5. 前述の決定したパブリックIPアドレス範囲を使用して、ブランチの場所ごとにNLSサイトを作成します。直接ワークロード接続は、指定した内部ネットワークの場所からのすべての起動に対して自動的に有効になります。
  6. 内部ネットワーク上のデバイスからアプリまたはデスクトップを起動し、接続がGatewayを省略してVDAに直接接続されていることを確認します。詳しくは、この記事の「ICAファイルログ」を参照してください。

PowerShellモジュールのダウンロード

ネットワークの場所を設定する前に、Citrixが提供しているPowerShellモジュール(nls.psm1)をCitrix GitHubリポジトリからダウンロードします。このモジュールを使用して、VDAに必要な数のネットワークの場所を設定できます。

  1. Webブラウザーで、https://github.com/citrix/sample-scripts/blob/master/workspace/NLS2.psm1に移動します。
  2. [ALT] キーを押しながら [Raw] ボタンをクリックします。 [Raw]ボタンが強調表示されたGitHubファイルビュー
  3. コンピューター上の場所を選択し、[保存] をクリックします。

必要な構成の詳細

ネットワークの場所を設定するには、次の必須情報が必要です:

  • Citrix Cloudセキュアクライアントの顧客ID、クライアントID、およびクライアントシークレット。これらの値を取得するには、本記事の「セキュアクライアントの作成」を参照してください。
  • 内部ユーザーの接続元であるネットワークのパブリックIPアドレス範囲。これらのパブリックIPアドレス範囲について詳しくは、本記事の「要件」を参照してください。

セキュアクライアントの作成

  1. Citrix Cloud(https://citrix.cloud.com)にサインインします。
  2. Citrix Cloudメニューから、[IDおよびアクセス管理] を選択し、次に [APIアクセス] を選択します。
  3. [セキュアクライアント] タブで、顧客IDをメモします。

    顧客IDが強調表示されたセキュアクライアントコンソール

  4. クライアントの名前を入力し、[クライアントの作成] を選択します。
  5. クライアントIDとクライアントシークレットをコピーします。

    セキュアクライアントIDおよびシークレットダイアログボックス

ネットワークの場所の構成

  1. PowerShellコマンドウィンドウを開き、PowerShellモジュールを保存したディレクトリに移動します。
  2. 次のモジュールをインポートします:Import-Module .\nls.psm1 -Force
  3. セキュアクライアントの作成」のセキュアクライアント情報を使用して、必要な変数を設定します:
    • $clientId = "YourSecureClientID"
    • $customer = "YourCustomerID"
    • $clientSecret = "YourSecureClientSecret"
  4. セキュアクライアント資格情報を使用してネットワークの場所サービスに接続します:

    Connect-NLS -clientId $clientId -clientSecret $clientSecret -customer $customer
    
  5. ネットワークの場所を作成し、パラメーター値を内部ユーザーの直接接続元である内部ネットワークに対応する値に置き換えます:

    New-NLSSite -name "YourSiteName" -tags @("YourTags") -ipv4Ranges @("PublicIpsOfYourNetworkSites") -longitude 12.3456 -latitude 12.3456 -internal $True
    

    範囲ではなく単一のIPアドレスを指定するには、IPアドレスの末尾に /32 を追加します。例:

    New-NLSSite -name "YourSiteName" -tags @("YourTags") -ipv4Ranges @("PublicIpOfYourNetworkSite/32") -longitude 12.3456 -latitude 12.3456 -internal $True
    

    重要:

    New-NLSSiteコマンドを使用するときは、各パラメーターに少なくとも1つの値を含めます。コマンドライン引数を指定せずにこのコマンドを実行すると、PowerShellにより、各パラメーターに適切な値を1つずつ入力するように求められます。internalプロパティは、設定可能な値:$Trueまたは$False(PowerShellを使用してUIにマッピングされる)を持つ必須のブール値プロパティです。例:(UI) Network Internal -> (PowerShell) –internal=$True

    ネットワークの場所が正常に作成されると、コマンドウィンドウにネットワークの場所の詳細が表示されます。

  6. ユーザーの接続元であるすべてのネットワークの場所で手順5を繰り返します。
  7. コマンドGet-NLSSiteを実行して、NLSで構成したすべてのサイトの一覧を返し、それらの詳細が正しいことを検証します。

ネットワークの場所の変更

既存のネットワークの場所を変更するには:

  1. PowerShellコマンドウィンドウから、既存のネットワークの場所をすべて一覧表示します:Get-NLSSite
  2. 特定のネットワークの場所のIP範囲を変更するには、以下を入力します。

    (Get-NLSSite)[N] | Set-NLSSite -ipv4Ranges @("1.2.3.4/32","4.3.2.1/32")

    [N]はリスト内の場所に対応する0から始まる番号で、"1.2.3.4/32","4.3.2.1/32"は使用するコンマ区切りのIP範囲です。たとえば、リストの最初の場所を変更するには、次のコマンドを入力します:

    (Get-NLSSite)[0] | Set-NLSSite -ipv4Ranges @("98.0.0.1/32","141.43.0.0/24")

ネットワークの場所の削除

不要になったネットワークの場所を削除するには:

  1. PowerShellコマンドウィンドウから、既存のネットワークの場所をすべて一覧表示します:Get-NLSSite
  2. ネットワークの場所をすべて削除するには、「Get-NLSSite | Remove-NLSSite」を入力します。
  3. 特定のネットワークの場所を削除するには、「(Get-NLSSite)[N] | Remove-NLSSite」を入力します。[N]は、リスト内の場所に対応する番号です。たとえば、リストの最初の場所を削除するには、「(Get-NLSSite)[0] | Remove-NLSSite」を入力します。

内部起動が正しくルーティングされていることの確認

内部起動がVDAに直接アクセスしていることを確認するには、次のいずれかの方法を使用します:

  • DaaSコンソールからVDA接続を表示します。
  • ICAファイルログを使用して、クライアント接続のアドレス指定が正しいことを確認します。

Citrix DaaSコンソール

[管理]>[監視] の順に選択し、アクティブなセッションがあるユーザーを検索します。コンソールの [セッションの詳細] セクションでは、直接VDA接続はUDP接続として表示され、ゲートウェイ接続はTCP接続として表示されます。

DaaSコンソールにUDPが表示されない場合は、VDAのHDXアダプティブトランスポートポリシーを有効にする必要があります。

ICAファイルログ

launch.icaファイルのログ作成を有効にするには」の説明に従い、クライアントコンピューターでICAファイルログを有効にします。セッションを開始した後、ログファイルの [Address] および [SSLProxyHost] エントリを確認します。

直接VDA接続

直接VDA接続の場合、[Address] プロパティにはVDAのIPアドレスとポートが含まれます。

クライアントがNLSを使用してアプリケーションを起動するときのICAファイルの例を次に示します:

[Notepad++ Cloud]
Address=;10.0.1.54:1494
SSLEnable=Off
<!--NeedCopy-->

このファイルにはSSLProxyHostプロパティがありません。このプロパティは、ゲートウェイ経由の起動にのみ含まれます。

ゲートウェイ接続

ゲートウェイ接続の場合、[Address] プロパティにはCitrix Cloud STAチケットが含まれ、[SSLEnable] プロパティは [On] に設定され、[SSLProxyHost] プロパティにはゲートウェイのFQDNとポートが含まれます。

クライアントがCitrix Gatewayサービスを介して接続してアプリケーションを起動する場合のICAファイルの例を次に示します:

[PowerShell ISE Cloud]
Address=;40;CWSSTA;027C02199068B33889A40C819A85CBB4
SSLEnable=On
SSLProxyHost=global.g.nssvcstaging.net:443
<!--NeedCopy-->

クライアントがオンプレミスゲートウェイを介して接続し、リソースの場所内で構成されているオンプレミスゲートウェイを使用してアプリケーションを起動する場合のICAファイルの例を次に示します:

[PowerShell ISE Cloud]
Address=;40;CWSSTA;027C02199068B33889A40C819A85CBB5
SSLEnable=On
SSLProxyHost=onpremgateway.domain.com:443
<!--NeedCopy-->

注:

仮想アプリと仮想デスクトップの起動に使用されるオンプレミスゲートウェイ仮想サーバーは、nFactor認証仮想サーバーではなく、VPN仮想サーバーである必要があります。nFactor認証仮想サーバーはユーザー認証専用であり、リソースHDXおよびICA起動トラフィックをプロキシしません。

スクリプト例

サンプルスクリプトには、遠隔地のパブリックIPアドレス範囲の追加、変更、削除に必要なすべてのコマンドが含まれています。ただし、1つの機能を実行するためにこのすべてのコマンドを実行する必要はありません。スクリプトを実行するには、常にImport-ModuleからConnect-NLSの最初の10行を含めます。それ以降は、実行したい機能のコマンドのみを含めることができます。

Import-Module .\nls.psm1 -Force

$clientId = "XXXX" #Replace with your clientId
$clientSecret = "YYY"    #Replace with your clientSecret
$customer = "CCCCCC"  #Replace with your customerid

# Connect to Network Location Service
Connect-NLS -clientId $clientId -clientSecret $clientSecret -customer $customer

# Create a new Network Location Service Site (Replace with details corresponding to your branch locations)
New-NLSSite -name "New York" -tags @("EastCoast") -ipv4Ranges @("1.2.3.0/24") -longitude 40.7128 -latitude -74.0060 -internal $True

# Get the existing Network Location Service Sites (optional)
Get-NLSSite

# Update the IP Address ranges of your first Network Location Service Site (optional)
$s = (Get-NLSSite)[0]
$s.ipv4Ranges = @("1.2.3.4/32","4.3.2.1/32")
\$s | Set-NLSSite

# Remove all Network Location Service Sites (optional)
Get-NLSSite | Remove-NLSSite

# Remove your third site (optional)
\(Get-NLSSite)\[2] | Remove-NLSSite

トラブルシューティング

VDAの起動失敗

VDAセッションの起動に失敗する場合、正しいネットワークのパブリックIPアドレス範囲を使用していることを確認してください。ネットワークの場所を構成する場合、内部ユーザーの接続元であるネットワークのパブリックIPアドレス範囲を使用してインターネットに接続する必要があります。詳しくは、本記事の「要件」を参照してください。

内部VDA起動がゲートウェイを経由してルーティングされる

内部で起動されたVDAセッションが外部セッションと同様にゲートウェイを経由してルーティングされる場合、内部ユーザーの接続元である正しいパブリックIPアドレスを使用してワークスペースに接続していることを確認してください。NLSサイトにリストされているパブリックIPアドレスは、リソースを起動するクライアントがインターネットへのアクセスに使用するアドレスに対応している必要があります。クライアントの正しいパブリックIPアドレスを取得するには、クライアントマシンにログオンし、検索エンジンにアクセスして検索バーに「what is my ip」(私のIPアドレスは何ですか?)と入力します。

通常、同じオフィスの場所内でリソースを起動するクライアントはすべて、同じネットワークのエグレス(送信)パブリックIPアドレスを使用してインターネットにアクセスします。これらのクライアントには、ファイアウォールによってブロックされていない、VDAが存在するサブネットへのインターネットネットワークルートが必要です。詳しくは、本記事の「要件」を参照してください。

Windows以外のプラットフォームでPowerShellコマンドレットを実行するとエラーが発生する

PowerShell Coreで正しいパラメーターを使用してコマンドレットを実行しているときにエラーが発生した場合は、操作が正常に実行されたことを確認してください。たとえば、New-NLSSiteコマンドレットの実行中にエラーが発生した場合は、Get-NLSSiteを実行してサイトが作成されたことを確認します。PowerShell Coreを使用してmacOSまたはLinuxプラットフォームでコマンドレットを実行すると、操作が正常に実行された場合でもエラーが発生することがあります。

Windowsプラットフォームで正しいパラメーターを使用してPowerShellでコマンドレットを実行しているときにこの問題が発生した場合は、PowerShellモジュールの最新バージョンを使用していることを確認してください。PowerShellモジュールの最新バージョンを使用すると、Windowsプラットフォームでこの問題は発生しません。

追加のヘルプとサポート

トラブルシューティングのヘルプまたは質問については、Citrix営業担当者またはCitrixサポートにお問い合わせください。

直接ワークロード接続でワークスペースへの接続を最適化