Getting Started with Exchange Server 2010 Client Access Server Arrays

An often misunderstood feature of Exchange Server 2010 is the Client Access server array, or CAS array.

In Exchange Server 2007 the Client Access server role was introduced to perform a similar role to the Exchange 2003 Front-End server, in that it was responsible for accepting client connections for services such as Outlook Web Access, ActiveSync, Outlook Anywhere, and other web services. However a mailbox user still connected directly to the Exchange 2007 Mailbox server for mailbox and public folder access.

Exchange 2007 Client Access server
Exchange 2007 Client Access server

In Exchange Server 2010 the Client Access server role was expanded to include a new service called the RPC Client Access Service. This service allows Outlook clients to connect via MAPI/RPC to the Client Access server for mailbox access, however they do still connect directly to mailbox servers for public folder access.

Exchange 2010 Client Access server role
Exchange 2010 Client Access server role

This new RPC Client Access service delivers several benefits to the organization:

  • Connections to mailbox resources are made via a common path
  • Connection throttling and other rules can be applied to mailbox connectivity
  • The end user experience during Mailbox server failovers and mailbox moves is improved
  • The RPC Client Access service can be made highly available

Basic Requirements of a Client Access Server Array

Although a CAS array is often assumed to be highly available, it is important to realise that it is not the Client Access Server array itself that delivers high availability.

The Client Access Server array is simply an object in Active Directory that associates a DNS name with the RPC Client Access Service for a particular AD Site.

Therefore to create a CAS array you only need to:

  1. Create the CAS Array object in Active Directory
  2. Configure a DNS record for the CAS Array name pointing to an IP address for a Client Access server
  3. Configure the RPCClientAccessServer attribute on the mailbox databases in that site

Creating a Client Access Server Array

CAS Array objects are created using the Exchange Management Shell and the New-ClientAccessArray cmdlet. In this example a CAS Array is created with:

  • a name of “cas-headoffice”
  • a FQDN of “outlook-ho.exchangeserverpro.net”
  • the AD Site of “HeadOffice”

If you are running a single AD Site in your organization the CAS Array name and FQDN can be anything you like, however if you’re running multiple sites then you will need to put some thought into a naming standard for your CAS Arrays so that each one is unique.

Configuring the DNS Record for the Client Access Server Array

The next step is to configure a DNS A record for the FQDN you specified when creating the CAS Array object.

DNS A record for the Exchange 2010 CAS Array
DNS A record for the Exchange 2010 CAS Array

Configure the RPCClientAccessServer Attribute on Mailbox Databases

The final step is to configure the mailbox databases with the correct RPCClientAccessServer attribute. It is this attribute that Outlook looks up to determine which RPC Client Access Server to connect to for a given mailbox.

The attribute is set automatically when the mailbox database is created to either:

  • The CAS Array name if one already exists in the AD Site
  • The FQDN of a Client Access server in the AD Site

You can see from this that it is wise to configure the CAS Array object first before creating mailbox databases, or at the very least creating the CAS Array object and updating the mailbox databases before deploying mailbox users to those databases.

You can check the existing settings by running the Get-MailboxDatabase cmdlet.

To update the RPCClientAccessServer attribute for a mailbox database run the Set-MailboxDatabase cmdlet.

High Availability for Exchange 2010 Client Access Server Arrays

As I mentioned earlier one of the benefits of the CAS Array is that is enables the RPC Client Access Server service to be made highly available.

The configuration of the CAS Array itself is the same, however instead of pointing the DNS record at the IP address of a single Client Access server you would point it at the virtual IP of a load balanced array of servers.

Exchange 2010 load balanced CAS Array

The load balancing can be achieved in multiple ways:

  • By deploying a Windows Network Load Balancing (NLB) cluster for the Client Access Servers
  • By deploying a virtual or hardware-based load balancer appliance

Best Practices for Exchange Server 2010 CAS Arrays

Because of the behaviour of the mailbox databases and their RPCClientAccessServer attributes, and how this is handled by different Outlook versions, it is considered best

practice to:

  • Always configure CAS Arrays in your Exchange 2010 sites
  • Configure the CAS Array before you provision mailbox databases or mailbox users to Exchange 2010 in that site

Microsoft themselves recommend this as a best practice.

We recommend that you create a Client Access server array even if you only have a single Client Access server within your organization.

This has several benefits, such as:

  • making it easy to scale out the CAS Array name to multiple Exchange 2010 Client Access servers
  • making it simpler to replace a Client Access server with a new one of a different name
  • migrating the MAPI endpoint to future versions of Exchange Server