spf-discuss
[Top] [All Lists]

Re: virtual domains and TXT records; TXT labeling; TLS versus SPF

2004-05-14 01:57:28
spf-stuff wrote:
bind 8 and 9 limit TXT data to 2KB. In fact my bind seems to barf at the older 
256-byte limit.
My main mailer serves some 316 FQ hosts. There is no way to fit all these in 
one TXT record.

You mean your mail server hosts 316 domains? If so, you need 316 separate TXT records, one per domain, rather than one big TXT record.

First, "include:" should be shortened to "i:" as for "a:" to save space. But 
consecutive
TXT records can't be used (or at least queried) for a host, and even with just 
"i:"
the TXT record can't list the domains the mailer might serve. What to do?

If for a given virtual(ly served) host foo.com I listed in its TXT record the 
server it
uses for outbound, that works because I only have to modify all few hundred 
zone files,
but TXT records don't get overloaded.

Say I have a virtually-served domain "frog.com" and the server that handles its 
inbound
and outbound mail is "mail.green.com".
I don't get the distinction between

frog.com.   IN   TXT   "v=spf1 a ~all"
and
mail.green.com.   IN   TXT   "v=spf1 a mx include:frog.com ~all"

and, as I understand it, I need both anyway.

If you're saying all outbound mail for frog.com goes through mail.green.com then you need:

frog.com TXT "v=spf1 a:mail.green.com ~all"

If you also want to say that no mail is ever sent with envelope sender domain mail.green.com then you can also have:

mail.green.com TXT "v=spf1 ~all"

If you have a bunch of domains red.com, brown.com, blue.com and green.com and all of them send their outbound mail via mail.green.com, you could just use:

green.com       TXT     "v=spf1 a:mail.green.com ~all"
red.com         TXT     "v=spf1 redirect=green.com"
blue.com        TXT     "v=spf1 redirect=green.com"
brown.com       TXT     "v=spf1 redirect=green.com"
mail.green.com  TXT     "v=spf1 ~all"

Only one record needs changing if you change the outbound mailer now.

I notice one other counterintuitive thing - evidently bind requires an explicit label on TXT records, and does Not inherit the most recent explicit label, as would happen for A and other records.

frog.com.    IN   SOA
                  IN   MX   mail.green.com.   (inherits frog.com.)
                  IN   A      1.2.3.4                  (inherits frog.com.)
                  IN   TXT   "v=spf1 a ~all"   ?? doesn't inherit anything

the TXT record is not served in this case; explicit frog.com.   IN   TXT   "v=spf1 a 
~all"
is required. This is a minor nuisance because I think the label on the TXT 
record /will/ be inherited,
so one has to take care that the label is re-overridden by name or with 
$ORIGIN, depending what
else is going on in the zone file.

This does not happen on my bind nameserver (9.2.3), as I use precisely that notation:

$ORIGIN city-fan.org.


$TTL    86400   ; Default TTL for records in this zone (1 day)


@               IN      SOA     gatekeeper.city-fan.org. soa.city-fan.org. (
                                        2004051201      ; serial
                                        90M             ; refresh
                                        30M             ; retry
                                        2W              ; expiry
                                        6H              ; minimum TTL
                                )


                        NS      gatekeeper
                        NS      ns1.secondary.com.
                        NS      ns2.secondary.com.
                        NS      switch.txrx.org.
                        NS      ns1.force9.net.
                        NS      ns2.force9.net.


                        RP      soa.city-fan.org.               city-fan.org.
                        TXT     "Paul Howarth +44 (7968) 087 242"
TXT "v=spf1 ptr ip4:212.159.14.0/24 exp=spf-exp.city-fan.org -all"

                        MX 10   gatekeeper
                        MX 50   mx.last.plus.net.

spf-exp TXT "Mail from %{s} at %{i} rejected: see http://www.city-fan.org/spf-reject.html";

...

In the course of all time it makes more sense for a server to authenticate 
itself to any peer. That is,
if I'm running SSL/TLS I can make my users authenticate themselves or let them 
authenticate me;
but what is needed is for mx1.aol.com to prove to my server that it is in fact 
mx1.aol.com, by the
same mechanism, and then DNS fiddling is not required, and this can be done 
more naturally than
introducing a separate, foreign protocol.

This is perfectly possible but it needs somebody to specify how to share and authenticate the required certificates, which to my knowledge nobody has yet done.

And whilst you may be able to satisfy yourself that mx1.aol.com is in fact mx1.aol.com, that still says nothing about whether mail from user(_at_)green(_dot_)com is supposed to come from mx1.aol.com or not. That is an entirely separate issue, one that SPF is intended to address.

Regards, Paul.


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