Citrix ADC

Équilibre de charge du serveur Microsoft Exchange

Ce document fournit les exemples de configuration recommandés pour l’équilibrage de charge du serveur Microsoft Exchange à l’aide de l’appliance Citrix ADC.

Citrix ADM StyleBooks simplifie les configurations d’équilibrage de charge Citrix ADC pour Exchange. Pour plus d’informations, voir StyleBook Microsoft Exchange.

Remarque :

L’équilibrage de charge de Microsoft Exchange n’est pas possible à l’aide d’un seul serveur virtuel d’équilibrage de charge. Suivez plutôt les configurations recommandées fournies dans ce document.

Différences entre Microsoft Exchange 2016 et les versions plus récentes

  • Il n’est pas nécessaire de configurer les ports RPC (Remote Procedure Call) statiques sur Exchange 2016 car les ports RPC ne sont pas utilisés.

  • Toutes les sections nommées « pour les versions d’Exchange inférieures à 2016 » ne sont pas nécessaires avec Exchange 2016.

  • Si vous avez déjà configuré l’une des versions autres que 2016 et que vous migrez vers 2016, vous n’avez pas besoin de les supprimer. Parce que même s’ils existent, il n’y a aucun problème.

Points à noter

  • Pour les appels de procédure à distance (RPC) avec le serveur Exchange au-dessous de 2016, les serveurs CAS Exchange doivent être configurés pour les affectations de ports statiques. Pour plus d’informations, consultez la documentation Microsoft Exchange 2010 Client Access Server : Configurer les ports RPC statiques .

  • Cette configuration suppose l’utilisation de l’appliance Citrix ADC pour le déchargement SSL. Pour plus d’informations, consultez Comment configurer le déchargement SSL dans Exchange 2010 ou Configuration du déchargement SSL dans Exchange 2013.

  • Si vous ne souhaitez pas utiliser la fonction de déchargement SSL de l’appliance Citrix ADC, modifiez le groupe de services CAS_servicegroup_http et les moniteurs par type SSL et ses liaisons sur port 443.

  • La protection contre les surtensions n’est pas compatible avec Microsoft Exchange. Ne l’activez pas sur aucun service ou groupe de services lié à Microsoft Exchange. L’activation de la protection contre les surtensions engendre des problèmes de connectivité et

  • Remplacez les variables suivantes par les informations appropriées :

    • {HTTP Public IP} : adresse IP du point de terminaison HTTP Exchange public
    • {IP publique RPC} —Adresse IP du point de terminaison RPC Exchange public (peut être la même que HTTP Public IP)
    • {Timeout} : délai d’expiration souhaité (en secondes). Il est recommandé d’être aussi long que le temps de travail standard (c’est-à-dire 8 heures)
    • {PerstimeOut} : délai d’expiration souhaité (en minutes). Doit correspondre au paramètre de délai d’attente précédent.
    • {Port AB} : port TCP du carnet d’adresses RPC (généralement 59601)
    • {Port CA} : port TCP d’accès client RPC (généralement 59600)
    • {CertKey} —Clé de certificat SSL
    • {Serveur CAS-1} : adresse IP du serveur CAS
    • {Serveur CAS-2} : adresse IP du serveur CAS

Exemples de configuration recommandés pour toutes les versions de Microsoft Exchange Server

Groupes de services :

add serviceGroup CAS_servicegroup_http HTTP -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -SP OFF -useproxyport YES -cltTimeout {Timeout} -svrTimeout {Timeout} -CKA NO -TCPB NO -CMP YES
add serviceGroup CAS_servicegroup_rpc_epm TCP -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -SP OFF -useproxyport YES -cltTimeout {Timeout} -svrTimeout {Timeout} -CKA NO -TCPB NO -CMP NO
bind serviceGroup CAS_servicegroup_http {CAS-1 Server} 80 -CustomServerID ""None""
bind serviceGroup CAS_servicegroup_http {CAS-2 Server} 80 -CustomServerID ""None""
bind serviceGroup CAS_servicegroup_rpc_epm {CAS-1 Server} 135 -CustomServerID ""None""
bind serviceGroup CAS_servicegroup_rpc_epm {CAS-2 Server} 135 -CustomServerID ""None""
<!--NeedCopy-->

Moniteurs :

add lb monitor CAS_monitor_rpc_epm TCP -LRTM ENABLED -destPort 135
set lb monitor http-ecv HTTP-ECV -recv 403 -LRTM DISABLED
bind serviceGroup CAS_servicegroup_http -monitorName http-ecv
bind serviceGroup CAS_servicegroup_rpc_epm -monitorName CAS_monitor_rpc_epm
<!--NeedCopy-->

Serveurs virtuels d’équilibrage de charge :

add lb vserver CAS_vserver_owa SSL 0.0.0.0 0 -persistenceType COOKIEINSERT -timeout {PersTimeout} -lbMethod LEASTCONNECTION -cltTimeout {Timeout}
add lb vserver CAS_vserver_as SSL 0.0.0.0 0 -persistenceType RULE -timeout {PersTimeout} -lbMethod LEASTCONNECTION -rule "HTTP.REQ.HEADER("Authorization")" -cltTimeout {Timeout}
add lb vserver CAS_vserver_oa SSL 0.0.0.0 0 -timeout {PersTimeout} -lbMethod LEASTCONNECTION -cltTimeout {Timeout}
add lb vserver CAS_vserver_ews SSL 0.0.0.0 0 -timeout {PersTimeout} -lbMethod LEASTCONNECTION -cltTimeout {Timeout}
add lb vserver CAS_vserver_ad SSL 0.0.0.0 0 -timeout {PersTimeout} -lbMethod LEASTCONNECTION -cltTimeout {Timeout}
set ssl vserver CAS_vserver_owa -sslRedirect ENABLED
bind ssl vserver CAS_vserver_owa -certkeyName {CertKey}
bind ssl vserver CAS_vserver_oab -certkeyName {CertKey}
bind ssl vserver CAS_vserver_as -certkeyName {CertKey}
bind ssl vserver CAS_vserver_oa -certkeyName {CertKey}
bind ssl vserver CAS_vserver_ews -certkeyName {CertKey}
bind ssl vserver CAS_vserver_ad -certkeyName {CertKey}
bind lb vserver CAS_vserver_owa CAS_servicegroup_http
bind lb vserver CAS_vserver_oab CAS_servicegroup_http
bind lb vserver CAS_vserver_as CAS_servicegroup_http
bind lb vserver CAS_vserver_oa CAS_servicegroup_http
bind lb vserver CAS_vserver_ews CAS_servicegroup_http
bind lb vserver CAS_vserver_ad CAS_servicegroup_http
add lb vserver CAS_vserver_rpc_epm TCP {RPC Public IP} 135 -timeout {PersTimeout} -cltTimeout {Timeout} -comment "vserver for RPC End Point Mapper"
bind lb vserver CAS_vserver_rpc_epm CAS_servicegroup_rpc_epm
<!--NeedCopy-->

Groupe de persistance :

add lb group CAS_persistency_group_sourceip
bind lb group CAS_persistency_group_sourceip CAS_vserver_oa
bind lb group CAS_persistency_group_sourceip CAS_vserver_oab
bind lb group CAS_persistency_group_sourceip CAS_vserver_ews
bind lb group CAS_persistency_group_sourceip CAS_vserver_ad
bind lb group CAS_persistency_group_sourceip CAS_vserver_rpc_epm
set lb group CAS_persistency_group_sourceip -persistenceType SOURCEIP -timeout {PersTimeout}
<!--NeedCopy-->

Commutation de contenu pour les services HTTP :

add cs vserver CAS_vserver_cs SSL {Public IP} 443 -cltTimeout {Timeout} -caseSensitive OFF -comment "Exchange CS VServer"
bind ssl vserver CAS_vserver_cs -certkeyName {CertKey}
add cs action CAS_action_cs_owa -targetLBVserver CAS_vserver_owa
add cs action CAS_action_cs_oab -targetLBVserver CAS_vserver_oab
add cs action CAS_action_cs_as -targetLBVserver CAS_vserver_as
add cs action CAS_action_cs_oa -targetLBVserver CAS_vserver_oa
add cs action CAS_action_cs_ews -targetLBVserver CAS_vserver_ews
add cs action CAS_action_cs_autodiscover -targetLBVserver CAS_vserver_ad
add cs policy CAS_policy_cs_owa -rule "HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).STARTSWITH("/owa")" -action CAS_action_cs_owa
add cs policy CAS_vserver_oab -rule "HTTP.REQ.URL.SET_TEXT_MODE (IGNORECASE).STARTSWITH("/OAB")"
add cs policy CAS_policy_cs_as -rule "HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).STARTSWITH("/Microsoft-Server-ActiveSync")" -action CAS_action_cs_as
add cs policy CAS_policy_cs_autodiscover -rule "HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).STARTSWITH("/Autodiscover")" -action CAS_action_cs_autodiscover
add cs policy CAS_policy_cs_oa -rule "HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).STARTSWITH("/rpc")" -action CAS_action_cs_oa
add cs policy CAS_policy_cs_ews -rule "HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).STARTSWITH("/EWS")" -action CAS_action_cs_ews

bind cs vserver CAS_vserver_cs -policyName CAS_policy_cs_oa -priority 90
bind cs vserver CAS_vserver_cs -policyName CAS_policy_cs_owa -priority 100
bind cs vserver CAS_vserver_cs -policyName CAS_policy_cs_oab -priority 100
bind cs vserver CAS_vserver_cs -policyName CAS_policy_cs_as -priority 110
bind cs vserver CAS_vserver_cs -policyName CAS_policy_cs_autodiscover -priority 120
bind cs vserver CAS_vserver_cs -policyName CAS_policy_cs_ews -priority 130
bind cs vserver CAS_vserver_cs -lbvserver CAS_vserver_owa
<!--NeedCopy-->

Exemples de configuration recommandés pour les versions de Microsoft Exchange Server inférieures à 2016

Groupes de services supplémentaires :

add serviceGroup CAS_servicegroup_rpc_ca TCP -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -SP OFF -useproxyport YES -cltTimeout {Timeout} -svrTimeout {Timeout} -CKA NO -TCPB NO -CMP NO
add serviceGroup CAS_servicegroup_rpc_ab TCP -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -SP OFF -useproxyport YES -cltTimeout {Timeout} -svrTimeout {Timeout} -CKA NO -TCPB NO -CMP NO
bind serviceGroup CAS_servicegroup_rpc_ca {CAS-1 Server} {CA Port} -CustomServerID ""None""
bind serviceGroup CAS_servicegroup_rpc_ca {CAS-2 Server} {CA Port} -CustomServerID ""None""
bind serviceGroup CAS_servicegroup_rpc_ab {CAS-1 Server} {AB Port} -CustomServerID ""None""
bind serviceGroup CAS_servicegroup_rpc_ab {CAS-2 Server} {AB Port} -CustomServerID ""None""
<!--NeedCopy-->

Moniteurs supplémentaires :

add lb monitor CAS_monitor_rpc_ca TCP -LRTM ENABLED -destPort {CA Port}
add lb monitor CAS_monitor_rpc_ab TCP -LRTM ENABLED -destPort {AB Port}
bind serviceGroup CAS_servicegroup_rpc_ca -monitorName CAS_monitor_rpc_ca
bind serviceGroup CAS_servicegroup_rpc_ab -monitorName CAS_monitor_rpc_ab
<!--NeedCopy-->

Serveurs virtuels d’équilibrage de charge supplémentaires :

add lb vserver CAS_vserver_rpc_ab TCP {RPC Public IP} {AB Port} -timeout {PersTimeout} -cltTimeout {Timeout} -comment "vserver for  RPC Address Book"
add lb vserver CAS_vserver_rpc_ca TCP {RPC Public IP} {CA Port} -timeout {PersTimeout} -cltTimeout {Timeout} -comment "vserver for  RPC Client Access"
bind lb vserver CAS_vserver_rpc_ab CAS_servicegroup_rpc_ab
bind lb vserver CAS_vserver_rpc_ca CAS_servicegroup_rpc_ca
<!--NeedCopy-->

Groupe de persistance supplémentaire :

bind lb group CAS_persistency_group_sourceip CAS_vserver_rpc_ab
bind lb group CAS_persistency_group_sourceip CAS_vserver_rpc_ca
<!--NeedCopy-->

Exemples de configuration recommandés pour les versions de Microsoft Exchange Server 2016 et plus récentes

Serveur virtuel d’équilibrage de charge supplémentaire :

add lb vserver CAS_vserver_mapi SSL 0.0.0.0 0 -timeout {PersTimeout} -lbMethod LEASTCONNECTION -cltTimeout {Timeout}
bind ssl vserver CAS_vserver_mapi -certkeyName {CertKey}
bind lb vserver CAS_vserver_mapi CAS_servicegroup_http
<!--NeedCopy-->

Groupe de persistance supplémentaire :

bind lb group CAS_persistency_group_sourceip CAS_vserver_mapi
<!--NeedCopy-->

Changement de contenu pour les services HTTP :

add cs action CAS_action_cs_mapi -targetLBVserver CAS_vserver_mapi
add cs policy CAS_policy_cs_mapi -rule "HTTP.REQ.URL.SET_TEXT_MODE(IGNORECASE).STARTSWITH("/mapi")" -action CAS_action_cs_mapi
bind cs vserver CAS_vserver_cs -policyName CAS_policy_cs_mapi -priority 140
<!--NeedCopy-->

Configurations optionnelles

Redirection HTTPS pour Outlook Web App (OWA) :

add lb vserver CAS_vserver_owa_http_redirect HTTP {HTTP Public IP} 80 -persistenceType COOKIEINSERT -timeout {PersTimeout} -lbMethod ROUNDROBIN -redirectURL "https://mail.example.com/owa" -cltTimeout {Timeout}
<!--NeedCopy-->

REMARQUE : Remplacez par une URL de redirection HTTPS appropriée.

Politique de réécriture /owa :

add rewrite action owa_rewrite replace http.REQ.URL ""/owa""
add rewrite policy owa_rewrite_policy "http.req.url.eq("/")" owa_rewrite
bind lb vserver CAS_vserver_owa -policyName owa_rewrite_policy -priority 100 -gotoPriorityExpression END -type REQUEST
add responder action action_responder_owa redirect ""https://www.example.com/owa""
add responder policy_responder_owa HTTP.REQ.IS_VALID action_responder_owa
set responder param -undefAction NOOP
bind lb vserver CAS_vserver_owa -policyName policy_responder_owa -priority 100 -gotoPriorityExpression END -type REQUEST
<!--NeedCopy-->

REMARQUE : Remplacez par une URL de redirection HTTPS appropriée.

Prise en charge de SMTP :

Pour la configuration suivante, USIP doit être activé afin que les serveurs CAS puissent voir l’adresse IP du serveur SMTP d’envoi pour validation. Cette configuration nécessite également que la passerelle par défaut du serveur CAS soit configurée pour pointer vers l’adresse SNIP de l’appliance ADC.

add lb vserver CAS_vserver_smtp TCP {HTTP Public IP} 25 -persistenceType SOURCEIP -timeout 60 -lbMethod LEASTCONNECTION -cltTimeout 30
add serviceGroup CAS_servicegroup_smtp TCP -maxClient 0 -maxReq 0 -cip DISABLED -usip YES -SP OFF -useproxyport YES -cltTimeout 30 -svrTimeout 30 -CKA NO -TCPB NO -CMP NO
bind serviceGroup CAS_servicegroup_smtp {CAS-1 Server} 25 -CustomServerID ""None"" bind serviceGroup CAS_servicegroup_smtp {CAS-2 Server} 25 -CustomServerID ""None""
bind lb vserver CAS_vserver_smtp CAS_servicegroup_smtp
<!--NeedCopy-->

Prise en charge de Post Office Protocol version 3 (POP3) :

add lb vserver CAS_vserver_pop3 TCP {HTTP Public IP} 110 -persistenceType SOURCEIP -timeout {PersTimeout} -lbMethod LEASTCONNECTION -cltTimeout {Timeout}
add serviceGroup CAS_servicegroup_pop3 TCP -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -SP OFF -useproxyport YES -cltTimeout {Timeout} -svrTimeout {Timeout} -CKA NO -TCPB NO -CMP NO
bind serviceGroup CAS_servicegroup_pop3 {CAS-1 Server} 110 -CustomServerID ""None"" bind serviceGroup CAS_servicegroup_pop3 {CAS-2 Server} 110 -CustomServerID ""None""
bind lb vserver CAS_vserver_pop3 CAS_servicegroup_pop3
<!--NeedCopy-->

Remarque :

Vous pouvez effectuer la configuration précédente pour POP3 chiffré SSL en modifiant le port sur 995 et les types de serveur/service virtuel en SSL. Liez également un certificat SSL approprié.

Prise en charge de l’IMAP :

add lb vserver CAS_vserver_imap TCP {HTTP Public IP} 143 -persistenceType SOURCEIP -timeout {PersTimeout} -lbMethod LEASTCONNECTION -cltTimeout {Timeout}
add serviceGroup CAS_servicegroup_imap TCP -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -SP OFF -useproxyport YES -cltTimeout {Timeout} -svrTimeout {Timeout} -CKA NO -TCPB NO -CMP NO
bind serviceGroup CAS_servicegroup_imap {CAS-1 Server} 143 -CustomServerID ""None"" bind serviceGroup CAS_servicegroup_imap {CAS-2 Server} 143 -CustomServerID ""None""
bind lb vserver CAS_vserver_imap CAS_servicegroup_imap
<!--NeedCopy-->

Remarque :

Vous pouvez effectuer la configuration précédente pour IMAP crypté SSL en modifiant le port sur 993 et les types de serveur/service virtuel en SSL. Liez également un certificat SSL approprié.

Autres ressources