Postfwd auf verteilten Servern

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Postfwd auf verteilten Servern

Stephan Jacob
Hallo,

ich habe eine "Architektur-Frage" zum Einsatz von Posftwd.

Zunächst das Szenario:
Ich habe 3 Mail-Relays die identisch konfiguriert sind und von den Clients aus mynetworks Mails entgegen nehmen. Wir haben die 3
Relay-Server unter einem DNS Alias zusammengefasst, so dass Round-Robin erfolgt, bzw. bei Ausfall eines Relays halt von den Clients
eines der anderen Relays kontaktiert wird. Auf den Clients geben wir als Relayhost dann immer den DNS Eintrag als Server an.

Jetzt möchte ich, zu bestimmten Uhrzeiten die Anzahl der Mails, die ein Client nach extern senden kann, beschränken. Dazu kam mir
Postfwd in den Sinn, da ich auf einem Submission Mailserver Postfwd bereits einsetze, um genau solch eine Konfiguration zu fahren.

Nun mein Problem/meine Fragen:
Wenn ich auf jeden der 3 Server postfwd lokal installiere, dann wissen die Postfd's ja nichts voneinander und synchronisieren auch
nicht ihren "counter". D.h. wenn ich den Versand auf 10 (fiktiver Wert in diesem Beispiel) Mails beschränken  will und ich bei jeder
der 3 lokalen Instanzen von postfwd die 10 konfiguriere, wird der Client irgendwann von Server 1 abgewiesen, weil das Limit erreicht
ist und geht dann entsprechend des DNS-Eintrages zu Server 2, wo er ggf. noch Kontingent hat. D.h. im Beispiel würden 3 mal so viele
Mails versendet, wie im Limit jeder einzelnen Postfwd Instanz definiert ist. (Ich plane bei Erreichen des Limits die Verbindung mit
einem temp. Fehler zu beenden, nicht mit einem permanenten).

Kann man irgendwie die "zählstände" der 3 Postfwd Instanzen "synchronisieren"?

Ich habe dann überlegt den Posftwd nicht lokal zu installieren, sondern zentral. Da habe ich aber Bauchschmerzen, dass wenn der
zentrale Server mal abschmiert (oder die Netzwerkverbindung dorthin), dann liefern die 3 Relays keine Mails aus und antworten mit
"Server Confiugration Problem". D.h. ich müsste diese zentrale Postfwd Komponente wieder ausfallsicher machen (also auch auf mind. 2
Server verteilen). Dann habe ich aber wieder das Problem, dass die Posfwd Instanzen wieder die "Zählstände" austauschen müssten.

Könnt ihr mein Problem verstehen?
Kann man verschiedene Posftwd-Instanzen zum Abgleich ihrer Datenbank der Counts je Client bewegen?
Was wäre in meinem Szenario eine clevere Vorgehensweise?
Gibt es ggf. eine andere Möglichkeit (außer postfwd) eine Mengenbeschränkung über mehrere Server vorzunehmen?


VG

Stephan

Stephan Jacob

Otto-von-Guericke Universität
Universitätsrechenzentrum (URZ)

Universitätsplatz 2
Gebäude 26 – 035

39106 Magdeburg

Tel.: 0391 – 67 58572
Fa:    0391 – 11134



smime.p7s (8K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Postfwd auf verteilten Servern

Florian Pritz
On 06.12.2017 10:37, Stephan Jacob wrote:
> Wir haben die 3 Relay-Server unter einem DNS Alias zusammengefasst, so dass Round-Robin erfolgt
>
> im Beispiel würden 3 mal so viele Mails versendet, wie im Limit jeder einzelnen Postfwd Instanz definiert ist

Die einfachste und IMHO ausreichende Lösung wäre ja jetzt, dass man die
DNS TTL runterdreht, das window vom Limit hoch und dann das Limit auf
die 3 Server aufteilt. Also zum Beispiel, für 100 mails pro Stunde dann
pro Host ein Limit von 34, eine DNS TTL von 60 Sekunden und natürlich
ein Window von einer Stunde. Wenn dein Nutzer jetzt nicht grade alle
Mails auf einmal schickt kommt er bei allen Relays halbwegs gleich oft
vorbei und fertig.

Wenn dein Limit hoch genug ist, dass es da etwas Spielraum gibt solltest
du wenige Probleme haben. Oder hast du einen Grund warum es wichtig ist,
dass das Limit ganz genau eingehalten wird bzw warum das Limit so
niedrig sein muss, dass ein Aufteilen nicht geht?

Florian


signature.asc (875 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

AW: Postfwd auf verteilten Servern

Stephan Jacob
OK, das ist ein interessanter Ansatz.

Also die Limits müssen nicht exakt eingehalten werden. Wenn Quasi durch die Gleichverteilung und die ungünstige Verschiebung des Zeitfensters mal etwas mehr als die im Beispiel 100 Mails pro Stunde gesendet werden ist das nicht so tragisch.
Den einzigen Nachteil an der Gleichverteilung des Gesamt-Limits auf 3 einzelne lokale Limits sehe ich nur bei Ausfall eines Servers, da dann das Gesamtkontingent auf 2/3 zusammenschrumpft.  Allerdings ist uns so ein Ausfall Fall bei uns zum Glück so selten, dass dieses Risiko sicher tragbar ist.

Ich werde das mal einrichten und mal mit warn_if_reject beobachten, ob es bei mir so in Ordnung ist.

Danke!

Stephan

Stephan Jacob

Otto-von-Guericke Universität
Universitätsrechenzentrum (URZ)

Universitätsplatz 2
Gebäude 26 – 035

39106 Magdeburg

Tel.: 0391 – 67 58572
Fa:    0391 – 11134


-----Ursprüngliche Nachricht-----
Von: Postfixbuch-users [mailto:[hidden email]] Im Auftrag von Florian Pritz
Gesendet: Mittwoch, 6. Dezember 2017 18:56
An: [hidden email]
Betreff: Re: Postfwd auf verteilten Servern

On 06.12.2017 10:37, Stephan Jacob wrote:
> Wir haben die 3 Relay-Server unter einem DNS Alias zusammengefasst, so dass Round-Robin erfolgt
>
> im Beispiel würden 3 mal so viele Mails versendet, wie im Limit jeder einzelnen Postfwd Instanz definiert ist

Die einfachste und IMHO ausreichende Lösung wäre ja jetzt, dass man die
DNS TTL runterdreht, das window vom Limit hoch und dann das Limit auf
die 3 Server aufteilt. Also zum Beispiel, für 100 mails pro Stunde dann
pro Host ein Limit von 34, eine DNS TTL von 60 Sekunden und natürlich
ein Window von einer Stunde. Wenn dein Nutzer jetzt nicht grade alle
Mails auf einmal schickt kommt er bei allen Relays halbwegs gleich oft
vorbei und fertig.

Wenn dein Limit hoch genug ist, dass es da etwas Spielraum gibt solltest
du wenige Probleme haben. Oder hast du einen Grund warum es wichtig ist,
dass das Limit ganz genau eingehalten wird bzw warum das Limit so
niedrig sein muss, dass ein Aufteilen nicht geht?

Florian


smime.p7s (8K) Download Attachment