1つのCitrix Gatewayに2つのURLを構成する

StoreFrontでは、管理コンソールの [Citrix Gatewayの管理]の[追加] または [編集] からCitrix GatewayのURLを1つだけ追加できます。また、[Citrix Gatewayの管理]の[ファイルからインポート] で、Citrix GatewayのパブリックURLとGSLB(Global Server Load Balancing:グローバルサーバー負荷分散)のURLの両方を追加することもできます。

この記事では、PowerShellコマンドレットとStoreFront PowerShell SDKでオプションパラメーターの-gslburlを使用して、ゲートウェイのGslbLocation属性を設定する方法について説明します。これにより、次のユースケースで、StoreFrontでのCitrix Gatewayの管理が簡素化されます:

  1. GSLBと複数のCitrix Gateway。GSLBと複数のCitrix Gatewayを使用して、大規模なグローバルCitrix展開の2つまたは複数の場所にある公開リソースへのリモート接続の負荷を分散します。
  2. 単一のCitrix GatewayでのパブリックまたはプライベートURLの使用。パブリックURLによる外部アクセスとプライベートURLによる内部アクセスに対し、同一のCitrix Gatewayを使用します。

これは高度な機能とトピックです。StoreFrontゲートウェイとグローバルサーバー負荷分散(GSLB)の概念に慣れていない場合は、この記事の最後にある関連情報のリンクを参照してください。

このアーキテクチャには次の長所があります。

  • 単一のゲートウェイオブジェクトで2つのURLを同時に使用できます。
  • 管理者がユーザーの使用するゲートウェイURLと一致するようにStoreFrontゲートウェイオブジェクトを再構成しなくても、ユーザーは2つの異なるURLを切り替えてCitrix Gatewayにアクセスできます。
  • 複数のGSLBゲートウェイを使用する場合のStoreFrontゲートウェイ構成のセットアップと検証テスト時間が短縮されます。
  • 外部アクセスと内部アクセスの両方に、DMZ内部のStoreFrontに含まれる同一のCitrix Gatewayを使用できます。
  • 最適なゲートウェイルーティングで両方のURLを使用できます。最適なゲートウェイルーティングについて詳しくは、「可用性の高いマルチサイトストアのセットアップ」を参照してください。

2つのゲートウェイURLを使用する場合の展開に関する検討事項

  • ゲートウェイURL FQDNは、StoreFront管理コンソール内の各ゲートウェイに対して表示されます。各ゲートウェイのGSLBURLプロパティは、PowerShellコマンドレットを使用した場合にのみ表示されます。
  • ゲートウェイURLは、ネイティブのCitrix ReceiverおよびCitrix Workspaceアプリによって認証に使用されます。
  • ゲートウェイURLは、ストアおよびゲートウェイ情報を使用してCitrix ReceiverおよびCitrix Workspaceアプリを構成するために使用されるプロビジョニングファイル(receiver.cr)内の場所タグに含まれます。
  • 提供されているPowershellを使用して、ストアおよびローミングのweb.configファイルを変更します。この操作は手動で行わないでください。

重要:

-gslburlパラメーターを使用して2番目のゲートウェイURLを構成する前に、配置済みのサーバー証明書と組織でのDNS解決の実行方法について確認してください。Citrix GatewayおよびStoreFrontの展開環境で使用するURLはすべて、サーバー証明書に記載されている必要があります。サーバー証明書について詳しくは、「ゲートウェイとサーバー証明書の使用方法の計画」を参照してください。

DNS

  • 分割DNS。大企業では、一般にスプリットDNSが使用されています。スプリットDNSでは、パブリックとプライベートのDNSの解決に異なる名前空間とDNSサーバーを使用しています。既存のDNSインフラストラクチャでこれがサポートされるかどうかを確認してください。
  • 公開リソースへの外部および内部アクセス用の単一のURL。社内ネットワークの内部および外部からの公開リソースへのアクセスで同一のURLを使用するかどうか、またはexample.comexample.netのような2つの異なるURLを認めるかどうかを検討します。

サーバー証明書

このセクションでは、2つのゲートウェイURLを使用する場合のサーバー証明書の展開例を示します。

StoreFrontの負荷分散展開環境のサーバー証明書の例

プライベート署名済みのワイルドカードサーバー証明書に、*.storefront.example.netというFQDNを含めます。

または

プライベート署名済みのSANサーバー証明書に、3台のStoreFrontサーバーの負荷分散に必要なFQDNをすべて含めます。

loadbalancer.storefront.example.net
server1.storefront.example.net
server2.storefront.example.net
server3.storefront.example.net

StoreFrontサーバーグループのホストのベースURLを、ロードバランサーのIPアドレスに対して解決される共有FQDNに設定します:

loadbalancer.storefront.example.net

スプリットDNSを使用して内部と外部の両方からアクセスされるCitrix Gatewayのサーバー証明書の例

外部と内部両方のアクセス用のプライベート署名済みSANサーバー証明書に、外部と内部両方のFQDNを含めます。

gateway.example.com
gateway.example.net

外部からアクセスされるすべてのGSLBゲートウェイ向けのサーバー証明書の例

GSLBを経由した外部アクセス用のパブリック署名済みSANサーバー証明書に、次のFQDNを含めます。

gslbdomain.example.com
emeagateway.example.com
usgateway.example.com
apacgateway.example.com

これにより、ユーザーはGSLBを使用して最も近いゲートウェイにアクセスするか、一意のFQDNを使用して任意の場所にあるゲートウェイを選択することができます。

ユースケース1:Receiver for Web:GSLBおよび複数のCitrix Gateway

管理者がGSLBと複数のCitrix Gatewayを使用して、大規模なグローバルCitrix展開の2つまたは複数の場所にある公開リソースへのリモート接続の負荷を分散します。

GSLBと複数のCitrix Gateway

この例の構成は次のとおりです。

  • それぞれの場所またはデータセンターに、1つまたは複数のゲートウェイ、1台または複数台のStoreFrontサーバー、その場所の公開リソースを提供する1つ以上のXenAppおよびXenDesktopのコントローラーを含めています。グローバル展開環境内のGSLB Citrix ADCアプライアンス上で構成されている各GSLBは、ゲートウェイVPN仮想サーバーとして機能しています。この環境内のStoreFrontサーバーはすべて、GSLBレイヤーを構成するCitrix Gateway仮想サーバーすべてを含むように構成する必要があります。GSLB Citrix Gatewayはアクティブ/アクティブモードで使用していますが、1箇所でネットワーク接続、DNS、ゲートウェイ、StoreFrontサーバー、またはCitrix Virtual Apps and Desktopsのコントローラーに障害が発生した場合はフェールオーバーを実施することもできます。GSLBサービスが利用不能になると、ユーザーは自動で別のゲートウェイに接続されます。
  • リモート接続が確立されると、外部クライアントは、GSLBの構成済み負荷分散アルゴリズム(ラウンドトリップ時間(RTT)や静的近接度)に基づいて最も近いゲートウェイに接続されます。
  • 各ゲートウェイの一意のURLにより、ユーザーは使用するゲートウェイの場所固有のURLを選択して、リソースの起動先になるデータセンターを手動で指定することができます。
  • GSLBまたはDNSの委任が意図したとおりに動作しなくなった場合は、GSLBをバイパスすることができます。GSLB関連の問題が解決されるまで、ユーザーは場所固有のURLを使用してすべてのデータセンターのリモートリソースに引き続きアクセスできます。

ユースケース1:Receiver for Webと、Citrix ReceiverまたはCitrix Workspaceアプリ:GSLBおよび複数のCitrix Gateway

ゲートウェイ属性

ネイティブのCitrix ReceiversまたはCitrix Workspace appsアプリでGSLBを使用するには、Add-STFRoamingGateway(作成)またはSet-STFRoamingGateway(変更)を使用して、次の属性を指定します:

-GatewayUrl - すべてのGSLBゲートウェイの共有FQDNとして設定

-GSLBurl - ゲートウェイごとに固有のゲートウェイFQDNとして設定

注:

直観に反しているように思えるかもしれませんが、これはこのWebユースケースには影響しません。これにより、ネイティブのCitrix ReceiverまたはCitrix Workspaceアプリが、エンドポイントhttps://storefront.domain.com/citrix/<storename>/discoveryにアクセスすることによって検出された検出ドキュメント内でGSLBが使用する共有FQDNを確実に受け取ることができます。また、StoreFrontの [プロビジョニングファイルのエクスポート] コマンドによってエクスポートされたプロビジョニングファイル(receiver.cr)に、共有GSLB FQDNが確実に含まれるようにすることもできます。

プロビジョニングファイルの例

-GatewayUrl https://gslb.domain.comを使用したサンプルファイル1。これにより、ネイティブのCitrix ReceiverまたはCitrix WorkspaceアプリはGSLBを使用してゲートウェイに接続できるようになります。

ネイティブのCitrix ReceiverまたはCitrix WorkspaceアプリがGSLBを使用してゲートウェイに接続可能に

-GatewayUrl https://emeagateway.domain.com, https://usgateway.domain.com and https://apacgateway.domain.comを使用したサンプルファイル2。これにより、ネイティブのCitrix ReceiverまたはCitrix Workspaceアプリは固有のURLを使用してゲートウェイに接続できるようになります。

ネイティブのCitrix ReceiverまたはCitrix Workspaceアプリは固有のURLを使用してゲートウェイに接続可能に

共有FQDNは、ネイティブのCitrix ReceiverおよびCitrix Workspaceアプリによる認証に使用されます。

ユースケース2:単一のCitrix GatewayでのパブリックまたはプライベートURLの使用

管理者は、パブリックURLによる外部アクセスとプライベートURLによる内部アクセスの両方で、同一のCitrix Gatewayを使用します。

単一のCitrix GatewayでのパブリックまたはプライベートURLの使用

この例の構成は次のとおりです。

  • 管理者は、クライアントが内部にある場合でも、公開リソースへのアクセスおよびHDXの起動トラフィックがCitrix Gatewayを経由して渡されるように設定します。
  • Citrix GatewayはDMZ内にあります。
  • DMZの両側には、2つのファイアウォールを経由したCitrix Gatewayへの2つの異なるネットワークルートが配置されています。
  • 公開される外部名前空間は、内部の名前空間とは異なります。

PowerShellコマンドレット例

StoreFrontゲートウェイオブジェクト上のGslbLocation属性を設定するには、Add-STFRoamingGateway および Set-STFRoamingGateway の各PowerShellコマンドレットで-gslburlパラメーターを指定します。次に例を示します:

Add-STFRoamingGateway -Name "EMEAGateway" -GatewayUrl "https://emeagateway.example.com" -GSLBurl "https://gslb.example.com" -SubnetIPAddress "10.0.0.1" -CallbackUrl "https://emeagateway.example.com" -LogonType "DomainAndRSA" -SmartCardFallbackLogonType "None" -Version "Version10_0_69_4" -SecureTicketAuthorityUrls "https://emea-controller.example.com/scripts/ctxsta.dll,https://us-controller.example.com/scripts/ctxsta.dll,https://apac-controller.example.com/scripts/ctxsta.dll"
Set-STFRoamingGateway -Name "EMEAGateway" -GatewayUrl "https://emeagateway.example.com" -GSLBurl "https://gslb.example.com"
Get-STFRoamingGateway -Name "EMEAGateway" (returns just the EMEA gateway object)
Or
Get-STFRoamingGateway (returns all gateway object configured in StoreFront)

ユースケース#1ではGslbLocationをNULLに設定して、「EMEAGateway」からGSLBurlを削除できます。以下のPowerShellは、メモリに保存されたゲートウェイオブジェクト$EMEAGatewayを変更します。次に、Set-STFRoamingGatewayが$EMEAGatewayに設定され、StoreFront構成を更新しGSLBurlを削除できます。

$EMEAGateway = Get-STFRoamingGateway
$EMEAGateway.GslbLocation = $Null
Set-STFRoamingGateway -Gateway $EMEAGateway

ユースケース1では、Get-STFRoamingGateway を使用すると以下のゲートウェイが返されます:

Name: EMEAGateway
Location: https://emeagateway.example.com/ (Unique URL for the EMEA Gateway)
GslbLocation: https://gslb.example.com/ (GSLB URL for all three gateways)

Name: USGateway
Location: https://USgateway.example.com/ (Unique URL for the US Gateway)
GslbLocation: https://gslb.example.com/ (GSLB URL for all three gateways)

Name: APACGateway
Location: https://APACgateway.example.com/ (Unique URL for the APAC Gateway)
GslbLocation:  https://gslb.example.com/ (GSLB URL for all three gateways)

ユースケース2では、Get-STFRoamingGateway を使用すると以下のゲートウェイが返されます:

Name: EMEAGateway
Location: https://emeagateway.example.com/ (Public URL for the Gateway)
GslbLocation: https://emeagateway.example.net/ (Private URL for the Gateway)

ユースケース1では、Get-STFStoreRegisteredOptimalLaunchGateway を使用すると最適なゲートウェイルーティングが返されます:

$StoreObject = Get-STFStoreService -SiteId 1 -VirtualPath "/Citrix/<YourStore>"

Get-STFStoreRegisteredOptimalLaunchGateway -StoreService $StoreObject

Hostnames:       {emeagateway.example.com, gslb.example.com}
Hostnames:       {usgateway.example.com, gslb.example.com}
Hostnames:       {apacgateway.example.com, gslb.example.com}

各ゲートウェイのGSLB URLまたは内部URLは、ローミングサービスのweb.configファイルに保存されます

StoreFrontの管理コンソールでは、各ゲートウェイのGSLB URLまたは内部URLは表示されませんが、すべてのGSLBゲートウェイについて、StoreFrontサーバーのC:\inetpub\wwwroot\Citrix\Roaming\にあるローミングサービスのweb.configファイルを開くと構成済みのGSLBLocationパスを確認できます。

使用例#1:ローミング中のゲートウェイweb.configファイル

<gateway id="cca13269-18c1-10fd-a0df-7931b3897aa8" name="EMEAGateway" default="false" edition="Enterprise" version="Version10_0_69_1" auth="DomainAndRSA" smartcardfallback="None" ipaddress="10.0.0.1" rwmode="NONE" deployment="Appliance" callbackurl=https://emeagateway.example.com/CitrixAuthService/AuthService.asmx sessionreliability="true" requesttickettwosta="false" stasUseLoadBalancing="false" stasBypassDuration="01:00:00">
<location path="https://emeagateway.example.com/" /><gslbLocation path="https://gslb.example.com/" /><clusternodes>
<clear />
</clusternodes>
<silentauthenticationurls>
<clear />
</silentauthenticationurls>
<secureticketauthorityurls>
<clear />
<location path="https://emea-controller.example.com/scripts/ctxsta.dll" />
<location path="https://us-controller.example.com/scripts/ctxsta.dll" />
<location path="https://apac-controller.example.com/scripts/ctxsta.dll" />
</secureticketauthorityurls>
</gateway>

<gateway id="b8ec720c-d85e-1889-8188-1cf08a2cf762" name="USGateway" default="false" edition="Enterprise" version="Version10_0_69_1" auth="DomainAndRSA" smartcardfallback="None" ipaddress="10.0.0.2" rwmode="NONE" deployment="Appliance" callbackurl="https://usgateway.example.com/CitrixAuthService/AuthService.asmx" sessionreliability="true" requesttickettwosta="false" stasUseLoadBalancing="false" stasBypassDuration="01:00:00"><location path="https://usgateway.example.com/" /><gslbLocation path="https://gslb.example.com/" /><clusternodes>
<clear />
</clusternodes>
<silentauthenticationurls>
<clear />
</silentauthenticationurls>
<secureticketauthorityurls>
<clear />
<location path="https://emea-controller.example.com/scripts/ctxsta.dll" />
<location path="https://us-controller.example.com/scripts/ctxsta.dll" />
<location path="https://apac-controller.example.com/scripts/ctxsta.dll" />
</secureticketauthorityurls>
</gateway>

<gateway id="c57117b5-e111-1eed-9117-a1ffa1c8100e" name="APACGateway" default="false" edition="Enterprise" version="Version10_0_69_1" auth="DomainAndRSA" smartcardfallback="None" ipaddress="10.0.0.3" rwmode="NONE" deployment="Appliance" callbackurl="https://apacgateway.example.com/CitrixAuthService/AuthService.asmx" sessionreliability="true" requesttickettwosta="false" stasUseLoadBalancing="false" stasBypassDuration="01:00:00"><location path="https://apacGateway.example.com/" /><gslbLocation path="https://gslb.example.com/" /><clusternodes>
<clear />
</clusternodes>
<silentauthenticationurls>
<clear />
</silentauthenticationurls>
<secureticketauthorityurls>
<clear />
<location path="https://emea-controller.example.com/scripts/ctxsta.dll" />
<location path="https://us-controller.example.com/scripts/ctxsta.dll" />
<location path="https://apac-controller.example.com/scripts/ctxsta.dll" />
</secureticketauthorityurls>
</gateway>

使用例#2:ローミング中のゲートウェイweb.configファイル

<gateway id="cca13269-18c1-10fd-a0df-7931b3897aa8" name="EMEAGateway" default="false" edition="Enterprise" version="Version10_0_69_1" auth="Domain" smartcardfallback="None" ipaddress="10.0.0.1" rwmode="NONE" deployment="Appliance" callbackurl="https://emeagateway.example.com/CitrixAuthService/AuthService.asmx" sessionreliability="true" requesttickettwosta="false" stasUseLoadBalancing="false" stasBypassDuration="01:00:00">
<location path="https://emeagateway.example.com/" />
<gslbLocation path=" https://emeagateway.example.net/" />
<clusternodes>
<clear />
</clusternodes>
<silentauthenticationurls>
<clear />
</silentauthenticationurls>
<secureticketauthorityurls>
<clear />
<location path="https://emea-controller.example.net/scripts/ctxsta.dll" />
</secureticketauthorityurls>
</gateway>

関連情報

開発者用のドキュメントで、Citrix StoreFront SDK PowerShell Modulesを参照してください。