The description below is a right but missing a key point. In the event the client is domain joined (client being a computer running Outlook that is compatible with the version of Exchange 2010 in the environment) it actually looks at the SCP (Service Connection Point) within the local Active Directory sites CAS first. To find this within Exchange Management Shell its a simple command:
Get-ClientAccessServer | Select Site, AutoDiscoverInternalUri Depending on how you are setup (either active / active or active / passive, as I saw you said it is spread across two sites) you would then do the DNS records as shown below. I would recommend just setting up a DNS A record to the Virtual IP of the load balancer for the CAS Array (if you have one) or have it go to an individual CAS if you are not doing load balancing. The InternalURL and ExternalURL of the AutoDiscover Virtual Directory are not used and exist due to the formatting of the virtual directory object within Exchange / AD Schema :) Nothing is actually referenced to it or anything.. yay Microsoft. As for the comment below about creating a new AD site for the CAS Array, don't. Technically the only function of the CAS Array address is to point to the MSExchangeRPCClientAccess attribute on the mailbox database (if the mailbox databases are created before the CAS Array is implemented you need to change that, if its afterwards it will auto-populate if I recall). When you create a CAS Array it is setup for the local AD site that you declared within the command New-ClientAccessArray. From there all Client Access Servers that are then implemented into that (AD) site are apart of this CAS Array. You also cannot create a CAS Array without specifying the site. There is no problem creating two CAS Arrays as its just a logical AD object. I would keep the AD Sites geographical to there proper location / subnet, and then do load balancing (L7 if its Exchange 2010, and I will still recommend L7 for Exchange 2013 for most situations although that is a separate conversation) if you have more than two CAS. As others pointed out you could.. in theory use Windows NLB but I would be careful. Some of the limitations is that you cannot have a DAG member + CAS running Windows NLB on the same server (due to the cluster DLLs and Windows NLB DLLs conflicting), and it is not recommended to scale past 7 CAS. You also have to enable multicast I think (its been a very long time since I have touched Windows NLB - I typically recommend KEMP virtual appliances or hardware. Cheap and does the job). And to make things more fun, Exchange 2013 has no CAS Array object (and most were confused on what the logical object did exactly which is why Brian Day wrote that article). From: [email protected] Date: Wed, 25 Feb 2015 21:58:19 -0500 Subject: Re: [Exchange] CAS Array question To: [email protected] It is very incorrect that Outlook doesn't update when there is a CAS server migration, as long as Autodiscover is working properly in the domain. The best way we setup Autodiscover was as an alias that resolved to the IP address of an Exchange aware Load Balancer. With EX2010, you can use the free Windows Network Load Balancer IF you have your mailbox and CAS roles on separate servers. If you have everything in one box, then you should buy a 3rd party load balancer, This is all the recommendation of Microsoft, not me. They certify many Load Balancers to use, we use Kemp and are happy with them. So, for example, in our environment: In DNS, created an A record with IP address of load balancer called mail.contoso.comIn DNS, created an Alias record for Autodiscover.contoso.com that points to mail.contoso.com On Load Balancer, created a Virtual Service with the IP corresponding to mail.contoso.com. In the settings for the virtual service, listed the real server IPs of the CAS servers. We just finished an upgrade from EX2010 to EX2013 (so using new servers) using this method and never had to update anyone's Outlook. We never had a CAS array either before. With the project you are facing, and if I were a consultant, I would suggest you upgrade to EX2013 because it is much more friendly with DAG and CAS servers in different AD sites. Also, there is no longer a need to Load Balance at layer 7 as with EX2010, which makes CAS load balancing much less of a pain the butt. In fact, you can even use DNS round robin for load balancing in EX2013, but you will not see anyone recommending that approach for medium to large organizations. On Wed, Feb 25, 2015 at 3:51 PM, Kennedy, Jim <[email protected]> wrote: http://blogs.technet.com/b/exchange/archive/2012/03/23/demystifying-the-cas-array-object-part-1.aspx From: [email protected] [mailto:[email protected]] On Behalf Of Richard Stovall Sent: Wednesday, February 25, 2015 3:47 PM To: [email protected] Subject: Re: [Exchange] CAS Array question The CAS array is apparently just an AD object that tells internal Outlook clients where to find CAS servers. If you don't create one at Exchange 2010 installation, one is created for you with the fqdn of your mailbox server. The issue is down the line (like now, for me) when you want to move mailboxes to a new server in order to decommission the old one. Outlook doesn't update and each user profile has to be reconfigured either manually or via pushing a prf file. (I may have some of the description not quite right, but that's the gist of it.) I figure it's better to fix the problem now rather than leave it to the next person to figure out. On Wed, Feb 25, 2015 at 3:37 PM, Steve Ens <[email protected]> wrote: I dunno Richie, do you really need an array for 100 users? I have a single server virtualized. Never any problems with client access. On Wed, Feb 25, 2015 at 2:29 PM, Richard Stovall <[email protected]> wrote: I will soon be moving Exchange 2010 to new hardware (or maybe virtual hardware, but that's another question). I have a single server with fewer than 100 users spread across two AD sites. Of course I did not create a CAS array all those years ago, so I am preparing to deal with the ramifications of that now. Currently all mailboxes are (obviously) hosted on one server in one of the sites, but that may change in the future if we grow, add data center capacity, whatever. Given the need to create a CAS array now, should I create a single site-specific array for each site? Can an array for site 2 specify an ip in site 1? If not, should I create a single array and not specify the site? Thanks for the help, Richard
