Назад | Перейти на главную страницу

Укажите постфикс нескольких транспортных направлений

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

Я нашел "решения" этой проблемы, которые здесь не работают:

  1. скрытая копия :: это не решит проблему, если я попытаюсь отправить на тот же адрес другим способом
  2. создать новый протокол (как это) :: это решение, я думаю, иллюстрирует проблему в том, что постфикс ДЕЙСТВИТЕЛЬНО допускает резервные транспорты, но только в глобальном масштабе (читайте: отправлять всю почту независимо от получателя на следующие серверы, если основной транспорт получателей не работает). Новые протоколы в моей настройке непрактичны, так как у меня может быть ретранслируется много доменов.
  3. Без разницы это :: Это кажется to говорит о том, чего я пытаюсь достичь, но опять же, у меня такое чувство, что это предназначено только для глобальных возможностей. Это также сбивает с толку, поскольку, похоже, подразумевается, что вы можете указать несколько транспортов, но, конечно, Postfix не будет иметь ничего из этого, если вы попытаетесь:

    Используя несколько строк:

    postmap: warning: duplicate entry
    

    Используя ту же строку:

    fatal: garbage after "]" in server description
    

    Не знаю, может я просто неправильно понимаю синтаксис или что-то в этом роде.

  4. DNS :: Некоторые предложения включают настройку, например, внутреннего DNS, и настройку записей MX для указания на несколько пунктов назначения. Это тоже непрактичное решение.

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

Кто-нибудь знает, верно ли мое предположение (в этом случае, как я могу это настроить?) Или неверно (в этом случае вы нашли масштабируемое решение?)?

###РЕДАКТИРОВАТЬ###

Чтобы объяснить мою настройку, это фильтр входящего спама (среди прочего), так что домен, который его использует, будет устанавливать свои записи MX так, чтобы они указывали на этот сервер для фильтрации почты, а затем после фильтрации перенаправляет его на транспорт назначения ( с). Из-за этого простой запрос Postfix на поиск записей MX в DNS не сработает, потому что в результате он просто получит себя.

Предпосылка в вашем примечании редактирования неверна. Протокол MX / дерево решений / все, что создано, чтобы справиться с этим.

Чтобы объяснить мою настройку, это фильтр входящего спама (среди прочего), так что домен, который его использует, будет устанавливать свои записи MX так, чтобы они указывали на этот сервер для фильтрации почты, а затем после фильтрации перенаправляет его на транспорт назначения ( с). Из-за этого простой запрос Postfix на поиск записей MX в DNS не сработает, потому что в результате он просто получит себя.

Запись MX работает так, чтобы дать что-то вроде

MX    10 mail.example.com.
MX    20 backupmx.example.com.
MX    30 mail.virusco.com.
MX    40 backupmx.virusco.com.

mail.example.com настроен на прием входящих SMTP-подключений только от 3 других серверов (подумайте о брандмауэре и подключении к порту 25). В backupmx.example.com сервер настроен на прием почты только с двух серверов virusco.com. два сервера virusco.com настроены для приема почты со всего мира в качестве серверов MX для example.com

Мой сервер - foo.org - не может получить доступ к mail.example или backupmx.example (по дизайну конфигурации), поэтому он доставляет почту на mail.virusco, который настроен на пересылку почты на mail.example через обычное решение SMTP MX.

Это означает, что если mail.example не работает И backupmx.example не работает, mail.virusco просто удерживает почту и пытается снова «позже»

Если mail.virusco ненадолго не работает, почта отправляется на backupmx.virusco, сканируется, а затем backupmx.virusco следует дереву решений MX и пытается доставить почту в mail.example, backupmx.example, mail.virusco в указанном порядке и если ни один из них не будет успешным, он тоже будет сидеть на почте "некоторое время", а затем повторить доставку.

Вы даже можете полностью удалить backupmx.example из системы, и он по-прежнему будет работать в этом режиме. MX-сервер с более низким приоритетом (более высокое значение) будет пытаться доставить на сервер с наивысшим приоритетом (с наименьшим номером), пока не достигнет себя, после чего он сядет на него и попытается повторить попытку позже.

Postfix этого не поддерживает. Пока этого не произойдет, настройте свой транспорт так, чтобы он указывал на балансировщик нагрузки smtp или lmtp.