[Postfixbuch-users] Large Scale 100.000+ User

Patrick Ben Koetter p at state-of-mind.de
Mo Dez 17 23:49:10 CET 2007


* stepken <stepken at web.de>:
> Patrick Ben Koetter schrieb:
> > Ich habe keine Erfahrung mit DB als Mailstore bzw. die Exchange-Erfahrungen
> > die ich habe, waren nicht gut. Restore von Mails ist eine echte Plage. Wie und
> > ob DBMAIL das gelöst hat, mag da entscheidend sein.
> >   
> Paul, der Programmierer von DBMAIL hat gerade abgelehnt. Erst müssen in 
> DBMAIL die Nadelöhre gelöst sein, z.B. durch "connection pooling" in 
> Richtung PostgreSQL. Er sucht noch Sponsoren.

Die wird er selbst dann brauchen, wenn er ein begnadeter Entwickler ist. Das
Thema ist alles andere als trivial.


> > Ansonsten, wenn DB als Performance-Grund beim Zugriff auf Mailstore auf Deiner
> > Liste ist, dann würde ich Dovecot und sein indiziertes Maildir-Format prüfen.
> > Ich habe dieses Jahr für das Linuxmagazin einen Benchmark von IMAP-Servern
> > gemacht und da war Dovecot der überraschende Gewinner. Unter Last war er
> > konstant unterhalb der Timeout-Grenze der Clients.
> >
> >   
> Zusammen mit Perdition scheint mir das ein brauchbares System zu sein. 
> Wie zuverlässig ist Perdition?

Da lasse ich die Finger von, weil es mehr tot als lebendig zu sein scheint und
mir Dovecot dasselbe gibt.


> >>> 2. IP - oder Mailrouting Loadbalancer?
> >>>       
> >
> > Peer² haben Überlegungen dazu in ihrem unlängst erschienen IMAP-Buch angestellt.
> >
> >   
> Überlegungen sind gut. Ich suche Referenz- Implementierungen, die 
> funktionieren. Das funktionierendste, was es nachweislich tut, ist ein 
> PERL SMTPD mit Black/White/Greylisting und nachgeschaltetem SENDMAIL 
> (Ja, richtig gelesen!). Das skaliert bis über die 100.000+ simultante 
> Verbindungen. Vermutlich auf FreeBSD 7.0 mit RAID-10 noch besser ;-)

Referenz-Implementierungen dafür nicht von mir.


> > Splitte in einen SMTP-Proxy und mehrere nachgelagerte Mailstores auf. Ich habe
> > sehr gute Erfahungen mit LDAP als Infostore, recipient spezifischen
> > Transporteinträgen und nachgelagerten Mailstores gemacht.
> >
> >   
> LDAP, ok. Wie schnell/langsam ist das im Vergleich zu MySQL/PostgreSQL? 
> Ich habe irgendwo gelesen, da wäre BerkleyDB dahinter.

Yep, da ist BerkleyDB dahinter. Man könnte auch MySQL als Meta-Directory, wenn
man die Schmerzen vervielfachen will.

LDAP ist gut. Du willst es aber auf keine Fall zum Auflösen der Frage "bin ich
für diese Domain zuständig oder nicht" nutzen. Dafür kennt Postfix den
domain-Parameter für die LDAP-Abfragen (man ldap_table).

Wenn LDAP nicht mehr reicht, dann ldapsearch und damit CDB-Tabellen bauen.
Schneller geht's nicht mehr.


> > Die Mailstores bestehen aus Postfix/Dovecot Kisten, die wiederum über NFS auf
> > einen Mailstore zugreifen.
> OK, guter TIP. Danke!
> >  Die Indizes der Mailboxen werden aber lokal abgelegt. Diese Kombi ist
> >  richtig schnell. Bei 10.000 Mails/Minute Zustellung in die Mailbox habe
> >  ich aufgehört zu messen (mstone-Benchmarks).
> >   
> Du verteilst also die eingehende Mail über virtualdomainrouting auf 

... nach dem Filtern auf dem smtp-Proxy über transport-Tabellen (LDAP-Abfragen)...


> mehrere Filter, die die dann auf einem Server ablegen. Dann mountest Du 
> Teile davon via NFS für Dovecot?

auf mehrere nachgelagerte Server (mailstores). Diese legen die Nachrichten
über NFS-gemountete Shares auf eine EVA 8000 bzw. einige Platten in der EVA.


> > Ausserdem habe ich einen IMAP-Proxy vorgelagert, der im Proxy-Modus als master
> > auf die IMAP-Slaves (mailstore-Maschinen) zugreift und die Session aber nicht
> > aus der Hand gibt. Von der Last her kein Problem, weil die meisten POPpen.
> >   
> Bei uns nicht. Unser Client kann nur IMAP4. IMAP - Proxy: Perdition?

Tests fahren mit mstone. Die Frage ist, wieviele gleichzeitige Connects der
IMAP-Proxy kann. Das wird wohl Deine Schlüsselfrage werden. 


> > Vorteil: Clients sehen immer nur den einen Host und haben deshalb kein Problem
> > mit dem Serverzertifikat bei TLS.
> >
> Ok!
> >> Wenn ich das mitbekommen haben im Speicher der Maschine mehr Mails gleichzeitig, mehr
> >> Speicher, mehr Prozessoren und ein schnelles Datei Plattensystem sollten es schon sein.
> >>  
> >> Ebenfalls abhängig ob Amavis als Proxyfilter arbeitet (in der Größenordnung eher nicht). 
> >>
> >> Frage wie viele Mails sollen am Tag bearbeitet werden (also endgültig zugestellt werden)
> >> Das gibt eigentlich vor wie das/die Systeme dimensioniert werden müssen.  
> >>
> >>     
> >>> 5. Welche Virenscanner sind schnell/effizient?
> >>>       
> >> Setze hier Clamav ein. Keine Annahme von Mails aus erkennbaren Dailin dann hat man
> >> eigentlich schon das gröbste an Virenversendern, Phishingmails und Spam weg. Soll nicht
> >> heißen das jeder Mailserver an einem Dialin UBE/UCE versendet aber bis zu 99 % der UBE/UCE
> >>     
> >
> > Clamav, Avira ist ein erprobtes Gespann und Avira ist ein heimisches Produkt,
> > das den anderen in Nichts nachsteht. Buy German war dann ausschlaggend. ;)
> >   
> Die als Dämonen konfiguriert?

Im primary_scanners-Array als daemonen und im backup_scanners-Array als
Kommandozeilenvariante.


> > Ich bevorzuge policyd, weil er in einer MySQL-DB ablegt, auf die mehrere
> > Maschinen zugreifen können. Änderungen in der DB gelten also gleich für alle
> > Relays und alle wissen, das Client XYZ noch nicht rein darf...
> >
> > policyd kann White-, Grey-, und Blacklisting und vieles mehr.
> > <http:///www.policyd.org>.
> >
> Was sagt Policyd zu mehreren hundert Mio Mails /Monat und Greylisting - 
> Datenbank? Reicht da ein MySQL (Cluster) noch?

Auf der Policyd ML nachfragen. Ich lese dort mit und habe von grossen
Mailvolumina gehört, aber keine konkreten Zahlen zur Hand.


> >>> 7. Mails mit ZIP...-Anhängen generell verbieten, wegen möglichen DoS
> >>> durch Mailbomben?
> >>>       
> > amavisd-new besitzt effektive Mechanismen um die Expansionsgrösse einer Mail
> > zu kontrollieren. Mails mit ZIP...-Anhängen generell verbieten halte ich
> > generell für eine Gängelung der User. Ich denke, das ist eine Policy-Frage,
> > die inhouse abgewägt werden sollte.
> >   
> Ja, schon abgelehnt. Aber im DoS - Fall muss das anschaltbar sein.

Ja, ist es. Im DoS-Fall auch als mime_header_check in Postfix direkt machbar.


> > Gut sind z.B. Dienste bei denen die User Attachments auf einem http-Host
> > abgelegen können und nur noch die URL in der Mail referenzieren. Ist aber auch
> > eine Typ-Frage...
> >   
> Auch eine gute Idee. Im Webdav - Ordner ablegen ;-) Gibt es da Software 
> bereits, die die Anhänge abtrennt und einen Link hinterlässt?

Für Exchange schon... ;) Es gibt Dienstleister, die die Storage als Service
anbieten. Automatisiert habe ich das noch nicht gesehen. Klingt nach einem
Job für einen Milter (halb Mensch, ...)


> >> Eher aufführbare Dateien auch innerhalb von zip wegen der Gefahr neuer Viren und Würmer
> >> die noch keine Antivirensystem gesehen hat. Das ist aber Geschmackssache und kommt auf den
> >> Auftraggeber an. 
> >> Mit dem Rest kann Amavis-New eigentlich umgehen (den Scanner auf einer/x extra Maschinen
> >> betreiben je nachdem wie viele Mails gescannt werden müssen)
> >>
> >>     
> >>> 8. Nachklassifizierung von bereits einsortierten Mails sinnvoll? (SPAM,
> >>> Viren....)
> >>>       
> >
> > Bin ich kein Freund von. Einmal sortieren und dann gut. Die
> > Nachvollziehbarkeit solcher Methoden wird immer aufwändiger und das ist IMO
> > nur mit Ärger verbunden.
> >   
> Greylisting wird stetig ineffizienter und auch Blacklisting wird 

Gegen Greylisting wurde in Frühjahr BotNet-Wellen gefahren und da haben sie es
tatsächlich geschafft die Rückkehrzeit für das triplet auszuhebeln. Seitdem
habe ich allerdings nichts mehr in der Richtung gesehen. Wenn es aber soweit
ist, werde ich pOf mit Greylisting koppeln... ;)


> zunehmend schwerer. Solche Server, wie IRONGATE können mehr als 100.000 
> Mails simultan hinausschicken. Das ist schneller, als die Blacklists 
> reagieren. Mit genügend Bandbreite und auf die Sekunde synchronisiert 
> mit nachsenden, nach ein paar Minuten kriegen die so einiges an SPAM 
> durch. Dementsprechende Einschläge sehe ich, z.B. heute war einer, kurz 
> nach 8 Uhr. Einige tausend Verbindungen simultan aus einer Ecke.

Ein Fall für anvil (man anvil)


> > Regelmäßig den Mailstore auf Viren scannen ist eine andere Sache. Das finde
> > ich gut, verlangt aber Scanner, die MIME-Attachements erkennen, extrahieren
> > udn scannen können.
> >
> >   
> >>> 9. Hochverfügbarkeit, wie?
> >>>       
> >
> > Ein Thema, das diese Mail garantiert sprengt. Performance-Cluster sind
> > verhältnismäßig einfach. Verfügbarkeits-Cluster je nach HA-Lösung tricky.
> >   
> Schon klar. Ich dachte nur, es gäbe was Neues, z.B. mit Cluster - 
> Filesystemen, die bereits funktionieren. Ich habe da eines vor 2 Wochen 
> getestet, funktioniert perfekt. Nur - kein Locking! FNCTL, ja. Aber das 
> reicht ja für NFS Mounts und Dovecot aus.
> >
> > Dovecot performt besser, denn es hat die indizierten Maildirs. Die hat Courier
> > nicht und das ist Couriers bottleneck.
> >   
> Scheint mir auch das bessere. Aber wie trenne ich die Indizes von MDIR? 
> Eine Option in Dovecot?

Genau das. Ist konfigurierbar.

p at rick

-- 
Postfix - Einrichtung, Betrieb und Wartung
<http://www.postfix-buch.com>
saslfinger (debugging SMTP AUTH):
<http://postfix.state-of-mind.de/patrick.koetter/saslfinger/>



Mehr Informationen über die Mailingliste Postfixbuch-users