The environment is a single AD domain with 4 sites, Site1, Site2, Site3 and Site4. In Site1, Site2 and Site3 there are 3 Exchange 2003 servers, one per site. In Site4 there is an Exchange 2007 SP2 server (CAS, Mailbox, HT). All the connectors required worked as expected, and inter-site routing works as expected.
I introduced into the mix a 2010 Enterprise server (CAS, Mailbox, HT) to Site1 as a prelude to a full upgrade of the site to Exchange 2010. When a test mailbox from Exchange 2010 attempts to send to a mailbox in Site1 Exchange 2003, it routes via the Site4 Exchange 2007.
Find out which site (if any) is a transport hub:
Find out the Site Link costs, and the Exchange specific costs (if set). Exchange costs override AD site costs:
List the Routing Group Connectors:
List the Routing Group Connectors with their costs:
Get-RoutingGroupConnector | ft Name,Cost
For me the issue was that the Routing Group Connector set up for Exchange 2010 in Site 1 had a cost set to 100, whereas all other RGCs had a cost set to 1. This meant Site1 –> Site4 –> Site1 had a cost of 2. Site1 (2010) –> Site1 (2003) had a cost of 100. It’s easy to see why it won.
Using the following command I was able to set the costs to the same:
Set-RoutingGroupConnector -Identity “<Administrative Group>\<Routing Group>\<Connector>” -Cost 1
It’s quite difficult to get a grip on why the RGC cost takes precedence over the AD site cost, or the Exchange specific site cost – effectively you have 3 different settings to govern the mail routing. From my problem-solving steps, it would seem that The RGC takes precedence, followed by the Exchange specific cost, followed by the AD site link cost.
Any Exchange Guru out there care to correct or confirm?