直接ワークロード接続でワークスペースへの接続を最適化
Citrix Cloudの直接ワークロード接続を使用すると、ワークスペースのアプリとデスクトップへの内部トラフィックを最適化して、HDXセッションを高速化できます。通常、内部ネットワークと外部ネットワークの両方のユーザーが、外部ゲートウェイを経由してVDAに接続します。直接ワークロード接続により、内部ユーザーはゲートウェイを経由せずにVDAに直接接続できるため、内部ネットワークトラフィックの遅延が短縮されます。
直接ワークロード接続を設定するには、ネットワークの場所サービス(NLS:Network Location Service)を使用し、環境内でVDAに対応するネットワークの場所が必要です。ネットワークの場所を構成するには、次の2つのオプションがあります:
- Citrix Cloudの [ネットワークの場所] メニューオプションを使用する。
- Citrixが提供しているPowerShellモジュールを使用する。
ネットワークの場所は、会社のオフィスやブランチの場所など、内部ユーザーの接続元であるネットワークのパブリックIPアドレス範囲に対応しています。Citrix Cloudは、パブリックIPアドレスを使用して、Workspaceで仮想アプリまたは仮想デスクトップを起動するネットワークが企業ネットワークの内部か外部かを判断します。利用者が内部ネットワークから接続している場合、Citrix Cloudでは接続がCitrix Gatewayを経由せずVDAに直接ルーティングされます。利用者が外部から接続している場合、Citrix Cloudでは利用者がCitrix Gatewayを経由してルーティングされ、Citrix Cloud Connector経由で内部ネットワークのVDAにリダイレクトされます。
重要:
環境にCitrix Virtual Apps and Desktops Standard for AzureがオンプレミスVDAとともに含まれている場合、直接ワークロード接続を構成すると、内部ネットワークからの起動が失敗します。
Secure Browser、Citrix Virtual Apps Essentials、およびCitrix Virtual Desktops Essentialsの起動は、常にゲートウェイを経由してルーティングされます。これらの起動では、直接ワークロード接続を構成してもパフォーマンスは向上しません。
要件
ネットワークの要件
- 社内ネットワークとゲストWi-Fiネットワークには、個別のパブリックIPアドレスが必要です。企業ネットワークとゲストネットワークがパブリックIPアドレスを共有している場合、ゲストネットワーク上のユーザーはVirtual Apps and Desktopsセッションを起動できません。
- 内部ユーザーの接続元であるネットワークのパブリックIPアドレス範囲を使用します。これらのネットワーク上の内部ユーザーはVDAに直接接続する必要があります。直接接続しない場合、Workspaceは内部ユーザーをVDAに直接ルーティングしようとするため、仮想リソースを起動できなくなります。
TLSの要件
ネットワークの場所を構成するときは、PowerShellでTLS 1.2を有効にする必要があります。PowerShellでTLS 1.2の使用を強制するには、PowerShellモジュールの使用前に次のコマンドを使用します:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
ワークスペースの要件
- Citrix Cloudでワークスペースが構成されています。
- Virtual Apps and Desktopsサービスは、[ワークスペース構成]>[サービス統合] で有効になっています。
- オンプレミスVDAを使用して、仮想リソースをワークスペース利用者に配信します。
HTML5向けWorkspaceアプリの接続でTLSを有効にする
利用者がHTML5向けCitrix Workspaceアプリを使用してアプリやデスクトップを起動する場合、内部ネットワークでVDAのTLSを有効にすることをお勧めします。TLSは、VDAへの直接接続を保証します。VDAでTLSが有効になっていない場合、利用者がHTML5向けCitrix Workspaceアプリを使用すると、アプリとデスクトップの起動はGatewayを介してルーティングされます。Desktop Viewerを使用した起動は影響を受けません。TLSを使用した直接VDA接続について詳しくは、CitrixサポートKnowledge CenterのCTX134123を参照してください。
Citrix Cloudのネットワークの場所の構成
Citrix Cloudを介した直接ワークロード接続の構成には、内部ユーザーの接続元である各ブランチの場所のパブリックIPアドレス範囲を使用してネットワークの場所を作成することも含まれます。
ネットワークの場所の作成
- Citrix Cloudコンソールで、メインメニューから [ネットワークの場所] に移動します。
- 右上隅にある [ネットワークの場所を追加] ボタンを選択します。
- ネットワークの場所名、その場所のパブリックIPアドレス範囲、および場所のタグを入力します。
- 追加する新しいネットワークの場所ごとに、上記の手順を繰り返します。
ネットワークの場所を変更または削除
- Citrix Cloudコンソールで、メインメニューから [ネットワークの場所] に移動します。
- 変更または削除するネットワークの場所の横にある省略記号(…)を選択してから、次のいずれかを実行します:
- [編集] を選択してネットワークの場所を変更し、変更を [保存] して[ネットワークの場所]ページに表示します。または、
- [削除] を選択して、ネットワークの場所を削除します。ネットワークの場所を削除する前に、この決定を確認するように求められます。このアクションを元に戻すことはできません。
PowerShellを使用したネットワークの場所の構成
Citrix Cloudの代わりに、PowerShellスクリプトを使用して直接ワークロード接続を構成できます。PowerShellを使用した直接ワークロード接続の構成には、次のタスクが含まれます:
- 内部ユーザーの接続元である各ブランチの場所のパブリックIPアドレス範囲を決定します。
- PowerShellモジュールをダウンロードします。
- Citrix CloudでセキュアAPIクライアントを作成し、クライアントIDとシークレットを書き留めます。
- PowerShellモジュールをインポートし、APIクライアントの詳細を使用して、ネットワークの場所サービス(NLS:Network Location Service)に接続します。
- 前述の決定したパブリックIPアドレス範囲を使用して、ブランチの場所ごとにNLSサイトを作成します。直接ワークロード接続は、指定した内部ネットワークの場所からのすべての起動に対して自動的に有効になります。
- 内部ネットワーク上のデバイスからアプリまたはデスクトップを起動し、接続がGatewayを省略してVDAに直接接続されていることを確認します。
PowerShellモジュールのダウンロード
ネットワークの場所を設定する前に、Citrixが提供しているPowerShellモジュール(nls.psm1)をCitrix Githubリポジトリからダウンロードします。このモジュールを使用して、VDAに必要な数のネットワークの場所を設定できます。
- Webブラウザーで、https://github.com/citrix/sample-scripts/blob/master/workspace/nls.psm1に移動します。
-
[ALT] キーを押しながら [Raw] ボタンをクリックします。
- コンピューター上の場所を選択し、[保存] をクリックします。
必要な構成の詳細
ネットワークの場所を設定するには、次の必須情報が必要です:
- Citrix Cloudセキュアクライアントの顧客ID、クライアントID、およびクライアントシークレット。これらの値を取得するには、本記事の「セキュアクライアントの作成」を参照してください。
- 内部ユーザーの接続元であるネットワークのパブリックIPアドレス範囲。これらのパブリックIPアドレス範囲について詳しくは、本記事の「要件」を参照してください。
セキュアクライアントの作成
- Citrix Cloud(
https://citrix.cloud.com
)にサインインします。 - Citrix Cloudメニューから、[IDおよびアクセス管理] を選択し、次に [APIアクセス] を選択します。
-
[セキュアクライアント] タブで、顧客IDをメモします。
- クライアントの名前を入力し、[クライアントの作成] を選択します。
- クライアントIDとクライアントシークレットをコピーします。
ネットワークの場所の構成
- PowerShellコマンドウィンドウを開き、PowerShellモジュールを保存したディレクトリに移動します。
- 次のモジュールをインポートします:
Import-Module .\nls.psm1 -Force
- 「セキュアクライアントの作成」のセキュアクライアント情報を使用して、必要な変数を設定します:
$clientId = "YourSecureClientID"
$customer = "YourCustomerID"
$clientSecret = "YourSecureClientSecret"
-
セキュアクライアント資格情報を使用してネットワークの場所サービスに接続します:
Connect-NLS -clientId $clientId -clientSecret $clientSecret -customer $customer
-
ネットワークの場所を作成し、パラメーター値を内部ユーザーの直接接続元である内部ネットワークに対応する値に置き換えます:
New-NLSSite -name "YourSiteName" -tags @("YourTags") -ipv4Ranges @("PublicIpsOfYourNetworkSites") -longitude 12.3456 -latitude 12.3456
範囲ではなく単一のIPアドレスを指定するには、IPアドレスの末尾に /32 を追加します。例:
New-NLSSite -name "YourSiteName" -tags @("YourTags") -ipv4Ranges @("PublicIpOfYourNetworkSite/32") -longitude 12.3456 -latitude 12.3456
重要:
New-NLSSite
コマンドを使用するときは、各パラメーターに少なくとも1つの値を含めます。コマンドライン引数を指定せずにこのコマンドを実行すると、PowerShellにより、各パラメーターに適切な値を1つずつ入力するように求められます。-tags
パラメーターの値を入力する場合は、各タグ値を入力した後にEnterキーを押します。タグの入力が完了したら、もう一度Enterキーを押して次のパラメーターに進みます。ネットワークの場所が正常に作成されると、コマンドウィンドウにネットワークの場所の詳細が表示されます。
- ユーザーの接続元であるすべてのネットワークの場所で手順5を繰り返します。
- コマンド
Get-NLSSite
を実行して、NLSで構成したすべてのサイトの一覧を返し、それらの詳細が正しいことを検証します。
内部起動が正しくルーティングされていることの確認
内部起動がVDAに直接アクセスしていることを確認するには、次のいずれかの方法を使用します:
- Virtual Apps and DesktopsコンソールからVDA接続を表示します。
- ICAファイルログを使用して、クライアント接続のアドレス指定が正しいことを確認します。
Virtual Apps and Desktopsサービスコンソール
[管理]>[監視] の順に選択し、アクティブなセッションがあるユーザーを検索します。コンソールの[セッション詳細]セクションでは、直接VDA接続はUDP接続として表示され、ゲートウェイ接続はTCP接続として表示されます。
ICAファイルログ
「launch.icaファイルのログ作成を有効にするには」の説明に従い、クライアントコンピューターでICAファイルログを有効にします。セッションを開始した後、ログファイルの [Address] および [SSLProxyHost] エントリを確認します。
直接VDA接続の場合、 [Address] プロパティにはVDAのIPアドレスとポートが含まれ、[SSLProxyHost] プロパティにはVDAのFQDNとポートが含まれます。
ゲートウェイ接続の場合、 [Address] プロパティにはSTAチケットが含まれ、[SSLProxyHost] プロパティにはゲートウェイのFQDNとポートが含まれます。
ネットワークの場所の変更
既存のネットワークの場所を変更するには:
- PowerShellコマンドウィンドウから、既存のネットワークの場所をすべて一覧表示します:
Get-NLSSite
-
特定のネットワークの場所のIP範囲を変更するには、以下を入力します。
(Get-NLSSite)[N] -ipv4Ranges @("1.2.3.4/32","4.3.2.1/32") | Set-NLSSite
[N]
はリスト内の場所に対応する0から始まる番号で、"1.2.3.4/32","4.3.2.1/32"
は使用するコンマ区切りのIP範囲です。たとえば、リストの最初の場所を変更するには、次のコマンドを入力します:(Get-NLSSite)[0] -ipv4Ranges @("98.0.0.1/32","141.43.0.0/24") | Set-NLSSite
ネットワークの場所の削除
不要になったネットワークの場所を削除するには:
- PowerShellコマンドウィンドウから、既存のネットワークの場所をすべて一覧表示します:
Get-NLSSite
- ネットワークの場所をすべて削除するには、「
Get-NLSSite | Remove-NLSSite
」を入力します。 - 特定のネットワークの場所を削除するには、「
(Get-NLSSite)[N] | Remove-NLSSite
」を入力します。[N]
は、リスト内の場所に対応する番号です。たとえば、リストの最初の場所を削除するには、「(Get-NLSSite)[0] | Remove-NLSSite
」を入力します。
スクリプト例
サンプルスクリプトには、遠隔地のパブリック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
# 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のパブリックIPアドレスを確認するには、各VDAマシンにログオンし、https://google.com
にアクセスして、検索バーに「what is my ip」と入力します。
内部VDA起動がゲートウェイを経由してルーティングされる
内部で起動されたVDAセッションが外部セッションと同様にゲートウェイを経由してルーティングされる場合、内部ユーザーの接続元であるネットワークの正しいIPアドレス範囲を使用していることを確認してください。これらは通常、VDAが存在するネットワークに対応したパブリックIPアドレス範囲です。ただし、ユーザーはVPN経由でVDAにアクセスしている場合があります。VDAのローカルIPアドレスを使用しないでください。詳しくは、本記事の「要件」を参照してください。
VDAのパブリックIPアドレスを確認するには、各VDAマシンにログオンし、https://google.com
にアクセスして、検索バーに「what is my ip」と入力します。
Windows以外のプラットフォームでPowerShellコマンドレットを実行するとエラーが発生する
PowerShell Coreで正しいパラメーターを使用してコマンドレットを実行しているときにエラーが発生した場合は、操作が正常に実行されたことを確認してください。たとえば、New-NLSSiteコマンドレットの実行中にエラーが発生した場合は、Get-NLSSite
を実行してサイトが作成されたことを確認します。PowerShell Coreを使用してMacOSまたはLinuxプラットフォームでコマンドレットを実行すると、操作が正常に実行された場合でもエラーが発生することがあります。
Windowsプラットフォームで正しいパラメーターを使用してPowerShellでコマンドレットを実行しているときにこの問題が発生した場合は、PowerShellモジュールの最新バージョンを使用していることを確認してください。PowerShellモジュールの最新バージョンを使用すると、Windowsプラットフォームでこの問題は発生しません。
追加のヘルプとサポート
トラブルシューティングのヘルプまたは質問については、Citrix営業担当者またはCitrixサポートにお問い合わせください。