Логи транспорта Exchange 2013: CAS и MBX вместе, Edge отдельно

MapiExceptionNetworkError: Unable to mount database

www.microsoft.com

В статье рассмотрен анализ логов потока обработки почты в организации Exchange 2013 в конфигурации, когда CAS и MBX вместе, Edge отдельно — то есть роли CAS и MBX установлены на одном сервере внутри организации, а отдельно в DMZ развернут пограничный транспортный сервер Edge, который служит ретранслятором входящей/исходящей почты.

Пришло время перейти от теории к практике. А именно — от разжевывания принципа работы служб транспортного конвейера к анализу лог-файлов на разных топологиях Exchange 2013. В статье Поток обработки почты при разной топологии Exchange 2013 я рассматривал некоторые варианты комбинаций ролей, а сейчас намерен подкрепить свои чисто теоретические предположения (разумеется основанные на официальной документации) анализом логов передачи и получения сообщений.

В этой статье я рассматриваю вариант организации ролей Exchange 2013 , когда MBX и CAS располагаются на одном сервере и все сообщения идут через пограничный транспортный сервер, подписанный на сайт AD:

mailflow 02-1

Вариант справа нас особо не интересует, он изображает движение сообщений между внутренними клиентами. Рассматриваемый в этой статье вариант более интересный — тот что слева на рисунке.

Эта статья является проверкой теоретических сведений, рассмотренных ранее в целом ряде статей про транспортный конвейер Exchange 2013:

А также отдельно статьи об управлении логами этих служб:

Не забывайте об официальной документации.


Найти больше информации по настройке и администрированию Exchange 2013 на моем блоге вы сможете в основной статье тематики — Exchange 2013 — Установка, настройка, администрирование.


Конфигурация — CAS и MBX вместе, Edge отдельно

Начнем с исходящих сообщений, которые идут от любого внутреннего отправителя из организации Exchange 2013 на любой внешний сервер (пусть это будет mail.ru с моим адресом электронной почты).

от Mailbox Transport к Transport

Любое отправляемое сообщение должно быть сначала извлечено из почтового ящика отправителя. За это отвечает служба Microsoft Exchange Mailbox Transport Submission, которая является частью Транспортной службы почтовых ящиков роли MBX (подробнее в Служба Exchange 2013 Mailbox Transport). Логи этой службы находятся в каталоге (Логи Exchange 2013 Mailbox Transport):

%ExchangeInstallPath%TransportRoles\Logs\Mailbox\ProtocolLog\SmtpSend\Submission

Чтобы было лучше понятно, изобразим процесс передачи сообщения от службы к службе:

CAS и MBX вместе, Edge отдельно 01

Отправная точка обведена в красный кружок, направление указано стрелкой — в нашем случае идет отправка от Транспортной службы почтовых ящиков в Транспортную службу.

Я отправил письмо на адрес e.s.vasilyev(собачка)mail.ru, а потому буду искать в логах информацию по вхождению этого адреса. Мне также известно, что за отправку сообщений из почтовых ящиков отвечает соединитель отправки Соединитель отправки прокси почтовых ящиков (Mailbox Proxy Send Connector). Смотрим что у нас есть:

2016-06-26T12:52:26.527Z,Соединитель отправки прокси почтовых ящиков,08D39A0B59717017,2,192.168.200.212:56790,192.168.200.212:2525,<,"220 EXCH02.corp.bissquit.com Microsoft ESMTP MAIL Service ready at Sun, 26 Jun 2016 15:52:26 +0300",
2016-06-26T12:52:26.527Z,Соединитель отправки прокси почтовых ящиков,08D39A0B59717017,3,192.168.200.212:56790,192.168.200.212:2525,>,EHLO EXCH02.corp.bissquit.com,

Чтобы не переполнять статью лишней информацией, я максимально сократил список всех сообщений, оставив только два (если интересно, то вы можете скачать лог передачи сообщения от службы Mailbox Transport к Transport — (CAS+MBX) — (Edge) — 1 — from mailbox to transport).

Как можно заметить, сервер передает сообщение сам себе на порт 2525. Все верно, так и должно быть, двигаемся дальше.

к Transport от Mailbox Transport

В предыдущем разделе мы убедились, что Транспортная служба почтовых ящиков направляет сообщение Транспортной службе, которая обработает сообщение и передаст его дальше (Служба Exchange 2013 Transport). Но мы рассмотрели только логи отправки службы Mailbox Transport, а теперь нужно проверить как идет прием сообщения, заглянув в логи Транспортной службы, располагающиеся в каталоге (Логи Exchange 2013 Transport):

%ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpReceive

В данном случае мы рассматриваем процесс приема сообщения Транспортной службой сервера MBX:

CAS и MBX вместе, Edge отдельно 02

Транспортная служба принимает сообщение от Транспортной службы почтовых ящиков. Все происходит на одном и том же сервере.

Логи ищем также по вхождению адреса, на которое сообщение было отправлено. За получение отвечает соединитель Default <Server Name>:

2016-06-26T12:52:26.527Z,EXCH02\Default EXCH02,08D39A0AA2194246,2,192.168.200.212:2525,192.168.200.212:56790,>,"220 EXCH02.corp.bissquit.com Microsoft ESMTP MAIL Service ready at Sun, 26 Jun 2016 15:52:26 +0300",
2016-06-26T12:52:26.527Z,EXCH02\Default EXCH02,08D39A0AA2194246,3,192.168.200.212:2525,192.168.200.212:56790,<,EHLO EXCH02.corp.bissquit.com,

Порт приема должен быть точно такой же, на который было отправлено сообщение в предыдущем разделе, то есть 2525. Так оно и есть. Из этих логов (полную версию которых можете скачать тут — (CAS+MBX) — (Edge) — 2 — to transport from mailbox) можно сделать вывод, что Транспортная служба действительно приняла сообщение от Транспортной службы почтовых ящиков. Можно переходить к следующему шагу.

от Transport к Edge Transport

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

%ExchangeInstallPath%TransportRoles\Logs\Hub\ProtocolLog\SmtpSend

Приняв сообщение, Транспортная служба должна в итоге отправить его дальше и в нашем случае сообщение пойдет в Транспортную службу на сервере Edge:

CAS и MBX вместе, Edge отдельно 03

Взаимодействие уже идет между разными серверами.

Ищем нужные строчки логов по вхождению адреса получателя. За отправку отвечает соединитель Отправляющий соединитель SMTP Intra-Organization (Intra-Organization SMTP Send Connector):

2016-06-26T12:52:31.020Z,ќтправл¤ющий соединитель SMTP Intra-Organization,08D39A0AA2194247,2,192.168.200.212:56804,172.16.0.1:25,<,"220 EXCH01.corp.bissquit.com Microsoft ESMTP MAIL Service ready at Sun, 26 Jun 2016 15:52:47 +0300",
2016-06-26T12:52:31.020Z,ќтправл¤ющий соединитель SMTP Intra-Organization,08D39A0AA2194247,3,192.168.200.212:56804,172.16.0.1:25,>,EHLO EXCH02.corp.bissquit.com,

(с кодировкой что-то было не то). По адресам серверов и их именам становится понятно, что сообщение уже не бродит внутри одного и того же сервера от службы к службе, а оно направилось совсем на другой сервер на порт 25 (полный текст логов сообщения — (CAS+MBX) — (Edge) — 3 — from transport to edge).

к Edge Transport от Transport

На предыдущем этапе сообщение было отправлено от Транспортной службы на сервере MBX к Транспортной службе сервера Edge (Служба Exchange 2013 Edge Transport) и мы убедились в этом посмотрев логи. Теперь нужно проверить как идет процесс приема на стороне Edge. Расположение логов Транспортных служб ролей MBX и Edge немного отличается и в случае Edge, логи приема мы сможем найти в каталоге (Логи Exchange 2013 Edge Transport):

%ExchangeInstallPath%TransportRoles\Logs\Edge\ProtocolLog\SmtpReceive

В данном случае рассматриваем прием сообщений от сервера с ролью MBX на сервер Edge:

CAS и MBX вместе, Edge отдельно 04

Также просматриваем логи по вхождению адреса получателя. На сервере Edge за прием отвечает соединитель Default internal receive connector <Server Name>:

2016-06-26T12:52:47.592Z,EXCH01\Default internal receive connector EXCH01,08D39AB555598ADF,2,172.16.0.1:25,192.168.200.212:56804,>,"220 EXCH01.corp.bissquit.com Microsoft ESMTP MAIL Service ready at Sun, 26 Jun 2016 15:52:47 +0300",
 2016-06-26T12:52:47.592Z,EXCH01\Default internal receive connector EXCH01,08D39AB555598ADF,3,172.16.0.1:25,192.168.200.212:56804,<,EHLO EXCH02.corp.bissquit.com,

Сообщение принято на порт 25 с сервера EXCH02, так и должно быть (полный текст логов передачи сообщения смотрите в файле — (CAS+MBX) — (Edge) — 4 — to edge from transport).

от Edge Transport в интернет

Финальная задача — отправка почты в интернет на целевой сервер (у меня это mail.ru). Поскольку у нас в инфраструктуре присутствует сервер Edge, то он будет единственной точкой входа и выхода и сообщение уйдет на нужный адрес именно от него, в чем мы сможем убедиться конечно же из лог-файлов, расположенных в папке исходящих сообщений протокола SMTP:

%ExchangeInstallPath%TransportRoles\Logs\Edge\ProtocolLog\SmtpSend

Идет процесс отправки сообщения от Транспортной службы сервера Edge к внешним почтовым серверам:

CAS и MBX вместе, Edge отдельно 05

За отправку отвечает соединитель, который был создан автоматически в процессе создания подписки Edge на сайт AD и его название — EdgeSync — <Site Name> to Internet:

2016-06-26T12:53:11.845Z,EdgeSync - Default-First-Site-Name to Internet,08D39AB555598AE0,2,172.16.0.1:4713,94.100.180.150:25,<,220 Mail.Ru ESMTP,
 2016-06-26T12:53:11.845Z,EdgeSync - Default-First-Site-Name to Internet,08D39AB555598AE0,3,172.16.0.1:4713,94.100.180.150:25,>,EHLO mail.bissquit.com,

Из логов видно, что сообщение ушло на сервер Mail.ru и это как раз то, что нам и было нужно (как всегда полная версия логов передачи сообщение — (CAS+MBX) — (Edge) — 5 — from edge to internet). Пусть вас не смущает локальный адрес отправителя, ведь сервер Edge стоит за Nat’ом в демилитаризованной зоне вдали от локальной сети предприятия, все как и рекомендуют.

comments powered by HyperComments