Postfix: Auf SMTP-Relay zurückgreifen, das über Internetzugang verfügt

Postfix: Auf SMTP-Relay zurückgreifen, das über Internetzugang verfügt

Ich habe ein Szenario, in dem ich:

  1. Postfix-Server M (Speichert E-Mails)
  2. Postfix-Server A (leitet E-Mails über die Internetverbindung IA weiter)
  3. Postfix-Server B (leitet E-Mails über die Internetverbindung IB weiter)
  4. Interner DNS-Server (führt die lokale Namensauflösung durch)

Die Server M, A und B befinden sich im selben Netzwerk-LAN. Das bedeutet, dass selbst wenn die Internetverbindungen IA und IB abbrechen, die Kommunikation zwischen M & A und M & B nicht unbedingt abbricht. Daher kann ich hierfür nicht die Option „smtp_fallback_relay“ von Postfix verwenden.

Jetzt muss Server M nur an den Server übermitteln, der zum Zeitpunkt der Weiterleitung über eine Internetverbindung verfügt.

Wie können wir das am besten machen?

Was wir versucht haben

Mein Kollege und ich haben zwei Alternativen genannt (nicht erschöpfend):

  1. Erstellen Sie das Skript, um die Relay-Mails aus dem "LAN" in der Wahrnehmung des Mailstores (M) offline zu nehmen, so dass dieser auf sein Fallback-Relay zurückgreift.
  2. Erstellen Sie ein Skript auf dem DNS-Server (D) {oder in etc.-Hosts auf M, je nachdem, was besser ist, aber DNS für M ist unerlässlich}, das mail-relay.ourdomain.com so ändert, dass es auf den Mail-Relay-Server A oder B verweist, der über Internetzugang mit einer ausreichend kleinen TTL (sagen wir 5 Sekunden) verfügt.

Beide Optionen funktionieren größtenteils. Ich muss wissen, warum sie nicht funktionieren (gibt es Gefahren bei der Verwendung einer von beiden)?

Antwort1

Das Problem bei beiden Ansätzen istRennbedingungen, d. h. Ihr Internet hat funktioniert. A oder B haben ihnen die erfolgreiche Zustellung bestätigt, aber als A oder B versucht haben, es an das Internet weiterzuleiten, war die Verbindung unterbrochen.

Das obige Szenario war aufgrund der Art und Weise möglich, wie E-Mails in Postfix fließen.

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

Postfix auf Server A sendet eine Bestätigung an M, dass die E-Mail von A angenommen wurde, wenn die E-Mail in die Warteschlange gestellt wurde. Wenn Postfix also versucht, eine E-Mail an das Internet zu senden, wird die Verbindung möglicherweise unterbrochen und Ihre E-Mail wird in die Warteschlange gestellt, bis die Verbindung wiederhergestellt ist.

Hinweis: Dieses Verhalten war bei einem typischen MTA zu erwarten. Denken Sie daran, dass SMTPSpeichern und WeiterleitenProtokoll.

verwandte Informationen