В этом разделе объясняется, каким образом работает передача почтовых сообщений в кластерной среде CommuniGate Pro.

 

Релеинг по SMTP

Входящие SMTP-соединения принимаются балансировщиком нагрузки TCP и отправляются на Frontend-сервера кластера. Frontend-сервер получает сообщение так же, как и при работе в режиме одиночного сервера, но при этом он может контактировать с Backend-серверами (через CLI) в случае, если ему необходимо:

  • аутентифицировать отправителя,

  • проверить адреса отправителя и получателя,

  • проверить состояние получателя,

  • получить ограничения для отправителя.

Полученные сообщения ставятся в очередь. Если сообщение направляется на внешний адрес, оно может быть ретранслировано этим же Frontend-сервером:

Местная доставка

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

Такая ситуация может возникнуть, если сообщение устанавливается в очередь на Frontend-сервере (Frontend-сервера не могут напрямую открывать данные пользователя в общих доменах), либо если сообщение устанавливается в очередь на Backend-сервере, который не является хост сервером для требуемого пользователя (в статическом кластере) или не может открыть его данные, потому что они открыты на каком-либо другом Backend-сервере (в динамическом кластере).

Чтобы решить эту проблему, модуль местной доставки использует соединения по каналу доставки с правильным Backend-сервером и передаёт ему сообщение. Получающий Backend-сервер немедленно открывает данные требуемого пользователя, применяет его правила уровня пользователя и сохраняет переданное сообщение. Этот Backend-сервер не устанавливает сообщение в очередь.

Если при доставке сообщений возникает сбой или другая временная проблема, то получающий Backend-сервер уведомляет отправителя об ошибке и сообщение либо задерживается в очереди, либо удаляется из очереди (в этом случае генерируются уведомления об ошибке).

Очереди на Backend-серверах

Веб-интерфейса пользователя, XIMSS, сессии MAPI, правила, а также другие модули и компоненты могут создавать на Backend-серверах сообщения электронной почты.

Backend-сервер часто не имеет прямого доступа в Интернет и в таком случае он не может доставлять созданные сообщения на удалённые системы. Для решения этой проблемы Backend-сервера могут быть при помощи символа *, заданного в качестве имени пересылающего SMTP-сервера сконфигурированы на релеинг всех сообщений на Frontend-сервера.

В этом случае, сообщение поступает в очередь Backend-сервера, где оно обрабатывается с использованием общесерверных и общекластерных правил и, если оно не направляется локальному получателю, оно направляется в SMTP-модуль, который передаёт его одному из Frontend-серверов:

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

Чтобы этого избежать, может использоваться метод обработки удалённой очереди.

Обработка удаленных очередей

Большая часть работы по обработке очереди происходит на Frontend-серверах. Frontend-сервера принимают входящие сообщения по SMTP и, либо ретранслируют их далее, либо, при помощи специального протокола внутрикластерного взаимодействия, доставляют их локальным пользователям на Backend-сервера, не помещая их в очереди Backend-серверов.

Некоторое количество сообщений может создаваться непосредственно на Backend-серверах.

Такие сообщения включают в себя:

  • созданные в веб-интерфейсе пользователя, XIMSS, AirSync, CalDAV сессии;

  • сообщения, поступившие через MAPI-коннектор и механизмы XTND XMIT протокола POP3;

  • сообщения, созданные правилами уровня пользователя;

  • сообщения, полученные модулем RPOP;

  • сообщения, поступившие через модуль PIPE.

Возможно, по различным причинам вы захотите избежать обработки на Backend-серверах очередей сообщений, например:

  • отсутствие соединения с Интернет на Backend-серверах;

  • необходимость использования дополнительных модулей по борьбе со спамом и с вирусами, установленными только на Frontend-серверах;

  • недостаток вычислительной мощности и/или дискового пространства на Backend-серверах.

Вы также можете обрабатывать очереди сообщений только на некоторых из Frontend-серверов.

Чтобы указать опции обработки очереди, откройте через веб-интерфейс администратора область «установки» и выберите на странице «общее» ссылку «кластеры». Найдите панель обработки очереди:

Отправление сообщений

Эта настройка указывает, каким образом сформированные или полученные сообщения электронной почты передаются в компонент «установка в очередь» для дальнейшей доставки.

 

Локально

Сообщения передаются в компонент «установка в очередь» того же сервера (это обычный, односерверный режим обработки).

 

Локально для других

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

 

Удалённо

Сообщения передаются тому члену кластера, у которого эта настройка имеет значение «локально для других». Содержимое временных файлов сообщений (конверт сообщения и само сообщение) отправляется другому члену кластера по специальному протоколу через порт SMTP. Если сообщение не удаётся отправить (сервер не смог соединиться с членами кластера или передача файла сообщения закончилась неуспешно) то, чтобы сообщение не было потеряно, оно поступает в очередь сервера:

Автоматически

  • если этот сервер не входит в динамический кластер, так же, как «локально»

  • если этот сервер является Frontend-ом динамического кластера, так же, как «локально для других»

  • если этот сервер является Backend-ом динамического кластера, так же, как «удалённо», если есть другие члены динамического кластера настроенные как «локально для других», если нет — так же, как «локально»

 

Журнал удалённой отправки

Используйте эту настройку, чтобы указать, какая информация, сохраняемая в журнале работы сервера, будет записываться в журнал о передаче сообщений на удалённый (другой) сервер.
Эти записи имеют метку «SUBMIT».