48

EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Embed Size (px)

Citation preview

Page 1: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client
Page 2: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load Balancing with Microsoft Exchange Server 2010

Andrew EhrensingSolution ArchitectMicrosoft Corporation

EXL307

Page 3: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Agenda

History of Load BalancingLoad Balancing PrinciplesExchange 2010 Load Balancing RequirementsHardware Load Balancing Vendors

Page 4: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

History of Load Balancing

Software Load BalancingWindows NT 4.0 – Windows Network Load Balancing services introduced

Issues with WNLBSwitch/Port flooding in Unicast modeNAT / Source IP poolScalability over 8 nodesService awarenessNot supported with Windows Failover ClusteringAdd/remove single node causes all clients to reconnect

Page 5: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load Balancing Principles

Dedicated hardware load balancers

Load Balancer -> Application Delivery Controller (ADC)Application health, granular persistence methods

Page 6: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load Balancing Principles

Application Delivery Controller BenefitsLoad distribution based on target server capacity / connection information“Smart” compression

Don’t compress for low latency/high bandwidth clients

SSL Offload / BridgingCaching of OWA attachments / itemsRate shaping and TCP packet stream modifications

Dynamic window sizing on a per client/per server basis

Page 7: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load Balancing Principles

Routing OptionsSNATLoad Balancer Default GatewayDirect Server Return

Hardware load balancing terminologyOne-ArmedTwo-ArmedNode / Host / Member / ServerPersistenceDNAT

Page 8: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load Balancing Principles

One ArmedSingle network, VIP is same subnet as clients and serversHardware Load Balancer is an independent node

May have multiple IPs (management interface, etc…)

Single VLANRequires SNAT or server will respond directly to client

This would break the security as client is not expecting a return from the server IP but from the VIP

Two Armed2 Networks / VLANSDedicated VLAN / network for Load Balanced servers / arrayLoad Balancer “straddles”Can use SNAT or Load Balancer Default Gateway

Page 9: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Single Arm - SNAT

Packet 1

Packet 2Packet 3

Packet 4

Page 10: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Single Arm - Direct Server Return

Load BalancerSelf IP: 10.5.5.11VIP: 10.5.5.31

10.5.5.201

CAS-0110.5.5.81

CAS-0210.5.5.82

10.5.5.0 / 24 Network

Pckt Source IP Destination IP Description1 10.5.5.201 10.5.5.31 Workstation to VIP2 10.5.5.201 10.5.5.82 LB to CAS-023 10.5.5.82 10.5.5.201 CAS-02 to Workstation

10.5.5.1110.5.5.31

Packet 1

Packet 2

Packet 3

3 10.5.5.31 10.5.5.201 CAS-02 to Client

Page 11: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Dual Arm – SNAT

Packet 1Packet 2

Packet 3Packet 4

Page 12: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Direct Server Return

DSR leverages MAT (MAC Address Translation) and modified nodesServer responds with the LB VIP address to the clients

DSR RequiresConfigure the virtual service on load balancer to route client packets (instead of NAT’ing them)Configure a loopback adapter on each CAS server

Add the Load Balancer VIP to the loopback adapter

Use Layer 4 (Layer 7 features not supported – persistence, caching, compression, etc…

Requires additional complexity, easier to use SNAT instead

Page 13: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load Balancing Principles

SNAT versus SNAT “Pool”

SNAT (1 IP) is limited to 65,535 concurrent connections to each target server

NAT maps source IP/source port to target IP/target port

SNAT Pools (2+ IPs) are limited to 65,535 concurrent connections per source SNAT IP to each target server

Some Hardware Load Balancers allow SNAT “pools” to allow additional concurrent connections

Page 14: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load Balancing Principles

MAPI RPC (RPC CAS) requires the same source IP address for all RPC connections from that client

Load Balancer MUST use same SNAT source IP from the pool for each client

MAPI RPC Client Request 1 -> SNAT IP1MAPI RPC Client Request 2 -> SNAT IP2 = Broken

Fix 1: Turn off SNAT Pool and use single SNAT IP orFix 2: Configure LB to maintain client/SNAT IP when using MAPI RPC

Page 15: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load Balancing Principles

Node / Host / Member / ServerNode / Host / Server represent an IP address and/or physical serverMember is an IP address + port combination

IP address + TCP 443 for example

Client LoggingSNAT hides client IP address from server logs

Page 16: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Summary

SNAT

• No modifications to CAS

• Return traffic passes through LB

• Most common• Client IP not on

server logs

DSR

• Requires modifying CAS servers

• Return traffic doesn’t pass through LB

• Reduces persistence options

• Introduces timeout complexity

• Rarely used (typically large media hosters)

LBDG

• Requires modifying CAS servers

• Return traffic passes through LB

• Adds complexity to network routing (need static routes)

• Client IP is on server logs

Recommended

Page 17: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load Balancing Principles

Persistence / AffinitySSL Session IDCookie

Load Balancer generated “Cookie”Application generated “Cookie”Hybrid

Source IP addressUniversal PersistenceDestination AddressRDPSIP

Persistence does not necessarily equal Load Distribution

Page 18: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

“Cookie” Persistence (aka the hungry slide)

All Cookie Persistence methods require SSL termination at LB from the clientCannot see persistence records in state table when using cookie LB

Insert CookieRewrite CookiePassive CookieCookie Hash

Page 19: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Agenda

History of Load BalancingLoad Balancing PrinciplesExchange 2010 Load Balancing RequirementsHardware Load Balancing Vendors

Page 20: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load BalancingTraffic Patterns

3 types of trafficExternalCAS proxyInternal

2 entry pointsNAT clientsnon-NAT clients

Impacts SSL termination

Impacts FBA and authentication

Page 21: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

NAT and Load Balancing with Source IP

CAS01

CAS02

CAS03

Load Balancer

SNAT10.15.8.1

10.2.8.5 10.18.7.3

62.4.8.11

12.6.18.5

Overload

Solution? Use Cookie based persistence

Page 22: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Exchange 2010 Persistence Issues

Multiple workload typesOWA / ECPEWSActiveSyncPOP/IMAPOutlook AnywhereOutlook MAPIAddress Book ServiceRemote PowerShell

Each has a different client and differing support for persistence methods

Single VIP for all workloads?Multiple VIPs = easier troubleshooting/logging but requires additional IPs and namespaces

Page 23: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load BalancingProtocols and Persistence / Affinity / StickinessPersistence: Required Persistence: Recommended Persistence:

Not Required

Outlook Web App Outlook Anywhere Offline Address Book

Exchange Control Panel ActiveSync AutoDiscover

Exchange Web Services Address Book Service POP3

RPC Client Access Service Remote PowerShell IMAP4

Recommended Reduced performance without persistence

Not requiredDoes not suffer performance hit without persistence

Page 24: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Exchange 2010 PersistenceOWA and ECP

OWA and ECP are stateful, require persistenceIf large source IP range, use source IP persistence

Less load on load balancer, no requirement to terminate SSL session

CAS servers generate a cookieOWA: “UserContext“ ECP: “msExchEcpCanary”Use application cookie based persistence (requires decrypting the SSL stream)Requires configuration of the LB for each CAS array node

Load Balancer generated cookie InsertCookie

Page 25: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Exchange 2010 PersistenceActiveSync

Does not require persistenceBut… lack of persistence causes server-side performance impact (and increased latency for clients)

If using Basic Authentication can use the Authorization header

Authorization: Basic ZmFrZXVzZXI6eCRwSUFLOUBwOSE=

ActiveSync Persistence IssuesClient IP – all clients may have same IP range from the carrierSSL Session ID – Some ActiveSync clients change the ID often (iPhone)Authorization Header only works with Basic (not client certificate for example)

Page 26: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Exchange 2010 PersistenceExchange Web Services (EWS)

Stateful protocol, requires persistenceRecommend server or load balancer generated cookiesMay also use SSL session ID

If clients don’t initiate new SSL session IDs

EWS Persistence IssuesSome clients (OC Phone Edition) don’t process cookies

Page 27: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Exchange 2010 PersistenceOutlook Anywhere (OA)

Recommended Persistence TypesClient IP“OutlookSession” cookie

“OutlookSession” cookie requires OLK 2010

If persistence isn’t configured for OACAS Load Balancing Service ensures RPC_DATA_IN and RPC_DATA_OUT align to same CASIncreases performance load on CAS

Page 28: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Exchange 2010 PersistenceOffline Address Book (OAB)

Recommended Persistence TypesClient IPSSL Session ID

Note – when using Client IP ensure that the clients are coming from a wide range of source addresses

Page 29: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Exchange 2010 PersistenceOutlook MAPI / RPC Client Access Service

Recommended Persistence TypesClient IP is the only optionSSL Session ID, Cookies, etc… are all based on HTTP

Use Round Robin Load Balancing method

Static Mapping of RPC ports recommendedReduces the range of destination ports in load balancer config and memoryEasier firewall configuration (if applicable)

Page 30: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Exchange 2010 PersistenceOutlook MAPI / RPC Client Access Service

Enable Static Ports for RPC CASKey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeRPC\ParametersSystemValue: TCP/IP PortType: DWORD

Specify the Static Ports on CAS (RTM)Microsoft.Exchange.AddressBook.Service.Exe.Config

Set RpcTcpPort to the port value you want the Address Book Referral and NSPI interfaces to useDo NOT change NspiHttpPort or RfrHttpPort

SP1: Set port in the registryKey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeAB\ParametersValue: RpcTcpPortType: DWORD

The setting is NOT migrated on upgrade – be sure to set it after upgrade

Page 31: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Exchange 2010 PersistenceOutlook MAPI / RPC Client Access Service (SP1)

Page 32: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Exchange 2010 Persistence @ MSITWorkload Preferred Session Persistence Method MSIT-Deployed Session Persistence Method

HTTP-Based Workloads

Outlook Web App 1. Client IP2. App Cookie “OutlookSession”

App Cookie “OutlookSession”

Exchange Control Panel 1. Client IP2. App Cookie “OutlookSession”

App Cookie “OutlookSession”

Exchange ActiveSync 1. Client IP2. Authorization HTTP header

Authorization HTTP header

Exchange Web Services 1. Cookie2. SSL ID

App CookieSSL Session ID (fallback)

Outlook Anywhere 1. Client IP2. No affinity/persistence3. App Cookie “OutlookSession”

No affinity/persistence

Offline Address Book 1. Client IP2. SSL ID

SSL ID

Autodiscover No affinity/persistence No affinity/persistence

TCP Socket Oriented

Workloads

RPC Client Access 1. Client IP Client IPExchange Address Book 1. Client IP Client IP

RPC Endpoint Mapper 1. Client IP Client IP

Post Office Protocol (POP3) No affinity/persistence No affinity/persistence

Internet Message Access Protocol (IMAP4) No affinity/persistence No affinity/persistence

Page 33: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Exchange 2010 Scaling

Large scale Exchange deployments have unique NLB scaling issues

Devices support maximum throughput and/or connectionsMAPI clients via NAT – no current solution for large scale (Source IP = same)MAPI concentrators

Archiving solutions that “scrape/stub” via MAPIBES versions that use MAPISingle client concentrator -> single target CAS

Page 34: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Exchange 2010 Operations

Single VIP or Multiple VIPs?All protocols on a single VIP? iRule complexityMultiple VIPs allows scale-out vs. scale-up

Consider using multiple VIPs when possibleAdditional stats / logging options for client traffic typesSegmenting client trafficReduce iRule complexity / better persistence

Page 35: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

SSL Offloading

SSL Offload vs. SSL Bridging

When should SSL Offload be used?Reduces SSL processing overhead on CAS

When shouldn’t it?Security requires encryption from LB to CAS

Page 36: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

SSL OffloadingHow to Configure SSL Offloading

Outlook AnywhereSet-Outlook Anywhere –SSLOffloading:$true

OWA, ECPRegistry KeyHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\MSExchange OWA

New DWORD: SSLOffloaded1 to enable, 0 to disable

Uncheck “Require SSL” in IIS Manager

Page 37: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

SSL OffloadingHow to Configure SSL Offloading

Exchange Web ServicesUncheck “Require SSL” in IIS ManagerEdit the web.config file in<exchange install>\ClientAccess\exchweb\ewsChange all occurrences of httpsTransport to httpTransportRun iisreset /noforce

AutodiscoverUncheck “Require SSL” in IIS ManagerRTM: Edit web.config in \ClientAccess\AutodiscoverSP1: DON’T edit web.config!

Page 38: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load Balancer Timeouts

Rule of Thumb: One Hour

OWA/ECP: As long as the longest session timeout (private or public profile)EAS: We’re checking…EWS: Based on the EWS applicationOA: Use the rule of thumb

Page 39: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Agenda

History of Load BalancingLoad Balancing PrinciplesExchange 2010 Load Balancing RequirementsHardware Load Balancing Vendors

Page 40: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

demo

Exchange 2010 SP1 F5 Big IP LTM

Page 41: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load Balancing VendorsVendor Name Product Line Website

A10 AX Series http://www.a10networks.com/

Avanu / CAI Networks Webmux http://www.avanu.com/products/webmux.htm

Barracuda Barracuda Load Balancer http://www.barracudanetworks.com/ns/products/balancer_overview.php

Cisco ACE (on switch/router) http://www.cisco.com/en/US/products/ps6906/index.html

Cisco CSS (dedicated) http://www.cisco.com/en/US/products/hw/contnetw/ps792/

Citrix Systems NetScaler http://www.citrix.com/English/ps2/products/product.asp?contentID=21679

Brocade ServerIron http://www.brocade.com/sites/dotcom/products-solutions/products/ethernet-switches-routers/application-delivery/product-details/serveriron-adx-series/index.page

F5 Big IP Local Traffic Manager http://www.f5.com/products/big-ip/

Kemp LoadMaster http://www.kemptechnologies.com/en/load-balancer.html

RadWare AppDirector http://www.radware.com/Products/ApplicationDelivery/AppDirector/default.aspx

Page 42: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Load Balancing Vendors

Virtual EnvironmentsKemp Virtual LoadMaster (VMWare)Kemp Virtual LoadMaster (Hyper-V)F5 BIG-IP VirtualEdition (VMWare and Hyper-V)Citrix NetScaler VPX

Additional WIKI informationhttp://social.technet.microsoft.com/wiki/contents/articles/exchange-2010-client-access-array-amp-load-balancing-resources.aspxLinks to Exchange 2010 Guides

F5 BIG-IP, Barracuda, Citrix NetScaler, Brocade ServerIron, Kemp

Page 43: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

F5: Global Traffic Manager

Intelligent DNS ServerProvides dynamic response to DNS query based on configured topology and location

mail.contoso.com -> CNAME mail.gtm.contoso.comF5 Global

Traffic Manager (GTM)

F5 Local Traffic

Manager(SEA)

F5 Local Traffic

Manager (HOU)

F5 Local Traffic

Manager(CLT)

Seattle CAS Servers Houston CAS Servers Charlotte CAS Servers

The F5 GTM attempts to determine which geography the end user is connecting from and direct them to the Local Traffic Manger (LTM) that is closest.

The regional LTM devices pass the traffic along to the Client Access Server that will service the request. This side of the request is over HTTP port 80 (unencrypted.)

Page 44: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Global Load BalancingScenarios

Multi-site, single namespaceHelps enable automatic site resilience

Microsoft guidance being developed

Page 45: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Resources

www.microsoft.com/teched

Sessions On-Demand & Community Microsoft Certification & Training Resources

Resources for IT Professionals Resources for Developers

www.microsoft.com/learning

http://microsoft.com/technet http://microsoft.com/msdn

Learning

http://northamerica.msteched.com

Connect. Share. Discuss.

Page 46: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Complete an evaluation on CommNet and enter to win!

Page 47: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

Scan the Tag to evaluate this session now on myTech•Ed Mobile

Page 48: EXL307 3 10.5.5.31 10.5.5.201 CAS-02 to Client

© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to

be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS

PRESENTATION.