Exchange 2013/2016 – Loadbalancing mit Citrix Netscaler

Im Deployment Guide für Microsoft Exchange 2013 mit Citirx Netscaler haben sich ein paar kleine, aber entscheidende Ungenauigkeiten eingeschlichen. Diese können zu Fehlfunktionen führen und werden in diesem Artikel korrekt dargestellt.

Autor Markus Hengstler
Datum 18.05.2016
Lesezeit 5 Minuten

In einem früheren Blog-Artikel habe ich auf die Wichtigkeit von Loadbalancing für Exchange-Umgebungen hingewiesen. Nun sind bei Kunden mit Citrix-XenDesktop-Infrastrukturen normalerweise schon Netscaler Appliances im Einsatz und es ist durchaus sinnvoll, diese auch für Exchange zu verwenden. Citrix hat auch einen Deployment Guide herausgegeben, der die Konfiguration beschreibt und diese vereinfachen sollte. Lassen Sie sich nicht durch den hohen Detaillierungsgrad des Dokuments in die Irre führen – es haben sich einige Fehler und Stolpersteine eingeschlichen, auf die ich in diesem Artikel eingehen möchte.

Ich gehe davon aus, dass die Option Single Namespace / Layer 7 (No Session Affinity) aus dem Guide umgesetzt werden soll, da dies die bevorzugte Variante in Microsofts Preferred Architecture ist. Die Option zeichnet sich dadurch aus, dass der SSL-Verkehr terminiert wird, damit die virtuellen Verzeichnisse in den Requests erkannt und jeweils mit einem dedizierten Healthcheck überprüft werden können:

exchange-2013-2016-loadbalancing-citrix-netscaler-01

Aus Sicht Netscaler wird dafür eine Kombination aus Loadbalancing- und Content-Switching-Virtual-Services verwendet.

Die Stolpersteine

Exchange-2013-Konfiguration
Auf Seite 10 des Guides wird darauf hingewiesen, dass SSL Offloading in Exchange 2013 konfiguriert werden sollte. Dies ist aber nicht nötig und macht den Setup nur unnötig kompliziert.

Service Groups
Für alle Protokolle werden dann Service Groups erstellt, wie auf Seite 11 beschrieben. Leider fehlen diejenigen für das Offline Address Book, das Exchange Control Panel und Mapi over HTTP Protokoll. Letzteres ist zwar in Exchange 2013 optional aber in 2016 wird es als Default verwendet. Ausserdem ist die Service Group für Autodiscover mit dem Namen svg_cas_autodiscovery versehen. Ein Schönheitsfehler, der aber schnell zu einer falschen Konfiguration des virtuellen Verzeichnisses später im Guide führen kann.

exchange-2013-2016-loadbalancing-citrix-netscaler-02

Load Balancing Virtual Servers
Die auf Seite 13 beschriebenen Virtual Server sind wiederum nicht vollständig und die Namensgebung ist nicht konsistent, was zu Fehlern führen kann. So wurde die Service Group für Outlook Anywhere nach dem virtuellen Verzeichnis RPC benannt. Der virtuelle Server aber bekommt den Namen new_v_cas_oa. Auch dies ist ein Schönheitsfehler. Schwerer wiegt der Umstand, dass der Status nicht wie im Guide auf «UP» wechselt, auch wenn der Gesundheitszustand der Service Group 100% anzeigt:

exchange-2013-2016-loadbalancing-citrix-netscaler-03

Dies liegt daran, dass die virtuellen Server keine IP-Adresse brauchen, wie beschrieben, aber ein SSL-Zertifikat muss trotzdem zugewiesen werden. Dies wird aber nicht erwähnt. So wird es gemacht:

exchange-2013-2016-loadbalancing-citrix-netscaler-04

Danach wechselt auch der Status wie beschrieben auf «UP». Achtung: Falls das SSL Offloading Feature in Netscaler nicht aktiv ist, lässt sich alles konfigurieren, aber es funktioniert nicht …

exchange-2013-2016-loadbalancing-citrix-netscaler-05

exchange-2013-2016-loadbalancing-citrix-netscaler-06

Content Switching
Nun wird für jeden Load Balancing Virtual Switch eine Content Switching Action und eine Policy erstellt. Letztere definiert das virtuelle Verzeichnis, das der Netscaler in den Requests auswertet. Leider hat sich auch da ein kleiner Fehler eingeschlichen. Gemäss Guide ist die Konfiguration folgendermassen:

exchange-2013-2016-loadbalancing-citrix-netscaler-07

Diese Konfiguration verwendet Case Sensitivity – d.h. Gross-/Kleinschreibung muss genau mit dem String übereinstimmen. Dies führt unweigerlich zu Problemen wie hier:

exchange-2013-2016-loadbalancing-citrix-netscaler-08

Korrekt ist dieser Ausdruck:

exchange-2013-2016-loadbalancing-citrix-netscaler-09

Weiter wurden für die virtuellen Verzeichnisse von Activesync (new_cs_pol_eas) und Outlook Anywhere (new_cs_pol_oa) auf Seite 15 völlig falsche Strings angegeben:

exchange-2013-2016-loadbalancing-citrix-netscaler-10

Richtig ist für ActiveSync Microsoft-Server-ActiveSync und für Outlook Anywhere RPC.

Danach stimmt die Anleitung wieder und nach Erstellen eines Content Switching Virtual Servers lässt sich Exchange hinter dem Netscaler als Loadbalancer korrekt betreiben.

Fazit

Citrix Netscaler lässt sich zwar in Zusammenhang mit Exchange 2013/2016 verwenden, der Deployment Guide ist aber mit Vorsicht und dem nötigen Wissen über die Fehler darin zu geniessen.

Microsoft Exchange Trainings

Für mehr Informationen zu Exchange 2013 und 2016 besuchen Sie einen der folgenden Kurse.

Zu allen Exchange-Server-Trainings

Für mehr Informationen zu Exchange 2013 und 2016 besuchen Sie einen der folgenden Kurse.

Zu allen Exchange-Server-Trainings


Über den Autor

Markus Hengstler

Markus Hengstler arbeitet bei der UMB AG als Senior Systems Engineer in den Bereichen Exchange, Windows und Citrix. Dank seiner Erfahrungen in diesen Bereichen ist er zertifizierter «MCSE: Server Infrastructure». Ausserdem ist er einer von drei «MCSM: Messaging» in der Schweiz. Seit 2001 unterrichtet er als Microsoft Certified Trainer und seit 2010 als Citrix Certified Instructor bei Digicomp.