Microsoft Exchange サーバーの負荷分散
このドキュメントでは、Citrix ADCアプライアンスを使用したMicrosoft Exchangeサーバーの負荷分散に関する推奨される構成例について説明します。
Citrix ADM StyleBooksは、ExchangeのCitrix ADC負荷分散構成を簡素化します。詳細については、「Microsoft Exchange StyleBook」を参照してください。
注:
Microsoft Exchange の負荷分散は、単一の負荷分散仮想サーバーを使用して実行できません。代わりに、このドキュメントに記載されている推奨設定に従ってください。
Microsoft Exchange 2016 とそれ以降のバージョンの違い
RPC ポートは使用されないため、Exchange 2016 で静的リモートプロシージャコール (RPC) ポートを構成する必要はありません。
「2016 より下の Exchange のバージョン用」という名前のセクションはすべて、Exchange 2016 では必要ありません。
2016 以外のバージョンのいずれかをすでに設定し、2016 に移行した場合は、それらを削除する必要はありません。存在しても問題はないからです。
注意事項
2016 より下の Exchange サーバーを使用したリモートプロシージャコール (RPC) の場合、Exchange CAS サーバーを静的ポート割り当て用に構成する必要があります。詳細については、Microsoft ドキュメントの「Exchange 2010 クライアントアクセスサーバー:静的 RPC ポートを構成する」を参照してください。
この構成では、SSLオフロードにCitrix ADCアプライアンスを使用することを前提としています。詳細については、「Exchange 2010 で SSL オフロードを構成する方法」または「Exchange2013 で SSL オフロードを構成する方法」を参照してください。
Citrix ADCアプライアンスのSSLオフロード機能を使用しない場合は、サービスグループ
CAS_servicegroup_http
とモニターをタイプSSL
に変更し、バインドをポート443
に変更します。サージ保護はMicrosoft Exchangeと互換性がありません。Microsoft Exchange に関連するサービスまたはサービスグループでは有効にしないでください。サージ保護を有効にすると、接続性と信頼性の問題が発生します。
次の変数を適切な情報に置き換えます。
- {HTTP パブリック IP}:パブリックエクスチェンジ HTTP エンドポイントの IP アドレス
- {RPC パブリック IP}:パブリック Exchange RPC エンドポイントの IP アドレス(HTTP パブリック IP と同じでもよい)
- {Timeout}:必要なタイムアウト(秒)。標準的な作業シフト時間(つまり8時間)の長さにすることを推奨
- {perstimeOut}:必要なタイムアウト(分単位)。前述の [タイムアウト] 設定に対応する必要があります。
- {AB ポート}:RPC アドレス帳 TCP ポート(通常 59601)
- {CA ポート}:RPC クライアントアクセス TCP ポート(通常は 59600)
- {certKey} — SSL 証明書キー
- {CAS-1 サーバ}:CAS サーバの IP アドレス
- {CAS-2 サーバ}:CAS サーバの IP アドレス
Microsoft Exchange サーバーのすべてのバージョンで推奨される構成例
サービスグループ:
添加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""
モニタ:
add lb monitor CAS_monitor_rpc_epm TCP -LRTM ENABLED -destPort 135 add lb monitor mon_http_ecv HTTP-ECV -recv 403 -LRTM DISABLED bind serviceGroup CAS_servicegroup_http -monitorName mon_http_ecv bind serviceGroup CAS_servicegroup_rpc_epm -monitorName CAS_monitor_rpc_epm
仮想サーバーの負荷分散:
加磅vserver CAS_vserver_owa SSL 0.0.0.0 0珀耳斯istenceType 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} add lb vserver CAS_vserver_oab 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
永続性グループ:
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}
HTTP サービスのコンテンツスイッチング:
添加cs vserver CAS_vserver_cs SSL{公共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
2016 年より前のバージョンの Microsoft Exchange サーバーの推奨構成例
追加のサービスグループ:
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""
追加のモニタ:
加磅监控CAS_monitor_rpc_ca TCP -LRTM启用D -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
追加の負荷分散仮想サーバー:
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
追加の永続性グループ:
bind lb group CAS_persistency_group_sourceip CAS_vserver_rpc_ab bind lb group CAS_persistency_group_sourceip CAS_vserver_rpc_ca
Microsoft Exchange サーバー 2016 以降のバージョンの推奨構成例
追加の負荷分散仮想サーバー:
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
追加の永続性グループ:
bind lb group CAS_persistency_group_sourceip CAS_vserver_mapi
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
オプションの構成
Outlook ウェブアプリ (OWA) の HTTPS リダイレクト:
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}
注:適切な HTTPS リダイレクト URL に置き換えてください。
/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
注:適切な HTTPS リダイレクト URL に置き換えてください。
SMTP のサポート:
次の構成では、CAS サーバが検証のために送信側の SMTP サーバの IP アドレスを確認できるように、USIP を有効にする必要があります。また、この設定では、CAS サーバーのデフォルトゲートウェイが ADC アプライアンスの SNIP アドレスを指すように構成されている必要があります。
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
郵便局プロトコルバージョン 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
注:
SSL 暗号化 POP3 の前の構成を実行するには、ポートを 995 に、仮想サーバー/サービスタイプを SSL に変更します。適切な SSL 証明書もバインドします。
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
注:
SSL 暗号化 IMAP の前の設定を実行するには、ポートを 993 に、仮想サーバ/サービスタイプを SSL に変更します。適切な SSL 証明書もバインドします。