2.2.3. Управление маршрутизацией сообщений

Одним из важнейших базовых понятий в области маршрутизации сообщений в сервере Exchange является понятие адресного пространства (Address Space). Адресным пространством коннектора во внешнюю почтовую систему называют некоторое подмножество всего множества адресов этой внешней системы, досягаемых через рассматриваемый коннектор. Фактически операция определения границ адресного пространства представляет собой наложение на исходное множество адресов одной или более адресных масок, составленных из элементов почтового адреса конкретной системы. Если используется более одной маски, адресное пространство коннектора представляет собой объединение результатов маскирования исходного пространства каждой из них. При задании масок допускается использование символов подстановки: "звездочка" - для обозначения любого количества символов, и "знак вопроса" - для обозначения любого единичного символа. Кроме того, для каждого из полученных маскированием пространства адресов можно назначить условную стоимость доставки сообщений через данный коннектор. Поясним сказанное на примере (рисунок 2.10).

Если коннектор X.400 должен обеспечивать прохождение почты между Вашей организацией и российским отделением SPRINT, маска адресного пространства данного коннектора будет иметь вид C=RU;A=SOVMAIL. Если через него же потребуется отправлять сообщения вашим западным партнерами в США, обслуживаемым фирмой ATT и имеющим PRMD, начинающийся с MS, дополнительная маска будет иметь вид C=US;A=ATT;P=MS*.

Рис. 2.10. Построение адресного пространства коннектора X.400

Рассмотрим гипотетическую почтовую систему, состоящую из четырех компьютеров A, B, C и D, такую, что A знает, как доставить сообщение B, B - как доставить сообщение C, а C, в свою очередь, - D. При этом ни A, ни B не знают, как доставить сообщение D, но A известно, что это знает C, и при посылке A проставляет на конверте пометку "послать C для D". В данном случае C выступает как точка маршрутизации (Routing Point), и A должна знать ее адрес (Routing Address). Рассмотренная схема легко расширяется на случай, когда D - это объединение некоторых пространств адресов, и существует несколько точек C, каждая из которых может обслуживать одно или более пространств (рисунок 2.11). В этом случае адреса всех таких точек должны быть известны A. В терминологии Exchange множество точек C и пространств D образуют адресное пространство коннектора A-B. Для каждого пространства D описывается адресная маска и задается почтовый адрес (Routing Address) компьютера C, обслуживающего это пространство.

Рис. 2.11. Построение адресного пространства коннектора Exchange

Замечательной особенностью Exchange является возможность ассоциировать с коннекторами адресные пространства типов, отличных от типа самого коннектора. Например, существует возможность ассоциировать с коннектором SMTP адресное пространство X.400, что фактически означает туннелирование трафика X.400 через SMTP. Это имеет смысл, когда доставка сообщений выполняется по рассмотренной в предыдущем примере схеме. В этом случае система C может выполнять также функции почтового шлюза, и на коннекторе A-B должен быть проставлен ее адрес в формате, воспринимаемом системой B. Следует заметить, что A и D не обязаны использовать один тип адресов или формат сообщений, так как в процессе передачи сообщение транслируется из формата системы A в формат B, а потом - из B в D. Кроме того, B, C и D, в общем случае, не являются серверами Exchange.

Нетрудно догадаться, что при использовании в организации нескольких почтовых систем кроме проблем с преобразованием содержимого писем и форматов вложений существует проблема трансляции адресов на шлюзах. В случае Exchange, все преобразования выполняются автоматически коннектором соответствующего типа. Для трансляции адресов сообщений, ожидающих доставки, используется простая, но исключительно эффективная схема представлений (Proxy Addresses). При этом в каталоге ищется значение, указанное на конверте сообщения в поле "Кому". Если объект с соответствующим адресом найден, проверяется, имеет ли он адрес типа, соответствующего типу коннектора. Если объект имеет несколько адресов требуемого типа, выбирается тот, который помечен как основной. Затем подобная операция выполняется для значения, указанного в поле "От Кого". Если отправитель не имеет обратного адреса требуемого типа, коннектор выполняет автоматическую его генерацию, обеспечивая возможность доставки ответа отправителю исходного письма. Сгенерированный адрес имеет вид, позволяющий коннектору однозначно отличить такой адрес от обычных адресов пользователей. В конечном итоге, новые значения прописываются в поля "Кому" и "От Кого", и письмо помещается в очередь на доставку в следующую точку на маршруте.

Поддержка замещения адресов позволяет выполнять неявную маршрутизацию сообщений, отправляемых пользователями внешних систем одного типа внешним же адресатам в других системах. Так, чтобы пользователь cc:Mail мог послать письмо коллеге в Internet, в каталоге Exchange должен присутствовать внешний адресат, имеющий адреса двух типов: реальный SMTP и представляющий (proxy) cc:Mail, относящийся к одному из почтовых отделений, ассоциированных с площадками Exchange (рисунок 2.12).

Рис. 2.12. Подстановка и автоматическая генерация адреса на коннекторе Exchange

Назад | Содержание | Вперед