Exchange Server 2010 CAS Array to MAPI Load Balance

Most of you must have experience in the scenario "Outlook connection lost....", even if you have Exchange Server 2010 (with Edge, 2 clustered H&C and 2 DAG configured MB) and Outlook 2010 in place. The reason is that, when you are doing a maintenance on one of the H&C, and if the client is connected to that H&C, communication to the MB is lost. The reason for this is that the cluster load balancing on the H&C cluster handler is not in place, even if the cluster name is published in the DNS server.

http://premnair.files.wordpress.com/2011/03/a11.pnghttp://premnair.files.wordpress.com/2011/03/a21.png

In Exchange 2007, 5 server roles that performed distinct functions within the Exchange organization. One role in particular - the Client Access server role - introduced a variety of new Web services, including the Availability service, the Auto discover service and Calendar Concierge services.

In Exchange 2010, same 5 server roles exists. However, there are some significant architectural changes and some shift in responsibilities. The most significant change in Exchange 2010, two new services on CAS called the RPC Client Access and Address Book services establish the RPC (Repote Procedure Call) endpoint for MAPI(Messaging Application Programming Interface*)*, NSPI(Name Service Provider Interface) and RFR (Request for Response) client access. This new functionality replaces the RPC endpoints in the Information Store. The RPC endpoint in the Information Store has not been removed in Exchange 2010, but it has been modified to only accept requests from CAS servers. The RPC endpoint for public folder database access remains on the Mailbox server, however, Outlook clients now communicate directly with the RPC Client Access service on the Mailbox Server for public folder database access, and not with the Information Store.

When CAS starts communicating with the Mailbox server, it makes sense to view it as the Client Access server communicating with the Mailbox database via the Mailbox server that hosts the database. This is especially evident in a load-balanced array of Client Access servers and/or where your environment is configured to use Database Availability Groups that are associated with a Client Access server or Client Access server array.

  • In a non-load balanced environment, the mailbox database is associated with only a single Client Access server.
  • In a load-balanced environment, the Mailbox database is associated with the load balanced array of multiple Client Access servers.

By default, before a Client Access array is configured,

  • All databases are associated with a Client Access server in the environment.
  • The Outlook clients communicate directly with the Client Access server until the association with the database is updated to be the Client Access array.

In order for the clients to utilize a CAS array

  1. Create a Client Access array with an FQDN (Fully Qualified Domain Name).
  2. Load balance your CAS servers in a CAS array by whatever method you choose – Both Hardware LB or Windows Network LB are supported load balancers.
  3. Add the Client Access servers within the AD site to a load balanced array and in DNS associate the unique FQDN to the Virtual IP of the load-balanced array.
  4. Configure your load balancing array to load balance the MAPI RPC ports - TCP 135, UDP/TCP 6005-65535; or set static ports.
  5. Configure the databases to utilize the CAS array… Use the new-clientaccessarray cmdlet to create the CAS array object. Eg: New-ClientAccessArray –Name “Tromso CAS Array” –Fqdn tromso.site.com” –Site “SITEA”

http://premnair.files.wordpress.com/2011/03/a31.png

How to Setup!!!..

Goto one of the CAS server where the NLB is ( to read more about New-ClientAccessArray cmdlet, click here )

[1] Check if there are any pre-created CAS Arrays. PS Command : Get-ClientAccessArray

http://premnair.files.wordpress.com/2011/03/a41.png

[2] Create a new Client Access Array. Run the Cmdlet in EMS New-ClientAccessArray -Fqdn server.contoso.com -Site "Redmond" -Name "server.contoso.com"

http://premnair.files.wordpress.com/2011/03/a51.png

[3] Associate databases with this CAS Array -

Use this CMDLet to add a mailbox database to CAS array. Add all mailbox databases at once - Get-MailboxDatabase | Set-MailboxDatabase -RPCClientAccessServer “CASNLB.contoso.com”

http://premnair.files.wordpress.com/2011/03/a61.png

Now the best part -

Configuring Outlook 2010 using Auto Discover

If you already configured Outlook client, Close the outlook, then goto Control Panel->Mail and change the Server name to the new CAS NLB name.

http://premnair.files.wordpress.com/2011/03/a71.png

If you are going to use a new outlook configuration, Auto discover will return the new CAS NLB name.

Thats all folks!!! Enjoy!!!