Citrix ADC

Equilibrio de carga del servidor Microsoft Exchange

En este documento se proporcionan los ejemplos de configuración recomendados para el equilibrio de carga del servidor Microsoft Exchange mediante el dispositivo Citrix ADC.

Citrix ADM StyleBooks simplifica las configuraciones de equilibrio de carga de Citrix ADC para Exchange. Para obtener más información, consulte StyleBook de Microsoft Exchange.

Nota:

El equilibrio de carga de Microsoft Exchange no es posible mediante un único servidor virtual de equilibrio de carga. En su lugar, siga las configuraciones recomendadas que se proporcionan en este documento.

Diferencias en Microsoft Exchange 2016 y versiones posteriores

  • No es necesario configurar puertos de llamada de procedimiento remoto (RPC) estáticos en Exchange 2016 porque no se utilizan puertos RPC.

  • Todas las secciones denominadas “para versiones de Exchange inferiores a 2016” no son necesarias con Exchange 2016.

  • Si ya ha configurado alguna de las versiones distintas a 2016 y migra a 2016, no tiene que eliminarlas. Porque incluso si existen, no hay problemas.

Puntos a tener en cuenta

  • Para las llamadas a procedimientos remotos (RPC) con el servidor Exchange inferior a 2016, los servidores CAS de Exchange deben configurarse para asignaciones de puertos estáticos. Para obtener más información, consulte Servidor de acceso de cliente de Exchange 2010: Configuración de puertos RPC estáticos documentación de Microsoft.

  • En esta configuración se supone que se utiliza el dispositivo Citrix ADC para descarga SSL. Para obtener más información, consulte Cómo configurar la descarga de SSL en Exchange 2010 o Configuración de la descarga SSL en Exchange 2013.

  • Si no quiere utilizar la función Descarga SSL del dispositivo Citrix ADC, cambie el grupo de servicios CAS_servicegroup_http y los monitores por tipo SSL y sus enlaces al puerto 443.

  • La protección contra sobretensiones no es compatible con Microsoft Exchange. No lo habilite en ningún servicio o grupo de servicios relacionado con Microsoft Exchange. La habilitación de la protección contra sobretensiones provoca problemas de conectividad

  • Sustituya las siguientes variables por la información adecuada:

    • {IP pública HTTP}: dirección IP para endpoint HTTP de Exchange público
    • {RPC Public IP} —Dirección IP para endpoint RPC de Exchange público (puede ser lo mismo que la IP pública HTTP)
    • {Timeout}: tiempo de espera deseado (en segundos). Se recomienda que sea el tiempo estándar de turno de trabajo (es decir, 8 horas)
    • {persTimeout}: tiempo de espera deseado (en minutos). Debe corresponder a la configuración de tiempo de espera anterior.
    • {AB Port} —Puerto TCP de libreta de direcciones RPC (normalmente 59601)
    • {CA Port} —Puerto TCP de acceso de cliente RPC (normalmente 59600)
    • {certKey} —Clave de certificado SSL
    • {CAS-1 Server}: dirección IP del servidor CAS
    • {CAS-2 Server}: dirección IP del servidor CAS

Ejemplos de configuración recomendados para todas las versiones de Microsoft Exchange server

Grupos de servicios:

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

Monitores:

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

Servidores virtuales de equilibrio de carga:

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

Grupo de persistencia:

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

Content Switching para servicios 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-->

Ejemplos de configuración recomendados para versiones de Microsoft Exchange server inferiores a 2016

Grupos de servicios adicionales:

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

Monitores adicionales:

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

Servidores virtuales de equilibrio de carga adicionales:

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

Grupo de persistencia adicional:

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

Ejemplos de configuración recomendados para versiones de Microsoft Exchange server 2016 y posteriores

Servidor virtual de equilibrio de carga adicional:

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

Grupo de persistencia adicional:

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

Cambio de contenido para servicios 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-->

Configuraciones opcionales

Redirección HTTPS para 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-->

NOTA: Reemplácelo por la URL de redirección HTTPS adecuada.

Directiva de reescritura /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-->

NOTA: Reemplácelo por la URL de redirección HTTPS adecuada.

Soporte para SMTP:

Para la siguiente configuración, USIP debe estar habilitado para que los servidores CAS puedan ver la dirección IP del servidor SMTP que envía para su validación. Esta configuración también requiere que la puerta de enlace predeterminada del servidor CAS esté configurada para apuntar a la dirección SNIP del dispositivo 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-->

Compatibilidad con el protocolo de correos versión 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-->

Nota:

Puede realizar la configuración anterior para POP3 con cifrado SSL cambiando el puerto a 995 y los tipos de servidor/servicio virtual a SSL. También vincular un certificado SSL adecuado.

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

Nota:

Puede realizar la configuración anterior para IMAP cifrado SSL cambiando el puerto a 993 y los tipos de servidor/servicio virtual a SSL. También vincular un certificado SSL adecuado.

Otros recursos