spf-discuss
[Top] [All Lists]

What DB-Backed forwarding is.

2004-12-08 08:40:24
It occurred to me that several (many?) people here haven't understood
what DB-Backed forwarding is. Since I keep mentioning it (and considered
it intuitively obvious that it was superior), here it is detailed for
anyone to shoot holes in.

DataBase Backed forwarding is a forwarding method where the forwarding
host takes more responsibility for bounce processing and to some extent
masks the forwarding process from the sender.

One of the guarantees of DB-Backed forwarding is that you will get
bounces back from the host you sent the message to. No sending e-mail
to Detroit and getting a bounce back from London. (Except in the case
of really badly configured hosts that bounce to From:)

Another guarantee is that it prevents hijacking of the return channel.

To perform a DB-Backed forward, the forwarding host does the following:
1. Accepts the mail to be forwarded with a 2xx code.
2. Generates a local TAG that it associates with the MAIL FROM of the
   received message and the new destination.
3. Resends the mail to the next destination with MAIL FROM set to the
   local address TAG @ the forwarder. From: and To: are left alone,
   the new recipient(s) is supplied as the Recipient:
4. If there is a failure during the SMTP session it sends the bounce
   to the original MAIL FROM stored in step 2.
5. If there is a bounce from the new destination it looks up the TAG,
   matches the TAG against the bounce source (new destination step 2),
   and if it matches sends a bounce to the original MAIL FROM. A rather
   loose match is necessary here for practical reasons, but an SPF
   pass match for the "new destination" vs "bounce source" is ideal.
6. If it receives a bounce with an invalid or unmatched TAG, the bounce
   is rejected at SMTP time. No further action is taken.
7. After a reasonable timeout (A week or so), the forwarding host
   forgets the local TAG.

Downside: no shortcut bounces. If your mail was forwarded through
100 hosts before bouncing, it bounces back through all 100 hosts or the
bounce gets dropped.

Upside: Bounce information is available to all parties in the forwarding
chain, so that misconfigurations can be more easily tracked.

And to anyone who has made it this far, thank you for your time.
--
Daniel Taylor          VP Operations            Vocal Laboratories, Inc.
dtaylor(_at_)vocalabs(_dot_)com   http://www.vocalabs.com/        
(952)941-6580x203


<Prev in Thread] Current Thread [Next in Thread>