spf-discuss
[Top] [All Lists]

Re: [SPF v1 Draft] Last chance before I submit...

2004-10-14 21:36:32
Some points:

* The language in question has been in the drafts I've worked on since at least early July.

* check_host() returning "Fail" with a reason of "Domain Does Not Exist" need not map to rejection if you so wish. Do whatever you like with that result. It can be distinguished from "Fail" with reason "Not Permitted", which is the domain advised forgery case. This is the reason the reason codes exist. (Though I admit that this point may not be as clear in the draft as it could be.)

* Had we not distinguished different "Fail" cases with a reason code, we'd be distinguishing different "None" cases with a reason code, since some people will want to treat the RCODE 3 case differently from the no SPF record case. Or we could have had yet another return code. Technically there is no difference, though once could argue that there is a different implication to the naive user. At over 45 pages, however, this spec should never be implemented by a naive user!

* RCODE 3, commonly called "domain does not exist" or NXDOMAIN, is well defined in RFC 1035, which is normative to the draft.

* RCODE 3 is only returned when there are no records at all for a queried name. If there records for the domain, but just none of the queried type, then RCODE 0 (no error) is returned, and an empty answer section. This later situation does not trigger the "Fail" with reason "Domain Does Not Exist" in check_host().

* It would seem that rejecting mail from domains that have no way to reply to them (having neither A nor MX records) is common practice.

* Back in July I choose to make the check_host() function have a result for all inputs. Hence, there are inputs, such as for domains that don't exist, or for mal-formed domains, or mailboxes that are really address literals, for which I think it is rightly claimed that the SPF test can't even be performed, yet check_host() needed to return something. These are the "Fail" returns with reasons other than "Not Permitted".

* If you don't want to reject messages with null reverse paths that fail the check_host() function with a reason of "Domain Does Not Exist", you can do so. This case is discernible and permitted. (Incidentally, I think this is another nail in the coffin for the null reverse path rule.)

* I don't recall the discussion on #spf, so I can't comment. (Do I sound like Ronald Regan here? I suppose the relevant logs will be supplied soon enough...)

        - Mark