Postfix: Retorne ao redirecionamento SMTP que possui acesso à Internet

3

Eu tenho um cenário em que tenho:

  1. Servidor Postfix M (Armazena correio)
  2. Servidor Postfix A (retransmite mensagens usando a conexão de internet IA)
  3. Servidor Postfix B (retransmite mensagens usando a conexão de internet IB)
  4. Servidor DNS interno (faz resolução de nome local)

O servidor M, A e B reside em uma mesma rede LAN, o que significa que, mesmo quando as conexões de internet IA e IB caem, a comunicação entre M & A e M & B não vai necessariamente cair, então eu não posso usar a opção smtp_fallback_relay do Postfix para isso.

Agora, preciso do servidor M para enviar apenas para o servidor que terá conexão com a Internet no momento da transmissão.

Como podemos fazer isso melhor?

O que tentamos

Meu colega e eu compartilhamos duas alternativas (não exaustivas):

  1. Crie o script para retirar os retransmissores de e-mails da "LAN" na percepção do mailstore (M), para que ele retorne à retransmissão de retorno
  2. Crie um script no servidor dns (D) {ou em hosts etc em M, o que for melhor, mas o DNS essencial para M}, que altera mail-relay.ourdomain.com para apontar para o servidor de retransmissão de email A ou B que tem acesso à internet com um TTL pequeno o suficiente (digamos 5 segundos)

Ambas as opções funcionam na maior parte do tempo, o que eu preciso é por que elas não funcionariam (algum perigo de usar uma delas)?

    
por Gift Rise 24.08.2015 / 12:45

1 resposta

1

O problema para ambas as abordagens é condição de corrida , ou seja, sua internet estava funcionando A ou B reconhecem a entrega bem-sucedida para eles, mas quando A ou B tentam encaminhá-la à Internet a conexão desapareceu .

O cenário acima foi possível porque a forma como o email flui no postfix.

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

O postfix no servidor A enviará uma confirmação para M de que o email foi aceito por A quando o email foi enfileirado. Assim, é possível que, quando postfix tentar enviar e-mail para a internet, a conexão seja cortada e seu e-mail seja enfileirado até que a conexão esteja de volta.

Nota: Este comportamento era esperado no MTA típico. Lembre-se de que o SMTP é o protocolo store and forward .

    
por 26.08.2015 / 05:16