
Eu tenho um cenário onde tenho:
- Servidor Postfix M (armazena correio)
- Servidor Postfix A (retransmite e-mail usando conexão de internet IA)
- Servidor Postfix B (retransmite correio usando conexão de internet IB)
- Servidor DNS interno (faz resolução de nomes locais)
Os servidores M, A e B residem na mesma rede LAN, o que significa que mesmo quando as conexões de internet IA e IB caírem, a comunicação entre M&A e M&B não cairá necessariamente, então não posso usar a opção smtp_fallback_relay do Postfix por esta.
Agora, preciso que o servidor M envie apenas para o servidor que terá conexão com a internet no momento da retransmissão para ele.
Como podemos fazer isso melhor?
O que tentamos
Meu colega e eu compartilhamos duas alternativas (não exaustivas):
- Crie o script para colocar os mails de retransmissão off-line da "LAN" na percepção do mailstore (M), para que ele retorne ao seu retransmissor substituto
- Crie um script no servidor DNS (D) {ou em hosts etc em M, o que for melhor, mas DNS essencial para M}, que altere mail-relay.ourdomain.com para apontar para o servidor mail relay A ou B que tem internet acesso com um TTL pequeno o suficiente (digamos 5 segundos)
Ambas as opções funcionam na maior parte, o que preciso é por que não funcionariam (algum perigo de usar uma delas)?
Responder1
O problema para qualquer uma das abordagens écondição de corrida, ou seja, sua internet estava funcionando A ou B reconhece a entrega bem-sucedida para eles, mas, quando A ou B tenta encaminhá-la para a internet, a conexão desaparece.
O cenário acima foi possível porque o email flui no postfix.
Email from client ---> Received ---> Queued -> Sent
O Postfix no servidor A enviará uma confirmação a M de que o e-mail foi aceito por A quando o e-mail estiver na fila. Portanto, é possível que quando o postfix tente enviar um e-mail para a internet, a conexão seja cortada e seu e-mail fique na fila até que a conexão seja restabelecida.
Nota: Esse comportamento era esperado no MTA típico. Lembre-se de que o SMTP éarmazenar e encaminharprotocolo.