On Thu, 23 Sep 2010, Wietse Venema wrote:

One possibility is to have postscreen listen on multiple IP addresses
with different MX preferences, and to require that clients don't
connect to the secondary port before the primary.

The problem I see with this is that a site with multiple MX hosts
would need to share the postscreen database. I'm concerned that a
networked SQL database would introduce unacceptable latencies and
that it the postscreen database would become a single point of
failure for multuple MX hosts.

The latency and shared-fate issues will also exist for an eventual greylisting implementation, particularly in the case of multiple hosts behind a load balancer. Fortunately, the dnsblog service already solves this problem for another latency-sensitive task, so there's certainly precedent for moving the heavy lifting to another service; a local result cache would be appropriate here as well, along with graceful failure handling in postscreen.

Writable SQL maps would be necessary for this (and potentially have other uses -- I've been thinking about implementing it for at least the SQLite code for a while now), along with some flexibility in exactly how to apply the various policy bits, but it certainly seems like a lot of tests relating to client connection behavior could be handled by a service like this. The real question, though, is whether it's actually worth doing all the work, when the existing policy service mechanism is probably good enough. (I don't have any particularly strong feelings on the matter, but my greylisting policy server has also never been very high on any list of reasons to buy more hardware...)

Perhaps something to consider for a future iteration?

-Rob

Reply via email to