Exchange 2016 и 2019. Долго ходят письма между серверами в федерации.

Nik L 40 Баллы репутации
2024-09-01T15:31:37.7333333+00:00

Добрый день. Спустя некоторе время нам все же удалось создать доверие федерации между двумя разными доменами. Появилась другая проблема.

Появилась задержка между отправкой и получением писем именно между доменами в федерации. В федерации есть домен domain1.com на Exchange 2016 и domain2.com на Exchange 2019.

При отправки письма из domain1.com в domain2.com время задержки между отправкой и отправлением может достигать примерно 30 минут. Данная проблема наблюдается в обе стороны и только после длительного простоя или "молчания" серверов. Например после ночи или после выходных, т.е. тогда, когда у людей выходной и почтой никто не пользуется.

Утром если отправить первое письмо из domain1 в domain2, письмо может идти почти 30 минут, однако когда оно дойдет, последующие письма буду приходить моментально опять до какого-то момента. Пока сопоставляю это с ночью или выходными. При этом даже после отправки письма с domain1 на domain2 и удачной его доставки, c domain2 если отправить первое письмо - будет так же задержка.

В этот момент письма падают в папку "Отправленные", но в очереди отправки в Queque Vieawer они не появляются с такой же задержкой. После того, как письмо появляется в очереди отправки - оно почти сразу уходит и тут же приходит во второй домен.

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

На внутренних DNS серверах никаких записей о партнерах нет, т.е. сервера Exchange ищут информацию в интернете.

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

Между серверами domain1 и domain2 существует GRE туннель, однако это для работы разных офисов и все маршруты самих серверов смотрят в интернет

Подскажите, с чем это может быть связано и как можно диагностировать проблему данную?

Exchange Server
Exchange Server
Семейство программного обеспечения для обмена сообщениями и совместной работы с клиентом и сервером Майкрософт.
Вопросы: 27
Microsoft Exchange
Microsoft Exchange
Программное обеспечение для обмена сообщениями и совместной работы Майкрософт.
Вопросы: 15
Комментариев: 0 Без комментариев
Голосов: {count}

Ответы: 3

Сортировать по: Наиболее полезные
  1. Petko Krushev (Concentrix Corporation) 1,060 Баллы репутации Поставщик Майкрософт
    2024-09-02T11:46:44.2866667+00:00

    Привет,

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

    Проверьте когда почта идет быстро и после длительного простоя:

    1. Как ваши серверы разрешают DNS-запросы для друг друга. Убедитесь, что DNS-записи обновляются своевременно и нет проблем с их разрешением.
    2. Попробуйте вручную выполнить nslookup или ping с одного сервера на другой сразу после ночного простоя, чтобы увидеть, есть ли задержка в DNS-разрешении.

    Для решения проблемы, попробуйте:

    1. Ручное кэширование DNS:
      • Настройте кэширование DNS на ваших серверах так, чтобы записи для партнёрских доменов кэшировались дольше, если это возможно.
    2. Создание статических маршрутов DNS:
      • Создайте статические записи для доменов-партнёров на внутренних DNS-серверах, чтобы избежать зависимостей от интернета.

    Если Вам помог ответ, пожалуйста помечайте его как "Ответ". Заранее спасибо!

    Комментариев: 0 Без комментариев

  2. Nik L 40 Баллы репутации
    2024-09-02T15:31:10.13+00:00

    Прописал на внутренних DNS серверах записи, где указал внешние ип адреса доменов mail.domain1.com
    Сейчас заметил, что проблема осталась. При этом nslookup показывает верный адрес с проблемного сервера. Пинг так же проходит как надо, через наружний ип адрес. Отправил письмо, а оно в очереди не появляется даже :-(

    Комментариев: 0 Без комментариев

  3. Petko Krushev (Concentrix Corporation) 1,060 Баллы репутации Поставщик Майкрософт
    2024-09-05T05:10:15.23+00:00

    В таком случае откройте Event Viewer и проверьте логи:

    • Application and Services Logs -> Microsoft -> Exchange -> Mailbox -> Transport.

    Проверьте состояние очередей сообщений на сервере:

    Get-Queue -Server <server_name>
    

    Проверьте, что SMTP подключение работает правильно:

    telnet <server_address> 25
    

    Убедитесь, что маршруты к серверу назначения правильные и проходят через нужные узлы. Для этого можно использовать команды tracert и pathping.

    tracert mail.domain2.com
    

    Проверьте состояние транспортных служб на серверах Exchange:

    Get-Service MSExchangeTransport | Select-Object Name, Status
    

    Убедитесь, что служба работает корректно. Если необходимо, перезапустите службу:

    Restart-Service MSExchangeTransport
    

    Используйте команду Test-MailFlow, чтобы проверить доставку сообщений между серверами:

    Test-MailFlow -TargetMailboxServer <target_server>
    

    Проверьте настройки ExternalDNS на Exchange серверах, чтобы убедиться, что серверы используют правильные DNS для внешней резолюции.

    Get-TransportService | Select-Object Name, ExternalDNSAdapterEnabled, ExternalDNSServers
    

    Если необходимо, задайте конкретные DNS серверы:

    Set-TransportService -Identity <server_name> -ExternalDNSServers <dns_server_ip>
    

    Используйте команду для поиска конкретного сообщения в журнале:

    Get-MessageTrackingLog -Sender "<sender_email>" -Recipients "<recipient_email>" -Start "09/01/2024 00:00:00" -End "09/02/2024 00:00:00"
    

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

    Get-MessageTrackingLog -MessageId "<message_id>" -Server <server_name>
    

    Используйте команду Test-SmtpConnectivity, чтобы проверить подключение к SMTP на обоих серверах:

    Test-SmtpConnectivity -Identity <server_name> -MailboxCredential (Get-Credential) -UseSsl $true
    
    Комментариев: 0 Без комментариев

Ваш ответ

Автор вопроса может помечать ответы как принятые. Это позволяет пользователям узнать, что ответ помог решить проблему автора.