Опубликован: 30.04.2006 | Уровень: специалист | Доступ: платный
Лекция 3:

Архитектура маршрутизации Exchange Server

< Лекция 2 || Лекция 3: 1234 || Лекция 4 >

Информация о состоянии связи

Протокол состояния связи представляет собой двоичный протокол, значительно улучшающий маршрутизацию сообщений в Exchange 2003 по сравнению с Exchange 5.5. Маршрутизация сообщений в Exchange 5.5 базируется на таблице маршрутизации GWART, в которой отслеживаются все доступные коннекторы, а также сумма "затрат" на использование этих коннекторов. GWART имеет ограничение, заключающееся в том, что она содержит только информацию об уже происшедшем событии. Она не отслеживает состояние непосредственно в текущий момент времени. Таблица GWART располагается в объекте Site Addressing и вызывается агентом MTA при определении маршрутов доставки сообщений на сервер назначения.

Протокол состояния связи функционирует через порт TCP 691 в группе маршрутизации. В каждой группе маршрутизации один из серверов является главным сервером группы маршрутизации (Routing Group Master, RGM). RGM получает информацию о состоянии связи и сообщает ее серверам в группе маршрутизации, включая сервер BHS. Когда один BHS соединяется с другим BHS, находящимся в другой группе маршрутизации, обмен информацией о состоянии связи осуществляется через порт TCP 25 с использованием протокола SMTP. RGM отслеживает работающие и не работающие серверы и сообщает эту информацию серверам RGM во всех остальных группах маршрутизации.

Алгоритм состояния связи

Алгоритм состояния связи является нововведением в Exchange Server 2003, хотя нечто подобное было разработано очень давно. Впервые об этом алгоритме заговорили в 1959 г., когда Edsger Dijkstra представил разработку протокола Open Shortest Path First (OSPF), который сегодня широко используется маршрутизаторами. Несмотря на то что Exchange Server 2003 при выборе маршрута руководствуется затратами на его использование, не менее значимым фактором в процессе маршрутизации сообщений между группами маршрутизации является информация о состоянии связи.

Алгоритм состояния связи сообщает о состоянии системы обмена сообщениями почти в реальном времени всем серверам в организации. Это обеспечивает следующие преимущества:

  • каждый сервер Exchange может выбрать оптимальный маршрут перед отправкой сообщения и избежать возможных повреждений канала связи на одном из потенциальных маршрутов;
  • исключается "пинг-понг" сообщений, так как информация об альтернативных маршрутах сообщается каждому серверу Exchange Server 2003;
  • исключается зацикливание сообщений.

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

Концепции определения состояния связи

Информация о состоянии связи является достаточно важным фактором, если в организации имеется несколько групп маршрутизации с несколькими маршрутами между группами. RGM осуществляет управление информацией о состоянии связи, отправляя и принимая ее от серверов RGM из других групп маршрутизации. RGM не обязательно должен являться тем же сервером, что и BHS, который представляет собой сервер, предназначенный для обмена сообщениями через данный коннектор с другим сервером BHS. Сервер RGM по умолчанию является первым сервером, устанавливаемым в группе маршрутизации. Это обстоятельство можно изменить в ESM, щелкнув правой кнопкой мыши на сервере, не являющемся RGM, и выбрав опцию Set As Master (Сделать главным). Кроме того, можно вручную настроить один и тот же сервер на выполнение обеих ролей.

Сервер RGM обеспечивает наличие на всех серверах в группе маршрутизации информации о состоянии связи, свидетельствующей о доступности коннекторов обмена сообщениями и серверов в других группах. Кроме этого, он обеспечивает наличие в других группах корректной информации о подчиненных ему серверах.

Информация о состоянии связи распространяется между серверами группы с помощью протокола SMTP, а информация о состоянии связи между группами реплицируется от одного RGM к другому через порт TCP 25. Любая рассматриваемая связь находится только в двух состояниях: рабочем ( up ) и нерабочем ( down ). Информация о состоянии связи не содержит какую-либо информацию о соединении, например, находится ли связь в состоянии повторной попытки передачи. Данная информация известна только серверу, участвующему в передаче сообщения.

Примечание. Коннекторы, такие как Lotus cc:Mail Connector, Microsoft Mail Connector и другие коннекторы, реализованные с использованием EDK, всегда отображают свое состояние связи как рабочее, даже если связь в действительности недоступна.

Информация о состоянии связи хранится в памяти, а не на диске. Если сервер RGM отключается или требует перезапуска, он затем должен будет получить всю текущую информацию о состоянии связи от других серверов RGM внутри организации. Так как информация о группах маршрутизации содержится в разделе определения конфигурации Active Directory, определения коннекторов и сведения о затратах находятся здесь же. Протокол состояния связи обращается к каждому из коннекторов по его глобально уникальному идентификатору (GUID).

Примечание. Когда сервер BHS определяет, что связь недоступна для использования, он помечает ее нерабочее состояние. Затем эта информация отправляется всем серверам в данной группе маршрутизации (через порт TCP 691) и серверам-мостам в других группах маршрутизации (через порт TCP 25). При трассировке данных о состоянии связи найдите команду X-Link2state, которая обозначает этот тип данных. Информация передается в порциях, помеченных как "first chunk" ("первая порция"), "second chunk" ("вторая порция") и т.д. вплоть до "last chunk" ("последняя порция").

Ниже показано, какие данные отображаются в Network Monitor. На рисунке 3.12 показано, что связь между Folsom и Minneapolis находится в состоянии DOWN, т.е. в нерабочем состоянии. После восстановления связи ее состоянием станет UP (рабочее состояние) (см. рис. 3.13). Однако в описании пакета отсутствует команда Link2state. Необходимо прочесть данные в каждом пакете, чтобы найти пакеты команды X-Link2state.

Данные трассировки, отражающие нерабочее (DOWN) состояние связи

увеличить изображение
Рис. 3.12. Данные трассировки, отражающие нерабочее (DOWN) состояние связи
Данные трассировки, отражающие рабочее (UP) состояние связи

увеличить изображение
Рис. 3.13. Данные трассировки, отражающие рабочее (UP) состояние связи
< Лекция 2 || Лекция 3: 1234 || Лекция 4 >
Евгений Макаревич
Евгений Макаревич
Россия, Москва, РОСНОУ
Димон Кучер
Димон Кучер
Украина