From exchange 2013 Microsoft drop the cas arrey function as the mailbox client connect through HTTPS only, achieving High Availability with CAS server will be done with some other form of Load balancing like hardware (F5, CAMP, ZAN etc)or software (NLB, DNS etc), in any way CAS Array is no longer exist on exchange 2013 !
Here is how to do it with DNS round robin load balncing method, this will improve client High availability connectivity to seconds and not minute. in this example we have 2 exchange server acting as CAS & MAILBOX: mbx1 and mbx2 .
First get the mailbox server status :
Get-MailboxDatabase -status | select name,mounted,mountedonserver
At the moment each of the servers is configured with their own name as the internal host name for Outlook Anywhere, which is the default.
Get-ClientAccessServer | Get-OutlookAnywhere | select identity,*hostname
We can configure a single and unique namespace for these instead of the unique server FQDN for each. Note that when configuring the InternalHostName you also need to set the InternalClientsRequireSSL option as well. To keep this example simple I am not requiring SSL for internal clients.
Get-OutlookAnywhere | Set-OutlookAnywhere -InternalHostname mail.exchange2013.com -InternalClientsRequireSsl $false
We will need to create two DNS A record for the same FQDN=mail.exchange2013.com with the IP’s of the servers, MBX1 = 192.168.0.1 MBX2 = 192.168.0.2 , To check the DNS configuration :
Resolve-DnsName mail.exchange2013.com Name Type TTL Section IPAddress ---- ---- --- ------- --------- mail.exchange2013.com A 3600 Answer 192.168.0.1 mail.exchange2013.com A 3600 Answer 192.168.0.2
The change made with Set-OutlookAnywhere is not instantaneous. It takes about 15 minutes for the Client Access server to update with the new configuration. You’ll be able to tell it has taken effect when an Outlook autoconfiguration test returns the new value for Exchange HTTP
Now you can play around with the servers shuting down one and check how clients connect to it:
netstat -ano | findstr ":80"
TCP 192.168.0.181:51010 192.168.0.1:80 ESTABLISHED 2272
TCP 192.168.0.181:51011 192.168.0.1:80 ESTABLISHED 2272
TCP 192.168.0.181:51012 192.168.0.1:80 ESTABLISHED 2272
TCP 192.168.0.181:51013 192.168.0.1:80 ESTABLISHED 2272
After shutting this server down 192.168.0.1 = MBX1 the out come should be :
netstat -ano | findstr ":80"
TCP 192.168.0.181:51010 192.168.0.2:80 ESTABLISHED 2272
TCP 192.168.0.181:51011 192.168.0.2:80 ESTABLISHED 2272
TCP 192.168.0.181:51012 192.168.0.2:80 ESTABLISHED 2272
TCP 192.168.0.181:51013 192.168.0.2:80 ESTABLISHED 2272