Как служба Exchange Recipient Update Service управляет потоком сообщений

Служба Microsoft Exchange Server Recipient Update Service (RUS) отвечает за формирование дополнительных почтовых адресов (mail proxy addresses) для почтовых объектов в организации Exchange. Обычно менять настройки, установленные для этой службы по умолчанию, не требуется совсем либо приходится корректировать очень незначительно. И все же бывают ситуации, когда одна или две дополнительные подстройки могут оказаться полезными. Не стоит пренебрегать такой возможностью.

Общие понятия

Работоспособность Exchange 2000 Server и более поздних версий Exchange зависит от Active Directory (AD). Чтобы пользователи, контакты, общие папки, хранилище сообщений (т. е. база данных) или группа (включая Distribution Group (DG) в Exchange Server 2003) могли использовать почтовую службу, необходимо создать новые атрибуты для соответствующего объекта AD. Windows заполняет некоторые из этих атрибутов (например, атрибут, задающий отличительное имя, Distinguished Name, DN, почтового хранилища, в котором содержится почтовый ящик пользователя) при создании или редактировании почтового объекта с помощью оснастки Microsoft Management Console (MMC) Active Directory Users and Computers. Однако тот или иной объект нельзя назвать полностью почтовым объектом Exchange до тех пор, пока служба RUS не определит, что объект был создан или обновлен в AD. RUS проверяет, не появился ли в AD новый или измененный объект, после чего применяет соответствующую политику получателя (recipient policy) для заполнения всех отсутствующих атрибутов и поиска хотя бы одного правильного почтового адреса объекта.

Сегодня самым распространенным почтовым адресом объекта Exchange является SMTP-адрес, который используется почтовым ящиком при перемещении в Internet. Пользователям могут потребоваться и другие адреса, называемые также промежуточными, для связи с IBM Lotus Notes или системами X.400 либо чтобы посылать и принимать факсы. Чтобы сгенерировать дополнительные адреса для почтовых объектов, RUS обращается к политикам получателя, которые определяют тип и формат адресов, необходимых почтовому объекту. Для Exchange 5.5 и более ранних версий Exchange функциональный компонент, работа которого в чем-то напоминала RUS, назывался Site Addressing Defaults. Однако между RUS и Site Addressing Defaults есть существенное различие, которое заключается в том, что область действия Site Addressing Defaults ограничивается сайтом, тогда как RUS и политики получателя, которые используются в его работе, применимы во всей организации Exchange. Кроме того, политики получателя — более гибкие, если принять во внимание объекты, к которым эти политики могут быть применены.

Экран 1. Дополнительные адреса для пользовательского объекта

AD содержит адреса почтовых объектов в многозначных строковых атрибутах под названием proxyAddresses в формате type:address (например, SMTP:Tony@Tony.Net). На экране 1 показаны свойства почтового объекта AD. Обратите внимание, что некоторые значения в колонке Type написаны заглавными буквами. В этом случае Exchange рассматривает данный адрес как первичный адрес (primary address) определенного типа. Данный тип адреса может содержать только один первичный адрес; Exchange использует его как ответный адрес (reply address) по умолчанию для исходящих сообщений. Адреса в графе Type, указанные в строчном регистре, — вторичные адреса (secondary addresses), к которым Exchange обращается для разбора заголовка входящего сообщения, чтобы определить, может ли полученное сообщение быть переправлено в один из почтовых ящиков внутри организации. Вторичный адрес можно создать только для объекта, который уже имеет первичный адрес того же типа. Отметим, что каждый объект пользователя должен обладать первичным адресом SMTP (это напоминает требование Exchange 5.5, когда каждый объект должен был иметь адрес X.400).

Компании, переживающие процесс слияния, переименования или смены брэнда, нередко нуждаются в сохранении старых почтовых адресов в качестве вторичных адресов SMTP, чтобы внешние корреспонденты могли продолжать использовать привычные адреса. Со временем старые адреса могут потихоньку удаляться (хотя бы ради уменьшения количества спама), и то, что они остаются в свойствах объектов AD, большого вреда не наносит. В то же время вторичные адреса можно использовать для специальных целей. Exchange Mailbox Manager задействует тип адреса MBX для проведения трассировки почтовых ящиков; тип адреса X500 — для трассировки старых почтовых адресов, которые все еще могут существовать в почтовых ящиках пользователя, но внутри самой организации больше не применяются. Например, Exchange 5.5 Move Server Wizard изменяет имя DN почтовых ящиков по мере перемещения серверов между сайтами или организациями. AD при посредничестве Active Directory Connector — ADC — сохраняет эти адреса, чтобы пользователи могли ответить на старые сообщения, в заголовках которых старые адреса все еще присутствуют.

Помимо генерации правильных адресов для почтовых объектов, RUS также следит за тем, чтобы объекты появлялись в соответствующем списке адресов. Конечно, удобно, когда пользователи, контакты и группы находятся в глобальном списке Global Address List (GAL), но, вероятно, нежелательно, чтобы здесь же появились общие папки и почтовые хранилища. RUS скрывает ненужные объекты, пока в свойствах объекта не будет выставлен флажок, сообщающий RUS о необходимости включения объекта в GAL. Речь идет об установке атрибута msExchHideFromAddressList скрытого объекта в значение TRUE. RUS также заполняет некоторый набор атрибутов AD (см. таблицу), который должен быть установлен для правильного функционирования почтовых объектов. Как отмечалось ранее, некоторые из этих атрибутов заполняются автоматически при создании почтового объекта в оснастке Active Directory Users and Computers. RUS прописывает значения для всех отсутствующих или не полностью описанных атрибутов, что гарантирует наличие всех необходимых данных для осуществления почтового обмена. Кроме того, при обнаружении группы, в которой есть скрытые члены, RUS добавляет неканонические элементы ACE в список контроля доступа группы. Эти элементы позволяют серверам Exchange работать со всеми членами группы при доставке почтовых сообщений, но в то же время не дают пользователю возможности просмотреть скрытые данные.

Каждый почтовый адрес должен быть уникальным в рамках организации Exchange. Когда вы создаете адрес на вкладке Email Addresses в окне свойств пользовательского объекта, оснастка Active Directory Users and Computers вызывает соответствующую DLL, отвечающую за генерацию дополнительного адреса данного типа и его правильное форматирование. Одновременно DLL генерирует запрос LDAP, который определяет, является ли указанный адрес уникальным. Вот почему создание новых почтовых адресов пользовательского объекта иногда занимает много времени, особенно в крупных организациях. Используемые RUS политики гарантируют, что адреса будут отформатированы в соответствии с установленными правилами. RUS также проверяет уникальность адреса.

Что осталось за кадром

Из-за непосредственного отношения к почтовым объектам и адресным спискам RUS раньше называлась Address List Service. Это старое название отражается в имени компонента, который используется для отладки и диагностики RUS: MSExchangeAL. RUS запускает его как часть процесса Exchange System Attendant (собственно код RUS включен в компонент WLDAP32.dll). По умолчанию RUS «просыпается» раз в минуту для проведения плановых проверок. В частности, она посылает запросы в AD для поиска изменений, которые могли повлиять на списки адресов. Наиболее общий пример таких изменений — добавление нового почтового пользовательского объекта; другой пример — изменения, затрагивающие членство почтового объекта в адресном списке. RUS обнаруживает эти изменения при помощи запросов LDAP, фиксирующих все обновления почтовых объектов. Затем RUS применяет подходящие к данному случаю политики получателя для заполнения всех отсутствующих атрибутов и внесения изменений в адресные списки.

Экран 2. Атрибут USNChanged

RUS идентифицирует почтовые объекты AD, проверяя значение атрибута mailNickname (известен как псевдоним (alias) в Exchange 5.5). AD ведет трассу всех изменений внутри своей структуры и присваивает каждому из них уникальный номер, который записывается в атрибут USNchanged объекта (см. экран 2). LDAP находит изменения достаточно просто: отыскиваются все объекты с заполненными мнемоническими почтовыми именами (nickname) и значением атрибута USNchanged, превышающим самое последнее значение USNchanged с момента последней проверки, выполненной RUS. Чтобы посмотреть запрос в действии, следует увеличить до максимума параметры диагностической регистрации объекта MSExchangeAL и в журнале Application отыскать событие с ID 8011. В описании события содержится отчет о запросе LDAP, сгенерированного RUS, в том числе значение USNchanged.

Оценить скорость обновления RUS в почтовой среде можно следующим образом: с помощью Active Directory Users and Computers создать почтовый объект, а затем посмотреть, сколько времени потребуется, чтобы почтовые адреса появились в свойствах нового объекта. В большинстве случаев на это уходит менее 5 минут (или 2 минуты, если организация развернута на нескольких серверах). Большая задержка указывает на проблемы в работе RUS.

С точки зрения пользователя активность RUS проявляется в появлении нового объекта в глобальном списке адресов, GAL. Время, необходимое для появления нового объекта в GAL, зависит от того, как в организации построена топология репликации AD: служба AD должна реплицировать измененные атрибуты на сервер Global Catalog (GC), к которому клиент подключается до того, как сможет использовать новые данные. Конечно, если воспользоваться Microsoft Office Outlook 2003 в режиме Cached Exchange Mode, мы не увидим новые почтовые объекты в Outlook Address Book (OAB) до тех пор, пока Exchange не получит возможность сгенерировать новую версию OAB и пока мы не загрузим необходимые изменения в локальную копию OAB.

Настройка RUS

При установке в организации в качестве первого почтового сервера версии Exchange 2000 (или более поздней), Exchange по умолчанию создает в конфигурационном контейнере ExchangeRecipientsRecipient Update Services два экземпляра службы RUS. Область охвата первого экземпляра, Recipient Update Service (Enterprise Configuration), распространяется на всю организацию. Этот экземпляр RUS отвечает за объекты, которые появляются в настройках организации Exchange (например, хранилище сообщений). Зона охвата второго экземпляра — домен, и он отвечает за получателей почты, контакты, группы и общие папки, принадлежащие домену, в котором размещен сервер Exchange. По мере установки дополнительных серверов Exchange в других доменах леса, Exchange автоматически создает новые экземпляры RUS для новых доменов (если они к тому времени еще не созданы). Если домен XYZ не содержит сервер Exchange, но в нем есть почтовые объекты (например, пользовательские объекты с почтовыми ящиками на серверах Exchange из других доменов), необходимо запустить программу Exchange Setup с ключом /domainprep на DC XYZ для выполнения подготовительных операций по размещению почтовых объектов в домене, а затем вручную создать экземпляр RUS в домене XYZ.

Можно создать множество экземпляров RUS для домена, при условии что каждый экземпляр будет ассоциирован со своим DC — каждый экземпляр станет источником обновления AD. «Размазывание» процесса обновления по нескольким экземплярам RUS — отличный вариант при распределенной топологии домена или если есть сомнения в скорости репликации AD. Конечно, Exchange не сможет работать эффективно, если репликация AD ненадежна; поэтому, коль скоро вы столкнулись с такой ситуацией, сначала необходимо решить проблемы с репликацией AD, а затем централизовать, насколько это возможно, RUS. На экране 3 показаны экземпляры RUS компании HP, в которой развернута одна из крупнейших в мире почтовых организаций Exchange 2003 (число записей GAL перевалило за 250 тыс.). Как можно заметить, помимо экземпляра по умолчанию, Enterprise Configuration, для каждого из трех географически ориентированных доменов, в которых есть серверы Exchange, имеется еще только по одной службе RUS.

Экран 3. Экземпляры RUS
Экран 4. Свойства RUS

На экране 4 показаны свойства отдельных экземпляров RUS. Они понятны. Поле Domain содержит имя домена AD, который обслуживает данный RUS. Поле Exchange server указывает сервер Exchange, на котором запущен RUS, а поле Windows Domain Controller указывает DC, к которому подключается RUS. Логически никогда не помешает расположить сервер Exchange и DC поближе друг к другу, насколько это возможно (в терминах сети), тогда они всегда будут «видеть» друг друга. Если сервер Exchange и DC не имеют устойчивого соединения, время выполнения запросов LDAP, от которых зависит работа RUS, может выходить за допустимые пределы, могут возникнуть и проблемы иного рода — в любом случае работа RUS может стать непредсказуемой, что впоследствии неблагоприятно скажется на точности заполнения атрибутов AD.

Последний параметр в окне свойств RUS — Update interval. Значение по умолчанию для этого поля — Always run. В этом случае RUS проверяет обозначенный DC каждую минуту. Обычно значение по умолчанию соответствует большинству ситуаций и адекватно для отслеживания изменений в организации среднего размера. Если этот интервал кому-то покажется слишком коротким, он может быть увеличен до 15 минут или часа — на- сколько потребуется. Обратите внимание, что параметр Update interval управляет частотой «пробуждения» RUS и запуска процесса, в ходе которого обрабатываются все известные изменения. Если компания не использует RUS для обновления почтовых адресов, можно создать расписание для каждого доменного экземпляра RUS, чтобы служба RUS никогда не начинала работать. Что же касается обслуживания Enterprise Configuration, то здесь необходимо предусмотреть расписание активизации службы RUS, которая будет отвечать за правильность заполнения атрибутов системных объектов.

Как уже отмечалось выше, если клиент Outlook 2003 работает в кэш-режиме (Cached Exchange Mode), пользователь не сможет увидеть обновлений до тех пор, пока не будет загружена обновленная адресная книга OAB. Обычно эту операцию Exchange проделывает один раз в день. Если все пользователи Exchange работают в кэш-режиме, следует запускать RUS (на каждом домене, в котором находится сервер Exchange) примерно каждые 2 часа. Если нужно принудительно проверить состояние изменений в домене, можно воспользоваться ESM, открыть контекстное меню RUS и выполнить команду Update Now. Это действие устанавливает значение атрибута msExchReplicateNow объекта RUS в состояние TRUE. Когда RUS «проснется» и обнаружит данный атрибут в состоянии TRUE, это послужит для него сигналом к началу работы. После завершения работы RUS сбросит атрибут msExchReplicateNow в FALSE.

Работаем с RUS

В небольших организациях служба RUS загружена не сильно. Даже если ничего не менять в настройках по умолчанию, она прекрасно работает, генерирует и обслуживает адреса электронной почты для почтовых объектов. И всегда можно что-то «подкрутить» в настройках RUS для достижения лучших результатов. Однако, прежде чем вносить изменения в настройки этой службы, важно получить четкое представление о том, как она работает.

Тони Редмонд - Редактор издания Windows IT Pro, старший технический редактор Exchange & Outlook Administrator, вице-президент и главный технолог HP Services. exchguru@windowsitpro.com


Таблица. Атрибуты AD, необходимые для работы почтовых объектов
АтрибутИспользование
displayNameПростое отображаемое имя объекта
homeMDBИмя хранилища, в котором содержится почтовый ящик (или общая папка) организации
homeMTAМесто расположения объекта Message Transfer Agent (MTA)
legacyExchangeDNDN (в формате Exchange 5.5)
msExchHomeServerNameНазвание сервера Exchange, на котором расположен объект организации
msExchMailboxGUIDГлобальный уникальный идентификатор (GUID), который указывает на почтовый ящик объекта (если применимо)
msExchUserAccountControlЦелое значение, равное 0 для всех включенных учетных записей