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

Постфикс: возврат к реле SMTP, имеющему доступ в Интернет

У меня есть сценарий, в котором у меня есть:

  1. Сервер Postfix M (хранит почту)
  2. Postfix Server A (ретранслирует почту через интернет-соединение IA)
  3. Postfix Server B (ретранслирует почту через интернет-соединение IB)
  4. Внутренний DNS-сервер (выполняет локальное разрешение имен)

Сервер M, A и B находятся в одной и той же сети LAN, это означает, что даже когда интернет-соединения IA и IB разрываются, связь между M & A и M & B не обязательно прерывается, поэтому я не могу использовать опцию Postfix smtp_fallback_relay для этого.

Теперь мне нужно, чтобы сервер M отправлял только на сервер, который будет иметь подключение к Интернету во время ретрансляции на него.

Как мы можем сделать это лучше всего?

Что мы пробовали

Мы с коллегой поделились двумя альтернативами (не исчерпывающими):

  1. Создайте сценарий, чтобы перевести почту ретранслятора в автономный режим из «LAN» в восприятии почтового хранилища (M), чтобы он вернулся к своему ретранслятору возврата
  2. Создайте сценарий на DNS-сервере (D) {или на других хостах на M, что лучше, но необходимый DNS для M}, который изменяет mail-relay.ourdomain.com, чтобы он указывал на почтовый ретранслятор сервера A или B, у которого есть Интернет доступ с достаточно маленьким TTL (скажем, 5 секунд)

Оба эти варианта работают по большей части, мне нужно, почему они не будут работать (есть ли опасность использовать один из них)?

Проблема для обоих подходов гоночное состояние, то есть ваш Интернет работал. A или B подтверждают успешную доставку им, но, когда A или B пытались переслать его в Интернет, соединение пропало.

Вышеупомянутый сценарий был возможен из-за того, как электронная почта течет в postfix.

Email from client ---> Received ---> Queued -> Sent

Postfix на сервере A отправит подтверждение M, что письмо было принято A, когда электронное письмо было поставлено в очередь. Таким образом, возможно, когда postfix попытается отправить электронное письмо в Интернет, соединение прервется, и ваша электронная почта будет поставлена ​​в очередь, пока соединение не будет восстановлено.

Примечание. Такое поведение было ожидаемым в типичном MTA. Помните, что SMTP хранить и пересылать протокол.