Ziel dieser Blogreihe ist es, eine Microsoft App-V Infrastruktur über einen Citrix NetScaler zu Loadbalancen. Das Ganze ist u.a. als Ergänzung zu den entsprechenden Kapiteln in meinem Buch Softwarevirtualisierung mit App-V 5 gedacht: Link
Wie vielleicht bekannt, kann der NetScaler auch ohne eine eingespielte Lizenz als Express Edition mit einer Bandbreite von 20Mbit die Features Load Balancing und SSL-Offload bereitstellt. Das vermutlich, um eine kostenlose hochverfügbare LB-Lösung für Citrix StoreFront zu ermöglichen. Images des Citrix NetScaler VPX Express Edition stehen bei Citrix für VMWare ESX, Hyper-V und den XenServer zum Download bereit.
Weitere Teile
Teil 1: App-V Infrastruktur mit Citrix NetScaler Load Balancing (optional Verschlüsselt)
Teil 2: App-V Infrastruktur mit Citrix NetScaler unverschlüsseltes App-V Load Balancing
Teil 3: App-V Infrastruktur mit Citrix NetScaler mit Verschlüsselung nach Außen
Teil 4: App-V Infrastruktur mit Citrix NetScaler und vollständiger Verschlüsselung
Vorteil ist, dass der NetScaler im Gegensatz zu einem Microsoft Network Load Balancer (NLB) auch Dienste überwachen kann. Somit wird ein Ausfall des App-V registriert und das System auch bei einem Dienstausfall (http/https) für das Load Balancing ignoriert. Natürlich kann auch eine NetScaler Lösung mit mehr Bandbreite bei Citrix lizensiert werden.
Für den produktiven Einsatz ist der n+1 Ansatz empfohlen. Also jeweils drei Server von jeder Sorte (3x App-V Publishung / NetScaler VPX). In den Meisten Umgebungen wird eine Bandbreite von 20 Mbit/s und 200 gleichzeitige SSL Verbindungen genügen, da über das Publishing nur XML Dateien mit einem geringen Datenumfang übertragen werden und die Anzahl der Verbindungen nur zu Stoßzeiten mehr werden kann.
Anmerkung: Genau so können auch andere Werbservices, die über Kerberos authentifizieren ein Load Balancing erhalten.
Anmerkung: Leider funktioniert genau das nicht für Citrix die Citrix Integration in XenApp/XenDesktop, da diese versuchen über PSRemoting auf die Server zuzugreifen. Für unsere Projekte nutzen wir u.a. auch deshalb für Terminalserver eigen Lösungen für XenApp.
Letzte Anmerkung: Im Gegensatz zu meinem Buch, wo wir zunächst auf ein Benutzerkonto umgestellt haben, nutzen wir hier ein Computerkonto für den Zugriffspunkt. Ich lerne auch noch immer dazu und diese Möglichkeit war mir damals nicht bekannt. Bitte dazu die Bereich SetSpn und Kerberos beachten.
Voraussetzung:
1. Eine App-V Infrastruktur mit mindestens zwei App-V Servern
2. Zugriff auf eine CA zur Erstellung von Zertifikaten
Hier umgesetzte Konfigurationen:
Es erfolgt nur ein Load Balancing für die App-V Publishingserver. App-V Reporing und Management können analgog genau so konfiguriert werden.
- http über den NetScaler Virtual Server und http im Backend
- https über den NetScaler Virtual Server und http im Backend
- https über den NetScaler Virtual Server und https im Backend
Optional:
Die hier aufgezeigte Konfiguration erfolgt nur für den Publishing Server. Es ist problemloss mit der gleichen Technik auch das App-V Management und das App-V Reporting zu loadbalancen.
Aufbau der Umgebung:
Domäne: Uran, Uran.local
AppV Server 1: APPV01 (192.168.1.210)
AppV Server 2: APPV02 (192.168.1.211)
App-V Management Port:8090
App-V Publishing: 8091
App-V Publishing SSL: 8092
NetScaler: NSCPX01 (192.168.1.230)
DC: DC0 (192.168.1.200)
Es wird davon ausgegangen, dass die App-V Umgebung mit einem dezentralen SQL Server installiert wurde. Wie das geht könnt ihr u.a. in meinem Buch nachlesen. Es wird hier nur ein Load Balancing für das Publishing erstellt. Andere Rollen wie Reporting oder Management können analgog dieser Anleitung in ein Load Balancing aufgenommen werden.
1.1 NetScaler VPX Express Edition Kostenlose Lizenz
Zunächst benötigt Ihr einen kostenlosen mycitrix-Account. Den könnt hier unter dem folgenden Link bekommen:
https://www.citrix.com/account
Nach dem Anmelden unter https://www.citrix.com/mycitrix unter “Downloads” den NetScaler ADC wählen. Anschließend auf „NETSCALER VPX EXPRESS“ drücken
Nun könnt ihr die entsprechende VPX für Eure Plattform herunterladen. Wir nutzen meistens vSPhere und das OVF Format.
Nach dem Import auf einem ESXi Server muss in der Konsole noch die IP für das Management und das Gateway gesetzt werden. Damit ist der Nertscaler schon zur Konfiguration bereit.
Im Gegensatz zu früheren Versionen ist keine Lizenzdatei für die Express Edition mehr notwendig. Leider wird aber auch kein ICA Datenverkehr ohne Lizenz unterstützt.
Natürlich könnt ihr auch eure vorhandenen und regulär lizenzierte NetScaler Appliances bzw. Hardware nutzen.
1.2 Zertifikate
Alle Systeme müssen mit Zertifikaten versehen werden. Ich nutze ein interne Microsoft CA. Das Stammzertifikat wird automatisch in der Domäne verteilt oder kann automatisch ausgerollt werden. Dieser Teil wird jetzt nicht mehr detailliert, weil vieles schon an anderer Stelle beschrieben wurde.
Eine eigen CA könnt Ihr beispielsweise mit PowerShell installieren und die folgende Anleitung von mir benutzen:
Nicht vergessen, die CA auf SHA256 umzustellen. SHA1 gilt nicht mehr als sicher!
certutil -setreg ca\csp\CNGHashAlgorithm SHA256
(Anschließend neu starten!)
Dabei kann man auch die Checkbox erkennen, um eine Zertifikatvorlage zu erstellen, die Zertifikate erzeugt bei denen auch der private Schlüssel exportiert werden kann. Das ist zwingend notwendig, um das Zertifikat mit dem privaten Schlüssel auf dem NetScaler zu importieren! Das eigene SSL Zertifikat mit auf dem Zertifizierungsserver aktiv sein. Der Server mit der CA ist für den IE in den internen Webseiten zu konfigurieren:
Oder in der Registrierung (Machine oder Benutzer). Es ist auch eine Konfiguration über die Gruppenrichtlinien möglich.
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\uran.local]
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\uran.local\appv]
"https"=dword:00000001
Anmerkung: Oder auch *.uran.local bzw. die eigene Domäne. Dann sind alle internen Server schon einmal im Trust.
Zunächst das NetScaler Zertifikat:
1. https://<CASERVER>.<DOMAIN>/certsrv/
Hier: https://dc01.uran.local/certsrv/
2. „Request a certificate“
3. „Advanced certificate request“
4. „Create or submit a request to this CA“
5. Submit >
6. MMC starten
7. Das SnapIn Certification Authority und Certificates für den Bneutzer einfügen.
8. In der “Certification Authority” das neue Zertifikat unter “Pending” genehmigen (Issue)
9. Aud der CA Webseite zurück „View the status of a pending certificate request“ aufrufen.
10. Jetzt den Request anklicken
11. Nun kann das Zertifikat mit “Install this certificate” für den Benutzer installiert warden.
12. Das Zertifikat ist nun in der MMC unter Certificates/Personal/Certifikates bzw. eiene Zertifikate zu finden und kann dort exportiert werden.
13. Dazu mit der rechten Maustaste auf das Zertifikat/All Tasks/Export wählen
14. Im Dialog weiter gehen und „Yes, export the private Key“ wählen
15. Im Folgedialog „Export all extended Properties“ wählen
16. Einpasswort für das Zertifiat setzen
17. Das Zertifikat als <servername><domain>.pfx speicherm
Nun noch das Stammzertifikat der CA exportieren. Das findet sich unter den „Trusted Root Certificates“. Der Vorgang erfolgt analog nur diesmal ohne den privaten Schlüssel. Das Exportformat ist diesmal cer und ohne Kennwort, da hier auch der private Schlüssel fehlt. Beide Format cer und auch pfx können im NetScaler importiert werden.
Optional: Wenn ihr auch im Backend SSL verschlüsseln möchtet, den Vorgang für alle Server (App-V Publishing Server – appv01.uran.local, appv02.uran.local) wiederholen.
Optional: Die Serverzertifikate auf den App-V Veröffentlichungsservern importieren:
Den App-V Publishing Server mit Zertifiaten versorgen und den Port 8092 (oder eigenen) an das SSL Zertifikat binden:
- Das jeweilige Serverzertifikat unter „Eigene Zertifikate“ des Computers importieren (Doppelklick auf das Zertifikat und installieren)
- Den Informationsdienstemanager starten
- Den Knoten „Microsoft App-V Publishing Service“ aufklappen
- Auf der rechten Seite auf „Bindungen“ (Bindings) gehen und „Add“ wählen
- Hier anschließend https, den Port (bei mir 8092) und das Zertifikat wählen.
6. Nun die Verbindung testen. Achtung – die Serveradresse muss wiederum in den Intranetsides des Internetexplorers sein. Ansonsten poppt ein Passwortdialog auf. Eine Anwendung ist in der XML Datei nur enthalten, wenn auch eine Anwendung auf dem App-V Server veröffentlicht wurde!
Nun sollten erst einmal die Server mit Zertifikaten versorgt sein. Jetzt kommen wir zum NetScaler.
Einrichten des Netscaler VPX
Diesen Teil könnt ihr überspringen, wenn ihr schon einen Netscaler betreibt. Zunochst wird das Image - beispielsweise ein OVF für eine VMWare Infrastruktur in der jeweiligen virtuellen Umgebung installiert. In der Konsole sind anschlißend einige Basiseinstellungen notwendig.
NetScaler Basiskonfiguration:
Subnet IP zur Kommunikation im Backend: 192.168.1.231
Hostname: NSVPX01
DNS (DC01): 192.168.1.200
Nach der Installation des NetScaler und der Konfiguration der Management IP geht es über einen Webbrowser in die Anmeldeoberfläche. Der Zugriff auf die Administrationsoberfläche ist per http oder https möglich. Nach einer Standardverteilung wird jedoch im NetScaler nur ein selbstsigniertes Zertifikat hinterlegt.
Default Anmeldename: nsroot
Default Passwort: nsroot
Mit den Wizard soweit alle Einstellungen vervollständigen. Wichtig ist dabei der DNS Server. Ansonsten funktioniert im NetScaler keine Namensauflösung.
Wenn alles korrekt erfolgt ist, könnt ihr die Systeme von der NetScaler Konsole aus pingen bzw. zumindest werden die Namen aufgelöst. Ein Ping ist nur möglich, wenn die jeweiligen Firewalls bzw. Serverfirewalls das auch erlauben. Dazu einmal lokal in der NetScaler Konsole anmelden und das „Shell“ starten.
Abschließend unter System => Settings => Basic Features SSL Offloading und Load Balancing aktivieren
Jetzt ist der Netscaler betriebsbereit und es kann mit der Konfiguration begonnen werden.
Die anderen Teile folgen in den nächsten Tagen