Re: [spfbis] Revisit: Issue #36: RFC 2119 key words

Scott Kitterman <spf2@kitterman.com> Fri, 08 February 2013 21:13 UTC

Return-Path: <spf2@kitterman.com>
X-Original-To: spfbis@ietfa.amsl.com
Delivered-To: spfbis@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5D07D21F8C0B for <spfbis@ietfa.amsl.com>; Fri, 8 Feb 2013 13:13:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.454
X-Spam-Level:
X-Spam-Status: No, score=-2.454 tagged_above=-999 required=5 tests=[AWL=0.145, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id S5pP89fpIT+p for <spfbis@ietfa.amsl.com>; Fri, 8 Feb 2013 13:13:18 -0800 (PST)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 714B221F8AB1 for <spfbis@ietf.org>; Fri, 8 Feb 2013 13:13:18 -0800 (PST)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 8421620E40C9; Fri, 8 Feb 2013 16:13:17 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1360357997; bh=ZZrx4hGAxiSJf8PJllYk7Wbdv33LdhrKiK8mv4owo0U=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Ffkxwgd/e+4CLQnlKco+rF0FxbfbjcRhiszWsk98bsfwcYohrT2anuF/3GWQrWU1c tp3qYq6wfTmMhlKAt5bBiFAdiWHbXWow5qNtvjWruiEwMffEllm7OiE5L3PNlRpykF oqaviOR3pRLvn6hv37eejhJO/xpSAC4PTkutpOyA=
Received: from scott-latitude-e6320.localnet (static-72-81-252-21.bltmmd.fios.verizon.net [72.81.252.21]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mailout02.controlledmail.com (Postfix) with ESMTPSA id 67AD520E40BE; Fri, 8 Feb 2013 16:13:16 -0500 (EST)
From: Scott Kitterman <spf2@kitterman.com>
To: "spfbis@ietf.org" <spfbis@ietf.org>
Date: Fri, 08 Feb 2013 16:13:09 -0500
Message-ID: <21604708.4WkHlj1qTs@scott-latitude-e6320>
User-Agent: KMail/4.9.4 (Linux/3.5.0-23-generic; KDE/4.9.4; i686; ; )
In-Reply-To: <CAC4RtVBLiH2_vk6DMAkw4xUzdsAdDgXA8DUxxuz8+j8tdzpLzw@mail.gmail.com>
References: <CAL0qLwYvJaZ2NZV+xUkCSfbm6Wsy=4AkEGLqkNOxQrwdaUQqfg@mail.gmail.com> <1582575.VsSs9YShWJ@scott-latitude-e6320> <CAC4RtVBLiH2_vk6DMAkw4xUzdsAdDgXA8DUxxuz8+j8tdzpLzw@mail.gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] Revisit: Issue #36: RFC 2119 key words
X-BeenThere: spfbis@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: SPFbis discussion list <spfbis.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spfbis>, <mailto:spfbis-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/spfbis>
List-Post: <mailto:spfbis@ietf.org>
List-Help: <mailto:spfbis-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spfbis>, <mailto:spfbis-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Feb 2013 21:13:19 -0000

On Thursday, February 07, 2013 06:48:22 PM Barry Leiba wrote:
> >> most of the lower case words have been changed to synonyms, a few have
> >> been
> >> changed into RFC 2119 <http://tools.ietf.org/html/rfc2119> keywords. I
> >> think most (but sadly, not all) of these capitalizations are wrong."
> >> 
> >> Could this be made more specific?  Which ones are wrong?
> > 
> > Unfortunately Arthur hasn't been very active lately, so I was hoping
> > someone experienced with RFC lawyering could have a look and see if there
> > were any they felt were wrong.  I've already gone back and fixed several
> > that I concluded in retrospect were wrong.
> 
> There aren't many wrong ones, I think.  Here's what I found in a brief
> pass through:
> 
> -- Section 4.5 --
>    Starting with the set of records that were returned by the lookup,
>    discard records that do not begin with a version section of exactly
>    "v=spf1".  Note that the version section is terminated either by an
>    SP character or the end of the record.  A record with a version
>    section of "v=spf10" does not match and MUST be discarded.
> 
> This "MUST" seems out of place, because there's no "MUST" in the first
> sentence.  I think you should make it "and is discarded."

Done.

> -- Section 4.6 --
> I don't see what the second paragraph adds to the first, and suggest
> eliminating it.

That particular text is unchanged from RFC 4408.  IIRC, the reason it is there 
was there was some question back in the day about how processing should work.  
As an example:

You get a message from a domain what has this SPF record:

v=spf1 a:relay.example.com foo:bar.example.com -all

This is a syntactically invalid record because there is no mechanism foo.  The 
question the second paragraph was meant to address is, "What is the correct 
result for a message from relay.example.com?"  It's either pass (strict left 
to right processing) or permerror (all errors must be detected).  The correct 
answer is it's a permerror and we want to make that clear.

My preference would be to leave it alone, but I'm open to suggestions for 
better wording.

> -- Section 4.6.4 --
> In the second paragraph, why are you mixing "MX resource records" in
> the first sentence with "A resource records" in the second sentence?
> Is this a typo, or intentional?  If it's intentional, I would re-word
> it, which will probably correct the odd "MUST".

What I was trying to communicate there is something like the following 
sequence:

 - Do mx lookup for the domain.
 - One or more a records returned
 - If the number of a records is =< 10, then do a lookups to find the relevant 
IP addresses
 - If the number of a records is > 10, don't do any lookups and return a 
permerror.

When I look at it, I think it says that, but obviously it's not clear.  
Wording suggestions appreciated.

> -- Section 5 --
>    When any mechanism fetches host addresses to compare with <ip>, when
>    <ip> is an IPv4 address, A records are fetched; when <ip> is an IPv6
>    address, AAAA records are fetched.  Even if the SMTP connection uses
>    IPv6, an IPv4-mapped IPv6 IP address (see [RFC4291], Section 2.5.5)
>    MUST still be considered an IPv4 address and MUST be evaluated using
>    IPv4 mechanisms (i.e. "ip4" and "a").
> 
> Again, the lack of "MUST" in the first sentence makes the use of it in
> the second sentence odd.  I'd make the "MUST ... be" constructions
> into "is".

The construction I'm going for here is:

if $CONDITION then MUST $STUFF

It didn't strike me as odd, but I guess it is.  Using the IP4: mechanisms for 
IPv4 mapped IPv6 addresses is an interoperability requirement.  How would you 
suggest going about it?

> -- Section 10 --
> The "SHOULD" in the first paragraph is wrong.  If what you want to say
> is that the section isn't normative, then say it that way, as "and it
> is not a comprehensive list of normative requirements."  Otherwise,
> just make it "should".

Done.

Thanks for the review.

Scott K