minor link state updates и циклы маршрутизации при миграции с Exchange 2003

Во многих статьях указано, что при миграции с Exchange 2003 на более новые версии (Exchange 2007\2010), не поддерживающие  link state updates, перед созданием любых дополнительных коннекторов между группами маршрутизации Exchange 2003 и Exchange 2010, помимо коннектора, созданного при первоначальной инсталляции новых версий Exchange в организации, необходимо внести изменение в реестр на всех серверах Exchange 2003. А именно
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\RESvc\Parameters
SuppressStateChanges
Type: DWORD
Value: 1

Данная рекомендация приводит к отключению так называемых "minor link state updates", отсутствие поддержки которых в более новых версиях может привезти к образованию "циклов маршрутизации". Это связано с тем, что в некоторых случах возможно возникновение циклов маршрутизации, например, в случае, если какой-то из коннекторов Exchange 2003 помечен как Down (недоступный) и Exchange 2003 выберет путь не с наименьшей стоимостью. В связи с чем, данная проблема может появиться не сразу, а через некоторое время.  

Однако в каком именно случае и почему может возникнуть зацикливание при маршрутизации сообщения?  Рассмотрим схему ниже в качестве примера. Предполагается, что коннекторы созданы к bridgehead серверам Exchange 2010 в разных сайтах (т.е. между сайтами есть некий site link cost, но в данном случае это не существенно). 
  
  

 
 
В данной конфигурации можно сказать следующее  - если коннекторы BC и CD равнозначны с точки зрения стоимости  и адресного пространства, то при отправке из роутинговой группы C может быть использован любой коннектор. Он выбирается произвольно и предпочтений в данном случае нет. В случае недоступности используемого коннектора будет использован второй, однако если первый коннектор станет снова доступен, то переключение обратно произведено не будет.

Т.е. в роунтинговую группу Exchange 2010 трафик может пойти одним из двух путей - CB-BA либо CD-DE, а далее сообщение уже будет доставлено локально в сайте, либо смаршрутизировано в другой сайт HUB серверами. 

При этом если на коннекторе DE  указано несколько bridgehead серверов Exchange 2010, то bridgehead сервер выбирается произвольно и таким образом достигается балансировка запросов, которые поступают на данный коннектор. При этом, если сообщение уже было смаршрутизировано на какой-то сервер и этот сервер становится недоступен – альтернативный маршрут выбран не будет. Т.е. сообщение будет находиться в очереди до тех пор, пока сервер не станет снова доступным. Link state содержит только информацию о состоянии коннектора, а коннектор всегда считается доступным, если хотя бы  один bridgehead сервер доступен.  Если же какой-то bridgehead сервер становится недоступным, то маршрутизация производится между оставшимися доступными серверами.

В данной конфигурации сложно представить ситуацию, которая может привести к возникновению циклов в маршрутизации. Например, это может произойти в случае, если оба коннектора BD  и BC не доступны (помечены как down). Тогда при отправке сообщений из A в C  будет выбран путь AB-BC как с наименьшей стоимостью и локальный для сайта. У B же единственный маршрут – обратно в A.  В случае недоступности одного коннектора может получиться неоптимальный путь для прохождения почтового трафика.

Но в случае, если бы стоимость коннектора BD была, к примеру, 20, то для возникновения аналогичной ситуации было бы достаточно только недоступности коннектора BC.

Поскольку в реальной жизни схема маршрутизации намного сложнее, анализ ее на предмет возникновения циклов маршрутизации является более затруднительным. Поэтому стоит последовать рекомендации, и все же отключить "minor link state updates", даже с учетом того, что ремаршрутизация сообщений больше не будет производиться серверами Exchange 2003.

Дополнительная информация по данному вопросу тут:

https://technet.microsoft.com/en-us/library/aa997292.aspx

https://technet.microsoft.com/en-us/library/aa996728.aspx