понедельник, 30 декабря 2013 г.

Autodiscover Service Connection Point (SCP) in coexistence 2007 / 2010/ 2013

imageВ Exchange 2013 влияние сервиса Autodiscover на жизнь пользователей становится все более ощутимым и на текущий момент строго рекомендуется, чтобы Autodiscover был доступен и работал. Одна из первых сложностей, с которой сталкивается пользователь при ручной настройке профиля Outlook - это необходимость указывать GUID ящика вместо имени сервера, как это было ранее. Справедливости ради, надо заметить, что если вы в профиле укажете имя глобального каталога (GC), или сервера Mailbox, то этот вариант также будет работать и имя сервера автоматически заменится на GUID@contoso.com.

 

Примечание: GUID ящика может быть найден через ADSIEdit (атрибут msExchangeMailboxGUID) или в выводе команды Get-mailbox <mailbox>|fl name,exchangeguid

Алгоритм поиска сервиса Autodiscover клиентом Outlook

Начнем с того, что с Autdiscover`ом могут работать клиенты начиная с Outlook 2007 и более новые. Логика поиска службы следующая:

1. Service Connection Point (SCP) lookup - Outlook пытается найти точку подключения к Autodiscover в Active Directory (для своего АД сайта). Если данная попытка не удачна, то он переходит к "не доменной" логике:

2. HTTPS запрос к SMTP домену - Outlook формирует адрес для подключения из доменной части SMTP адреса пользователя, например https://contoso.com/autodiscover/autodiscover.xml

3. HTTPS запрос к домену Autodiscover - Outlook формирует URL добавляя имя autodiscover к SMTP домену, например:

https://autodiscover.contoso.com/autodiscover/autodiscover.xml

4. Выполняется поиск локального XML файла с конфигурацией

5. Используется метод HTTP redirect

6. Выполняется поиск по SRV записи

7. Outlook 2013 может использовать закэшированный ранее в профиле URL

clip_image002

Подробно про Autodiscover вы можете прочитать здесь http://technet.microsoft.com/en-us/library/bb332063(v=exchg.80).aspx

Service Connection Point (SCP)

Далее поговорим более подробно про доменных пользователей и Service Connection Point (SCP).

Service Connection Point (SCP) - параметр создается для каждого CAS сервера в организации. Прописан в Active Directory, посмотреть его значение можно через ADSIEdit - Configuration container - CN=Services, CN=Microsoft Exchange,CN=First Organization,CN=Administrative Groups,CN=Exchange Administrative Group …,CN=Servers,CN=Your_CAS_Server,CN=Protocols,CN=Autodiscover,CN=ServerName

Основные ключи, на которые следует обратить внимание:

  • serviceBindingInformation - URL службы
  • keywords - сайт, к которому принадлежит эта точка подключения (AutoDiscoverSiteScope)
  • WhenCreated - дата создания объекта

clip_image004

Для всех серверов в организации эту информацию можно получить через EMS командой:

Get-ClientAccessServer | fl Name,AutoDiscoverServiceInternalUri,AutoDiscoverSiteScope,WhenCreated

CAS серверов много и они разных версий. Какой выбрать?

Когда Outlook пытается найти SCP он выполняет следующие действия:

1. Запрос к Active Directory. В ответ ему возвращаются все возможные записи

2. Клиент сортирует их исходя из поля keywords, т.е. сайта, в котором он сам находится, таким образом разделяя на два списка "in-site" и "out-of-site" (использоваться будет только первый, т.е. подключаться к SCP в другом сайте Outlook не будет!)

3. Далее он сортирует их по дате создания

4. И пытается подключиться к самому старому (определяет по ключу WhenCreated) серверу. Если такой сервер не доступен, то к следующему и так далее, пока список "in-site" не закончится.

Т.е. в данном случае версия самого сервера не имеет значения! (2007/2010/2013)

clip_image006

clip_image008

Примечание: если вы никогда не меняли настройки SCP в своей организации, все клиенты сайта будут ходить через один единственный сервер, тем самым излишне нагружая его! Рекомендация Microsoft в данном случае - использовать имя балансировщика CAS серверов в качестве AutoDiscoverServiceInternalUri.

 

Autodiscover SCP and AD sites

Exchange сервер всегда знает в каком АД сайте он находится, это свойство у него прописывается в параметре msExchangeServerSite в объекте сервера (посмотреть можно через ADSIEdit - Configuration container - CN=Services, CN=Microsoft Exchange,CN=First Organization,CN=Administrative Groups,CN=Exchange Administrative Group …,CN=Servers,CN=YourServe), при этом, данное свойство динамически обновляется каждый раз, когда служба Netlogon перезапускается и определяет принадлежность сервера к сайту. К сожалению, свойство AutoDiscoverSiteScope (параметр keywords) автоматически не обновляется и в результате вы можете столкнуться с некоторыми "странностями" в работе службы.

Например, на скриншоте видно, что сервер E2010-S2-CH успешно "переехал" в Default-First-Site, но при этом ключ keywords остался прежним.

clip_image020

 

Autodiscover Proxying and Redirection

Если ящик пользователя лежит на Exchange 2013 и вы подключаетесь к Autodiscover`y на Exchange 2013 CAS, то он проксирует ваш запрос на Exchange 2013 Mailbox:

clip_image010

Ящик пользователя расположен на более новой версии сервера (2007 / 2010 -> 2013)

В случает, если вы внедряете новую версию сервера (например Exchange 2013), перенесли ящики, но старый Exchange 2010 / 2007 еще не удалили (но при этом обновили до версий, поддерживающих coexistence) , то клиенты будут продолжать ходить на старый, а тот, в свою очередь, будет редиректить их на новый сервер:

clip_image012

clip_image014

Ящик пользователя расположен на Exchange 2010 (2013 -> 2010)

В случае, когда вы перенастроили AutoDiscoverServiceInternalUri на сервер Exchange 2013, но при этом у вас ещё остались ящики на Exchange 2010, то 2013 CAS будет проксировать запросы до 2010-го CAS`a.

clip_image016

Ящик пользователя расположен на Exchange 2007 (2013 -> 2007)

В случае с Exchange 2007 и 2013 проксирования не происходит, при этом запрос обрабатывает Exchange 2013 Mailbox Server

clip_image018

11 комментариев:

Анонимный комментирует...

Полезная статья о тонкостях работы CAS

Анонимный комментирует...

Спасибо за статью!
Но, если использовать ручную настройку клиента, и в поле "Сервер" вписать имя глобального каталога (GC), то outlook не подключается, пишет ошибку: "Не удается запустить приложение Microsoft Outlook. Невозможно открыть окно Outlook. Невозможно открыть набор папок. Чтобы получить возможность синхронизации папок с файлом данных Outlook (OST), необходимо подключиться к серверу Microsoft Exchange с текущим профилем."
Пробовал даже на свежеустановленном Exchange, одинаково.
Кто решил данную проблему?

Анонимный комментирует...

Аноним, проверьте "Параметры прокси-сервера Exchange".

Анонимный комментирует...

Как настроить Autodiscovery на сервере Exchange 2007 так, чтобы в Outlook на клиентских ПК было указано не имя сервера, а CNAME алиас в DNS, пример: mail.company.com?
(В 2010 для этого делают Exchange CAS Array и используют балансировщик)
Чтобы при необходимости поднять базы на резервном сервере, пользователи прозрачно были перенаправлены на доступный сервер.
Используем SCR для репликации баз.

Алексей Богомолов (Alexx) комментирует...

Посмотрети Set-ClientAccessServer –Identity -AutoDiscoverServiceInternalUri ...
http://www.msexchange.org/articles-tutorials/exchange-server-2007/management-administration/configuring-exchange-server-2007-web-services-urls.html

Анонимный комментирует...

Клиент сортирует их исходя из поля keywords, т.е. сайта, в котором он сам находится, таким образом разделяя на два списка "in-site" и "out-of-site" (использоваться будет только первый, т.е. подключаться к SCP в другом сайте Outlook не будет!)
На технете читаю:
If there are no in-site records, an out-of-site SCP record list will be generated.
То есть генериться не будет только если в сайте нет записей. Надо бы подправить.

Unknown комментирует...

а у меня повторный запуск outlook выдает - нет подключения. иду в настройки смотрю - гуид... и в процесс тоже. меняю обратно... сервер внутреннее имя - прокси- внешнее - сохранить - запускаю аутлук - подключено к эксченджу но до следующей перезагрузки или выключения компа... и по новой.... как быть??

Алексей Богомолов (Alexx) комментирует...

у вас Exchange 2013? попробуйте Outlook обновить, 2010-й только после SP1 поддерживает Exchange 2013 - http://social.technet.microsoft.com/wiki/contents/articles/845.outlook-versions-supported-by-exchange-200720102013online.aspx

JohnRD комментирует...

Есть несколько дочерних доменов с одной организацией Exchange, в каждом Exchange 2010 SP2 rollup4
в одном дочернем домене D9 Авто обнаружение странно работает, очень долго ищет сервер начиная с первого в списке SCP
далее находит сервер в d1-msg-01.corp.d1.local в другом сайте, через него цепляется к своему серверу d9-msg-01.corp.d9.local оставляя только OAB подключенным к серверу из домена D1
http://d1-msg-01.d1.corp.local/OAB/a65d3bfc-77f3-4c99-b237-4dcb0622b59c/

Автоконфигурация в домене D9
SMTP=john9@d9.domain.com
Попытка поиска URL-адреса https://d2-msg-01.corp.d2.local/Autodiscover/Autodiscover.xml через точку подключения службы
Автообнаружение для https://d2-msg-01.corp.d2.local/Autodiscover/Autodiscover.xml начато
GetLastError=12002;httpStatus=0.
Время ожидания подключения к Интернету для автообнаружения по URL-адресу https://d2-msg-01.corp.d2.local/Autodiscover/Autodiscover.xml
GetLastError=12002;httpStatus=0.
Время ожидания подключения к Интернету для автообнаружения по URL-адресу https://d2-msg-01.corp.d2.local/Autodiscover/Autodiscover.xml
Автообнаружение для https://d2-msg-01.corp.d2.local/Autodiscover/Autodiscover.xml Сбой (0x800C8203)
Попытка поиска URL-адреса https://d3-msg-01.corp.d3.local/Autodiscover/Autodiscover.xml через точку подключения службы
Автообнаружение для https://d3-msg-01.corp.d3.local/Autodiscover/Autodiscover.xml начато
GetLastError=12002;httpStatus=0.
Время ожидания подключения к Интернету для автообнаружения по URL-адресу https://d3-msg-01.corp.d3.local/Autodiscover/Autodiscover.xml
GetLastError=12002;httpStatus=0.
Время ожидания подключения к Интернету для автообнаружения по URL-адресу https://d3-msg-01.corp.d3.local/Autodiscover/Autodiscover.xml
Автообнаружение для https://d3-msg-01.corp.d3.local/Autodiscover/Autodiscover.xml Сбой (0x800C8203)
Попытка поиска URL-адреса https://d4-msg-01.corp.d4.local/Autodiscover/Autodiscover.xml через точку подключения службы
Автообнаружение для https://d4-msg-01.corp.d4.local/Autodiscover/Autodiscover.xml начато
GetLastError=12002;httpStatus=0.
Время ожидания подключения к Интернету для автообнаружения по URL-адресу https://d4-msg-01.corp.d4.local/Autodiscover/Autodiscover.xml
GetLastError=12002;httpStatus=0.
Время ожидания подключения к Интернету для автообнаружения по URL-адресу https://d4-msg-01.corp.d4.local/Autodiscover/Autodiscover.xml
Автообнаружение для https://d4-msg-01.corp.d4.local/Autodiscover/Autodiscover.xml Сбой (0x800C8203)
Попытка поиска URL-адреса https://d6-msg-01.corp.d6.local/Autodiscover/Autodiscover.xml через точку подключения службы
Автообнаружение для https://d6-msg-01.corp.d6.local/Autodiscover/Autodiscover.xml начато
GetLastError=12002;httpStatus=0.
Время ожидания подключения к Интернету для автообнаружения по URL-адресу https://d6-msg-01.corp.d6.local/Autodiscover/Autodiscover.xml
GetLastError=12002;httpStatus=0.
Время ожидания подключения к Интернету для автообнаружения по URL-адресу https://d6-msg-01.corp.d6.local/Autodiscover/Autodiscover.xml
Автообнаружение для https://d6-msg-01.corp.d6.local/Autodiscover/Autodiscover.xml Сбой (0x800C8203)
Попытка поиска URL-адреса https://d8-msg-01.corp.d8.local/Autodiscover/Autodiscover.xml через точку подключения службы
Автообнаружение для https://d8-msg-01.corp.d8.local/Autodiscover/Autodiscover.xml начато
GetLastError=12002;httpStatus=0.
Время ожидания подключения к Интернету для автообнаружения по URL-адресу https://d8-msg-01.corp.d8.local/Autodiscover/Autodiscover.xml
GetLastError=12002;httpStatus=0.
Время ожидания подключения к Интернету для автообнаружения по URL-адресу https://d8-msg-01.corp.d8.local/Autodiscover/Autodiscover.xml
Автообнаружение для https://d8-msg-01.corp.d8.local/Autodiscover/Autodiscover.xml Сбой (0x800C8203)

JohnRD комментирует...

Автообнаружение для https://d7-msg-01.corp.d7.local/Autodiscover/Autodiscover.xml Сбой (0x800C8203)
Попытка поиска URL-адреса https://d1-msg-01.corp.d1.local/Autodiscover/Autodiscover.xml через точку подключения службы
Автообнаружение для https://d1-msg-01.corp.d1.local/Autodiscover/Autodiscover.xml начато
GetLastError=0;httpStatus=200.
Автообнаружение для https://d1-msg-01.corp.d1.local/Autodiscover/Autodiscover.xml Успешное завершение (0x00000000)


в других сайтах сразу цепляется к своему серверу

SMTP=john3@d3.domain.com
Попытка поиска URL-адреса https://d3-msg-01.corp.d3.local/Autodiscover/Autodiscover.xml через точку подключения службы
Автообнаружение для https://d3-msg-01.corp.d3.local/Autodiscover/Autodiscover.xml начато
GetLastError=0;httpStatus=200.
Автообнаружение для https://d3-msg-01.corp.d3.local/Autodiscover/Autodiscover.xml Успешное завершение (0x00000000)

SMTP=john2@d2.domain.com
Попытка поиска URL-адреса https://d2-msg-01.corp.d2.local/Autodiscover/Autodiscover.xml через точку подключения службы
Автообнаружение для https://d2-msg-01.corp.d2.local/Autodiscover/Autodiscover.xml начато
GetLastError=0;httpStatus=200.
Автообнаружение для https://d2-msg-01.corp.d2.local/Autodiscover/Autodiscover.xml Успешное завершение (0x00000000)

SMTP=john8@d8.domain.com
Попытка поиска URL-адреса https://d8-msg-01.corp.d8.local/Autodiscover/Autodiscover.xml через точку подключения службы
Автообнаружение для https://d8-msg-01.corp.d8.local/Autodiscover/Autodiscover.xml начато
GetLastError=0;httpStatus=200.
Автообнаружение для https://d8-msg-01.corp.d8.local/Autodiscover/Autodiscover.xml Успешное завершение (0x00000000)


список SCP
[PS] C:\Users\john\Desktop>Get-ClientAccessServer | fl Name,AutoDiscoverServiceInternalUri,AutoDiscoverSiteScope,WhenCre
ated


Name : D2-MSG-01
AutoDiscoverServiceInternalUri : https://d2-msg-01.d2.corp.local/Autodiscover/Autodiscover.xml
AutoDiscoverSiteScope : {D2}
WhenCreated : 06.09.2012 17:55:13

Name : D3-MSG-01
AutoDiscoverServiceInternalUri : https://d3-msg-01.d3.corp.local/Autodiscover/Autodiscover.xml
AutoDiscoverSiteScope : {D3}
WhenCreated : 15.08.2013 19:37:15

Name : D4-MSG-01
AutoDiscoverServiceInternalUri : https://d4-msg-01.d4.corp.local/Autodiscover/Autodiscover.xml
AutoDiscoverSiteScope : {D4}
WhenCreated : 20.08.2013 15:39:56

Name : D6-MSG-01
AutoDiscoverServiceInternalUri : https://d6-msg-01.d6.corp.local/Autodiscover/Autodiscover.xml
AutoDiscoverSiteScope : {D6}
WhenCreated : 22.08.2013 17:51:32

Name : D8-MSG-01
AutoDiscoverServiceInternalUri : https://d8-msg-01.d8.corp.local/Autodiscover/Autodiscover.xml
AutoDiscoverSiteScope : {D8}
WhenCreated : 21.11.2013 22:32:53

Name : D7-MSG-01
AutoDiscoverServiceInternalUri : https://d7-msg-01.d7.corp.local/Autodiscover/Autodiscover.xml
AutoDiscoverSiteScope : {D7}
WhenCreated : 12.03.2014 18:35:25

Name : D1-MSG-01
AutoDiscoverServiceInternalUri : https://d1-msg-01.d1.corp.local/Autodiscover/Autodiscover.xml
AutoDiscoverSiteScope : {D1}
WhenCreated : 18.04.2014 6:01:46

Name : D1-MSG-02
AutoDiscoverServiceInternalUri : https://d1-msg-02.d1.corp.local/Autodiscover/Autodiscover.xml
AutoDiscoverSiteScope : {D1}
WhenCreated : 18.04.2014 6:10:13

Name : D9-MSG-01
AutoDiscoverServiceInternalUri : https://d9-msg-01.d9.corp.local/Autodiscover/Autodiscover.xml
AutoDiscoverSiteScope : {D9}
WhenCreated : 09.07.2014 17:13:04

Name : D5-MSG-01
AutoDiscoverServiceInternalUri : https://d5-msg-01.d5.corp.local/Autodiscover/Autodiscover.xml
AutoDiscoverSiteScope : {D5}
WhenCreated : 20.08.2014 17:20:21

JohnRD комментирует...

Name : D10-MSG-01
AutoDiscoverServiceInternalUri : https://d10-msg-01.d10.corp.local/Autodiscover/Autodiscover.xml
AutoDiscoverSiteScope : {D10}
WhenCreated : 16.10.2014 11:38:50

получается не работает идея
Клиент сортирует их исходя из поля keywords, т.е. сайта, в котором он сам находится, таким образом разделяя на два списка "in-site" и "out-of-site" (использоваться будет только первый, т.е. подключаться к SCP в другом сайте Outlook не будет!)

как быть? прошу помощи

и еще вопрос заметил что сервера Exchange соединяются с серверами из других сайтов по короткому имени не FQDN, например для выкачивания OAB с сервера с ролью mailbox из друго сайта пришлось дописать DNS суффикс того домена в TCP соединении где находится генерирующий сервер, как это правильно решается?

заранее благодарен

Отправить комментарий