Konfigurieren zweier URLs für dasselbe Citrix Gateway

In StoreFront können Sie über Citrix Gateways verwalten > Hinzufügen oder Bearbeiten in der StoreFront-Verwaltungskonsole eine einzelne Citrix Gateway-URL hinzufügen. Es ist auch möglich, eine öffentliche Citrix Gateway-URL und eine GSLB-URL (Global Server Load Balancing) über Citrix Gateways verwalten > importiert-aus-Datei hinzuzufügen.

In diesem Artikel wird erläutert, wie Sie mit PowerShell-Cmdlets und dem StoreFront-PowerShell-SDK unter Verwendung des optionalen Parameters “-gslburl” das Attribut “GslbLocation” eines Gateways festlegen. Dieses Feature vereinfacht die Citrix Gateway-Verwaltung in StoreFront in folgenden Anwendungsfällen:

  1. GSLB und mehrere Citrix Gateways. Verwenden von GSLB und mehrerer Citrix Gateways für den Lastausgleich bei Remoteverbindungen mit veröffentlichten Ressourcen an mehreren Orten innerhalb einer großen, globalen Citrix Bereitstellung.
  2. Ein Citrix Gateway mit öffentlicher oder privater URL. Verwenden desselben Citrix Gateways für den externen Zugriff über eine öffentliche URL und für den internen Zugriff über eine private URL.

Es handelt sich um ein erweitertes Feature (und Thema). Wenn Sie mit StoreFront-Gateway und Global Server Load Balancing (GSLB) noch nicht vertraut sind, konsultieren Sie die Informationslinks am Ende dieses Artikels.

Das Feature bietet die folgenden Vorteile:

  • Unterstützung zweier URLs für dasselbe Gatewayobjekt.
  • Die Benutzer können beim Zugriff auf Citrix Gateway zwischen zwei URLs wechseln, ohne dass der Administrator das StoreFront-Gatewayobjekt auf die gewünschte Gateway-URL umkonfigurieren muss.
  • Weniger Zeitaufwand für Einrichtung und Tests der StoreFront-Gatewaykonfiguration bei Verwendung mehrerer GSLB-Gateways.
  • Verwendung desselben Citrix Gateway-Objekts in StoreFront innerhalb der DMZ für den externen und internen Zugriff.
  • Unterstützung für beide URLs für das optimale Gatewayrouting. Weitere Hinweise zum optimalen Gatewayrouting finden Sie unter Einrichten hoch verfügbarer Stores mit mehreren Sites.

Überlegungen zur Bereitstellung bei Verwendung zweier Gateway-URLs

  • Der GatewayURL-FQDN wird für jedes Gateway in der StoreFront-Verwaltungskonsole angezeigt. Die Eigenschaft “GSLBURL” jedes Gateways kann nur unter Verwendung von PowerShell-Cmdlets angezeigt werden.
  • Die GatewayURL wird von den nativen Citrix Receiver-Bereitstellungen und der Citrix Workspace-App zur Authentifizierung verwendet.
  • Die GatewayURL ist im location-Tag der Bereitstellungsdatei (receiver.cr) enthalten, die zum Konfigurieren von Citrix Receiver und der Citrix Workspace-App mit Store- und Gateway-Informationen verwendet wird.
  • Verwenden Sie die bereitgestellte PowerShell zum Ändern von web.config-Dateien für Stores und Roaming. Tun Sie dies nicht manuell.

Wichtig:

Bevor Sie eine zweite Gateway-URL mit dem Parameter “-gslburl” konfigurieren, prüfen Sie, welche Serverzertifikate installiert sind und wie die DNS-Auflösung in Ihrem Unternehmen erfolgt. Alle URLs, die Sie in der Citrix Gateway- und StoreFront-Bereitstellung verwenden möchten, müssen in den Serverzertifikaten aufgelistet sein. Weitere Informationen zu Serverzertifikaten finden Sie unter Planen des Einsatzes von Gateway- und Serverzertifikaten.

DNS

  • Split-DNS. Große Unternehmen verwenden häufig Split DNS. Bei Split DNS werden verschiedene Namespaces und DNS-Server für die öffentliche und die private DNS-Auflösung verwendet. Vergewissern Sie sich, dass Ihre vorhandene DNS-Infrastruktur dies unterstützt.
  • Einzelne URL für den externen und internen Zugriff auf veröffentlichte Ressourcen. Überlegen Sie, ob Sie für den Zugriff auf veröffentlichte Ressourcen von außerhalb und innerhalb des Firmennetzwerks dieselbe URL verwenden möchten oder ob zwei URLs (z. B. example.com und example.net) akzeptabel sind.

Serverzertifikat

Dieser Abschnitt enthält Beispiele für Serverzertifikatbereitstellungen bei Verwendung zweier Gateway-URLs.

Beispiel eines Serverzertifikats für eine StoreFront-Bereitstellung mit Lastausgleich

Ein privat signiertes Serverzertifikat mit Platzhaltern muss den FQDN “*.storefront.example.net” enthalten.

Oder

Ein privat signiertes SAN-Serverzertifikat muss alle für den Lastausgleich bei den drei StoreFront-Servern erforderlichen FQDNs enthalten.

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

Legen Sie die Hostbasis-URL der StoreFront-Servergruppe auf den gemeinsamen FQDN fest, der in die IP-Adresse des Load Balancers aufgelöst wird:

loadbalancer.storefront.example.net

Beispiel eines Serverzertifikats für ein Citrix Gateway, auf das extern und intern über Split DNS zugegriffen wird

Ein öffentlich signiertes SAN-Serverzertifikat für den externen und internen Zugriff muss den internen und den externen FQDN enthalten.

gateway.example.com
gateway.example.net

Beispiel eines Serverzertifikats für alle GSLB-Gateways, auf die extern zugegriffen wird

Ein öffentlich signiertes SAN-Serverzertifikat für den externen Zugriff über GSLB muss folgende FQDNs enthalten:

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

Dadurch können Benutzer über GSLB auf das am nächsten gelegene Gateway zugreifen oder ein anderes Gateway an dem Ort unter Auswahl seines FQDNs wählen.

Anwendungsfall 1: Receiver für Web: GSLB und mehrere Citrix Gateways

Der Administrator verwendet GSLB und mehrere Citrix Gateways für den Lastausgleich bei Remoteverbindungen mit veröffentlichten Ressourcen an mehreren Orten innerhalb einer großen, globalen Citrix Bereitstellung.

GSLB und mehrere Citrix Gateways

In diesem Beispiel:

  • Jeder Standort bzw. jedes Datencenter enthält mindestens ein Gateway, mindestens einen StoreFront-Server und mindestens einen XenApp- und XenDesktop-Controller für veröffentlichte Ressourcen. Jeder auf den Citrix ADC-Geräten konfigurierte GSLB-Dienst in der globalen Bereitstellung repräsentiert einen virtuellen Gateway-VPN-Server. Alle StoreFront-Server in der Bereitstellung müssen so konfiguriert werden, dass sie alle virtuellen Citrix Gateway-Server der GSLB-Schicht enthalten. Die Citrix Gateways werden im Aktiv/Aktiv-Modus verwendet, können aber auch ein Failover im Fall einer Störung bei der Netzwerkverbindung, bei DNS, dem Gateway, dem StoreFront-Server oder einem Citrix Virtual Apps and Desktops-Controller an einem Standort bieten. Die Benutzer werden automatisch an ein anderes Gateway weitergeleitet, wenn ein GSLB-Dienst ausfällt.
  • Externe Clients werden bei Remoteverbindungen basierend auf dem konfigurierten GSLB-Lastausgleichsalgorithmus (z. B. Roundtripzeit oder statische Nähe) an das nächstgelegene Gateway weitergeleitet.
  • Die eindeutige URL für jedes Gateway gestattet Benutzern die manuelle Auswahl des Datencenters zum Starten von Ressourcen.
  • GSLB kann umgangen werden, wenn GSLB oder eine DNS-Delegierung nicht wie erwartet funktioniert. Die Benutzer können über die ortsspezifische URL weiterhin auf Remoteressourcen in beliebigen Datenzentren zugreifen, bis alle GSLB-Probleme behoben sind.

Anwendungsfall 1: Receiver für Web und Citrix Receiver oder Citrix Workspace-App: GSLB und mehrere Citrix Gateways

Gateway-Attribute

Zur Verwendung von GSLB mit nativen Citrix Receiver- oder Citrix Workspace-App-Bereitstellungen, verwenden Sie Add-STFRoamingGateway (zum Erstellen) oder Set-STFRoamingGateway (zum Ändern), um folgende Attribute anzugeben:

-GatewayUrl: der von allen GSLB-Gateways gemeinsam verwendete FQDN

-GSLBurl: der eindeutige FQDN für jedes Gateway

Hinweis:

Dies mag unlogisch erscheinen, hat aber keinen Einfluss auf diesen Web-Anwendungsfall. Es gewährleistet, dass native Citrix Receiver- oder Citrix Workspace-App-Bereitstellungen den von GSLB verwendeten, gemeinsam genutzten FQDN im Discoverydokument erhalten, das beim Zugriff auf den Endpunkt https://storefront.domain.com/citrix/<storename>/discovery gefunden wird. Außerdem wird sichergestellt, dass die mit dem StoreFront-Befehl Provisioningdatei exportieren exportierte Bereitstellungsdatei (receiver.cr) den gemeinsam genutzten GSLB-FQDN enthält.

Beispiele für Provisioningdateien

Beispieldatei 1 mit -GatewayUrl https://gslb.domain.com. Damit kann Citrix Receiver bzw. die Citrix Workspace-App GSLB verwenden, um eine Verbindung mit Gateways herzustellen.

kann Citrix Receiver bzw. die Citrix Workspace-App GSLB verwenden, um eine Verbindung mit Gateways herzustellen

Beispieldatei 2 mit -GatewayUrl https://emeagateway.domain.com, https://usgateway.domain.com and https://apacgateway.domain.com. Damit kann Citrix Receiver bzw. die Citrix Workspace-App die eindeutigen URLs verwenden, um eine Verbindung mit Gateways herzustellen.

kann Citrix Receiver bzw. die Citrix Workspace-App die eindeutigen URLs verwenden, um eine Verbindung mit Gateways herzustellen

Der gemeinsam genutzte FQDN wird von den nativen Citrix Receiver- und Citrix Workspace-App-Bereitstellungen verwendet.

Anwendungsfall 2: ein Citrix Gateway mit öffentlicher oder privater URL

Der Administrator verwendet dasselbe Citrix Gateway für den externen Zugriff über eine öffentliche URL und für den internen Zugriff über eine private URL.

Ein Citrix Gateway mit öffentlicher oder privater URL

In diesem Beispiel:

  • Der Administrator möchte, dass der gesamte Zugriff auf veröffentlichte Ressourcen und HDX-Startverkehr über ein Citrix Gateway läuft, selbst wenn der Client intern ist.
  • Das Citrix Gateway befindet sich in einer DMZ.
  • Es gibt zwei Netzwerkrouten zum Citrix Gateway über zwei Firewalls, jeweils eine auf jeder Seite der DMZ.
  • Der öffentliche, externe Namespace unterscheidet sich von dem internen Namespace.

PowerShell-Cmdlet-Beispiele

Verwenden Sie die PowerShell-Cmdlets Add-STFRoamingGateway und Set-STFRoamingGateway mit dem Parameter “-gslburl”, um das Attribut GslbLocation für das StoreFront-Gatewayobjekt festzulegen. Zum Beispiel:

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)

Für Anwendungsfall 1 können Sie GSLBurl vom “EMEAGateway” entfernen, indem Sie GslbLocation auf NULL setzen. Der folgende PowerShell-Befehlt ändert das im Arbeitsspeicher gespeicherte Gatewayobjekt $EMEAGateway. Set-STFRoamingGateway kann dann $EMEAGateway übergeben werden, um die StoreFront-Konfiguration zu aktualisieren und GSLBurl zu entfernen.

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

Im Anwendungsfall 1 werden durch Get-STFRoamingGateway die folgenden Gateways zurückgegeben:

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)

Im Anwendungsfall 2 werden durch Get-STFRoamingGateway die folgenden Gateways zurückgegeben:

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

Im Anwendungsfall 1 wird durch Get STFStoreRegisteredOptimalLaunchGateway “Optimal Gateway Routing” zurückgegeben:

$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}

Die GSLB-URL oder die interne URL für jedes Gateway wird in der Datei web.config des Roamingdienstes gespeichert

In der StoreFront-Verwaltungskonsole wird die GSLB-URL oder die interne URL aller Gateways nicht angezeigt. Der konfigurierte GSLBLocation-Pfad für alle GSLB-Gateways ist jedoch in der web.config-Datei des Roamingdiensts in C:\inetpub\wwwroot\Citrix\Roaming\web.config auf dem StoreFront-Server enthalten.

Im Anwendungsfall 1 in der web.config-Roamingdatei

<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>

Im Anwendungsfall 2 in der web.config-Roamingdatei

<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>

Verwandte Informationen

Siehe Citrix StoreFront SDK PowerShell Modules in der Dokumentation für Entwickler.