
From sm@elandsys.com  Tue Sep  3 14:57:04 2013
Return-Path: <sm@elandsys.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 E75F921E8064; Tue,  3 Sep 2013 14:57:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.565
X-Spam-Level: 
X-Spam-Status: No, score=-102.565 tagged_above=-999 required=5 tests=[AWL=0.034, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NsLI+JfAK9Ig; Tue,  3 Sep 2013 14:57:03 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id D36A921F9AE7; Tue,  3 Sep 2013 14:57:02 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.136.208]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r83LumQi008514 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 3 Sep 2013 14:56:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378245421; bh=9P5BeAornxeU1bcicdH83vuZkr8qlaIOqOVW+Q6liwg=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=kH/uhEVpfQd8AGmmeruGb/LhcAw4Ew+gVg7Bmq0Yig9as1F3fEHpmAMuWwZB1yJwu PbIMG7YEX4npgPYaUqFV7s+5Y2q2LRSluWk0BxgnL7nhpFz5htDfVJaqUYtg9F4h9D +d7zRkRP26m3pC/ZL9jSzxS8UtjGMjpQAxqcCs/Y=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378245421; i=@elandsys.com; bh=9P5BeAornxeU1bcicdH83vuZkr8qlaIOqOVW+Q6liwg=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=JixQO3v8ScO+lOFOsIC1yQWwXF/BSGF8u2M7lgjahFJBnf5U4LWCMmrgjPw3MII6b mccxtjUvsSEKhVGv1EZ4pnbLr8MNF+w1BQHVqbIlibPDyQmZWkW76kxK99jeJEiJ1Y 8dfUbpa7Od8wosonhvkjwyhBqsgW16VnToccr5sg=
Message-Id: <6.2.5.6.2.20130903140642.0b5b1b00@resistor.net>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Tue, 03 Sep 2013 14:56:14 -0700
To: ietf@ietf.org
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <CAMm+LwgrnnAvxGf319=2VbLeFpLGw+97QuSfiEHWjvVhMkHXrg@mail.g mail.com>
References: <20130902134703.19714.qmail@joyce.lan> <9A45A400-0378-4C36-BB3A-91BADA8A1C81@virtualized.org> <CAMm+LwgrnnAvxGf319=2VbLeFpLGw+97QuSfiEHWjvVhMkHXrg@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"; format=flowed
Content-Transfer-Encoding: quoted-printable
Cc: spfbis@ietf.org, Dan Schlitt <schlitt@theworld.com>
Subject: Re: [spfbis] Last Call: <draft-ietf-spfbis-4408bis-19.txt> (Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1) to Proposed Standard
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: Tue, 03 Sep 2013 21:57:04 -0000

Hello,

This is a rough summary of the comments which=20
have been made on the Last Call for=20
draft-ietf-spfbis-4408bis-19 since I emailed Pete Resnick [1].

There were comments about the RFC 5507 concerns=20
from Patrik F=E4ltstr=F6m [2], Dave Crocker [3], Mark=20
Andrews [4] and John Klensin [5].

There were comments from Dan Schlitt [6] in which=20
he provided his perspective of the SPFBIS=20
discussions.  In his opinion "it is unwise to=20
have a standards track protocol which overloads=20
the TXT record".  He suggested that the=20
specification should be published as=20
Informational.  The comments provided by Dave=20
Crocker [3] [7] and John Klensin [5][8] may also=20
be related to the intended status of the=20
specification.  Phillip Hallam-Baker commented about the design objections=
 [9].

I'll ask the Responsible Area Director for=20
guidance about the above instead of suggesting that the SPFBIS WG address=
 them.

Joe Abley commented about the usage of "messages=20
sent over UDP" [10].  This issue has been raised=20
by Douglas Otis.  My suggestion to the SPFBIS WG is to address this issue.

Please email me if you consider your comments as=20
not having been addressed correctly.  I suggest=20
waiting for Pete Resnicks to send a message to=20
the mailing list if you sent Last Call comments before August 24.

Regards,
S. Moonesamy (as document shepherd)

1. http://www.ietf.org/mail-archive/web/ietf/current/msg81877.html
2. http://www.ietf.org/mail-archive/web/ietf/current/msg81887.html
3. http://www.ietf.org/mail-archive/web/ietf/current/msg81889.html
4. http://www.ietf.org/mail-archive/web/ietf/current/msg81891.html
5. http://www.ietf.org/mail-archive/web/ietf/current/msg81912.html
6. http://www.ietf.org/mail-archive/web/ietf/current/msg81939.html
7. http://www.ietf.org/mail-archive/web/ietf/current/msg81923.html
8. http://www.ietf.org/mail-archive/web/ietf/current/msg81924.html
9. http://www.ietf.org/mail-archive/web/ietf/current/msg81927.html
10. http://www.ietf.org/mail-archive/web/ietf/current/msg81862.html


From presnick@qti.qualcomm.com  Sat Sep  7 06:31:57 2013
Return-Path: <presnick@qti.qualcomm.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 51E8021F9AD8; Sat,  7 Sep 2013 06:31:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.583
X-Spam-Level: 
X-Spam-Status: No, score=-102.583 tagged_above=-999 required=5 tests=[AWL=0.016, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xBm6NpcBaOvh; Sat,  7 Sep 2013 06:31:53 -0700 (PDT)
Received: from sabertooth02.qualcomm.com (sabertooth02.qualcomm.com [65.197.215.38]) by ietfa.amsl.com (Postfix) with ESMTP id EC55221F9611; Sat,  7 Sep 2013 06:31:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qti.qualcomm.com; i=@qti.qualcomm.com; q=dns/txt; s=qcdkim; t=1378560713; x=1410096713; h=message-id:date:from:mime-version:to:cc:subject: content-transfer-encoding; bh=2kPtsNZltNFcEWB2Ae/4cymGs6tCJAwlTSpfC3Bf7LU=; b=EIz/LUHDH+ICCZX2nuzBJC7U2V5Fy1MQpkvdY0T1S0bDdXULnhQnbtZe CQUQE1VC6d/FSIzogYRimBjijOSe/4FxWi9NLr5iDU4xsOCFGZR0+nivJ iil1f5ZNSdi+3cMx3TC0qSx+rMQw3Kddpl3iUUcjcIpIGhABbUOd9jjG7 0=;
X-IronPort-AV: E=McAfee;i="5400,1158,7190"; a="51135071"
Received: from ironmsg01-lv.qualcomm.com ([10.47.202.180]) by sabertooth02.qualcomm.com with ESMTP; 07 Sep 2013 06:31:52 -0700
X-IronPort-AV: E=McAfee;i="5400,1158,7190"; a="18998576"
Received: from nasanexhc04.na.qualcomm.com ([172.30.48.17]) by ironmsg01-lv.qualcomm.com with ESMTP/TLS/RC4-SHA; 07 Sep 2013 06:31:52 -0700
Received: from resnick2.qualcomm.com (172.30.48.1) by qcmail1.qualcomm.com (172.30.48.17) with Microsoft SMTP Server (TLS) id 14.3.146.2; Sat, 7 Sep 2013 06:31:51 -0700
Message-ID: <522B2AC4.4090006@qti.qualcomm.com>
Date: Sat, 7 Sep 2013 08:31:48 -0500
From: Pete Resnick <presnick@qti.qualcomm.com>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.7; en-US; rv:1.9.1.9) Gecko/20100630 Eudora/3.0.4
MIME-Version: 1.0
To: IETF-Discussion list <ietf@ietf.org>
Content-Type: text/plain; charset="ISO-8859-1"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [172.30.48.1]
Cc: "spfbis@ietf.org" <spfbis@ietf.org>
Subject: [spfbis] Conclusions of Last Call for draft-ietf-spfbis-4408bis
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: Sat, 07 Sep 2013 13:31:57 -0000

Below is the list of issues brought up during Last Call of 
draft-ietf-spfbis-4408bis. I have tried to collect together the common 
issues and tease out the ones that are slightly different. Below each 
issue, I've given what I take to be the answer to the issue (either the 
change that needs to be made, or the explanation of why no change is 
necessary). I've not put names to the objections or the answers, simply 
because multiple people gave different versions of the same objections 
or the same answers, and sorting that out seemed useless.

Issues:

1. Overloading of the TXT RR for this use is bad.
     - As far as I can tell, there is nobody that disagrees with this 
statement. However, it is also not in-and-of-itself an objection to the 
document: Nobody seems to have argued that this document should forbid 
use of the TXT RR completely in SPF. The only question is whether the 
document should provide a transition mechanism to the SPF RR or whether 
it is reasonable to go forward with this protocol using only the TXT RR. 
There is the "precedent"objection I will discuss in 2 below, but the 
specific technical objections seem mostly *not* to be about forbidding 
TXT RR use from the get-go. Some of the specific objections could be 
taken as arguments against the document going forward if it has no 
transition mechanism, but I believe all of those have either been 
addressed or can be addressed with clarifying language in the document:
     - The only complete solution to many of the problems that fall 
under this category is if *all* misuse of TXT RR went away. There has 
been no convincing argument put forward that this is plausible in the 
foreseeable future.

     1a. TXT RR can cause large RDATA.
         - In theory, that's certainly true. But I have not seen an 
argument that SPF is causing a major problem to date, nor that there is 
an expectation that it will in the future.
         - There were some suggested text clarifications for section 3.4 
to make it clear which size limitations relate to DNS response size, UDP 
payload size, or MTU size. They seem reasonable and were not objected 
to. I'll work with the editor and others to clarify that text.

     1b. Use of TXT RR can cause collisions with other applications.
         - Again, there is no indication that this has caused a problem 
for SPF (or others) to date, and SPF requires rejection of TXT RR data 
that does not conform to the spec, so I see no evidence of the existing 
harm, nor of a solid reason to believe there will be future harm. 
(Again, I'm leaving aside the "precedent" arguments until 2.)
         - There appears to be an effort underway to document (via an 
IANA registry) such uses to minimize the potential for these sorts of 
collision problems in the future.

     1c. Use of TXT RR for multiple purposes makes it impossible to do 
access control based on type of data (i.e., to allow delegation of the 
management for TXT RRs that are solely for SPF use).
         - Many organizations have been managing these records already; 
no reasoning was given that this fine-grained management is necessary.
         - Delegation is possible by pointing a TXT RR of (e.g.) 
example.com to _spf.example.com, delegating the latter.

     - All of the above was discussed extensively in the WG and taken 
into consideration. Given the charter limitations, a reasonable choice 
was made.

2. Use of the TXT RR sets a bad precedent for future use.
     - Several people responded that some additional text in 3.1 or 
elsewhere (either by way of some sort of applicability guidance or an 
overt IESG Statement) would address this issue. I think an IESG 
Statement is unnecessary since I have not heard significant objection to 
including some guidance, and I think something reasonable along these 
lines can be crafted. I'll work with the editor and others to get such 
text in the document.
     - The impediments that caused SPF to use TXT RR in the first place 
are mostly gone. New protocols are unlikely to face the same challenges.

3. Removing SPF RR support is a charter violation.
     - Because the original spec has a non-interoperable mechanism for 
use, this constituted an "error" in the spec that was to be corrected.

4. A new transition mechanism from TXT RR to SPF RR should be put into 
the spec.
     - This was extensively considered by the WG.
     - Backward compatibility would require support of TXT RR for the 
forseeable future anyway.
     - The proposed transition mechanisms have technical issues: 
Doubling request traffic (e.g., doing queries in parallel), introducing 
delays (e.g., querying SPF RR first and running into firewalls, etc).
     - This would be a new, unchartered requirement for the WG.
     - The widely held conclusion was that such a transition plan would 
not be undertaken by implementers. (See also 5.)

5. That there will be a lack of adoption of SPF RR was based on RFC 
6686, which does not support the conclusion.

     5a. There is some current use of the SPF RR; it will increase if we 
put in a new transition mechanism.
         - 6686 showed only minimal use, and reports of those in the 
industry shows the use dropping (i.e., the momentum is in the other 
direction).
         - Bigger sites are conservative and will not transition for 
fear of breaking current usage.
         - No solid case was made for why to believe that the transition 
would occur.

     5b. Use of SPF RR is on the increase now.
         - Claims that use is increasing are only anecdotal, and 
disagree with the experience of those in the industry.

     5c. Things may have changed since 6686. We should do more data 
collection.
         - There's no reason to believe that the small amounts of 
recently presented data are representative.
         - Nobody presented any basis to doubt the folks working in the 
industry.
         - There has been ample opportunity (and motivation) for folks 
outside of the WG to do more data collection; none has been presented.
         - It is an unreasonable burden to place on the WG at this point.

There were a few smaller issues:
     6. The term "SPF records" is confusing because it could refer to 
SPF RR.
         - Because the document no longer uses SPF RR, this shouldn't be 
a problem in practice.
     7. Clarifications are needed regarding the number of lookups to do 
in 4.6.4.
         - This will be reviewed prior to publication.
     8. There should be a limit on PTR lookups.
         - This was already considered by the WG and rejected.

The only looming issue large issue is the architectural one:

9. Using TXT RR for this purpose violates the architecture of the DNS.

I list this separately because this is not about the immediate technical 
implications (like objection 1) or a claim about precedence setting 
(like objection 2), but appears to be a claim that violating the 
architecture is in and of itself a reason to not put something on the 
standards track. The problem I have with this is, short of actual 
technical harm, I'm not sure how to judge this. Our processes judge 
whether standards should be adopted on the basis of interoperability, 
deployment, and solving a useful problem. We have many examples of 
protocols that violate architectural principles, but standardize them 
nonetheless. (We can all name our most hated.) We have found it more 
useful to document how to interoperate with protocols that may not be 
ideal but are widely deployed rather than reject them on principle. I 
can't see how to treat this protocol differently.

[There were a number of "straw men": There were responses to objections 
that never got brought up during Last Call, and a number of followups to 
responses to objections where the response was not one offered. Examples 
of these included:
     - A response to the objection that we haven't let the Experiment 
run long enough. (Nobody ever argued that during Last Call.)
     - A followup denying the contention that there is limited server 
support for SPF RRs. (Nobody ever said that the reason to use TXT RR now 
was because of limited server support.)
I have ignored these threads.]

So, my conclusions in summary are:

- The document needs to make a statement in the document clarifying why 
the SPF RR is no longer used in the spec and making it clear that no 
precedent should be created by this protocol's continued use of TXT RR.

- A few clarifications are required in the text (size limitations, 
perhaps number of lookup limitations).

- The remainder of the objections were fully considered and understood 
by the WG, and were addressed to a reasonable extent, and therefore that 
there is rough consensus to go forward with this document.

pr

-- 
Pete Resnick<http://www.qualcomm.com/~presnick/>
Qualcomm Technologies, Inc. - +1 (858)651-4478


From doug.mtview@gmail.com  Mon Sep  9 02:24:49 2013
Return-Path: <doug.mtview@gmail.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 0B3B711E81A5; Mon,  9 Sep 2013 02:24:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xD-ddxz0jLw3; Mon,  9 Sep 2013 02:24:40 -0700 (PDT)
Received: from mail-pa0-x22c.google.com (mail-pa0-x22c.google.com [IPv6:2607:f8b0:400e:c03::22c]) by ietfa.amsl.com (Postfix) with ESMTP id 788F921E80A3; Mon,  9 Sep 2013 02:24:33 -0700 (PDT)
Received: by mail-pa0-f44.google.com with SMTP id fz6so6031670pac.17 for <multiple recipients>; Mon, 09 Sep 2013 02:24:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=DEGCzasnOgXZ3vKR5M4BazY2k6w1W2vBUSKtEtLzwuI=; b=uvj9AJr3hYaLAglPeGm9GqB7wf0U7cgc8YhLP+ADoJJLuyjM8fNbtcLwuiGc47F7oA F/ii5DXLsCX/VkVxjn6Teb3YYQPrwHPp4b6nUXsQcTor5Tcf2Bn8qYIij4Rwpq0lxFYi hO+AdLFuugL7qhMgicmBYec3bSMiYXAkeJc6WboSQGetyqwib5ZgvEUiES5pyHKAK3Cy joj1JfySmwq+EtS4Rm41cK4u1U1SeWo7dfLlSRo/ss4zZ2js2gdRTWO+59C1LxPHgt8y q4dgsNSv1E1OIjB0gZeRuEVAWpKgy6Mvh+L+YW9qihR58wEdpV0ZaWhI66MchhJB3br5 iPCQ==
X-Received: by 10.66.227.2 with SMTP id rw2mr2360873pac.131.1378718673087; Mon, 09 Sep 2013 02:24:33 -0700 (PDT)
Received: from [192.168.2.201] (c-24-6-103-174.hsd1.ca.comcast.net. [24.6.103.174]) by mx.google.com with ESMTPSA id xn12sm16379106pac.12.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 09 Sep 2013 02:24:31 -0700 (PDT)
Content-Type: text/plain; charset=iso-8859-1
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
From: Douglas Otis <doug.mtview@gmail.com>
In-Reply-To: <522B2AC4.4090006@qti.qualcomm.com>
Date: Mon, 9 Sep 2013 02:24:28 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <738E7638-DB74-4C12-B15E-42DA98721475@gmail.com>
References: <522B2AC4.4090006@qti.qualcomm.com>
To: Pete Resnick <presnick@qti.qualcomm.com>
X-Mailer: Apple Mail (2.1508)
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, IETF-Discussion list <ietf@ietf.org>
Subject: Re: [spfbis] Conclusions of Last Call for draft-ietf-spfbis-4408bis
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: Mon, 09 Sep 2013 09:24:49 -0000

On Sep 7, 2013, at 6:31 AM, Pete Resnick <presnick@qti.qualcomm.com> =
wrote:

> Below is the list of issues brought up during Last Call of =
draft-ietf-spfbis-4408bis. I have tried to collect together the common =
issues and tease out the ones that are slightly different. Below each =
issue, I've given what I take to be the answer to the issue (either the =
change that needs to be made, or the explanation of why no change is =
necessary). I've not put names to the objections or the answers, simply =
because multiple people gave different versions of the same objections =
or the same answers, and sorting that out seemed useless.
>=20
> Issues:
>=20
> 1. Overloading of the TXT RR for this use is bad.
>    - As far as I can tell, there is nobody that disagrees with this =
statement. However, it is also not in-and-of-itself an objection to the =
document: Nobody seems to have argued that this document should forbid =
use of the TXT RR completely in SPF. The only question is whether the =
document should provide a transition mechanism to the SPF RR or whether =
it is reasonable to go forward with this protocol using only the TXT RR. =
There is the "precedent"objection I will discuss in 2 below, but the =
specific technical objections seem mostly *not* to be about forbidding =
TXT RR use from the get-go. Some of the specific objections could be =
taken as arguments against the document going forward if it has no =
transition mechanism, but I believe all of those have either been =
addressed or can be addressed with clarifying language in the document:
>    - The only complete solution to many of the problems that fall =
under this category is if *all* misuse of TXT RR went away. There has =
been no convincing argument put forward that this is plausible in the =
foreseeable future.
>=20
>    1a. TXT RR can cause large RDATA.
>        - In theory, that's certainly true. But I have not seen an =
argument that SPF is causing a major problem to date, nor that there is =
an expectation that it will in the future.
>        - There were some suggested text clarifications for section 3.4 =
to make it clear which size limitations relate to DNS response size, UDP =
payload size, or MTU size. They seem reasonable and were not objected =
to. I'll work with the editor and others to clarify that text.
>=20
>    1b. Use of TXT RR can cause collisions with other applications.
>        - Again, there is no indication that this has caused a problem =
for SPF (or others) to date, and SPF requires rejection of TXT RR data =
that does not conform to the spec, so I see no evidence of the existing =
harm, nor of a solid reason to believe there will be future harm. =
(Again, I'm leaving aside the "precedent" arguments until 2.)
>        - There appears to be an effort underway to document (via an =
IANA registry) such uses to minimize the potential for these sorts of =
collision problems in the future.
>=20
>    1c. Use of TXT RR for multiple purposes makes it impossible to do =
access control based on type of data (i.e., to allow delegation of the =
management for TXT RRs that are solely for SPF use).
>        - Many organizations have been managing these records already; =
no reasoning was given that this fine-grained management is necessary.
>        - Delegation is possible by pointing a TXT RR of (e.g.) =
example.com to _spf.example.com, delegating the latter.
>=20
>    - All of the above was discussed extensively in the WG and taken =
into consideration. Given the charter limitations, a reasonable choice =
was made.
>=20
> 2. Use of the TXT RR sets a bad precedent for future use.
>    - Several people responded that some additional text in 3.1 or =
elsewhere (either by way of some sort of applicability guidance or an =
overt IESG Statement) would address this issue. I think an IESG =
Statement is unnecessary since I have not heard significant objection to =
including some guidance, and I think something reasonable along these =
lines can be crafted. I'll work with the editor and others to get such =
text in the document.
>    - The impediments that caused SPF to use TXT RR in the first place =
are mostly gone. New protocols are unlikely to face the same challenges.
>=20
> 3. Removing SPF RR support is a charter violation.
>    - Because the original spec has a non-interoperable mechanism for =
use, this constituted an "error" in the spec that was to be corrected.
>=20
> 4. A new transition mechanism from TXT RR to SPF RR should be put into =
the spec.
>    - This was extensively considered by the WG.
>    - Backward compatibility would require support of TXT RR for the =
forseeable future anyway.
>    - The proposed transition mechanisms have technical issues: =
Doubling request traffic (e.g., doing queries in parallel), introducing =
delays (e.g., querying SPF RR first and running into firewalls, etc).
>    - This would be a new, unchartered requirement for the WG.
>    - The widely held conclusion was that such a transition plan would =
not be undertaken by implementers. (See also 5.)
>=20
> 5. That there will be a lack of adoption of SPF RR was based on RFC =
6686, which does not support the conclusion.
>=20
>    5a. There is some current use of the SPF RR; it will increase if we =
put in a new transition mechanism.
>        - 6686 showed only minimal use, and reports of those in the =
industry shows the use dropping (i.e., the momentum is in the other =
direction).
>        - Bigger sites are conservative and will not transition for =
fear of breaking current usage.
>        - No solid case was made for why to believe that the transition =
would occur.
>=20
>    5b. Use of SPF RR is on the increase now.
>        - Claims that use is increasing are only anecdotal, and =
disagree with the experience of those in the industry.
>=20
>    5c. Things may have changed since 6686. We should do more data =
collection.
>        - There's no reason to believe that the small amounts of =
recently presented data are representative.
>        - Nobody presented any basis to doubt the folks working in the =
industry.
>        - There has been ample opportunity (and motivation) for folks =
outside of the WG to do more data collection; none has been presented.
>        - It is an unreasonable burden to place on the WG at this =
point.
>=20
> There were a few smaller issues:
>    6. The term "SPF records" is confusing because it could refer to =
SPF RR.
>        - Because the document no longer uses SPF RR, this shouldn't be =
a problem in practice.
>    7. Clarifications are needed regarding the number of lookups to do =
in 4.6.4.
>        - This will be reviewed prior to publication.
>    8. There should be a limit on PTR lookups.
>        - This was already considered by the WG and rejected.
>=20
> The only looming issue large issue is the architectural one:
>=20
> 9. Using TXT RR for this purpose violates the architecture of the DNS.
>=20
> I list this separately because this is not about the immediate =
technical implications (like objection 1) or a claim about precedence =
setting (like objection 2), but appears to be a claim that violating the =
architecture is in and of itself a reason to not put something on the =
standards track. The problem I have with this is, short of actual =
technical harm, I'm not sure how to judge this. Our processes judge =
whether standards should be adopted on the basis of interoperability, =
deployment, and solving a useful problem. We have many examples of =
protocols that violate architectural principles, but standardize them =
nonetheless. (We can all name our most hated.) We have found it more =
useful to document how to interoperate with protocols that may not be =
ideal but are widely deployed rather than reject them on principle. I =
can't see how to treat this protocol differently.
>=20
> [There were a number of "straw men": There were responses to =
objections that never got brought up during Last Call, and a number of =
followups to responses to objections where the response was not one =
offered. Examples of these included:
>    - A response to the objection that we haven't let the Experiment =
run long enough. (Nobody ever argued that during Last Call.)
>    - A followup denying the contention that there is limited server =
support for SPF RRs. (Nobody ever said that the reason to use TXT RR now =
was because of limited server support.)
> I have ignored these threads.]
>=20
> So, my conclusions in summary are:
>=20
> - The document needs to make a statement in the document clarifying =
why the SPF RR is no longer used in the spec and making it clear that no =
precedent should be created by this protocol's continued use of TXT RR.
>=20
> - A few clarifications are required in the text (size limitations, =
perhaps number of lookup limitations).
>=20
> - The remainder of the objections were fully considered and understood =
by the WG, and were addressed to a reasonable extent, and therefore that =
there is rough consensus to go forward with this document.

Dear Pete,

You missed two concerns raised in the last call:

10. As DNSSEC becomes more broadly used with email, SPF is likely to =
introduce problems neither foreseen nor properly considered by the WG.   =
"Not a problem for SPF" does not mean SPF will not impose problems for =
DNS which may include DNSSEC.  It should be obvious which protocol SPF =
or DNS should receive greater consideration  The SPF protocol also =
ignores the number of PTR Resource Records returned by a query made by a =
recipient on behalf of unknown senders against various third-party =
domains.  These domains can be constructed and modulated by message =
elements via macro expansion greatly increasing the reflected =
amplification this protocol enables.  The same issue could occur with a =
series of otherwise innocent TXT resource records that the SPF protocol =
also permits. This "feature" could prove highly problematic and =
extremely difficult if not impossible to defend against.  Even limits on =
NX domains can be easily sidestepped by malefactors leveraging the =
practice of using synthetic domains to track users without the use of =
cookies.

11.  The continued specification of SPF macros inhibits interchange.  =
Because it is common for SPF records not to produce a pass, this issue =
is not likely to have been given adequate attention.  When SPF macros =
are not implemented by receivers for any number of very valid reasons, =
such as ensuring effective caching of DNS, their required use can and =
will lead to interchange issues.  SPF may impose complex macro handling =
over multiple DNS responses determined by a sequence of queries that can =
not be directly handled by DNS itself.  Even the operation of SPF macros =
represents security concerns threatening the integrity of the associated =
SMTP and DNS servers.   Since the publication of SPF macros is well =
below the level used to justify removal of the SPF RR record type, the =
same consideration should have been given SPF macros.  Use of SPF macros =
also interferes with forensic efforts at handling interchange problems.  =
As such, it is not surprising to find extremely few domains publish SPF =
records using macros and large providers not processing SPF macros.

The lack of consideration given DNS by the SPF protocol offers =
overwhelming justification not to consider this protocol suitable for =
endorsing as a standard.  Going from experimental to informational =
should not represent any hardship, but would serve as a warning =
protocols should pay attention to their impact on underlying =
infrastructure.  There are limits on making it easy to send messages =
since the Internet is not suffering from a message scarcity.

Regards,
Douglas Otis





From presnick@qti.qualcomm.com  Mon Sep  9 07:38:46 2013
Return-Path: <presnick@qti.qualcomm.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 5DA6321E81DA; Mon,  9 Sep 2013 07:38:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.599
X-Spam-Level: 
X-Spam-Status: No, score=-102.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IDeRHnmdg99s; Mon,  9 Sep 2013 07:38:35 -0700 (PDT)
Received: from sabertooth01.qualcomm.com (sabertooth01.qualcomm.com [65.197.215.72]) by ietfa.amsl.com (Postfix) with ESMTP id B18FB21E808E; Mon,  9 Sep 2013 07:27:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qti.qualcomm.com; i=@qti.qualcomm.com; q=dns/txt; s=qcdkim; t=1378736875; x=1410272875; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=9rD0J86xoxlIQ3Hw/f3QDo6aDfhMih4VuZrStYoDftE=; b=fa5Th9TVX44CB5FDoBYQlliACNRAbaOCnEaj6rR1ht4BN7JNYNcbaeKA ANlHymrCDKZvgkvFK+QJhCagwf0jWF24aAf5XwMRWBZAtwvcDnt0e9r5B ElOSIc+f1uhVZAVbLzCUIgK9HTt4b0Aa8p4YScOwbafxmLerV5G5UlSEx 4=;
X-IronPort-AV: E=McAfee;i="5400,1158,7192"; a="51111126"
Received: from ironmsg03-r.qualcomm.com ([172.30.46.17]) by sabertooth01.qualcomm.com with ESMTP; 09 Sep 2013 07:27:54 -0700
X-IronPort-AV: E=McAfee;i="5400,1158,7192"; a="544716061"
Received: from nasanexhc07.na.qualcomm.com ([172.30.39.190]) by Ironmsg03-R.qualcomm.com with ESMTP/TLS/RC4-SHA; 09 Sep 2013 07:27:54 -0700
Received: from resnick2.qualcomm.com (172.30.39.5) by qcmail1.qualcomm.com (172.30.39.190) with Microsoft SMTP Server (TLS) id 14.3.146.2; Mon, 9 Sep 2013 07:27:54 -0700
Message-ID: <522DDAE7.20708@qti.qualcomm.com>
Date: Mon, 9 Sep 2013 09:27:51 -0500
From: Pete Resnick <presnick@qti.qualcomm.com>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.7; en-US; rv:1.9.1.9) Gecko/20100630 Eudora/3.0.4
MIME-Version: 1.0
To: Douglas Otis <doug.mtview@gmail.com>
References: <522B2AC4.4090006@qti.qualcomm.com> <738E7638-DB74-4C12-B15E-42DA98721475@gmail.com>
In-Reply-To: <738E7638-DB74-4C12-B15E-42DA98721475@gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [172.30.39.5]
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, IETF-Discussion list <ietf@ietf.org>
Subject: Re: [spfbis] Conclusions of Last Call for draft-ietf-spfbis-4408bis
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: Mon, 09 Sep 2013 14:38:46 -0000

On 9/9/13 4:24 AM, Douglas Otis wrote:
> On Sep 7, 2013, at 6:31 AM, Pete Resnick<presnick@qti.qualcomm.com>  wrote:
>
>    
>> Below is the list of issues brought up during Last Call of draft-ietf-spfbis-4408bis.
>> [...]
>>     7. Clarifications are needed regarding the number of lookups to do in 4.6.4.
>>         - This will be reviewed prior to publication.
>>     8. There should be a limit on PTR lookups.
>>         - This was already considered by the WG and rejected.
>>      
> You missed two concerns raised in the last call:
>
> 10. As DNSSEC becomes more broadly used with email, SPF is likely to introduce problems neither foreseen nor properly considered by the WG.[...]
>
> 11.  The continued specification of SPF macros inhibits interchange.[...]
>    

I took your issue 10 to be covered under 8, and your issue 11 to be 
covered under 7. If this is not the case, you will need to explain more 
clearly. I will contact you offline with regard to why your messages 
were not clear and what you can do to help if you still believe these 
issues are not covered. Please do not write back to the IETF or SPFBIS 
list on these topics until you read that email.

pr

-- 
Pete Resnick<http://www.qualcomm.com/~presnick/>
Qualcomm Technologies, Inc. - +1 (858)651-4478


From sm@elandsys.com  Mon Sep  9 12:08:11 2013
Return-Path: <sm@elandsys.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 E178521E80AF; Mon,  9 Sep 2013 12:08:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.599
X-Spam-Level: 
X-Spam-Status: No, score=-102.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id al2SgqEuW+sY; Mon,  9 Sep 2013 12:08:10 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 3835521E80AB; Mon,  9 Sep 2013 12:08:10 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.133.235]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r89J7r03026002 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 9 Sep 2013 12:08:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378753688; bh=kHWEhmTah06sINHOtsdaEzb/XdS2xRMN2KHQHrLCWkw=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=bODKHQERHQMyn3TgNJnPzmgMvlgvSH2fs29JuDJ+NFy2XLJv0EXpL9182myvLVQVY 9GTSElNkld6FI9q/PFyEFYhfVpTOFuuliF6Mdz4X1GQLqyto529R/Jm+rJSqBOCXuH TQLzASUZVQqM8iaSGXFFD3sCQNGPQyWEi2FNiHYo=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378753688; i=@elandsys.com; bh=kHWEhmTah06sINHOtsdaEzb/XdS2xRMN2KHQHrLCWkw=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=VsM5ZyJzfygTMmjViw1q9kEQFzabM6li230EzfGreeufje+IHVt9mS4/T2Q5+CLci FDgl1ly93uSxcg8L4yXoePLc1S24bL5iu1vtxfMr8+51CnKIhPIU4NH7+MZJRHMOXU Z4qXhagq0mh6d8r3hT5sr+hSAMGBCPjPwb9xrtfE=
Message-Id: <6.2.5.6.2.20130909120150.06633298@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Mon, 09 Sep 2013 12:07:23 -0700
To: Scott Kitterman <scott@kitterman.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <20130907135512.24084.48602.idtracker@ietfa.amsl.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>, draft-ietf-spfbis-4408bis@tools.ietf.org, iesg@ietf.org
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Mon, 09 Sep 2013 19:08:11 -0000

Hi Scott,

Could you please address the following DISCUSS and the COMMENT?

Thanks,
S. Moonesamy (as document shepherd)

At 06:55 07-09-2013, Pete Resnick wrote:
>Pete Resnick has entered the following ballot position for
>draft-ietf-spfbis-4408bis-19: Discuss
>
>When responding, please keep the subject line intact and reply to all
>email addresses included in the To and CC lines. (Feel free to cut this
>introductory paragraph, however.)
>
>
>Please refer to http://www.ietf.org/iesg/statement/discuss-criteria.html
>for more information about IESG DISCUSS and COMMENT positions.
>
>
>The document, along with other ballot positions, can be found here:
>http://datatracker.ietf.org/doc/draft-ietf-spfbis-4408bis/
>
>
>
>----------------------------------------------------------------------
>DISCUSS:
>----------------------------------------------------------------------
>
>Holding my own DISCUSS:
>
>Text needs to be created (probably for section 3.1) to better describe
>the reason this document settled on TXT RR only and therefore why no
>precedent is set for future use of the TXT RR.
>
>
>----------------------------------------------------------------------
>COMMENT:
>----------------------------------------------------------------------
>
>Clarifications needed regarding size limitations in 3.4, and perhaps some
>clarifications in 4.6.4.


From superuser@gmail.com  Tue Sep 10 04:40:16 2013
Return-Path: <superuser@gmail.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 49ED621F8994; Tue, 10 Sep 2013 04:40:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.449
X-Spam-Level: 
X-Spam-Status: No, score=-2.449 tagged_above=-999 required=5 tests=[AWL=-0.150, BAYES_00=-2.599, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hka+Y5Z0yYZh; Tue, 10 Sep 2013 04:40:15 -0700 (PDT)
Received: from mail-wi0-x22d.google.com (mail-wi0-x22d.google.com [IPv6:2a00:1450:400c:c05::22d]) by ietfa.amsl.com (Postfix) with ESMTP id 9AC5821E80DF; Tue, 10 Sep 2013 04:39:30 -0700 (PDT)
Received: by mail-wi0-f173.google.com with SMTP id hq15so541506wib.12 for <multiple recipients>; Tue, 10 Sep 2013 04:39:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=BpkBhdXQ6cnGWkIQxKWHe3ZXb+yV235JaQO3I0aa+Rs=; b=PWObGrHtrh1SRWHeqnL2HlqMkOUAI7vHIwthdOLDEnZ+ixvf69NTjrf3acB8gU0HZ5 X/gZ0lyyt3SUUVwc4yIB0xrG3FjshiQSZZ24hEhmpCsPTmwZzVFh3ip74B0XdExCYrmK 5fZCfcIsHTN9yNbsA0ZFyu6T6IRdCUrD0qoT1soO57YRfR8+iqdM42u+aZkqAFPZsla9 BB8LviOo9tv8SQNgXzpAtwHJpdN/w++LgEBFUFjI7hHRFds2u3ay99WsNC84marSvzP3 gUHL2f6OJ30ovmqhrPHEhtYYrC61hGs6xEhl0d0zi3HCjZHFkhhICD/L1jlRYr8i5D8f hXOg==
MIME-Version: 1.0
X-Received: by 10.180.183.51 with SMTP id ej19mr12601419wic.60.1378813156389;  Tue, 10 Sep 2013 04:39:16 -0700 (PDT)
Received: by 10.180.106.169 with HTTP; Tue, 10 Sep 2013 04:39:16 -0700 (PDT)
In-Reply-To: <2C6B0D9B-7E1E-4CC3-AA41-935D65E79A3F@frobbit.se>
References: <522B2AC4.4090006@qti.qualcomm.com> <2C6B0D9B-7E1E-4CC3-AA41-935D65E79A3F@frobbit.se>
Date: Tue, 10 Sep 2013 04:39:16 -0700
Message-ID: <CAL0qLwbx7eXvid+EZr+JJ-FpHZkTDhvJanOk-4EEntfr8zjUjg@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= <paf@frobbit.se>
Content-Type: multipart/alternative; boundary=001a11c2409e65f8b904e605f41f
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, Pete Resnick <presnick@qti.qualcomm.com>, IETF-Discussion list <ietf@ietf.org>
Subject: Re: [spfbis] Conclusions of Last Call for draft-ietf-spfbis-4408bis
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: Tue, 10 Sep 2013 11:40:16 -0000

--001a11c2409e65f8b904e605f41f
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi Patrik,

On Tue, Sep 10, 2013 at 4:04 AM, Patrik F=E4ltstr=F6m <paf@frobbit.se> wrot=
e:

> What we did look at was first of all every query for an MX resource
> record. Then we look at +/-1 second from the timestamp of that MX query f=
or
> TXT and/or SPF record for the same owner. We draw the conclusion that if
> there is a query for an MX record, and then either TXT or SPF (or both)
> within the approximately same timespan, then they are related queries.
>
>
I'm not sure that's a valid conclusion.  Since MX is needed only for a
sending system, a receiving system doing an SPF check of either type has no
reason to query for MX.  The exception to this might be a heuristic check
to see if the domain in the MAIL FROM has MX or A published such that a
reply appears to be possible, but I wouldn't expect a strong correlation in
your data.

-MSK

--001a11c2409e65f8b904e605f41f
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Hi Patrik,<br><br>On Tue, Sep 10, 2013 at 4:04 AM, Patrik =
F=E4ltstr=F6m <span dir=3D"ltr">&lt;<a href=3D"mailto:paf@frobbit.se" targe=
t=3D"_blank">paf@frobbit.se</a>&gt;</span> wrote:<br><div class=3D"gmail_ex=
tra"><div class=3D"gmail_quote">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">What we did look at was first of all every q=
uery for an MX resource record. Then we look at +/-1 second from the timest=
amp of that MX query for TXT and/or SPF record for the same owner. We draw =
the conclusion that if there is a query for an MX record, and then either T=
XT or SPF (or both) within the approximately same timespan, then they are r=
elated queries.<br>

<br></blockquote><div><br></div><div>I&#39;m not sure that&#39;s a valid co=
nclusion.=A0 Since MX is needed only for a sending system, a receiving syst=
em doing an SPF check of either type has no reason to query for MX.=A0 The =
exception to this might be a heuristic check to see if the domain in the MA=
IL FROM has MX or A published such that a reply appears to be possible, but=
 I wouldn&#39;t expect a strong correlation in your data.<br>
<br></div><div>-MSK<br></div></div><br></div></div>

--001a11c2409e65f8b904e605f41f--

From spf2@kitterman.com  Tue Sep 10 05:16:10 2013
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 3FEB221E80EE for <spfbis@ietfa.amsl.com>; Tue, 10 Sep 2013 05:16:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level: 
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_33=0.6, NORMAL_HTTP_TO_IP=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Izl1cUN7O3P6 for <spfbis@ietfa.amsl.com>; Tue, 10 Sep 2013 05:16:05 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 403CF21E808F for <spfbis@ietf.org>; Tue, 10 Sep 2013 05:16:05 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 20E2820E40D5; Tue, 10 Sep 2013 08:16:04 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378815364; bh=opVXcEKU7V0fWbF4xzkazb90GcqltbuerbrDx+s4MRg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TXHJOmSf5VChKyInaHi4s5neNNs66j/Vf2h12s4OD2lJyrjxSnlJjrcR7NPc/zCvm lSGVvvxB/1omD7JPBhdecod56586xR+a82wW7nV/DIZCw1LmYFHI3O1QR1Xi27xogD cj3SO+lNJGw8A+vuwk5Em+eVPDX2GfbdeqqU7CK8=
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 E299520E40C7;  Tue, 10 Sep 2013 08:16:03 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: S Moonesamy <sm+ietf@elandsys.com>, Pete Resnick <presnick@qti.qualcomm.com>, spfbis-chairs@tools.ietf.org, spfbis@ietf.org
Date: Tue, 10 Sep 2013 08:16:03 -0400
Message-ID: <24624534.FuUVENZpXd@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <6.2.5.6.2.20130909120150.06633298@elandnews.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130909120150.06633298@elandnews.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="nextPart15323002.Ipxd0vRHzP"
Content-Transfer-Encoding: 7Bit
X-AV-Checked: ClamAV using ClamSMTP
Cc: draft-ietf-spfbis-4408bis@tools.ietf.org
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Tue, 10 Sep 2013 12:16:10 -0000

This is a multi-part message in MIME format.

--nextPart15323002.Ipxd0vRHzP
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"

On Monday, September 09, 2013 12:07:23 S Moonesamy wrote:
> Hi Scott,
> 
> Could you please address the following DISCUSS and the COMMENT?
> 
> Thanks,
> S. Moonesamy (as document shepherd)

Yes.  See text at the end for proposed changes.  I'm proposing changes 
regarding 3.1 and 3.4.  I did review 4.6.4 again and did not determine a 
better way to say it, so no changes are proposed there.  I'm also attaching a 
full rfcdiff of the changes I have locally for the to be 20.  Some predate IETF 
Last Call and some (the ABNF changes) are changes I recommend based on the LC 
discussion.

Scott K

> At 06:55 07-09-2013, Pete Resnick wrote:
> >Pete Resnick has entered the following ballot position for
> >draft-ietf-spfbis-4408bis-19: Discuss
> >
> >When responding, please keep the subject line intact and reply to all
> >email addresses included in the To and CC lines. (Feel free to cut this
> >introductory paragraph, however.)
> >
> >
> >Please refer to http://www.ietf.org/iesg/statement/discuss-criteria.html
> >for more information about IESG DISCUSS and COMMENT positions.
> >
> >
> >The document, along with other ballot positions, can be found here:
> >http://datatracker.ietf.org/doc/draft-ietf-spfbis-4408bis/
> >
> >
> >
> >----------------------------------------------------------------------
> >DISCUSS:
> >----------------------------------------------------------------------
> >
> >Holding my own DISCUSS:
> >
> >Text needs to be created (probably for section 3.1) to better describe
> >the reason this document settled on TXT RR only and therefore why no
> >precedent is set for future use of the TXT RR.
> >
> >
> >----------------------------------------------------------------------
> >COMMENT:
> >----------------------------------------------------------------------
> >
> >Clarifications needed regarding size limitations in 3.4, and perhaps some
> >clarifications in 4.6.4.


3.1.  DNS Resource Records

   SPF records MUST be published as a DNS TXT (type 16) Resource Record
   (RR) [RFC1035] only.  The character content of the record is encoded
   as [US-ASCII].  Use of alternative DNS RR types was supported in

WAS

<    SPF's experimental phase, but has been discontinued.  See Appendix A
<    of [RFC6686] for further information.

PROPOSED

>    SPF's experimental phase, but has been discontinued.
>
>    In 2003, when SPF was first being developed, the requirements for
>    assignment of a new DNS RR type were considerably more stringent than
>    they are now.  Additionally, support for easy deployment of new DNS
>    RR types was not widely deployed in DNS servers and and provisioning
>    systems.  As a result, at that time, there was no reasonable
>    alternative to using the TXT RR type for SPF records.
>
>    In its review of [RFC4408] the SPFbis working group concluded that
>    its dual RR type transition model was fundamentally flawed since it
>    contained no common RR type that implementers were required to serve
>    and required to check.  Many alternatives were considered to resolve
>    this issue, but ultimately the working group concluded that
>    significant migration to the SPF RR type in the forseable future and
>    that the best solution for resolving this interoperability issue was
>    to drop support for the SPF RR type from SPF version 1.  See Appendix
>    A of [RFC6686] for further information.
> 
>    The circumstances surrounding SPF's initial deploymenta decade ago
>    are unique and very, very unlikely to be repeated.  SPF's use of the
>    TXT RR type for structured data should in no way be taken as
>    precedent for future protocol designers.  Things have changed.


3.4.  Record Size

   The published SPF record for a given domain name SHOULD remain small
   enough that the results of a query for it will fit within 512 octets.
   This UDP limit is defined in [RFC1035] section 2.3.4, although it was
   raised by [RFC2671].  Staying below 512 octets ought to prevent older
   DNS implementations from failing over to TCP,and will work with UDP
   in the absence of EDNS0 [RFC6891] support.  Since the answer size is
   dependent on many things outside the scope of this document, it is

WAS

<    only possible to give this guideline: If the combined length of the
<    DNS name and the text of all the records of a given type is under 450
<    octets, then DNS answers ought to fit in UDP packets.  Records that
<    are too long to fit in a single UDP packet could be silently ignored
<    by SPF verifiers due to firewall and other issues that interfere with
<    the operation of DNS over TCP or using ENDS0.

PROPOSED

>    only possible to give this guideline: If the size of the DNS message,
>    the combined length of the DNS name and the text of all the records
>    of a given type is under 450 octets, then DNS answers ought to fit in
>    UDP packets.  Records that are too long to fit in a single UDP packet
>    could be silently ignored by SPF verifiers due to firewall and other
>    issues that interfere with the operation of DNS over TCP or using
>    ENDS0.

   Note that when computing the sizes for replies to queries of the TXT
   format, one has to take into account any other TXT records published
   at the domain name.  Similarly, the sizes for replies to all queries
   related to SPF have to be evaluated to fit in a single 512 octet UDP

WAS

<    packet.

PROPOSED

>    packet (i.e.  DNS message size limited to 450 octects).

--nextPart15323002.Ipxd0vRHzP
Content-Disposition: attachment; filename="draft-ietf-spfbis-4408bis-20-from-19.diff.html"
Content-Transfer-Encoding: 7Bit
Content-Type: text/html; charset="UTF-8"; name="draft-ietf-spfbis-4408bis-20-from-19.diff.html"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!-- Generated by rfcdiff 1.41: rfcdiff  --> 
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional" > -->
<!-- System: Linux Scott-Latitude-E6320 3.8.0-30-generic #44-Ubuntu SMP Thu Aug 22 20:54:42 UTC 2013 i686 i686 i686 GNU/Linux --> 
<!-- Using awk: /usr/bin/gawk: GNU Awk 4.0.1 --> 
<!-- Using diff: /usr/bin/diff: diff (GNU diffutils) 3.2 --> 
<!-- Using wdiff: /usr/bin/wdiff: wdiff (GNU wdiff) 1.1.2 --> 
<html> 
<head> 
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
  <meta http-equiv="Content-Style-Type" content="text/css" /> 
  <title>Diff: draft-ietf-spfbis-4408bis-19.txt - draft-ietf-spfbis-4408bis-20.txt</title> 
  <style type="text/css"> 
    body    { margin: 0.4ex; margin-right: auto; } 
    tr      { } 
    td      { white-space: pre; font-family: monospace; vertical-align: top; font-size: 0.86em;} 
    th      { font-size: 0.86em; } 
    .small  { font-size: 0.6em; font-style: italic; font-family: Verdana, Helvetica, sans-serif; } 
    .left   { background-color: #EEE; } 
    .right  { background-color: #FFF; } 
    .diff   { background-color: #CCF; } 
    .lblock { background-color: #BFB; } 
    .rblock { background-color: #FF8; } 
    .insert { background-color: #8FF; } 
    .delete { background-color: #ACF; } 
    .void   { background-color: #FFB; } 
    .cont   { background-color: #EEE; } 
    .linebr { background-color: #AAA; } 
    .lineno { color: red; background-color: #FFF; font-size: 0.7em; text-align: right; padding: 0 2px; } 
    .elipsis{ background-color: #AAA; } 
    .left .cont { background-color: #DDD; } 
    .right .cont { background-color: #EEE; } 
    .lblock .cont { background-color: #9D9; } 
    .rblock .cont { background-color: #DD6; } 
    .insert .cont { background-color: #0DD; } 
    .delete .cont { background-color: #8AD; } 
    .stats, .stats td, .stats th { background-color: #EEE; padding: 2px 0; } 
  </style> 
</head> 
<body > 
  <table border="0" cellpadding="0" cellspacing="0"> 
  <tr bgcolor="orange"><th></th><th>&nbsp;draft-ietf-spfbis-4408bis-19.txt&nbsp;</th><th> </th><th>&nbsp;draft-ietf-spfbis-4408bis-20.txt&nbsp;</th><th></th></tr> 
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Network Working Group                                       S. Kitterman</td><td> </td><td class="right">Network Working Group                                       S. Kitterman</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Internet-Draft                              Kitterman Technical Services</td><td> </td><td class="right">Internet-Draft                              Kitterman Technical Services</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0001" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Obsoletes: 4408 (if approved)                         <span class="delete">   August 17</span>, 2013</td><td> </td><td class="rblock">Obsoletes: 4408 (if approved)                         <span class="insert">September 10</span>, 2013</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Intended status: Standards Track</td><td> </td><td class="right">Intended status: Standards Track</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0002" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Expires: <span class="delete">February 18</span>, 2014</td><td> </td><td class="rblock">Expires: <span class="insert">March 14</span>, 2014</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"> Sender Policy Framework (SPF) for Authorizing Use of Domains in Email,</td><td> </td><td class="right"> Sender Policy Framework (SPF) for Authorizing Use of Domains in Email,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                               Version 1</td><td> </td><td class="right">                               Version 1</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0003" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">                      draft-ietf-spfbis-4408bis-<span class="delete">19</span></td><td> </td><td class="rblock">                      draft-ietf-spfbis-4408bis-<span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Abstract</td><td> </td><td class="right">Abstract</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Email on the Internet can be forged in a number of ways.  In</td><td> </td><td class="right">   Email on the Internet can be forged in a number of ways.  In</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   particular, existing protocols place no restriction on what a sending</td><td> </td><td class="right">   particular, existing protocols place no restriction on what a sending</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   host can use as the "MAIL FROM" of a message or the domain given on</td><td> </td><td class="right">   host can use as the "MAIL FROM" of a message or the domain given on</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the SMTP HELO/EHLO commands.  This document describes version 1 of</td><td> </td><td class="right">   the SMTP HELO/EHLO commands.  This document describes version 1 of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the Sender Policy Framework (SPF) protocol, whereby ADministrative</td><td> </td><td class="right">   the Sender Policy Framework (SPF) protocol, whereby ADministrative</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Management Domains (ADMDs) can explicitly authorize the hosts that</td><td> </td><td class="right">   Management Domains (ADMDs) can explicitly authorize the hosts that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   are allowed to use its domain names, and a receiving host can check</td><td> </td><td class="right">   are allowed to use its domain names, and a receiving host can check</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 1, line 41</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 1, line 41</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are working documents of the Internet Engineering</td><td> </td><td class="right">   Internet-Drafts are working documents of the Internet Engineering</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Task Force (IETF).  Note that other groups may also distribute</td><td> </td><td class="right">   Task Force (IETF).  Note that other groups may also distribute</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   working documents as Internet-Drafts.  The list of current Internet-</td><td> </td><td class="right">   working documents as Internet-Drafts.  The list of current Internet-</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td> </td><td class="right">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are draft documents valid for a maximum of six months</td><td> </td><td class="right">   Internet-Drafts are draft documents valid for a maximum of six months</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and may be updated, replaced, or obsoleted by other documents at any</td><td> </td><td class="right">   and may be updated, replaced, or obsoleted by other documents at any</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   time.  It is inappropriate to use Internet-Drafts as reference</td><td> </td><td class="right">   time.  It is inappropriate to use Internet-Drafts as reference</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   material or to cite them other than as "work in progress."</td><td> </td><td class="right">   material or to cite them other than as "work in progress."</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0004" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This Internet-Draft will expire on <span class="delete">February 18</span>, 2014.</td><td> </td><td class="rblock">   This Internet-Draft will expire on <span class="insert">March 14</span>, 2014.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Copyright Notice</td><td> </td><td class="right">Copyright Notice</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Copyright (c) 2013 IETF Trust and the persons identified as the</td><td> </td><td class="right">   Copyright (c) 2013 IETF Trust and the persons identified as the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   document authors.  All rights reserved.</td><td> </td><td class="right">   document authors.  All rights reserved.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td> </td><td class="right">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Provisions Relating to IETF Documents</td><td> </td><td class="right">   Provisions Relating to IETF Documents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td> </td><td class="right">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   publication of this document.  Please review these documents</td><td> </td><td class="right">   publication of this document.  Please review these documents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> page 11, line 45</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> page 11, line 45</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.5.  Softfail</td><td> </td><td class="right">2.6.5.  Softfail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The ADMD has published a weak statement that the host is probably not</td><td> </td><td class="right">   The ADMD has published a weak statement that the host is probably not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorized.  It has not published a stronger, more definitive policy</td><td> </td><td class="right">   authorized.  It has not published a stronger, more definitive policy</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that results in a "fail".</td><td> </td><td class="right">   that results in a "fail".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.6.  Temperror</td><td> </td><td class="right">2.6.6.  Temperror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "temperror" result means the SPF verifier encountered a transient</td><td> </td><td class="right">   A "temperror" result means the SPF verifier encountered a transient</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (generally DNS) error while performing the check.  A later retry may</td><td> </td><td class="right">   (generally DNS) error while performing the check.  A later retry may</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0005" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   succeed without further operator action.</td><td> </td><td class="rblock">   succeed without further <span class="insert">DNS </span>operator action.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.7.  Permerror</td><td> </td><td class="right">2.6.7.  Permerror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "permerror" result means the domain's published records could not</td><td> </td><td class="right">   A "permerror" result means the domain's published records could not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be correctly interpreted.  This signals an error condition that</td><td> </td><td class="right">   be correctly interpreted.  This signals an error condition that</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0006" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   definitely requires operator intervention to be resolved.</td><td> </td><td class="rblock">   definitely requires <span class="insert">DNS </span>operator intervention to be resolved.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.  SPF Records</td><td> </td><td class="right">3.  SPF Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   An SPF record is a DNS record that declares which hosts are, and are</td><td> </td><td class="right">   An SPF record is a DNS record that declares which hosts are, and are</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   not, authorized to use a domain name for the "HELO" and "MAIL FROM"</td><td> </td><td class="right">   not, authorized to use a domain name for the "HELO" and "MAIL FROM"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   identities.  Loosely, the record partitions hosts into permitted and</td><td> </td><td class="right">   identities.  Loosely, the record partitions hosts into permitted and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   not-permitted sets (though some hosts might fall into neither</td><td> </td><td class="right">   not-permitted sets (though some hosts might fall into neither</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   category).</td><td> </td><td class="right">   category).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The SPF record is expressed as a single string of text found in the</td><td> </td><td class="right">   The SPF record is expressed as a single string of text found in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> page 12, line 49</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> page 12, line 49</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ADMDs publishing SPF records ought to keep the amount of DNS</td><td> </td><td class="right">   ADMDs publishing SPF records ought to keep the amount of DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   information needed to evaluate a record to a minimum.  Section 4.6.4</td><td> </td><td class="right">   information needed to evaluate a record to a minimum.  Section 4.6.4</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and Section 10.1.1 provide some suggestions about "include"</td><td> </td><td class="right">   and Section 10.1.1 provide some suggestions about "include"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mechanisms and chained "redirect" modifiers.</td><td> </td><td class="right">   mechanisms and chained "redirect" modifiers.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.1.  DNS Resource Records</td><td> </td><td class="right">3.1.  DNS Resource Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF records MUST be published as a DNS TXT (type 16) Resource Record</td><td> </td><td class="right">   SPF records MUST be published as a DNS TXT (type 16) Resource Record</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (RR) [RFC1035] only.  The character content of the record is encoded</td><td> </td><td class="right">   (RR) [RFC1035] only.  The character content of the record is encoded</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   as [US-ASCII].  Use of alternative DNS RR types was supported in</td><td> </td><td class="right">   as [US-ASCII].  Use of alternative DNS RR types was supported in</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0007" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   SPF's experimental phase, but has been discontinued.  See Appendix A</td><td> </td><td class="rblock">   SPF's experimental phase, but has been discontinued.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   of [RFC6686] for further information.</td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   <span class="insert">In 2003, when SPF was first being developed, the requirements for</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   assignment of a new DNS RR type were considerably more stringent than</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   they are now.  Additionally, support for easy deployment of new DNS</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   RR types was not widely deployed in DNS servers and and provisioning</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   systems.  As a result, at that time, there was no reasonable</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   alternative to using the TXT RR type for SPF records.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   In its review of [RFC4408] the SPFbis working group concluded that</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   its dual RR type transition model was fundamentally flawed since it</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   contained no common RR type that implementers were required to serve</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   and required to check.  Many alternatives were considered to resolve</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   this issue, but ultimately the working group concluded that</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   significant migration to the SPF RR type in the forseable future and</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   that the best solution for resolving this interoperability issue was</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   to drop support for the SPF RR type from SPF version 1.</span>  See Appendix</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   A of [RFC6686] for further information.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   <span class="insert">The circumstances surrounding SPF's initial deploymenta decade ago</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   are unique and very, very unlikely to be repeated.  SPF's use of the</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   TXT RR type for structured data should in no way be taken as</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   precedent for future protocol designers.  Things have changed.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.2.  Multiple DNS Records</td><td> </td><td class="right">3.2.  Multiple DNS Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A domain name MUST NOT have multiple records that would cause an</td><td> </td><td class="right">   A domain name MUST NOT have multiple records that would cause an</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorization check to select more than one record.  See Section 4.5</td><td> </td><td class="right">   authorization check to select more than one record.  See Section 4.5</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for the selection rules.</td><td> </td><td class="right">   for the selection rules.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.3.  Multiple Strings in a Single DNS record</td><td> </td><td class="right">3.3.  Multiple Strings in a Single DNS record</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As defined in [RFC1035] sections 3.3 and 3.3.14, a single text DNS</td><td> </td><td class="right">   As defined in [RFC1035] sections 3.3 and 3.3.14, a single text DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l5" /><small>skipping to change at</small><em> page 13, line 33</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> page 14, line 4</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      IN TXT "v=spf1 .... firstsecond string..."</td><td> </td><td class="right">      IN TXT "v=spf1 .... firstsecond string..."</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   TXT records containing multiple strings are useful in constructing</td><td> </td><td class="right">   TXT records containing multiple strings are useful in constructing</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   records that would exceed the 255-octet maximum length of a</td><td> </td><td class="right">   records that would exceed the 255-octet maximum length of a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   character-string within a single TXT record.</td><td> </td><td class="right">   character-string within a single TXT record.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.4.  Record Size</td><td> </td><td class="right">3.4.  Record Size</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The published SPF record for a given domain name SHOULD remain small</td><td> </td><td class="right">   The published SPF record for a given domain name SHOULD remain small</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   enough that the results of a query for it will fit within 512 octets.</td><td> </td><td class="right">   enough that the results of a query for it will fit within 512 octets.</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0008" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                                                                         </span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This UDP limit is defined in [RFC1035] section 2.3.4, although it was</td><td> </td><td class="right">   This UDP limit is defined in [RFC1035] section 2.3.4, although it was</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   raised by [RFC2671].  Staying below 512 octets ought to prevent older</td><td> </td><td class="right">   raised by [RFC2671].  Staying below 512 octets ought to prevent older</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   DNS implementations from failing over to TCP,and will work with UDP</td><td> </td><td class="right">   DNS implementations from failing over to TCP,and will work with UDP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   in the absence of EDNS0 [RFC6891] support.  Since the answer size is</td><td> </td><td class="right">   in the absence of EDNS0 [RFC6891] support.  Since the answer size is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   dependent on many things outside the scope of this document, it is</td><td> </td><td class="right">   dependent on many things outside the scope of this document, it is</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0009" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   only possible to give this guideline: If the combined length of the</td><td> </td><td class="rblock">   only possible to give this guideline: If the <span class="insert">size of the DNS message,</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   DNS name and the text of all the records of a given type is under 450</td><td> </td><td class="rblock"><span class="insert">   the</span> combined length of the DNS name and the text of all the records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   octets, then DNS answers ought to fit in UDP packets.  Records that</td><td> </td><td class="rblock">   of a given type is under 450 octets, then DNS answers ought to fit in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   are too long to fit in a single UDP packet could be silently ignored</td><td> </td><td class="rblock">   UDP packets.  Records that are too long to fit in a single UDP packet</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   by SPF verifiers due to firewall and other issues that interfere with</td><td> </td><td class="rblock">   could be silently ignored by SPF verifiers due to firewall and other</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   the operation of DNS over TCP or using ENDS0.</td><td> </td><td class="rblock">   issues that interfere with the operation of DNS over TCP or using</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   ENDS0.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Note that when computing the sizes for replies to queries of the TXT</td><td> </td><td class="right">   Note that when computing the sizes for replies to queries of the TXT</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   format, one has to take into account any other TXT records published</td><td> </td><td class="right">   format, one has to take into account any other TXT records published</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   at the domain name.  Similarly, the sizes for replies to all queries</td><td> </td><td class="right">   at the domain name.  Similarly, the sizes for replies to all queries</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   related to SPF have to be evaluated to fit in a single 512 octet UDP</td><td> </td><td class="right">   related to SPF have to be evaluated to fit in a single 512 octet UDP</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0010" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   packet.</td><td> </td><td class="rblock">   packet<span class="insert"> (i.e.  DNS message size limited to 450 octects)</span>.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.5.  Wildcard Records</td><td> </td><td class="right">3.5.  Wildcard Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Use of wildcard records for publishing is discouraged and care has to</td><td> </td><td class="right">   Use of wildcard records for publishing is discouraged and care has to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be taken if they are used.  If a zone includes wildcard MX records,</td><td> </td><td class="right">   be taken if they are used.  If a zone includes wildcard MX records,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   it might want to publish wildcard declarations, subject to the same</td><td> </td><td class="right">   it might want to publish wildcard declarations, subject to the same</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   requirements and problems.  In particular, the declaration MUST be</td><td> </td><td class="right">   requirements and problems.  In particular, the declaration MUST be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   repeated for any host that has any RR records at all, and for</td><td> </td><td class="right">   repeated for any host that has any RR records at all, and for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   subdomains thereof.  Consider the example in [RFC1034], Section</td><td> </td><td class="right">   subdomains thereof.  Consider the example in [RFC1034], Section</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   4.3.3.  Based on that, we can do the following:</td><td> </td><td class="right">   4.3.3.  Based on that, we can do the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l6" /><small>skipping to change at</small><em> page 26, line 14</em></th><th> </th><th><a name="part-r6" /><small>skipping to change at</small><em> page 26, line 14</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MUST support it.</td><td> </td><td class="right">   MUST support it.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">5.6.  "ip4" and "ip6"</td><td> </td><td class="right">5.6.  "ip4" and "ip6"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These mechanisms test whether &lt;ip&gt; is contained within a given IP</td><td> </td><td class="right">   These mechanisms test whether &lt;ip&gt; is contained within a given IP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   network.</td><td> </td><td class="right">   network.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</td><td> </td><td class="right">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</td><td> </td><td class="right">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0011" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ip4-cidr-length  = "/" <span class="delete">1*DIGIT</span></td><td> </td><td class="rblock">   ip4-cidr-length  = "/" <span class="insert">("0" |  %x31-39 0*1DIGIT) ; value range 0-32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ip6-cidr-length  = "/" <span class="delete">1*DIGIT</span></td><td> </td><td class="rblock">   ip6-cidr-length  = "/" <span class="insert">("0" |  %x31-39 0*2DIGIT) ; value range 0-128</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</td><td> </td><td class="right">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4-network      = qnum "." qnum "." qnum "." qnum</td><td> </td><td class="right">   ip4-network      = qnum "." qnum "." qnum "." qnum</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   qnum             = DIGIT                 ; 0-9</td><td> </td><td class="right">   qnum             = DIGIT                 ; 0-9</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / %x31-39 DIGIT       ; 10-99</td><td> </td><td class="right">                      / %x31-39 DIGIT       ; 10-99</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "1" 2DIGIT          ; 100-199</td><td> </td><td class="right">                      / "1" 2DIGIT          ; 100-199</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "2" %x30-34 DIGIT   ; 200-249</td><td> </td><td class="right">                      / "2" %x30-34 DIGIT   ; 200-249</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "25" %x30-35        ; 250-255</td><td> </td><td class="right">                      / "25" %x30-35        ; 250-255</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">            ; as per conventional dotted quad notation.  e.g., 192.0.2.0</td><td> </td><td class="right">            ; as per conventional dotted quad notation.  e.g., 192.0.2.0</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</td><td> </td><td class="right">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l7" /><small>skipping to change at</small><em> page 36, line 7</em></th><th> </th><th><a name="part-r7" /><small>skipping to change at</small><em> page 36, line 7</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   %{d2}.trusted-domains.example.net</td><td> </td><td class="right">   %{d2}.trusted-domains.example.net</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                                example.com.trusted-domains.example.net</td><td> </td><td class="right">                                example.com.trusted-domains.example.net</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   IPv6:</td><td> </td><td class="right">   IPv6:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   %{ir}.%{v}._spf.%{d2}                               1.0.B.C.0.0.0.0.</td><td> </td><td class="right">   %{ir}.%{v}._spf.%{d2}                               1.0.B.C.0.0.0.0.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.B.D.0.1.0.0.2.ip6._spf.example.com</td><td> </td><td class="right">   0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.B.D.0.1.0.0.2.ip6._spf.example.com</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.  Result Handling</td><td> </td><td class="right">8.  Result Handling</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0012" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This section provides guidance for operators in response to the</td><td> </td><td class="rblock">   This section provides guidance for <span class="insert">SPF verifier</span> operators in response</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   various possible outputs of check_host() on a message.  Definitions</td><td> </td><td class="rblock">   to the various possible outputs of check_host() on a message.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   of SPF results are presented in Section 2.6; this section provides</td><td> </td><td class="rblock">   Definitions of SPF results are presented in Section 2.6; this section</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   more detail on each for use in developing local policy for message</td><td> </td><td class="rblock">   provides more detail on each for use in developing local policy for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   handling.</td><td> </td><td class="rblock">   message handling.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Every operating environment is different.  There are some receivers</td><td> </td><td class="right">   Every operating environment is different.  There are some receivers</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for whom strict adherence to SPF is appropriate, and definitive</td><td> </td><td class="right">   for whom strict adherence to SPF is appropriate, and definitive</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   treatment of messages that are evaluated to be explicitly</td><td> </td><td class="right">   treatment of messages that are evaluated to be explicitly</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   unauthorized ("fail" and sometimes "softfail") is the norm.  There</td><td> </td><td class="right">   unauthorized ("fail" and sometimes "softfail") is the norm.  There</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   are others for which the "false negative" cases are more of a</td><td> </td><td class="right">   are others for which the "false negative" cases are more of a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   concern.  This concern is typically handled by merely recording the</td><td> </td><td class="right">   concern.  This concern is typically handled by merely recording the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result in the header and allowing the message to pass on for</td><td> </td><td class="right">   result in the header and allowing the message to pass on for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   additional processing.  There are still others where SPF is one of</td><td> </td><td class="right">   additional processing.  There are still others where SPF is one of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   several inputs to the message handling decision.  As such, there is</td><td> </td><td class="right">   several inputs to the message handling decision.  As such, there is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l8" /><small>skipping to change at</small><em> page 38, line 28</em></th><th> </th><th><a name="part-r8" /><small>skipping to change at</small><em> page 38, line 28</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   software SHOULD use an SMTP reply code of 451 and, if supported, the</td><td> </td><td class="right">   software SHOULD use an SMTP reply code of 451 and, if supported, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   4.4.3 enhanced status code (see [RFC3463], Section 3.5).  These</td><td> </td><td class="right">   4.4.3 enhanced status code (see [RFC3463], Section 3.5).  These</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   errors can be caused by problems in either the sender's or receiver's</td><td> </td><td class="right">   errors can be caused by problems in either the sender's or receiver's</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   DNS software.  See Appendix H.4 for considerations on developing</td><td> </td><td class="right">   DNS software.  See Appendix H.4 for considerations on developing</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   local policy.</td><td> </td><td class="right">   local policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.7.  Permerror</td><td> </td><td class="right">8.7.  Permerror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "permerror" result means the domain's published records could not</td><td> </td><td class="right">   A "permerror" result means the domain's published records could not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be correctly interpreted.  This signals an error condition that</td><td> </td><td class="right">   be correctly interpreted.  This signals an error condition that</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0013" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   definitely requires operator intervention to be resolved.  If the</td><td> </td><td class="rblock">   definitely requires <span class="insert">DNS </span>operator intervention to be resolved.  If the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message is rejected during the SMTP transaction for this reason, the</td><td> </td><td class="right">   message is rejected during the SMTP transaction for this reason, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   software SHOULD use an SMTP reply code of 550 and, if supported, the</td><td> </td><td class="right">   software SHOULD use an SMTP reply code of 550 and, if supported, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   5.5.2 enhanced status code (see [RFC3463], Section 3.6).  Be aware</td><td> </td><td class="right">   5.5.2 enhanced status code (see [RFC3463], Section 3.6).  Be aware</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that if the ADMD uses macros (Section 7), it is possible that this</td><td> </td><td class="right">   that if the ADMD uses macros (Section 7), it is possible that this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result is due to the checked identities having an unexpected format.</td><td> </td><td class="right">   result is due to the checked identities having an unexpected format.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   It is also possible that this result is generated by certain SPF</td><td> </td><td class="right">   It is also possible that this result is generated by certain SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   verifiers due to the input arguments having an unexpected format; see</td><td> </td><td class="right">   verifiers due to the input arguments having an unexpected format; see</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Section 4.8.  See Appendix H.3 for considerations on developing local</td><td> </td><td class="right">   Section 4.8.  See Appendix H.3 for considerations on developing local</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   policy.</td><td> </td><td class="right">   policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">9.  Recording the Result</td><td> </td><td class="right">9.  Recording the Result</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   To provide downstream agents, such as MUAs, with the information they</td><td> </td><td class="right">   To provide downstream agents, such as MUAs, with the information they</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   might need in terms of evaluating or representing the apparent safety</td><td> </td><td class="right">   might need in terms of evaluating or representing the apparent safety</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of the message content, it is RECOMMENDED that SMTP receivers record</td><td> </td><td class="right">   of the message content, it is RECOMMENDED that SMTP receivers record</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0014" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   the result of SPF processing in the message header.  For operators</td><td> </td><td class="rblock">   the result of SPF processing in the message header.  For <span class="insert">SPF verifier</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   that choose to record SPF results in the header of the message for</td><td> </td><td class="rblock">   operators that choose to record SPF results in the header of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   processing by internal filters or MUAs, two methods are presented.</td><td> </td><td class="rblock">   message for processing by internal filters or MUAs, two methods are</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Section 9.1 defines the Received-SPF field, which is the results</td><td> </td><td class="rblock">   presented.  Section 9.1 defines the Received-SPF field, which is the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   field originally defined for SPF use.  Section 9.2 discusses</td><td> </td><td class="rblock">   results field originally defined for SPF use.  Section 9.2 discusses</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Authentication-Results [RFC5451] which was specified more recently</td><td> </td><td class="right">   Authentication-Results [RFC5451] which was specified more recently</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and is designed for use by SPF and other authentication methods.</td><td> </td><td class="right">   and is designed for use by SPF and other authentication methods.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Both are in common use, and hence both are included here.  However,</td><td> </td><td class="right">   Both are in common use, and hence both are included here.  However,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   it is important to note that they were designed to serve slightly</td><td> </td><td class="right">   it is important to note that they were designed to serve slightly</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   different purposes.  Received-SPF is intended to include enough</td><td> </td><td class="right">   different purposes.  Received-SPF is intended to include enough</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   information to enable reconstruction of the SPF evaluation of the</td><td> </td><td class="right">   information to enable reconstruction of the SPF evaluation of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message, while Authentication-Results is designed only to relay the</td><td> </td><td class="right">   message, while Authentication-Results is designed only to relay the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result itself and related output details of likely use to end users</td><td> </td><td class="right">   result itself and related output details of likely use to end users</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (e.g., what property of the message was actually authenticated and</td><td> </td><td class="right">   (e.g., what property of the message was actually authenticated and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   what it contained), leaving reconstructive work to the purview of</td><td> </td><td class="right">   what it contained), leaving reconstructive work to the purview of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   system logs and the Received field contents.  Also, Received-SPF</td><td> </td><td class="right">   system logs and the Received field contents.  Also, Received-SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   relies on compliance of agents within the receiving ADMD to adhere to</td><td> </td><td class="right">   relies on compliance of agents within the receiving ADMD to adhere to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the header field ordering rules of [RFC5321] and [RFC5322], while</td><td> </td><td class="right">   the header field ordering rules of [RFC5321] and [RFC5322], while</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Authentication-Results includes some provisions to protect against</td><td> </td><td class="right">   Authentication-Results includes some provisions to protect against</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   non-compliant implementations.</td><td> </td><td class="right">   non-compliant implementations.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0015" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   An operator could choose to use both to serve different downstream</td><td> </td><td class="rblock">   An <span class="insert">SPF verifier</span> operator could choose to use both to serve different</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   agents.  In such cases, care needs to be taken to ensure both fields</td><td> </td><td class="rblock">   downstream agents.  In such cases, care needs to be taken to ensure</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   are conveying the same details, or unexpected results can occur.</td><td> </td><td class="rblock">   both fields are conveying the same details, or unexpected results can</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   occur.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">9.1.  The Received-SPF Header Field</td><td> </td><td class="right">9.1.  The Received-SPF Header Field</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The Received-SPF header field is a trace field (see [RFC5322] Section</td><td> </td><td class="right">   The Received-SPF header field is a trace field (see [RFC5322] Section</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   3.6.7) and SHOULD be prepended to the existing header, above the</td><td> </td><td class="right">   3.6.7) and SHOULD be prepended to the existing header, above the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Received: field that is generated by the SMTP receiver.  It MUST</td><td> </td><td class="right">   Received: field that is generated by the SMTP receiver.  It MUST</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   appear above all other Received-SPF fields in the message.  The</td><td> </td><td class="right">   appear above all other Received-SPF fields in the message.  The</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   header field has the following format:</td><td> </td><td class="right">   header field has the following format:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   header-field     = "Received-SPF:" [CFWS] result FWS [comment FWS]</td><td> </td><td class="right">   header-field     = "Received-SPF:" [CFWS] result FWS [comment FWS]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l9" /><small>skipping to change at</small><em> page 56, line 40</em></th><th> </th><th><a name="part-r9" /><small>skipping to change at</small><em> page 56, line 40</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</td><td> </td><td class="right">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</td><td> </td><td class="right">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   exists           = "exists"   ":" domain-spec</td><td> </td><td class="right">   exists           = "exists"   ":" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   modifier         = redirect / explanation / unknown-modifier</td><td> </td><td class="right">   modifier         = redirect / explanation / unknown-modifier</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   redirect         = "redirect" "=" domain-spec</td><td> </td><td class="right">   redirect         = "redirect" "=" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   explanation      = "exp" "=" domain-spec</td><td> </td><td class="right">   explanation      = "exp" "=" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   unknown-modifier = name "=" macro-string</td><td> </td><td class="right">   unknown-modifier = name "=" macro-string</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      ; where name is not any known modifier</td><td> </td><td class="right">                      ; where name is not any known modifier</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0016" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ip4-cidr-length  = "/" <span class="delete">1*DIGIT</span></td><td> </td><td class="rblock">   ip4-cidr-length  = "/" <span class="insert">("0" |  %x31-39 0*1DIGIT) ; value range 0-32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ip6-cidr-length  = "/" <span class="delete">1*DIGIT</span></td><td> </td><td class="rblock">   ip6-cidr-length  = "/" <span class="insert">("0" |  %x31-39 0*2DIGIT) ; value range 0-128</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</td><td> </td><td class="right">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4-network      = qnum "." qnum "." qnum "." qnum</td><td> </td><td class="right">   ip4-network      = qnum "." qnum "." qnum "." qnum</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   qnum             = DIGIT                 ; 0-9</td><td> </td><td class="right">   qnum             = DIGIT                 ; 0-9</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / %x31-39 DIGIT       ; 10-99</td><td> </td><td class="right">                      / %x31-39 DIGIT       ; 10-99</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "1" 2DIGIT          ; 100-199</td><td> </td><td class="right">                      / "1" 2DIGIT          ; 100-199</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "2" %x30-34 DIGIT   ; 200-249</td><td> </td><td class="right">                      / "2" %x30-34 DIGIT   ; 200-249</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "25" %x30-35        ; 250-255</td><td> </td><td class="right">                      / "25" %x30-35        ; 250-255</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">            ; conventional dotted quad notation.  e.g., 192.0.2.0</td><td> </td><td class="right">            ; conventional dotted quad notation.  e.g., 192.0.2.0</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</td><td> </td><td class="right">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l10" /><small>skipping to change at</small><em> page 69, line 28</em></th><th> </th><th><a name="part-r10" /><small>skipping to change at</small><em> page 69, line 28</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   receiver can do to draw attention to the difficulty encountered while</td><td> </td><td class="right">   receiver can do to draw attention to the difficulty encountered while</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   protecting itself from messages that do not have a definite SPF</td><td> </td><td class="right">   protecting itself from messages that do not have a definite SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result of some kind.  However, if the SPF implementation is defective</td><td> </td><td class="right">   result of some kind.  However, if the SPF implementation is defective</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and returns spurious "permerror" results, only the sender is actively</td><td> </td><td class="right">   and returns spurious "permerror" results, only the sender is actively</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   notified of the defect (in the form of rejected mail), and not the</td><td> </td><td class="right">   notified of the defect (in the form of rejected mail), and not the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   receiver making use of SPF.</td><td> </td><td class="right">   receiver making use of SPF.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The less intrusive handling choice is to deliver the message, perhaps</td><td> </td><td class="right">   The less intrusive handling choice is to deliver the message, perhaps</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   with some kind of annotation of the difficulty encountered and/or</td><td> </td><td class="right">   with some kind of annotation of the difficulty encountered and/or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   logging of a similar nature.  However, this will not be desirable to</td><td> </td><td class="right">   logging of a similar nature.  However, this will not be desirable to</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0017" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   operators that wish to implement SPF checking as strictly as</td><td> </td><td class="rblock">   <span class="insert">SPF verifier</span> operators that wish to implement SPF checking as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   possible, nor is this sort of passive problem reporting typically</td><td> </td><td class="rblock">   strictly as possible, nor is this sort of passive problem reporting</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   effective.</td><td> </td><td class="rblock">   typically effective.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There is of course the option placing this choice in the hands of the</td><td> </td><td class="right">   There is of course the option placing this choice in the hands of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0018" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   operator rather than the implementer since this kind of choice is</td><td> </td><td class="rblock">   <span class="insert">SPF verifier</span> operator rather than the implementer since this kind of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   often a matter of local policy rather than a condition with a</td><td> </td><td class="rblock">   choice is often a matter of local policy rather than a condition with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   universal solution, but this adds one more piece of complexity to an</td><td> </td><td class="rblock">   a universal solution, but this adds one more piece of complexity to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   already non-trivial environment.</td><td> </td><td class="rblock">   an already non-trivial environment.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0019" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Both implementers and operators need to be cautious of all choices</td><td> </td><td class="rblock">   Both implementers and <span class="insert">SPF verfier</span> operators need to be cautious of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   and outcomes when handling SPF results.</td><td> </td><td class="rblock">   all choices and outcomes when handling SPF results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">H.4.  Policy For SPF Temperror</td><td> </td><td class="right">H.4.  Policy For SPF Temperror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "temperror" result (see Section 2.6.6) indicates the SPF</td><td> </td><td class="right">   The "temperror" result (see Section 2.6.6) indicates the SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   processing module at the receiver could not retrieve and SPF policy</td><td> </td><td class="right">   processing module at the receiver could not retrieve and SPF policy</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   record due to a (probably) transient condition.  This gives no true</td><td> </td><td class="right">   record due to a (probably) transient condition.  This gives no true</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   indication about the authorized use of the data found in the</td><td> </td><td class="right">   indication about the authorized use of the data found in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   envelope.</td><td> </td><td class="right">   envelope.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As with all results, implementers have a choice to make regarding</td><td> </td><td class="right">   As with all results, implementers have a choice to make regarding</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l11" /><small>skipping to change at</small><em> page 70, line 23</em></th><th> </th><th><a name="part-r11" /><small>skipping to change at</small><em> page 70, line 23</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Because of long queue lifetimes, it is possible that mail will be</td><td> </td><td class="right">   Because of long queue lifetimes, it is possible that mail will be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   repeatedly deferred for several days and so any awareness by the</td><td> </td><td class="right">   repeatedly deferred for several days and so any awareness by the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   sender of a problem could be quite delayed.  If "temperrors" persist</td><td> </td><td class="right">   sender of a problem could be quite delayed.  If "temperrors" persist</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for multiple delivery attempts, it might be preferable to treat the</td><td> </td><td class="right">   for multiple delivery attempts, it might be preferable to treat the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   error as permanent and reduce the amount of time the message is in</td><td> </td><td class="right">   error as permanent and reduce the amount of time the message is in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   transit.</td><td> </td><td class="right">   transit.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The less intrusive handling choice is to deliver the message, perhaps</td><td> </td><td class="right">   The less intrusive handling choice is to deliver the message, perhaps</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   with some kind of annotation of the difficulty encountered and/or</td><td> </td><td class="right">   with some kind of annotation of the difficulty encountered and/or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   logging of a similar nature.  However, this will not be desirable to</td><td> </td><td class="right">   logging of a similar nature.  However, this will not be desirable to</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0020" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   operators that wish to implement SPF checking as strictly as</td><td> </td><td class="rblock">   <span class="insert">SPF verifier</span> operators that wish to implement SPF checking as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   possible, nor is this sort of passive problem reporting typically</td><td> </td><td class="rblock">   strictly as possible, nor is this sort of passive problem reporting</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   effective.</td><td> </td><td class="rblock">   typically effective.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There is of course the option placing this choice in the hands of the</td><td> </td><td class="right">   There is of course the option placing this choice in the hands of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0021" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   operator rather than the implementer since this kind of choice is</td><td> </td><td class="rblock">   <span class="insert">SPF verifier</span> operator rather than the implementer since this kind of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   often a matter of local policy rather than a condition with a</td><td> </td><td class="rblock">   choice is often a matter of local policy rather than a condition with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   universal solution, but this adds one more piece of complexity to an</td><td> </td><td class="rblock">   a universal solution, but this adds one more piece of complexity to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   already non-trivial environment.</td><td> </td><td class="rblock">   an already non-trivial environment.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0022" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Both implementers and operators need to be cautious of all choices</td><td> </td><td class="rblock">   Both implementers and <span class="insert">SPF verifier</span> operators need to be cautious of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   and outcomes when handling SPF results.</td><td> </td><td class="rblock">   all choices and outcomes when handling SPF results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Appendix I.  Protocol Status</td><td> </td><td class="right">Appendix I.  Protocol Status</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   NOTE TO RFC EDITOR: To be removed prior to publication.</td><td> </td><td class="right">   NOTE TO RFC EDITOR: To be removed prior to publication.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF has been in development since the summer of 2003 and has seen</td><td> </td><td class="right">   SPF has been in development since the summer of 2003 and has seen</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   deployment beyond the developers beginning in December 2003.  The</td><td> </td><td class="right">   deployment beyond the developers beginning in December 2003.  The</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   design of SPF slowly evolved until the spring of 2004 and has since</td><td> </td><td class="right">   design of SPF slowly evolved until the spring of 2004 and has since</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   stabilized.  There have been quite a number of forms of SPF, some</td><td> </td><td class="right">   stabilized.  There have been quite a number of forms of SPF, some</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   written up as documents, some submitted as Internet Drafts, and many</td><td> </td><td class="right">   written up as documents, some submitted as Internet Drafts, and many</td><td class="lineno" valign="top"></td></tr>

     <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
     <tr bgcolor="gray"><th colspan="5" align="center"><a name="end">&nbsp;End of changes. 22 change blocks.&nbsp;</a></th></tr>
     <tr class="stats"><td></td><th><i>51 lines changed or deleted</i></th><th><i> </i></th><th><i>75 lines changed or added</i></th><td></td></tr>
     <tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.41. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/" >http://tools.ietf.org/tools/rfcdiff/</a> </td></tr>
   </table>
   </body>
   </html>

--nextPart15323002.Ipxd0vRHzP--


From paf@frobbit.se  Tue Sep 10 04:04:14 2013
Return-Path: <paf@frobbit.se>
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 47CC021E80F7; Tue, 10 Sep 2013 04:04:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.299
X-Spam-Level: 
X-Spam-Status: No, score=-2.299 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, MIME_8BIT_HEADER=0.3]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oQM4zsMs0qrE; Tue, 10 Sep 2013 04:04:13 -0700 (PDT)
Received: from mail.frobbit.se (mail.frobbit.se [IPv6:2a02:80:3ffe::176]) by ietfa.amsl.com (Postfix) with ESMTP id E164C21E8138; Tue, 10 Sep 2013 04:04:06 -0700 (PDT)
Received: from [10.0.0.23] (unknown [77.241.239.225]) by mail.frobbit.se (Postfix) with ESMTPSA id DF9B523F66; Tue, 10 Sep 2013 13:04:05 +0200 (CEST)
Content-Type: text/plain; charset=iso-8859-1
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
From: =?iso-8859-1?Q?Patrik_F=E4ltstr=F6m?= <paf@frobbit.se>
In-Reply-To: <522B2AC4.4090006@qti.qualcomm.com>
Date: Tue, 10 Sep 2013 13:04:05 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <2C6B0D9B-7E1E-4CC3-AA41-935D65E79A3F@frobbit.se>
References: <522B2AC4.4090006@qti.qualcomm.com>
To: Pete Resnick <presnick@qti.qualcomm.com>
X-Mailer: Apple Mail (2.1508)
X-Mailman-Approved-At: Tue, 10 Sep 2013 05:59:41 -0700
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, IETF-Discussion list <ietf@ietf.org>
Subject: Re: [spfbis] Conclusions of Last Call for draft-ietf-spfbis-4408bis
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: Tue, 10 Sep 2013 11:04:14 -0000

On 7 sep 2013, at 15:31, Pete Resnick <presnick@qti.qualcomm.com> wrote:

>    5c. Things may have changed since 6686. We should do more data =
collection.
>        - There's no reason to believe that the small amounts of =
recently presented data are representative.
>        - Nobody presented any basis to doubt the folks working in the =
industry.
>        - There has been ample opportunity (and motivation) for folks =
outside of the WG to do more data collection; none has been presented.
>        - It is an unreasonable burden to place on the WG at this =
point.

FWIW, we at Netnod that run i-root have been looking at the queries we =
get to the root name server of ours.

We have been looking at the data collected during the DITL collection =
which is 30-48 hour collections of data that happens once a year.

What we did look at was first of all every query for an MX resource =
record. Then we look at +/-1 second from the timestamp of that MX query =
for TXT and/or SPF record for the same owner. We draw the conclusion =
that if there is a query for an MX record, and then either TXT or SPF =
(or both) within the approximately same timespan, then they are related =
queries.

We did look at 2011, 2012 and 2013.

The result is the following:

Date       MX        TXT      SPF     %TXT/MX %SPF/MX  %SPF/TXT

2011-06-07 148528658  7484035  784386  5.0%    0.5%    10.5%
2012-04-17  90779132  4839143  536467  5.3%    0.6%    11.1%
2013-05-28 114353838 11554391 1595777 10.1%    1.4%    13.8%

What we see is that the percentage of TXT queries per MX query has gone =
up from 5% to 10.1% and SPF queries went up from 0.5% to 1.4%. The =
percentage of SPF queries compared to TXT went up from 10.5% to 13.8%.

    Regards, Patrik F=E4ltstr=F6m


From paf@frobbit.se  Tue Sep 10 05:32:29 2013
Return-Path: <paf@frobbit.se>
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 308DC21E808F; Tue, 10 Sep 2013 05:32:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.299
X-Spam-Level: 
X-Spam-Status: No, score=-2.299 tagged_above=-999 required=5 tests=[AWL=-0.000, BAYES_00=-2.599, HTML_MESSAGE=0.001, MIME_8BIT_HEADER=0.3]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ftbjvS39ocRE; Tue, 10 Sep 2013 05:32:27 -0700 (PDT)
Received: from mail.frobbit.se (mail.frobbit.se [IPv6:2a02:80:3ffe::176]) by ietfa.amsl.com (Postfix) with ESMTP id 0FF7221E8053; Tue, 10 Sep 2013 05:32:24 -0700 (PDT)
Received: from [10.0.0.23] (unknown [77.241.239.225]) by mail.frobbit.se (Postfix) with ESMTPSA id 8753623F30; Tue, 10 Sep 2013 14:32:22 +0200 (CEST)
Content-Type: multipart/alternative; boundary="Apple-Mail=_D2D09CEC-BDA9-497F-9533-829AE0ED0EB6"
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
From: =?iso-8859-1?Q?Patrik_F=E4ltstr=F6m?= <paf@frobbit.se>
In-Reply-To: <CAL0qLwbx7eXvid+EZr+JJ-FpHZkTDhvJanOk-4EEntfr8zjUjg@mail.gmail.com>
Date: Tue, 10 Sep 2013 14:32:21 +0200
Message-Id: <0ECBFED5-CF62-4EC7-BE6D-DD65A8778D0A@frobbit.se>
References: <522B2AC4.4090006@qti.qualcomm.com> <2C6B0D9B-7E1E-4CC3-AA41-935D65E79A3F@frobbit.se> <CAL0qLwbx7eXvid+EZr+JJ-FpHZkTDhvJanOk-4EEntfr8zjUjg@mail.gmail.com>
To: "Murray S. Kucherawy" <superuser@gmail.com>
X-Mailer: Apple Mail (2.1508)
X-Mailman-Approved-At: Tue, 10 Sep 2013 05:59:41 -0700
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, Pete Resnick <presnick@qti.qualcomm.com>, IETF-Discussion list <ietf@ietf.org>
Subject: Re: [spfbis] Conclusions of Last Call for draft-ietf-spfbis-4408bis
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: Tue, 10 Sep 2013 12:32:29 -0000

--Apple-Mail=_D2D09CEC-BDA9-497F-9533-829AE0ED0EB6
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=iso-8859-1


On 10 sep 2013, at 13:39, "Murray S. Kucherawy" <superuser@gmail.com> =
wrote:

> On Tue, Sep 10, 2013 at 4:04 AM, Patrik F=E4ltstr=F6m <paf@frobbit.se> =
wrote:
> What we did look at was first of all every query for an MX resource =
record. Then we look at +/-1 second from the timestamp of that MX query =
for TXT and/or SPF record for the same owner. We draw the conclusion =
that if there is a query for an MX record, and then either TXT or SPF =
(or both) within the approximately same timespan, then they are related =
queries.
>=20
> I'm not sure that's a valid conclusion.  Since MX is needed only for a =
sending system, a receiving system doing an SPF check of either type has =
no reason to query for MX.  The exception to this might be a heuristic =
check to see if the domain in the MAIL FROM has MX or A published such =
that a reply appears to be possible, but I wouldn't expect a strong =
correlation in your data.

True.

View my explanation just like it was, how we did our calculations. =
Conclusions can anyone draw from the data.

The problem is that if one look at just queries to a root server like =
this, there is lots of what I would call "junk". When looking at TLDs, =
we saw about 162 million different TLDs each 24h in the QNAME. We saw =
this time also for example queries for SPF and other RR Types where the =
QNAME was an IPv4 address (for example "10.2.3.4.").

So, we found _some_ algorithm was needed instead of "just" counting =
queries, and we did count the way I just explained.

   Patrik


--Apple-Mail=_D2D09CEC-BDA9-497F-9533-829AE0ED0EB6
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=iso-8859-1

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Diso-8859-1"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
"><br><div><div>On 10 sep 2013, at 13:39, "Murray S. Kucherawy" &lt;<a =
href=3D"mailto:superuser@gmail.com">superuser@gmail.com</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><span style=3D"font-family: 'Lucida Sans Typewriter'; =
font-size: medium; font-style: normal; font-variant: normal; =
font-weight: normal; letter-spacing: normal; line-height: normal; =
orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: =
none; white-space: normal; widows: 2; word-spacing: 0px; =
-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; display: =
inline !important; float: none; ">On Tue, Sep 10, 2013 at 4:04 AM, =
Patrik F=E4ltstr=F6m<span =
class=3D"Apple-converted-space">&nbsp;</span></span><span dir=3D"ltr" =
style=3D"font-family: 'Lucida Sans Typewriter'; font-size: medium; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; ">&lt;<a href=3D"mailto:paf@frobbit.se" =
target=3D"_blank">paf@frobbit.se</a>&gt;</span><span style=3D"font-family:=
 'Lucida Sans Typewriter'; font-size: medium; font-style: normal; =
font-variant: normal; font-weight: normal; letter-spacing: normal; =
line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: =
0px; text-transform: none; white-space: normal; widows: 2; word-spacing: =
0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; =
display: inline !important; float: none; "><span =
class=3D"Apple-converted-space">&nbsp;</span>wrote:</span><br =
style=3D"font-family: 'Lucida Sans Typewriter'; font-size: medium; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; "><div class=3D"gmail_extra" =
style=3D"font-family: 'Lucida Sans Typewriter'; font-size: medium; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; line-height: normal; orphans: 2; text-align: =
-webkit-auto; text-indent: 0px; text-transform: none; white-space: =
normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; =
-webkit-text-stroke-width: 0px; "><div class=3D"gmail_quote"><blockquote =
class=3D"gmail_quote" style=3D"margin: 0px 0px 0px 0.8ex; =
border-left-width: 1px; border-left-color: rgb(204, 204, 204); =
border-left-style: solid; padding-left: 1ex; position: static; z-index: =
auto; ">What we did look at was first of all every query for an MX =
resource record. Then we look at +/-1 second from the timestamp of that =
MX query for TXT and/or SPF record for the same owner. We draw the =
conclusion that if there is a query for an MX record, and then either =
TXT or SPF (or both) within the approximately same timespan, then they =
are related queries.<br></blockquote><div><br></div><div>I'm not sure =
that's a valid conclusion.&nbsp; Since MX is needed only for a sending =
system, a receiving system doing an SPF check of either type has no =
reason to query for MX.&nbsp; The exception to this might be a heuristic =
check to see if the domain in the MAIL FROM has MX or A published such =
that a reply appears to be possible, but I wouldn't expect a strong =
correlation in your =
data.</div></div></div></blockquote></div><br><div>True.</div><div><br></d=
iv><div>View my explanation just like it was, how we did our =
calculations. Conclusions can anyone draw from the =
data.</div><div><br></div><div>The problem is that if one look at just =
queries to a root server like this, there is lots of what I would call =
"junk". When looking at TLDs, we saw about 162 million different TLDs =
each 24h in the QNAME. We saw this time also for example queries for SPF =
and other RR Types where the QNAME was an IPv4 address (for example =
"10.2.3.4.").</div><div><br></div><div>So, we found _some_ algorithm was =
needed instead of "just" counting queries, and we did count the way I =
just explained.</div><div><br></div><div>&nbsp; =
&nbsp;Patrik</div><div><br></div></body></html>=

--Apple-Mail=_D2D09CEC-BDA9-497F-9533-829AE0ED0EB6--

From sm@elandsys.com  Tue Sep 10 11:37:29 2013
Return-Path: <sm@elandsys.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 D5CE421E809C; Tue, 10 Sep 2013 11:37:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.299
X-Spam-Level: 
X-Spam-Status: No, score=-102.299 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, J_CHICKENPOX_33=0.6, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yO+OmLvpJ0nA; Tue, 10 Sep 2013 11:37:28 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 9E0F121F9B66; Tue, 10 Sep 2013 11:37:27 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.140.78]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8AIbCW6000674 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 10 Sep 2013 11:37:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378838246; bh=BVYCpkgoA/JmDDY2wTE01/6OOY0TmqDNM1Uy3XOMPkI=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=dQvd0mT1Jjb11rk2romR6wn89GNia7tBDjqhmvRHgArlld4oakBwQjXJhMxUhFm7z VbtR1u0rt5xm4EH54sgpzZfRV6Tk/k6NmSxd7cx2qbCrR0LZ6TRPwTndsR3zPz884d 8jmpphO7IVSHcsy1auJMciGT/Grk0f+CgnuYRHKo=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378838246; i=@elandsys.com; bh=BVYCpkgoA/JmDDY2wTE01/6OOY0TmqDNM1Uy3XOMPkI=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=GSNklozqGM+6BluJjgUWmR8uKcqoRrR6XoNYH4gK8VzqGU0ywLzpa5JDlc18LMntw gRkNeoF+ngGxAtCYI9EGLhnFRMcqtUBOynT0xorG6t0HUzPn852RvyBOd6vrYJxR5t qnoUeamz2RkO5RRKZj/uYZMVAoIBdk3UopSf5kbE=
Message-Id: <6.2.5.6.2.20130910113052.0c339a60@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Tue, 10 Sep 2013 11:33:43 -0700
To: Pete Resnick <presnick@qti.qualcomm.com>, The IESG <iesg@ietf.org>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <20130907135512.24084.48602.idtracker@ietfa.amsl.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Tue, 10 Sep 2013 18:37:30 -0000

Hi Pete,

I'll post some text proposed by Scott Kitterman to address the 
DISCUSS.  I am adding the SPFBIS WG to the Cc.

At 06:55 07-09-2013, Pete Resnick wrote:
>Pete Resnick has entered the following ballot position for
>draft-ietf-spfbis-4408bis-19: Discuss

[snip]

>Holding my own DISCUSS:
>
>Text needs to be created (probably for section 3.1) to better describe
>the reason this document settled on TXT RR only and therefore why no
>precedent is set for future use of the TXT RR.

[snip]

>----------------------------------------------------------------------
>COMMENT:
>----------------------------------------------------------------------
>
>Clarifications needed regarding size limitations in 3.4, and perhaps some
>clarifications in 4.6.4.

3.1.  DNS Resource Records

    SPF records MUST be published as a DNS TXT (type 16) Resource Record
    (RR) [RFC1035] only.  The character content of the record is encoded
    as [US-ASCII].  Use of alternative DNS RR types was supported in

WAS

<    SPF's experimental phase, but has been discontinued.  See Appendix A
<    of [RFC6686] for further information.

PROPOSED

 >    SPF's experimental phase, but has been discontinued.
 >
 >    In 2003, when SPF was first being developed, the requirements for
 >    assignment of a new DNS RR type were considerably more stringent than
 >    they are now.  Additionally, support for easy deployment of new DNS
 >    RR types was not widely deployed in DNS servers and and provisioning
 >    systems.  As a result, at that time, there was no reasonable
 >    alternative to using the TXT RR type for SPF records.
 >
 >    In its review of [RFC4408] the SPFbis working group concluded that
 >    its dual RR type transition model was fundamentally flawed since it
 >    contained no common RR type that implementers were required to serve
 >    and required to check.  Many alternatives were considered to resolve
 >    this issue, but ultimately the working group concluded that
 >    significant migration to the SPF RR type in the forseable future and
 >    that the best solution for resolving this interoperability issue was
 >    to drop support for the SPF RR type from SPF version 1.  See Appendix
 >    A of [RFC6686] for further information.
 >
 >    The circumstances surrounding SPF's initial deploymenta decade ago
 >    are unique and very, very unlikely to be repeated.  SPF's use of the
 >    TXT RR type for structured data should in no way be taken as
 >    precedent for future protocol designers.  Things have changed.


3.4.  Record Size

    The published SPF record for a given domain name SHOULD remain small
    enough that the results of a query for it will fit within 512 octets.
    This UDP limit is defined in [RFC1035] section 2.3.4, although it was
    raised by [RFC2671].  Staying below 512 octets ought to prevent older
    DNS implementations from failing over to TCP,and will work with UDP
    in the absence of EDNS0 [RFC6891] support.  Since the answer size is
    dependent on many things outside the scope of this document, it is

WAS

<    only possible to give this guideline: If the combined length of the
<    DNS name and the text of all the records of a given type is under 450
<    octets, then DNS answers ought to fit in UDP packets.  Records that
<    are too long to fit in a single UDP packet could be silently ignored
<    by SPF verifiers due to firewall and other issues that interfere with
<    the operation of DNS over TCP or using ENDS0.

PROPOSED

 >    only possible to give this guideline: If the size of the DNS message,
 >    the combined length of the DNS name and the text of all the records
 >    of a given type is under 450 octets, then DNS answers ought to fit in
 >    UDP packets.  Records that are too long to fit in a single UDP packet
 >    could be silently ignored by SPF verifiers due to firewall and other
 >    issues that interfere with the operation of DNS over TCP or using
 >    ENDS0.

    Note that when computing the sizes for replies to queries of the TXT
    format, one has to take into account any other TXT records published
    at the domain name.  Similarly, the sizes for replies to all queries
    related to SPF have to be evaluated to fit in a single 512 octet UDP

WAS

<    packet.

PROPOSED

 >    packet (i.e.  DNS message size limited to 450 octects).

Regards,
S. Moonesamy (as document shepherd)  


From spencerdawkins.ietf@gmail.com  Tue Sep 10 13:01:35 2013
Return-Path: <spencerdawkins.ietf@gmail.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 1B04421F9A16; Tue, 10 Sep 2013 13:01:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.281
X-Spam-Level: 
X-Spam-Status: No, score=-2.281 tagged_above=-999 required=5 tests=[AWL=0.318,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id o8W7yOS7xITU; Tue, 10 Sep 2013 13:01:34 -0700 (PDT)
Received: from mail-wg0-x22a.google.com (mail-wg0-x22a.google.com [IPv6:2a00:1450:400c:c00::22a]) by ietfa.amsl.com (Postfix) with ESMTP id 1945E11E8101; Tue, 10 Sep 2013 13:01:23 -0700 (PDT)
Received: by mail-wg0-f42.google.com with SMTP id b12so1049728wgh.3 for <multiple recipients>; Tue, 10 Sep 2013 13:01:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=6HYaPywn/lsySn32HHWDM7CZHsFRjw0Z5fET/MhxWok=; b=J0cIMseWtS4uHUouq5mam/L6o4qjkBXHSg/UJQCHUQe7sDsOw5We2JHrELvBxTa8H2 J+vqHfHf7R/qWtVmljRyrtY2ssYqAvWMF+I0ZOqE7RkSsTAm3Az7kBa4o0F7j+g3AWPl 7iiKsj6pQli20FhEmlkUTmxRUnTo0GcNMzQAB+V5wYSrYCQPZ2UIMGBvGg/PvXXDLHQv ogR/v0fBXOHv08P68zgdTUzGgLjX8ugVeSjKKzZop1I/Y5ohKn9Y+8J3aWGNa+IyRvv6 0VhkaTETVWSXpPMaOkH34jAWu1IBmV3AtpYssLegBUaoxYytrPV3eV/if7sT2VcRrwgF orvw==
X-Received: by 10.180.12.45 with SMTP id v13mr14120295wib.57.1378843281272; Tue, 10 Sep 2013 13:01:21 -0700 (PDT)
Received: from [192.168.0.30] (173-135-203-236.pools.spcsdns.net. [173.135.203.236]) by mx.google.com with ESMTPSA id li9sm5879544wic.4.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 10 Sep 2013 13:01:20 -0700 (PDT)
Message-ID: <522F7A8F.5060807@gmail.com>
Date: Tue, 10 Sep 2013 15:01:19 -0500
From: Spencer Dawkins <spencerdawkins.ietf@gmail.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: S Moonesamy <sm+ietf@elandsys.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130910113052.0c339a60@elandnews.com>
In-Reply-To: <6.2.5.6.2.20130910113052.0c339a60@elandnews.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Mailman-Approved-At: Tue, 10 Sep 2013 13:24:25 -0700
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Tue, 10 Sep 2013 20:01:35 -0000

On 9/10/2013 1:33 PM, S Moonesamy wrote:

Hi, SM,

> PROPOSED
>
> >    Many alternatives were considered to resolve
> >    this issue, but ultimately the working group concluded that
> >    significant migration to the SPF RR type in the forseable future and
> >    that the best solution for resolving this interoperability issue was
> >    to drop support for the SPF RR type from SPF version 1. 

I liked where the proposed text seemed to be headed, but this sentence 
didn't parse for me (missing words?), and it seems like a really 
important sentence ...

Spencer

From sm@elandsys.com  Tue Sep 10 13:25:43 2013
Return-Path: <sm@elandsys.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 C164921E80B1; Tue, 10 Sep 2013 13:25:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.449
X-Spam-Level: 
X-Spam-Status: No, score=-102.449 tagged_above=-999 required=5 tests=[AWL=0.150, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZDyCw5SAWuFS; Tue, 10 Sep 2013 13:25:35 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id C0E7B21E80AF; Tue, 10 Sep 2013 13:25:35 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.140.78]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8AKPGTu009693 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 10 Sep 2013 13:25:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378844730; bh=iP4fmxYNB72oe2eTWLKLfEom/d37jj2+tmg5L0bDeBE=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=wy1BwVYJqr9kinogM8MB+4C3y0/Jv2XkBphdvFby+RN5HSejAOpmOa55gOXnwnLCU 7E4SrcWQhAxL0BtptHpP/YpeeqCz6yOJsk5SbfDyY++veeiXrFrBe+zr/uJBq0XtUo 1U93d66zIJ5+/GYYBKaRfPbZ456VFldlstqWZLbA=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378844730; i=@elandsys.com; bh=iP4fmxYNB72oe2eTWLKLfEom/d37jj2+tmg5L0bDeBE=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=FCFrs/DMc5EU+ZSnA4GRLSJ80IheTA/3VW7B0dXC9lbNhIsBFTARuaHp4EzAuiOZB 8QArlbKV1VcGSU5sWnSgAYS2WEU4hMIHOI3PVsloMELAKnfWIeC9T2eEE43pEWHOGI 4cuwn85K6AmFcTFJb/QNQ8RQ4ZPTOvTBfP7rgBMI=
Message-Id: <6.2.5.6.2.20130910131842.0cec1d40@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Tue, 10 Sep 2013 13:24:05 -0700
To: Spencer Dawkins <spencerdawkins.ietf@gmail.com>, spfbis@ietf.org
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <522F7A8F.5060807@gmail.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130910113052.0c339a60@elandnews.com> <522F7A8F.5060807@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Tue, 10 Sep 2013 20:25:43 -0000

Hi Spencer,
At 13:01 10-09-2013, Spencer Dawkins wrote:
>I liked where the proposed text seemed to be headed, but this 
>sentence didn't parse for me (missing words?), and it seems like a 
>really important sentence ...

Yes, there are some words missing.

Can the SPFBIS WG please review the text in the message at 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04104.html and 
suggest text to address the DISCUSS (see 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04099.html ).

Regards,
S. Moonesamy (as document shepherd)  


From spf2@kitterman.com  Tue Sep 10 18:38:11 2013
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 EAB5A11E81D0; Tue, 10 Sep 2013 18:38:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.697
X-Spam-Level: 
X-Spam-Status: No, score=-0.697 tagged_above=-999 required=5 tests=[AWL=-1.300, BAYES_50=0.001, HTML_MESSAGE=0.001, J_CHICKENPOX_33=0.6, NORMAL_HTTP_TO_IP=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ym7MDFlwb8ju; Tue, 10 Sep 2013 18:38:07 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 9618011E81DB; Tue, 10 Sep 2013 18:38:06 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 615A220E40D5; Tue, 10 Sep 2013 21:38:05 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378863485; bh=boP7VusEo0O9ENCsx3c7kjqCp92Cagu9VfXV6LsB+FY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qNjze4Uzsj1CQxhaLAB4DCxVCcz2ihP0kaTZYziHnK06ddX+mYW/AA9BjIb7Klr8r E+0pe3XUIVapYus0C8dysgTaM+PW/WoubnPLjHxBkFtltbG4zo7FcvT1v4I7loPIYS KdM+gSuRDy/VT3G4QBJQ+TY9bkSZxnIGAcehqJNs=
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 3909B20E40C7;  Tue, 10 Sep 2013 21:38:04 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org, S Moonesamy <sm+ietf@elandsys.com>, Pete Resnick <presnick@qti.qualcomm.com>
Date: Tue, 10 Sep 2013 21:38:01 -0400
Message-ID: <10370218.OEr9JV8dgx@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <522F7A8F.5060807@gmail.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130910113052.0c339a60@elandnews.com> <522F7A8F.5060807@gmail.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="nextPart7749248.bf4gaU6bsf"
Content-Transfer-Encoding: 7Bit
X-AV-Checked: ClamAV using ClamSMTP
Cc: spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, Spencer Dawkins <spencerdawkins.ietf@gmail.com>, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 01:38:12 -0000

This is a multi-part message in MIME format.

--nextPart7749248.bf4gaU6bsf
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"

On Tuesday, September 10, 2013 15:01:19 Spencer Dawkins wrote:
> On 9/10/2013 1:33 PM, S Moonesamy wrote:
> 
> Hi, SM,
> 
> > PROPOSED
> > 
> > >    Many alternatives were considered to resolve
> > >    this issue, but ultimately the working group concluded that
> > >    significant migration to the SPF RR type in the forseable future and
> > >    that the best solution for resolving this interoperability issue was
> > >    to drop support for the SPF RR type from SPF version 1.
> 
> I liked where the proposed text seemed to be headed, but this sentence
> didn't parse for me (missing words?), and it seems like a really
> important sentence ...

Here's the fixed sentence.  I suspect the truth may be less dramatic than you 
imagined.  I also got a bit more expansive in the last paragraph.  I've 
attached a revised rfcdiff for the total local diff I'm carrying now.  Here's 
what I have now:

3.1.  DNS Resource Records

   SPF records MUST be published as a DNS TXT (type 16) Resource Record
   (RR) [RFC1035] only.  The character content of the record is encoded
   as [US-ASCII].  Use of alternative DNS RR types was supported in
   SPF's experimental phase, but has been discontinued.

   In 2003, when SPF was first being developed, the requirements for
   assignment of a new DNS RR type were considerably more stringent than
   they are now.  Additionally, support for easy deployment of new DNS
   RR types was not widely deployed in DNS servers and and provisioning
   systems.  As a result, at that time, there was no reasonable
   alternative to using the TXT RR type for SPF records.

   In its review of [RFC4408] the SPFbis working group concluded that
   its dual RR type transition model was fundamentally flawed since it
   contained no common RR type that implementers were required to serve
   and required to check.  Many alternatives were considered to resolve
   this issue, but ultimately the working group concluded that
   significant migration to the SPF RR type in the forseable future was
   very unlikely and that the best solution for resolving this
   interoperability issue was to drop support for the SPF RR type from
   SPF version 1.  See Appendix A of [RFC6686] for further information.

   The circumstances surrounding SPF's initial deploymenta decade ago
   are unique and very, very unlikely to be repeated.  If a future
   update to a new SPF version that could not reuse existing SPF records
   were to be developed, it ought to use the SPF RR type.  SPF's use of
   the TXT RR type for structured data should in no way be taken as
   precedent for future protocol designers.  Things have changed.

Scott K

--nextPart7749248.bf4gaU6bsf
Content-Disposition: attachment; filename="draft-ietf-spfbis-4408bis-20-from-19.diff.html"
Content-Transfer-Encoding: 7Bit
Content-Type: text/html; charset="UTF-8"; name="draft-ietf-spfbis-4408bis-20-from-19.diff.html"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!-- Generated by rfcdiff 1.41: rfcdiff  --> 
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional" > -->
<!-- System: Linux Scott-Latitude-E6320 3.8.0-30-generic #44-Ubuntu SMP Thu Aug 22 20:54:42 UTC 2013 i686 i686 i686 GNU/Linux --> 
<!-- Using awk: /usr/bin/gawk: GNU Awk 4.0.1 --> 
<!-- Using diff: /usr/bin/diff: diff (GNU diffutils) 3.2 --> 
<!-- Using wdiff: /usr/bin/wdiff: wdiff (GNU wdiff) 1.1.2 --> 
<html> 
<head> 
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
  <meta http-equiv="Content-Style-Type" content="text/css" /> 
  <title>Diff: draft-ietf-spfbis-4408bis-19.txt - draft-ietf-spfbis-4408bis-20.txt</title> 
  <style type="text/css"> 
    body    { margin: 0.4ex; margin-right: auto; } 
    tr      { } 
    td      { white-space: pre; font-family: monospace; vertical-align: top; font-size: 0.86em;} 
    th      { font-size: 0.86em; } 
    .small  { font-size: 0.6em; font-style: italic; font-family: Verdana, Helvetica, sans-serif; } 
    .left   { background-color: #EEE; } 
    .right  { background-color: #FFF; } 
    .diff   { background-color: #CCF; } 
    .lblock { background-color: #BFB; } 
    .rblock { background-color: #FF8; } 
    .insert { background-color: #8FF; } 
    .delete { background-color: #ACF; } 
    .void   { background-color: #FFB; } 
    .cont   { background-color: #EEE; } 
    .linebr { background-color: #AAA; } 
    .lineno { color: red; background-color: #FFF; font-size: 0.7em; text-align: right; padding: 0 2px; } 
    .elipsis{ background-color: #AAA; } 
    .left .cont { background-color: #DDD; } 
    .right .cont { background-color: #EEE; } 
    .lblock .cont { background-color: #9D9; } 
    .rblock .cont { background-color: #DD6; } 
    .insert .cont { background-color: #0DD; } 
    .delete .cont { background-color: #8AD; } 
    .stats, .stats td, .stats th { background-color: #EEE; padding: 2px 0; } 
  </style> 
</head> 
<body > 
  <table border="0" cellpadding="0" cellspacing="0"> 
  <tr bgcolor="orange"><th></th><th>&nbsp;draft-ietf-spfbis-4408bis-19.txt&nbsp;</th><th> </th><th>&nbsp;draft-ietf-spfbis-4408bis-20.txt&nbsp;</th><th></th></tr> 
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Network Working Group                                       S. Kitterman</td><td> </td><td class="right">Network Working Group                                       S. Kitterman</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Internet-Draft                              Kitterman Technical Services</td><td> </td><td class="right">Internet-Draft                              Kitterman Technical Services</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0001" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Obsoletes: 4408 (if approved)                         <span class="delete">   August 17</span>, 2013</td><td> </td><td class="rblock">Obsoletes: 4408 (if approved)                         <span class="insert">September 10</span>, 2013</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Intended status: Standards Track</td><td> </td><td class="right">Intended status: Standards Track</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0002" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Expires: <span class="delete">February 18</span>, 2014</td><td> </td><td class="rblock">Expires: <span class="insert">March 14</span>, 2014</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"> Sender Policy Framework (SPF) for Authorizing Use of Domains in Email,</td><td> </td><td class="right"> Sender Policy Framework (SPF) for Authorizing Use of Domains in Email,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                               Version 1</td><td> </td><td class="right">                               Version 1</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0003" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">                      draft-ietf-spfbis-4408bis-<span class="delete">19</span></td><td> </td><td class="rblock">                      draft-ietf-spfbis-4408bis-<span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Abstract</td><td> </td><td class="right">Abstract</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Email on the Internet can be forged in a number of ways.  In</td><td> </td><td class="right">   Email on the Internet can be forged in a number of ways.  In</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   particular, existing protocols place no restriction on what a sending</td><td> </td><td class="right">   particular, existing protocols place no restriction on what a sending</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   host can use as the "MAIL FROM" of a message or the domain given on</td><td> </td><td class="right">   host can use as the "MAIL FROM" of a message or the domain given on</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the SMTP HELO/EHLO commands.  This document describes version 1 of</td><td> </td><td class="right">   the SMTP HELO/EHLO commands.  This document describes version 1 of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the Sender Policy Framework (SPF) protocol, whereby ADministrative</td><td> </td><td class="right">   the Sender Policy Framework (SPF) protocol, whereby ADministrative</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Management Domains (ADMDs) can explicitly authorize the hosts that</td><td> </td><td class="right">   Management Domains (ADMDs) can explicitly authorize the hosts that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   are allowed to use its domain names, and a receiving host can check</td><td> </td><td class="right">   are allowed to use its domain names, and a receiving host can check</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 1, line 41</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 1, line 41</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are working documents of the Internet Engineering</td><td> </td><td class="right">   Internet-Drafts are working documents of the Internet Engineering</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Task Force (IETF).  Note that other groups may also distribute</td><td> </td><td class="right">   Task Force (IETF).  Note that other groups may also distribute</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   working documents as Internet-Drafts.  The list of current Internet-</td><td> </td><td class="right">   working documents as Internet-Drafts.  The list of current Internet-</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td> </td><td class="right">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are draft documents valid for a maximum of six months</td><td> </td><td class="right">   Internet-Drafts are draft documents valid for a maximum of six months</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and may be updated, replaced, or obsoleted by other documents at any</td><td> </td><td class="right">   and may be updated, replaced, or obsoleted by other documents at any</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   time.  It is inappropriate to use Internet-Drafts as reference</td><td> </td><td class="right">   time.  It is inappropriate to use Internet-Drafts as reference</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   material or to cite them other than as "work in progress."</td><td> </td><td class="right">   material or to cite them other than as "work in progress."</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0004" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This Internet-Draft will expire on <span class="delete">February 18</span>, 2014.</td><td> </td><td class="rblock">   This Internet-Draft will expire on <span class="insert">March 14</span>, 2014.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Copyright Notice</td><td> </td><td class="right">Copyright Notice</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Copyright (c) 2013 IETF Trust and the persons identified as the</td><td> </td><td class="right">   Copyright (c) 2013 IETF Trust and the persons identified as the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   document authors.  All rights reserved.</td><td> </td><td class="right">   document authors.  All rights reserved.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td> </td><td class="right">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Provisions Relating to IETF Documents</td><td> </td><td class="right">   Provisions Relating to IETF Documents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td> </td><td class="right">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   publication of this document.  Please review these documents</td><td> </td><td class="right">   publication of this document.  Please review these documents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> page 3, line 32</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> page 3, line 32</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   3.  SPF Records  . . . . . . . . . . . . . . . . . . . . . . . . . 12</td><td> </td><td class="right">   3.  SPF Records  . . . . . . . . . . . . . . . . . . . . . . . . . 12</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     3.1.  DNS Resource Records . . . . . . . . . . . . . . . . . . . 12</td><td> </td><td class="right">     3.1.  DNS Resource Records . . . . . . . . . . . . . . . . . . . 12</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     3.2.  Multiple DNS Records . . . . . . . . . . . . . . . . . . . 13</td><td> </td><td class="right">     3.2.  Multiple DNS Records . . . . . . . . . . . . . . . . . . . 13</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     3.3.  Multiple Strings in a Single DNS record  . . . . . . . . . 13</td><td> </td><td class="right">     3.3.  Multiple Strings in a Single DNS record  . . . . . . . . . 13</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0005" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.4.  Record Size  . . . . . . . . . . . . . . . . . . . . . . . 1<span class="delete">3</span></td><td> </td><td class="rblock">     3.4.  Record Size  . . . . . . . . . . . . . . . . . . . . . . . 1<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     3.5.  Wildcard Records . . . . . . . . . . . . . . . . . . . . . 14</td><td> </td><td class="right">     3.5.  Wildcard Records . . . . . . . . . . . . . . . . . . . . . 14</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0006" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   4.  The check_host() Function  . . . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock">   4.  The check_host() Function  . . . . . . . . . . . . . . . . . . <span class="insert">16</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.1.  Arguments  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock">     4.1.  Arguments  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">16</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.2.  Results  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock">     4.2.  Results  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">16</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.3.  Initial Processing . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">     4.3.  Initial Processing . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.4.  Record Lookup  . . . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">     4.4.  Record Lookup  . . . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.5.  Selecting Records  . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">     4.5.  Selecting Records  . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.6.  Record Evaluation  . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">     4.6.  Record Evaluation  . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.1.  Term Evaluation  . . . . . . . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock">       4.6.1.  Term Evaluation  . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.2.  Mechanisms . . . . . . . . . . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock">       4.6.2.  Mechanisms . . . . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.3.  Modifiers  . . . . . . . . . . . . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock">       4.6.3.  Modifiers  . . . . . . . . . . . . . . . . . . . . . . <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.4.  DNS Lookup Limits  . . . . . . . . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock">       4.6.4.  DNS Lookup Limits  . . . . . . . . . . . . . . . . . . <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.7.  Default Result . . . . . . . . . . . . . . . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock">     4.7.  Default Result . . . . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.8.  Domain Specification . . . . . . . . . . . . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock">     4.8.  Domain Specification . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   5.  Mechanism Definitions  . . . . . . . . . . . . . . . . . . . . <span class="delete">21</span></td><td> </td><td class="rblock">   5.  Mechanism Definitions  . . . . . . . . . . . . . . . . . . . . <span class="insert">22</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.1.  "all"  . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">22</span></td><td> </td><td class="rblock">     5.1.  "all"  . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">23</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.2.  "include"  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">22</span></td><td> </td><td class="rblock">     5.2.  "include"  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">23</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.3.  "a"  . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">24</span></td><td> </td><td class="rblock">     5.3.  "a"  . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">25</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.4.  "mx" . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">24</span></td><td> </td><td class="rblock">     5.4.  "mx" . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">25</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.5.  "ptr" (do not use) . . . . . . . . . . . . . . . . . . . . <span class="delete">24</span></td><td> </td><td class="rblock">     5.5.  "ptr" (do not use) . . . . . . . . . . . . . . . . . . . . <span class="insert">25</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.6.  "ip4" and "ip6"  . . . . . . . . . . . . . . . . . . . . . <span class="delete">26</span></td><td> </td><td class="rblock">     5.6.  "ip4" and "ip6"  . . . . . . . . . . . . . . . . . . . . . <span class="insert">27</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.7.  "exists" . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">26</span></td><td> </td><td class="rblock">     5.7.  "exists" . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">27</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   6.  Modifier Definitions . . . . . . . . . . . . . . . . . . . . . <span class="delete">28</span></td><td> </td><td class="rblock">   6.  Modifier Definitions . . . . . . . . . . . . . . . . . . . . . <span class="insert">29</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     6.1.  redirect: Redirected Query . . . . . . . . . . . . . . . . <span class="delete">28</span></td><td> </td><td class="rblock">     6.1.  redirect: Redirected Query . . . . . . . . . . . . . . . . <span class="insert">29</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     6.2.  exp: Explanation . . . . . . . . . . . . . . . . . . . . . <span class="delete">29</span></td><td> </td><td class="rblock">     6.2.  exp: Explanation . . . . . . . . . . . . . . . . . . . . . <span class="insert">30</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   7.  Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">31</span></td><td> </td><td class="rblock">   7.  Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.1.  Formal Specification . . . . . . . . . . . . . . . . . . . <span class="delete">31</span></td><td> </td><td class="rblock">     7.1.  Formal Specification . . . . . . . . . . . . . . . . . . . <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.2.  Macro Definitions  . . . . . . . . . . . . . . . . . . . . <span class="delete">31</span></td><td> </td><td class="rblock">     7.2.  Macro Definitions  . . . . . . . . . . . . . . . . . . . . <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.3.  Macro Processing Details . . . . . . . . . . . . . . . . . <span class="delete">32</span></td><td> </td><td class="rblock">     7.3.  Macro Processing Details . . . . . . . . . . . . . . . . . <span class="insert">33</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.4.  Expansion Examples . . . . . . . . . . . . . . . . . . . . <span class="delete">34</span></td><td> </td><td class="rblock">     7.4.  Expansion Examples . . . . . . . . . . . . . . . . . . . . <span class="insert">35</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   8.  Result Handling  . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">36</span></td><td> </td><td class="rblock">   8.  Result Handling  . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">37</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.1.  None . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">36</span></td><td> </td><td class="rblock">     8.1.  None . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">37</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">36</span></td><td> </td><td class="rblock">     8.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">37</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock">     8.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock">     8.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock">     8.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">38</span></td><td> </td><td class="rblock">     8.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">39</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">38</span></td><td> </td><td class="rblock">     8.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">39</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   9.  Recording the Result . . . . . . . . . . . . . . . . . . . . . <span class="delete">39</span></td><td> </td><td class="rblock">   9.  Recording the Result . . . . . . . . . . . . . . . . . . . . . <span class="insert">40</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.1.  The Received-SPF Header Field  . . . . . . . . . . . . . . <span class="delete">39</span></td><td> </td><td class="rblock">     9.1.  The Received-SPF Header Field  . . . . . . . . . . . . . . <span class="insert">40</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.2.  SPF Results in the Authentication-Results Header Field . . <span class="delete">41</span></td><td> </td><td class="rblock">     9.2.  SPF Results in the Authentication-Results Header Field . . <span class="insert">42</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   10. Effects on Infrastructure  . . . . . . . . . . . . . . . . . . <span class="delete">43</span></td><td> </td><td class="rblock">   10. Effects on Infrastructure  . . . . . . . . . . . . . . . . . . <span class="insert">44</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     10.1. Sending Domains  . . . . . . . . . . . . . . . . . . . . . <span class="delete">43</span></td><td> </td><td class="rblock">     10.1. Sending Domains  . . . . . . . . . . . . . . . . . . . . . <span class="insert">44</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       10.1.1. DNS Resource Considerations  . . . . . . . . . . . . . <span class="delete">43</span></td><td> </td><td class="rblock">       10.1.1. DNS Resource Considerations  . . . . . . . . . . . . . <span class="insert">44</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       10.1.2. Administrator's Considerations . . . . . . . . . . . . <span class="delete">44</span></td><td> </td><td class="rblock">       10.1.2. Administrator's Considerations . . . . . . . . . . . . <span class="insert">45</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       10.1.3. Bounces  . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">45</span></td><td> </td><td class="rblock">       10.1.3. Bounces  . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">46</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     10.2. Receivers  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">45</span></td><td> </td><td class="rblock">     10.2. Receivers  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">46</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     10.3. Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">45</span></td><td> </td><td class="rblock">     10.3. Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">46</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   11. Security Considerations  . . . . . . . . . . . . . . . . . . . <span class="delete">47</span></td><td> </td><td class="rblock">   11. Security Considerations  . . . . . . . . . . . . . . . . . . . <span class="insert">48</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.1. Processing Limits  . . . . . . . . . . . . . . . . . . . . <span class="delete">47</span></td><td> </td><td class="rblock">     11.1. Processing Limits  . . . . . . . . . . . . . . . . . . . . <span class="insert">48</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.2. SPF-Authorized Email May Contain Other False Identities  . <span class="delete">48</span></td><td> </td><td class="rblock">     11.2. SPF-Authorized Email May Contain Other False Identities  . <span class="insert">49</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.3. Spoofed DNS and IP Data  . . . . . . . . . . . . . . . . . <span class="delete">48</span></td><td> </td><td class="rblock">     11.3. Spoofed DNS and IP Data  . . . . . . . . . . . . . . . . . <span class="insert">49</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.4. Cross-User Forgery . . . . . . . . . . . . . . . . . . . . <span class="delete">48</span></td><td> </td><td class="rblock">     11.4. Cross-User Forgery . . . . . . . . . . . . . . . . . . . . <span class="insert">49</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.5. Untrusted Information Sources  . . . . . . . . . . . . . . <span class="delete">49</span></td><td> </td><td class="rblock">     11.5. Untrusted Information Sources  . . . . . . . . . . . . . . <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       11.5.1. Recorded Results . . . . . . . . . . . . . . . . . . . <span class="delete">49</span></td><td> </td><td class="rblock">       11.5.1. Recorded Results . . . . . . . . . . . . . . . . . . . <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       11.5.2. External Explanations  . . . . . . . . . . . . . . . . <span class="delete">49</span></td><td> </td><td class="rblock">       11.5.2. External Explanations  . . . . . . . . . . . . . . . . <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       11.5.3. Macro Expansion  . . . . . . . . . . . . . . . . . . . <span class="delete">50</span></td><td> </td><td class="rblock">       11.5.3. Macro Expansion  . . . . . . . . . . . . . . . . . . . <span class="insert">51</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.6. Privacy Exposure . . . . . . . . . . . . . . . . . . . . . <span class="delete">50</span></td><td> </td><td class="rblock">     11.6. Privacy Exposure . . . . . . . . . . . . . . . . . . . . . <span class="insert">51</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.7. Delivering Mail Producing a 'Fail' Result  . . . . . . . . <span class="delete">50</span></td><td> </td><td class="rblock">     11.7. Delivering Mail Producing a 'Fail' Result  . . . . . . . . <span class="insert">51</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   12. Contributors and Acknowledgements  . . . . . . . . . . . . . . <span class="delete">51</span></td><td> </td><td class="rblock">   12. Contributors and Acknowledgements  . . . . . . . . . . . . . . <span class="insert">52</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   13. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . <span class="delete">52</span></td><td> </td><td class="rblock">   13. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . <span class="insert">53</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     13.1. The SPF DNS Record Type  . . . . . . . . . . . . . . . . . <span class="delete">52</span></td><td> </td><td class="rblock">     13.1. The SPF DNS Record Type  . . . . . . . . . . . . . . . . . <span class="insert">53</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     13.2. The Received-SPF Mail Header Field . . . . . . . . . . . . <span class="delete">52</span></td><td> </td><td class="rblock">     13.2. The Received-SPF Mail Header Field . . . . . . . . . . . . <span class="insert">53</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     13.3. SPF Modifier Registry  . . . . . . . . . . . . . . . . . . <span class="delete">52</span></td><td> </td><td class="rblock">     13.3. SPF Modifier Registry  . . . . . . . . . . . . . . . . . . <span class="insert">53</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   14. References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock">   14. References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">54</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     14.1. Normative References . . . . . . . . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock">     14.1. Normative References . . . . . . . . . . . . . . . . . . . <span class="insert">54</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     14.2. Informative References . . . . . . . . . . . . . . . . . . <span class="delete">54</span></td><td> </td><td class="rblock">     14.2. Informative References . . . . . . . . . . . . . . . . . . <span class="insert">55</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix A.  Collected ABNF  . . . . . . . . . . . . . . . . . . . <span class="delete">56</span></td><td> </td><td class="rblock">   Appendix A.  Collected ABNF  . . . . . . . . . . . . . . . . . . . <span class="insert">57</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix B.  Extended Examples . . . . . . . . . . . . . . . . . . <span class="delete">59</span></td><td> </td><td class="rblock">   Appendix B.  Extended Examples . . . . . . . . . . . . . . . . . . <span class="insert">60</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     B.1.  Simple Examples  . . . . . . . . . . . . . . . . . . . . . <span class="delete">59</span></td><td> </td><td class="rblock">     B.1.  Simple Examples  . . . . . . . . . . . . . . . . . . . . . <span class="insert">60</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     B.2.  Multiple Domain Example  . . . . . . . . . . . . . . . . . <span class="delete">60</span></td><td> </td><td class="rblock">     B.2.  Multiple Domain Example  . . . . . . . . . . . . . . . . . <span class="insert">61</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     B.3.  DNSBL Style Example  . . . . . . . . . . . . . . . . . . . <span class="delete">61</span></td><td> </td><td class="rblock">     B.3.  DNSBL Style Example  . . . . . . . . . . . . . . . . . . . <span class="insert">62</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     B.4.  Multiple Requirements Example  . . . . . . . . . . . . . . <span class="delete">61</span></td><td> </td><td class="rblock">     B.4.  Multiple Requirements Example  . . . . . . . . . . . . . . <span class="insert">62</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Appendix C.  Changes in implementation requirements from RFC</td><td> </td><td class="right">   Appendix C.  Changes in implementation requirements from RFC</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0007" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">                4408  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">62</span></td><td> </td><td class="rblock">                4408  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">63</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix D.  Further Testing Advice  . . . . . . . . . . . . . . . <span class="delete">63</span></td><td> </td><td class="rblock">   Appendix D.  Further Testing Advice  . . . . . . . . . . . . . . . <span class="insert">64</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix E.  SPF/Mediator Interactions . . . . . . . . . . . . . . <span class="delete">64</span></td><td> </td><td class="rblock">   Appendix E.  SPF/Mediator Interactions . . . . . . . . . . . . . . <span class="insert">65</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     E.1.  Originating ADMDs  . . . . . . . . . . . . . . . . . . . . <span class="delete">64</span></td><td> </td><td class="rblock">     E.1.  Originating ADMDs  . . . . . . . . . . . . . . . . . . . . <span class="insert">65</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     E.2.  Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">65</span></td><td> </td><td class="rblock">     E.2.  Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">66</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     E.3.  Receving ADMDs . . . . . . . . . . . . . . . . . . . . . . <span class="delete">65</span></td><td> </td><td class="rblock">     E.3.  Receving ADMDs . . . . . . . . . . . . . . . . . . . . . . <span class="insert">66</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix F.  Mail Services . . . . . . . . . . . . . . . . . . . . <span class="delete">66</span></td><td> </td><td class="rblock">   Appendix F.  Mail Services . . . . . . . . . . . . . . . . . . . . <span class="insert">67</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix G.  MTA Relays  . . . . . . . . . . . . . . . . . . . . . <span class="delete">67</span></td><td> </td><td class="rblock">   Appendix G.  MTA Relays  . . . . . . . . . . . . . . . . . . . . . <span class="insert">68</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix H.  Local Policy Considerations . . . . . . . . . . . . . <span class="delete">68</span></td><td> </td><td class="rblock">   Appendix H.  Local Policy Considerations . . . . . . . . . . . . . <span class="insert">69</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     H.1.  Policy For SPF Pass  . . . . . . . . . . . . . . . . . . . <span class="delete">68</span></td><td> </td><td class="rblock">     H.1.  Policy For SPF Pass  . . . . . . . . . . . . . . . . . . . <span class="insert">69</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     H.2.  Policy For SPF Fail  . . . . . . . . . . . . . . . . . . . <span class="delete">68</span></td><td> </td><td class="rblock">     H.2.  Policy For SPF Fail  . . . . . . . . . . . . . . . . . . . <span class="insert">69</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     H.3.  Policy For SPF Permerror . . . . . . . . . . . . . . . . . <span class="delete">69</span></td><td> </td><td class="rblock">     H.3.  Policy For SPF Permerror . . . . . . . . . . . . . . . . . <span class="insert">70</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     H.4.  Policy For SPF Temperror . . . . . . . . . . . . . . . . . <span class="delete">69</span></td><td> </td><td class="rblock">     H.4.  Policy For SPF Temperror . . . . . . . . . . . . . . . . . <span class="insert">70</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix I.  Protocol Status . . . . . . . . . . . . . . . . . . . <span class="delete">71</span></td><td> </td><td class="rblock">   Appendix I.  Protocol Status . . . . . . . . . . . . . . . . . . . <span class="insert">72</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix J.  Change History  . . . . . . . . . . . . . . . . . . . <span class="delete">72</span></td><td> </td><td class="rblock">   Appendix J.  Change History  . . . . . . . . . . . . . . . . . . . <span class="insert">73</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">75</span></td><td> </td><td class="rblock">   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">76</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">1.  Introduction</td><td> </td><td class="right">1.  Introduction</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The current email infrastructure has the property that any host</td><td> </td><td class="right">   The current email infrastructure has the property that any host</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   injecting mail into the system can use any DNS domain name it wants</td><td> </td><td class="right">   injecting mail into the system can use any DNS domain name it wants</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   in each of the various identifiers specified by [RFC5321] and</td><td> </td><td class="right">   in each of the various identifiers specified by [RFC5321] and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5322].  Although this feature is desirable in some circumstances,</td><td> </td><td class="right">   [RFC5322].  Although this feature is desirable in some circumstances,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   it is a major obstacle to reducing Unsolicited Bulk Email (UBE, aka</td><td> </td><td class="right">   it is a major obstacle to reducing Unsolicited Bulk Email (UBE, aka</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   spam).  Furthermore, many domain owning ADMDs (as described in</td><td> </td><td class="right">   spam).  Furthermore, many domain owning ADMDs (as described in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5598]) are understandably concerned about the ease with which</td><td> </td><td class="right">   [RFC5598]) are understandably concerned about the ease with which</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> page 11, line 45</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> page 11, line 45</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.5.  Softfail</td><td> </td><td class="right">2.6.5.  Softfail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The ADMD has published a weak statement that the host is probably not</td><td> </td><td class="right">   The ADMD has published a weak statement that the host is probably not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorized.  It has not published a stronger, more definitive policy</td><td> </td><td class="right">   authorized.  It has not published a stronger, more definitive policy</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that results in a "fail".</td><td> </td><td class="right">   that results in a "fail".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.6.  Temperror</td><td> </td><td class="right">2.6.6.  Temperror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "temperror" result means the SPF verifier encountered a transient</td><td> </td><td class="right">   A "temperror" result means the SPF verifier encountered a transient</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (generally DNS) error while performing the check.  A later retry may</td><td> </td><td class="right">   (generally DNS) error while performing the check.  A later retry may</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0008" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   succeed without further operator action.</td><td> </td><td class="rblock">   succeed without further <span class="insert">DNS </span>operator action.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.7.  Permerror</td><td> </td><td class="right">2.6.7.  Permerror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "permerror" result means the domain's published records could not</td><td> </td><td class="right">   A "permerror" result means the domain's published records could not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be correctly interpreted.  This signals an error condition that</td><td> </td><td class="right">   be correctly interpreted.  This signals an error condition that</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0009" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   definitely requires operator intervention to be resolved.</td><td> </td><td class="rblock">   definitely requires <span class="insert">DNS </span>operator intervention to be resolved.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.  SPF Records</td><td> </td><td class="right">3.  SPF Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   An SPF record is a DNS record that declares which hosts are, and are</td><td> </td><td class="right">   An SPF record is a DNS record that declares which hosts are, and are</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   not, authorized to use a domain name for the "HELO" and "MAIL FROM"</td><td> </td><td class="right">   not, authorized to use a domain name for the "HELO" and "MAIL FROM"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   identities.  Loosely, the record partitions hosts into permitted and</td><td> </td><td class="right">   identities.  Loosely, the record partitions hosts into permitted and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   not-permitted sets (though some hosts might fall into neither</td><td> </td><td class="right">   not-permitted sets (though some hosts might fall into neither</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   category).</td><td> </td><td class="right">   category).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The SPF record is expressed as a single string of text found in the</td><td> </td><td class="right">   The SPF record is expressed as a single string of text found in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l5" /><small>skipping to change at</small><em> page 12, line 49</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> page 12, line 49</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ADMDs publishing SPF records ought to keep the amount of DNS</td><td> </td><td class="right">   ADMDs publishing SPF records ought to keep the amount of DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   information needed to evaluate a record to a minimum.  Section 4.6.4</td><td> </td><td class="right">   information needed to evaluate a record to a minimum.  Section 4.6.4</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and Section 10.1.1 provide some suggestions about "include"</td><td> </td><td class="right">   and Section 10.1.1 provide some suggestions about "include"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mechanisms and chained "redirect" modifiers.</td><td> </td><td class="right">   mechanisms and chained "redirect" modifiers.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.1.  DNS Resource Records</td><td> </td><td class="right">3.1.  DNS Resource Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF records MUST be published as a DNS TXT (type 16) Resource Record</td><td> </td><td class="right">   SPF records MUST be published as a DNS TXT (type 16) Resource Record</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (RR) [RFC1035] only.  The character content of the record is encoded</td><td> </td><td class="right">   (RR) [RFC1035] only.  The character content of the record is encoded</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   as [US-ASCII].  Use of alternative DNS RR types was supported in</td><td> </td><td class="right">   as [US-ASCII].  Use of alternative DNS RR types was supported in</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0010" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   SPF's experimental phase, but has been discontinued.  See Appendix A</td><td> </td><td class="rblock">   SPF's experimental phase, but has been discontinued.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   of [RFC6686] for further information.</td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   <span class="insert">In 2003, when SPF was first being developed, the requirements for</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   assignment of a new DNS RR type were considerably more stringent than</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   they are now.  Additionally, support for easy deployment of new DNS</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   RR types was not widely deployed in DNS servers and and provisioning</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   systems.  As a result, at that time, there was no reasonable</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   alternative to using the TXT RR type for SPF records.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   In its review of [RFC4408] the SPFbis working group concluded that</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   its dual RR type transition model was fundamentally flawed since it</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   contained no common RR type that implementers were required to serve</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   and required to check.  Many alternatives were considered to resolve</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   this issue, but ultimately the working group concluded that</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   significant migration to the SPF RR type in the forseable future was</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   very unlikely and that the best solution for resolving this</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   interoperability issue was to drop support for the SPF RR type from</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   SPF version 1.</span>  See Appendix A of [RFC6686] for further information.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   <span class="insert">The circumstances surrounding SPF's initial deploymenta decade ago</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   are unique and very, very unlikely to be repeated.  If a future</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   update to a new SPF version that could not reuse existing SPF records</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   were to be developed, it ought to use the SPF RR type.  SPF's use of</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   the TXT RR type for structured data should in no way be taken as</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   precedent for future protocol designers.  Things have changed.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.2.  Multiple DNS Records</td><td> </td><td class="right">3.2.  Multiple DNS Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A domain name MUST NOT have multiple records that would cause an</td><td> </td><td class="right">   A domain name MUST NOT have multiple records that would cause an</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorization check to select more than one record.  See Section 4.5</td><td> </td><td class="right">   authorization check to select more than one record.  See Section 4.5</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for the selection rules.</td><td> </td><td class="right">   for the selection rules.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.3.  Multiple Strings in a Single DNS record</td><td> </td><td class="right">3.3.  Multiple Strings in a Single DNS record</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As defined in [RFC1035] sections 3.3 and 3.3.14, a single text DNS</td><td> </td><td class="right">   As defined in [RFC1035] sections 3.3 and 3.3.14, a single text DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l6" /><small>skipping to change at</small><em> page 13, line 38</em></th><th> </th><th><a name="part-r6" /><small>skipping to change at</small><em> page 14, line 14</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.4.  Record Size</td><td> </td><td class="right">3.4.  Record Size</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The published SPF record for a given domain name SHOULD remain small</td><td> </td><td class="right">   The published SPF record for a given domain name SHOULD remain small</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   enough that the results of a query for it will fit within 512 octets.</td><td> </td><td class="right">   enough that the results of a query for it will fit within 512 octets.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This UDP limit is defined in [RFC1035] section 2.3.4, although it was</td><td> </td><td class="right">   This UDP limit is defined in [RFC1035] section 2.3.4, although it was</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   raised by [RFC2671].  Staying below 512 octets ought to prevent older</td><td> </td><td class="right">   raised by [RFC2671].  Staying below 512 octets ought to prevent older</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   DNS implementations from failing over to TCP,and will work with UDP</td><td> </td><td class="right">   DNS implementations from failing over to TCP,and will work with UDP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   in the absence of EDNS0 [RFC6891] support.  Since the answer size is</td><td> </td><td class="right">   in the absence of EDNS0 [RFC6891] support.  Since the answer size is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   dependent on many things outside the scope of this document, it is</td><td> </td><td class="right">   dependent on many things outside the scope of this document, it is</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0011" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   only possible to give this guideline: If the combined length of the</td><td> </td><td class="rblock">   only possible to give this guideline: If the <span class="insert">size of the DNS message,</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   DNS name and the text of all the records of a given type is under 450</td><td> </td><td class="rblock"><span class="insert">   the</span> combined length of the DNS name and the text of all the records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   octets, then DNS answers ought to fit in UDP packets.  Records that</td><td> </td><td class="rblock">   of a given type is under 450 octets, then DNS answers ought to fit in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   are too long to fit in a single UDP packet could be silently ignored</td><td> </td><td class="rblock">   UDP packets.  Records that are too long to fit in a single UDP packet</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   by SPF verifiers due to firewall and other issues that interfere with</td><td> </td><td class="rblock">   could be silently ignored by SPF verifiers due to firewall and other</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   the operation of DNS over TCP or using ENDS0.</td><td> </td><td class="rblock">   issues that interfere with the operation of DNS over TCP or using</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   ENDS0.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Note that when computing the sizes for replies to queries of the TXT</td><td> </td><td class="right">   Note that when computing the sizes for replies to queries of the TXT</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   format, one has to take into account any other TXT records published</td><td> </td><td class="right">   format, one has to take into account any other TXT records published</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   at the domain name.  Similarly, the sizes for replies to all queries</td><td> </td><td class="right">   at the domain name.  Similarly, the sizes for replies to all queries</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   related to SPF have to be evaluated to fit in a single 512 octet UDP</td><td> </td><td class="right">   related to SPF have to be evaluated to fit in a single 512 octet UDP</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0012" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   packet.</td><td> </td><td class="rblock">   packet<span class="insert"> (i.e.  DNS message size limited to 450 octects)</span>.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.5.  Wildcard Records</td><td> </td><td class="right">3.5.  Wildcard Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Use of wildcard records for publishing is discouraged and care has to</td><td> </td><td class="right">   Use of wildcard records for publishing is discouraged and care has to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be taken if they are used.  If a zone includes wildcard MX records,</td><td> </td><td class="right">   be taken if they are used.  If a zone includes wildcard MX records,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   it might want to publish wildcard declarations, subject to the same</td><td> </td><td class="right">   it might want to publish wildcard declarations, subject to the same</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   requirements and problems.  In particular, the declaration MUST be</td><td> </td><td class="right">   requirements and problems.  In particular, the declaration MUST be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   repeated for any host that has any RR records at all, and for</td><td> </td><td class="right">   repeated for any host that has any RR records at all, and for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   subdomains thereof.  Consider the example in [RFC1034], Section</td><td> </td><td class="right">   subdomains thereof.  Consider the example in [RFC1034], Section</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   4.3.3.  Based on that, we can do the following:</td><td> </td><td class="right">   4.3.3.  Based on that, we can do the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l7" /><small>skipping to change at</small><em> page 26, line 14</em></th><th> </th><th><a name="part-r7" /><small>skipping to change at</small><em> page 27, line 14</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MUST support it.</td><td> </td><td class="right">   MUST support it.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">5.6.  "ip4" and "ip6"</td><td> </td><td class="right">5.6.  "ip4" and "ip6"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These mechanisms test whether &lt;ip&gt; is contained within a given IP</td><td> </td><td class="right">   These mechanisms test whether &lt;ip&gt; is contained within a given IP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   network.</td><td> </td><td class="right">   network.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</td><td> </td><td class="right">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</td><td> </td><td class="right">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0013" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ip4-cidr-length  = "/" <span class="delete">1*DIGIT</span></td><td> </td><td class="rblock">   ip4-cidr-length  = "/" <span class="insert">("0" |  %x31-39 0*1DIGIT) ; value range 0-32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ip6-cidr-length  = "/" <span class="delete">1*DIGIT</span></td><td> </td><td class="rblock">   ip6-cidr-length  = "/" <span class="insert">("0" |  %x31-39 0*2DIGIT) ; value range 0-128</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</td><td> </td><td class="right">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4-network      = qnum "." qnum "." qnum "." qnum</td><td> </td><td class="right">   ip4-network      = qnum "." qnum "." qnum "." qnum</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   qnum             = DIGIT                 ; 0-9</td><td> </td><td class="right">   qnum             = DIGIT                 ; 0-9</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / %x31-39 DIGIT       ; 10-99</td><td> </td><td class="right">                      / %x31-39 DIGIT       ; 10-99</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "1" 2DIGIT          ; 100-199</td><td> </td><td class="right">                      / "1" 2DIGIT          ; 100-199</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "2" %x30-34 DIGIT   ; 200-249</td><td> </td><td class="right">                      / "2" %x30-34 DIGIT   ; 200-249</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "25" %x30-35        ; 250-255</td><td> </td><td class="right">                      / "25" %x30-35        ; 250-255</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">            ; as per conventional dotted quad notation.  e.g., 192.0.2.0</td><td> </td><td class="right">            ; as per conventional dotted quad notation.  e.g., 192.0.2.0</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</td><td> </td><td class="right">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l8" /><small>skipping to change at</small><em> page 36, line 7</em></th><th> </th><th><a name="part-r8" /><small>skipping to change at</small><em> page 37, line 7</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   %{d2}.trusted-domains.example.net</td><td> </td><td class="right">   %{d2}.trusted-domains.example.net</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                                example.com.trusted-domains.example.net</td><td> </td><td class="right">                                example.com.trusted-domains.example.net</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   IPv6:</td><td> </td><td class="right">   IPv6:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   %{ir}.%{v}._spf.%{d2}                               1.0.B.C.0.0.0.0.</td><td> </td><td class="right">   %{ir}.%{v}._spf.%{d2}                               1.0.B.C.0.0.0.0.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.B.D.0.1.0.0.2.ip6._spf.example.com</td><td> </td><td class="right">   0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.B.D.0.1.0.0.2.ip6._spf.example.com</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.  Result Handling</td><td> </td><td class="right">8.  Result Handling</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0014" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This section provides guidance for operators in response to the</td><td> </td><td class="rblock">   This section provides guidance for <span class="insert">SPF verifier</span> operators in response</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   various possible outputs of check_host() on a message.  Definitions</td><td> </td><td class="rblock">   to the various possible outputs of check_host() on a message.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   of SPF results are presented in Section 2.6; this section provides</td><td> </td><td class="rblock">   Definitions of SPF results are presented in Section 2.6; this section</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   more detail on each for use in developing local policy for message</td><td> </td><td class="rblock">   provides more detail on each for use in developing local policy for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   handling.</td><td> </td><td class="rblock">   message handling.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Every operating environment is different.  There are some receivers</td><td> </td><td class="right">   Every operating environment is different.  There are some receivers</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for whom strict adherence to SPF is appropriate, and definitive</td><td> </td><td class="right">   for whom strict adherence to SPF is appropriate, and definitive</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   treatment of messages that are evaluated to be explicitly</td><td> </td><td class="right">   treatment of messages that are evaluated to be explicitly</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   unauthorized ("fail" and sometimes "softfail") is the norm.  There</td><td> </td><td class="right">   unauthorized ("fail" and sometimes "softfail") is the norm.  There</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   are others for which the "false negative" cases are more of a</td><td> </td><td class="right">   are others for which the "false negative" cases are more of a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   concern.  This concern is typically handled by merely recording the</td><td> </td><td class="right">   concern.  This concern is typically handled by merely recording the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result in the header and allowing the message to pass on for</td><td> </td><td class="right">   result in the header and allowing the message to pass on for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   additional processing.  There are still others where SPF is one of</td><td> </td><td class="right">   additional processing.  There are still others where SPF is one of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   several inputs to the message handling decision.  As such, there is</td><td> </td><td class="right">   several inputs to the message handling decision.  As such, there is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l9" /><small>skipping to change at</small><em> page 38, line 28</em></th><th> </th><th><a name="part-r9" /><small>skipping to change at</small><em> page 39, line 28</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   software SHOULD use an SMTP reply code of 451 and, if supported, the</td><td> </td><td class="right">   software SHOULD use an SMTP reply code of 451 and, if supported, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   4.4.3 enhanced status code (see [RFC3463], Section 3.5).  These</td><td> </td><td class="right">   4.4.3 enhanced status code (see [RFC3463], Section 3.5).  These</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   errors can be caused by problems in either the sender's or receiver's</td><td> </td><td class="right">   errors can be caused by problems in either the sender's or receiver's</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   DNS software.  See Appendix H.4 for considerations on developing</td><td> </td><td class="right">   DNS software.  See Appendix H.4 for considerations on developing</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   local policy.</td><td> </td><td class="right">   local policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.7.  Permerror</td><td> </td><td class="right">8.7.  Permerror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "permerror" result means the domain's published records could not</td><td> </td><td class="right">   A "permerror" result means the domain's published records could not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be correctly interpreted.  This signals an error condition that</td><td> </td><td class="right">   be correctly interpreted.  This signals an error condition that</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0015" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   definitely requires operator intervention to be resolved.  If the</td><td> </td><td class="rblock">   definitely requires <span class="insert">DNS </span>operator intervention to be resolved.  If the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message is rejected during the SMTP transaction for this reason, the</td><td> </td><td class="right">   message is rejected during the SMTP transaction for this reason, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   software SHOULD use an SMTP reply code of 550 and, if supported, the</td><td> </td><td class="right">   software SHOULD use an SMTP reply code of 550 and, if supported, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   5.5.2 enhanced status code (see [RFC3463], Section 3.6).  Be aware</td><td> </td><td class="right">   5.5.2 enhanced status code (see [RFC3463], Section 3.6).  Be aware</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that if the ADMD uses macros (Section 7), it is possible that this</td><td> </td><td class="right">   that if the ADMD uses macros (Section 7), it is possible that this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result is due to the checked identities having an unexpected format.</td><td> </td><td class="right">   result is due to the checked identities having an unexpected format.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   It is also possible that this result is generated by certain SPF</td><td> </td><td class="right">   It is also possible that this result is generated by certain SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   verifiers due to the input arguments having an unexpected format; see</td><td> </td><td class="right">   verifiers due to the input arguments having an unexpected format; see</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Section 4.8.  See Appendix H.3 for considerations on developing local</td><td> </td><td class="right">   Section 4.8.  See Appendix H.3 for considerations on developing local</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   policy.</td><td> </td><td class="right">   policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">9.  Recording the Result</td><td> </td><td class="right">9.  Recording the Result</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   To provide downstream agents, such as MUAs, with the information they</td><td> </td><td class="right">   To provide downstream agents, such as MUAs, with the information they</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   might need in terms of evaluating or representing the apparent safety</td><td> </td><td class="right">   might need in terms of evaluating or representing the apparent safety</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of the message content, it is RECOMMENDED that SMTP receivers record</td><td> </td><td class="right">   of the message content, it is RECOMMENDED that SMTP receivers record</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0016" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   the result of SPF processing in the message header.  For operators</td><td> </td><td class="rblock">   the result of SPF processing in the message header.  For <span class="insert">SPF verifier</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   that choose to record SPF results in the header of the message for</td><td> </td><td class="rblock">   operators that choose to record SPF results in the header of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   processing by internal filters or MUAs, two methods are presented.</td><td> </td><td class="rblock">   message for processing by internal filters or MUAs, two methods are</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Section 9.1 defines the Received-SPF field, which is the results</td><td> </td><td class="rblock">   presented.  Section 9.1 defines the Received-SPF field, which is the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   field originally defined for SPF use.  Section 9.2 discusses</td><td> </td><td class="rblock">   results field originally defined for SPF use.  Section 9.2 discusses</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Authentication-Results [RFC5451] which was specified more recently</td><td> </td><td class="right">   Authentication-Results [RFC5451] which was specified more recently</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and is designed for use by SPF and other authentication methods.</td><td> </td><td class="right">   and is designed for use by SPF and other authentication methods.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Both are in common use, and hence both are included here.  However,</td><td> </td><td class="right">   Both are in common use, and hence both are included here.  However,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   it is important to note that they were designed to serve slightly</td><td> </td><td class="right">   it is important to note that they were designed to serve slightly</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   different purposes.  Received-SPF is intended to include enough</td><td> </td><td class="right">   different purposes.  Received-SPF is intended to include enough</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   information to enable reconstruction of the SPF evaluation of the</td><td> </td><td class="right">   information to enable reconstruction of the SPF evaluation of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message, while Authentication-Results is designed only to relay the</td><td> </td><td class="right">   message, while Authentication-Results is designed only to relay the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result itself and related output details of likely use to end users</td><td> </td><td class="right">   result itself and related output details of likely use to end users</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (e.g., what property of the message was actually authenticated and</td><td> </td><td class="right">   (e.g., what property of the message was actually authenticated and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   what it contained), leaving reconstructive work to the purview of</td><td> </td><td class="right">   what it contained), leaving reconstructive work to the purview of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   system logs and the Received field contents.  Also, Received-SPF</td><td> </td><td class="right">   system logs and the Received field contents.  Also, Received-SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   relies on compliance of agents within the receiving ADMD to adhere to</td><td> </td><td class="right">   relies on compliance of agents within the receiving ADMD to adhere to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the header field ordering rules of [RFC5321] and [RFC5322], while</td><td> </td><td class="right">   the header field ordering rules of [RFC5321] and [RFC5322], while</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Authentication-Results includes some provisions to protect against</td><td> </td><td class="right">   Authentication-Results includes some provisions to protect against</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   non-compliant implementations.</td><td> </td><td class="right">   non-compliant implementations.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0017" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   An operator could choose to use both to serve different downstream</td><td> </td><td class="rblock">   An <span class="insert">SPF verifier</span> operator could choose to use both to serve different</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   agents.  In such cases, care needs to be taken to ensure both fields</td><td> </td><td class="rblock">   downstream agents.  In such cases, care needs to be taken to ensure</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   are conveying the same details, or unexpected results can occur.</td><td> </td><td class="rblock">   both fields are conveying the same details, or unexpected results can</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   occur.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">9.1.  The Received-SPF Header Field</td><td> </td><td class="right">9.1.  The Received-SPF Header Field</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The Received-SPF header field is a trace field (see [RFC5322] Section</td><td> </td><td class="right">   The Received-SPF header field is a trace field (see [RFC5322] Section</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   3.6.7) and SHOULD be prepended to the existing header, above the</td><td> </td><td class="right">   3.6.7) and SHOULD be prepended to the existing header, above the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Received: field that is generated by the SMTP receiver.  It MUST</td><td> </td><td class="right">   Received: field that is generated by the SMTP receiver.  It MUST</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   appear above all other Received-SPF fields in the message.  The</td><td> </td><td class="right">   appear above all other Received-SPF fields in the message.  The</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   header field has the following format:</td><td> </td><td class="right">   header field has the following format:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   header-field     = "Received-SPF:" [CFWS] result FWS [comment FWS]</td><td> </td><td class="right">   header-field     = "Received-SPF:" [CFWS] result FWS [comment FWS]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l10" /><small>skipping to change at</small><em> page 56, line 40</em></th><th> </th><th><a name="part-r10" /><small>skipping to change at</small><em> page 57, line 40</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</td><td> </td><td class="right">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</td><td> </td><td class="right">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   exists           = "exists"   ":" domain-spec</td><td> </td><td class="right">   exists           = "exists"   ":" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   modifier         = redirect / explanation / unknown-modifier</td><td> </td><td class="right">   modifier         = redirect / explanation / unknown-modifier</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   redirect         = "redirect" "=" domain-spec</td><td> </td><td class="right">   redirect         = "redirect" "=" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   explanation      = "exp" "=" domain-spec</td><td> </td><td class="right">   explanation      = "exp" "=" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   unknown-modifier = name "=" macro-string</td><td> </td><td class="right">   unknown-modifier = name "=" macro-string</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      ; where name is not any known modifier</td><td> </td><td class="right">                      ; where name is not any known modifier</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0018" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ip4-cidr-length  = "/" <span class="delete">1*DIGIT</span></td><td> </td><td class="rblock">   ip4-cidr-length  = "/" <span class="insert">("0" |  %x31-39 0*1DIGIT) ; value range 0-32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ip6-cidr-length  = "/" <span class="delete">1*DIGIT</span></td><td> </td><td class="rblock">   ip6-cidr-length  = "/" <span class="insert">("0" |  %x31-39 0*2DIGIT) ; value range 0-128</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</td><td> </td><td class="right">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4-network      = qnum "." qnum "." qnum "." qnum</td><td> </td><td class="right">   ip4-network      = qnum "." qnum "." qnum "." qnum</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   qnum             = DIGIT                 ; 0-9</td><td> </td><td class="right">   qnum             = DIGIT                 ; 0-9</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / %x31-39 DIGIT       ; 10-99</td><td> </td><td class="right">                      / %x31-39 DIGIT       ; 10-99</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "1" 2DIGIT          ; 100-199</td><td> </td><td class="right">                      / "1" 2DIGIT          ; 100-199</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "2" %x30-34 DIGIT   ; 200-249</td><td> </td><td class="right">                      / "2" %x30-34 DIGIT   ; 200-249</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "25" %x30-35        ; 250-255</td><td> </td><td class="right">                      / "25" %x30-35        ; 250-255</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">            ; conventional dotted quad notation.  e.g., 192.0.2.0</td><td> </td><td class="right">            ; conventional dotted quad notation.  e.g., 192.0.2.0</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</td><td> </td><td class="right">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l11" /><small>skipping to change at</small><em> page 69, line 28</em></th><th> </th><th><a name="part-r11" /><small>skipping to change at</small><em> page 70, line 28</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   receiver can do to draw attention to the difficulty encountered while</td><td> </td><td class="right">   receiver can do to draw attention to the difficulty encountered while</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   protecting itself from messages that do not have a definite SPF</td><td> </td><td class="right">   protecting itself from messages that do not have a definite SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result of some kind.  However, if the SPF implementation is defective</td><td> </td><td class="right">   result of some kind.  However, if the SPF implementation is defective</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and returns spurious "permerror" results, only the sender is actively</td><td> </td><td class="right">   and returns spurious "permerror" results, only the sender is actively</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   notified of the defect (in the form of rejected mail), and not the</td><td> </td><td class="right">   notified of the defect (in the form of rejected mail), and not the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   receiver making use of SPF.</td><td> </td><td class="right">   receiver making use of SPF.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The less intrusive handling choice is to deliver the message, perhaps</td><td> </td><td class="right">   The less intrusive handling choice is to deliver the message, perhaps</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   with some kind of annotation of the difficulty encountered and/or</td><td> </td><td class="right">   with some kind of annotation of the difficulty encountered and/or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   logging of a similar nature.  However, this will not be desirable to</td><td> </td><td class="right">   logging of a similar nature.  However, this will not be desirable to</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0019" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   operators that wish to implement SPF checking as strictly as</td><td> </td><td class="rblock">   <span class="insert">SPF verifier</span> operators that wish to implement SPF checking as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   possible, nor is this sort of passive problem reporting typically</td><td> </td><td class="rblock">   strictly as possible, nor is this sort of passive problem reporting</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   effective.</td><td> </td><td class="rblock">   typically effective.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There is of course the option placing this choice in the hands of the</td><td> </td><td class="right">   There is of course the option placing this choice in the hands of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0020" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   operator rather than the implementer since this kind of choice is</td><td> </td><td class="rblock">   <span class="insert">SPF verifier</span> operator rather than the implementer since this kind of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   often a matter of local policy rather than a condition with a</td><td> </td><td class="rblock">   choice is often a matter of local policy rather than a condition with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   universal solution, but this adds one more piece of complexity to an</td><td> </td><td class="rblock">   a universal solution, but this adds one more piece of complexity to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   already non-trivial environment.</td><td> </td><td class="rblock">   an already non-trivial environment.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0021" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Both implementers and operators need to be cautious of all choices</td><td> </td><td class="rblock">   Both implementers and <span class="insert">SPF verfier</span> operators need to be cautious of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   and outcomes when handling SPF results.</td><td> </td><td class="rblock">   all choices and outcomes when handling SPF results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">H.4.  Policy For SPF Temperror</td><td> </td><td class="right">H.4.  Policy For SPF Temperror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "temperror" result (see Section 2.6.6) indicates the SPF</td><td> </td><td class="right">   The "temperror" result (see Section 2.6.6) indicates the SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   processing module at the receiver could not retrieve and SPF policy</td><td> </td><td class="right">   processing module at the receiver could not retrieve and SPF policy</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   record due to a (probably) transient condition.  This gives no true</td><td> </td><td class="right">   record due to a (probably) transient condition.  This gives no true</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   indication about the authorized use of the data found in the</td><td> </td><td class="right">   indication about the authorized use of the data found in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   envelope.</td><td> </td><td class="right">   envelope.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As with all results, implementers have a choice to make regarding</td><td> </td><td class="right">   As with all results, implementers have a choice to make regarding</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l12" /><small>skipping to change at</small><em> page 70, line 23</em></th><th> </th><th><a name="part-r12" /><small>skipping to change at</small><em> page 71, line 23</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Because of long queue lifetimes, it is possible that mail will be</td><td> </td><td class="right">   Because of long queue lifetimes, it is possible that mail will be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   repeatedly deferred for several days and so any awareness by the</td><td> </td><td class="right">   repeatedly deferred for several days and so any awareness by the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   sender of a problem could be quite delayed.  If "temperrors" persist</td><td> </td><td class="right">   sender of a problem could be quite delayed.  If "temperrors" persist</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for multiple delivery attempts, it might be preferable to treat the</td><td> </td><td class="right">   for multiple delivery attempts, it might be preferable to treat the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   error as permanent and reduce the amount of time the message is in</td><td> </td><td class="right">   error as permanent and reduce the amount of time the message is in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   transit.</td><td> </td><td class="right">   transit.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The less intrusive handling choice is to deliver the message, perhaps</td><td> </td><td class="right">   The less intrusive handling choice is to deliver the message, perhaps</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   with some kind of annotation of the difficulty encountered and/or</td><td> </td><td class="right">   with some kind of annotation of the difficulty encountered and/or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   logging of a similar nature.  However, this will not be desirable to</td><td> </td><td class="right">   logging of a similar nature.  However, this will not be desirable to</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0022" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   operators that wish to implement SPF checking as strictly as</td><td> </td><td class="rblock">   <span class="insert">SPF verifier</span> operators that wish to implement SPF checking as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   possible, nor is this sort of passive problem reporting typically</td><td> </td><td class="rblock">   strictly as possible, nor is this sort of passive problem reporting</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   effective.</td><td> </td><td class="rblock">   typically effective.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There is of course the option placing this choice in the hands of the</td><td> </td><td class="right">   There is of course the option placing this choice in the hands of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0023" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   operator rather than the implementer since this kind of choice is</td><td> </td><td class="rblock">   <span class="insert">SPF verifier</span> operator rather than the implementer since this kind of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   often a matter of local policy rather than a condition with a</td><td> </td><td class="rblock">   choice is often a matter of local policy rather than a condition with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   universal solution, but this adds one more piece of complexity to an</td><td> </td><td class="rblock">   a universal solution, but this adds one more piece of complexity to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   already non-trivial environment.</td><td> </td><td class="rblock">   an already non-trivial environment.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0024" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Both implementers and operators need to be cautious of all choices</td><td> </td><td class="rblock">   Both implementers and <span class="insert">SPF verifier</span> operators need to be cautious of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   and outcomes when handling SPF results.</td><td> </td><td class="rblock">   all choices and outcomes when handling SPF results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Appendix I.  Protocol Status</td><td> </td><td class="right">Appendix I.  Protocol Status</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   NOTE TO RFC EDITOR: To be removed prior to publication.</td><td> </td><td class="right">   NOTE TO RFC EDITOR: To be removed prior to publication.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF has been in development since the summer of 2003 and has seen</td><td> </td><td class="right">   SPF has been in development since the summer of 2003 and has seen</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   deployment beyond the developers beginning in December 2003.  The</td><td> </td><td class="right">   deployment beyond the developers beginning in December 2003.  The</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   design of SPF slowly evolved until the spring of 2004 and has since</td><td> </td><td class="right">   design of SPF slowly evolved until the spring of 2004 and has since</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   stabilized.  There have been quite a number of forms of SPF, some</td><td> </td><td class="right">   stabilized.  There have been quite a number of forms of SPF, some</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   written up as documents, some submitted as Internet Drafts, and many</td><td> </td><td class="right">   written up as documents, some submitted as Internet Drafts, and many</td><td class="lineno" valign="top"></td></tr>

     <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
     <tr bgcolor="gray"><th colspan="5" align="center"><a name="end">&nbsp;End of changes. 24 change blocks.&nbsp;</a></th></tr>
     <tr class="stats"><td></td><th><i>140 lines changed or deleted</i></th><th><i> </i></th><th><i>165 lines changed or added</i></th><td></td></tr>
     <tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.41. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/" >http://tools.ietf.org/tools/rfcdiff/</a> </td></tr>
   </table>
   </body>
   </html>

--nextPart7749248.bf4gaU6bsf--


From hsantos@isdg.net  Wed Sep 11 02:39:41 2013
Return-Path: <hsantos@isdg.net>
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 6F09821E809B for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 02:39:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.706
X-Spam-Level: 
X-Spam-Status: No, score=-101.706 tagged_above=-999 required=5 tests=[AWL=-0.029, BAYES_00=-2.599, HELO_MISMATCH_NET=0.611, HOST_MISMATCH_COM=0.311, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RIGA5aatoRQE for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 02:39:36 -0700 (PDT)
Received: from catinthebox.net (mail.winserver.com [208.247.131.9]) by ietfa.amsl.com (Postfix) with ESMTP id CE1CD11E8111 for <spfbis@ietf.org>; Wed, 11 Sep 2013 02:39:35 -0700 (PDT)
DKIM-Signature: v=1; d=isdg.net; s=tms1; a=rsa-sha1; c=simple/relaxed; l=3970; t=1378892365; h=Received:Received: Received:Received:Message-ID:Date:From:Organization:To:Subject: List-ID; bh=2/1N/7waIdjIo2q0oGNbJuq1UTo=; b=Rp7SUEev/JXOUHC3XJ2k Rihhfv+7tnzYagNELBUg98DLiUNAQPuk0USaqb/QBfm+PqCKtSCRnYfEPDshPpHW gQj9JgeuC9DvfT1ymF8DvMbPNXdmmfT17ac1x1NGMhJ1MvHTRjqyCyk7HtJiujRn 4ASyzIvvKbC2c+ElC+Qs6fU=
Received: by winserver.com (Wildcat! SMTP Router v7.0.454.4) for spfbis@ietf.org; Wed, 11 Sep 2013 05:39:25 -0400
Authentication-Results: dkim.winserver.com; dkim=pass header.d=beta.winserver.com header.s=tms1 header.i=beta.winserver.com;  adsp=pass policy=all author.d=isdg.net asl.d=beta.winserver.com;
Received: from opensite.winserver.com ([208.247.131.23]) by winserver.com (Wildcat! SMTP v7.0.454.4) with ESMTP id 1059893587.29028.1696; Wed, 11 Sep 2013 05:39:24 -0400
DKIM-Signature: v=1; d=beta.winserver.com; s=tms1; a=rsa-sha256; c=simple/relaxed; l=3970; t=1378892017; h=Received:Received: Message-ID:Date:From:Organization:To:Subject:List-ID; bh=KnuEuBn PvApyjDzy58d2Js02V0RT9ZAWrzqclV22pLE=; b=zYEVwHkgMWxu7sLyJaDCAS8 3qIH/bNSgaXcdP9kkXqtl0lpXQIkO0stxgAdxzwsX1/QqP4J0fQVp6YZHwrIML8k LxgglWc5hZlJ1UgQqirV2A9kw6s3siF/vfIkTi+PCbg53K0VxqSvg9MtO338LUpn cwDqGsl0A0ukHAUvVZkI=
Received: by beta.winserver.com (Wildcat! SMTP Router v7.0.454.4) for spfbis@ietf.org; Wed, 11 Sep 2013 05:33:37 -0400
Received: from [192.168.1.2] ([99.121.4.27]) by beta.winserver.com (Wildcat! SMTP v7.0.454.4) with ESMTP id 506297581.9.5604; Wed, 11 Sep 2013 05:33:36 -0400
Message-ID: <52303A4A.5070303@isdg.net>
Date: Wed, 11 Sep 2013 05:39:22 -0400
From: Hector Santos <hsantos@isdg.net>
Organization: Santronics Software, Inc.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: Scott Kitterman <spf2@kitterman.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130910113052.0c339a60@elandnews.com> <522F7A8F.5060807@gmail.com> <10370218.OEr9JV8dgx@scott-latitude-e6320>
In-Reply-To: <10370218.OEr9JV8dgx@scott-latitude-e6320>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Cc: Pete Resnick <presnick@qti.qualcomm.com>, S Moonesamy <sm+ietf@elandsys.com>, spfbis@ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, Spencer Dawkins <spencerdawkins.ietf@gmail.com>, spfbis-chairs@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 09:39:41 -0000

On 9/10/2013 9:38 PM, Scott Kitterman wrote:
>
> Here's the fixed sentence.  I suspect the truth may be less dramatic than you
> imagined.  I also got a bit more expansive in the last paragraph.  I've
> attached a revised rfcdiff for the total local diff I'm carrying now.  Here's
> what I have now:
>
> 3.1.  DNS Resource Records
>
>     SPF records MUST be published as a DNS TXT (type 16) Resource Record
>     (RR) [RFC1035] only.  The character content of the record is encoded
>     as [US-ASCII].  Use of alternative DNS RR types was supported in
>     SPF's experimental phase, but has been discontinued.
>
>     In 2003, when SPF was first being developed, the requirements for
>     assignment of a new DNS RR type were considerably more stringent than
>     they are now.  Additionally, support for easy deployment of new DNS
>     RR types was not widely deployed in DNS servers and and provisioning
>     systems.  As a result, at that time, there was no reasonable
>     alternative to using the TXT RR type for SPF records.
>
>     In its review of [RFC4408] the SPFbis working group concluded that
>     its dual RR type transition model was fundamentally flawed since it
>     contained no common RR type that implementers were required to serve
>     and required to check.  Many alternatives were considered to resolve
>     this issue, but ultimately the working group concluded that
>     significant migration to the SPF RR type in the forseable future was
>     very unlikely and that the best solution for resolving this
>     interoperability issue was to drop support for the SPF RR type from
>     SPF version 1.  See Appendix A of [RFC6686] for further information.


I would remove the word "fundamentally", fix up or remove the first 
sentence. The only real reason for lack of support is that DNS servers 
across the board were not ready for it.

Consider:

If the DNS servers were ready for it, then this would be a functional 
description correction not a removal.

Consider:

If the DNS Servers were ready for it, then the market would of figured 
out the best query method with minimal overhead, which is SPF first, 
TXT fallback.  Publishers and Receivers would of figured it out and 
that would of been codified.

But its lack of support was 100% related to the market not being ready 
to handle it. Period, and in my view, any future new RR type proposal 
will also be in the same position.


>     The circumstances surrounding SPF's initial deploymenta decade ago
>     are unique and very, very unlikely to be repeated.

I don't think so. All it takes is someone to bring it up, like with DMARC.

>     If a future
>     update to a new SPF version that could not reuse existing SPF records
>     were to be developed, it ought to use the SPF RR type.

Not until the DNS servers across the board support it.  A future one 
will most likely use a subdomain TXT format.

>     SPF's use of
>     the TXT RR type for structured data should in no way be taken as
>     precedent for future protocol designers.  Things have changed.


No it hasn't change.  DNS servers do no support them, period. Like it 
or not, we have to lump Microsoft servers in this support picture. 
Until MS DNS servers support it, we won't get wide support for this 
type99 type or any future new RR type proposal.  We will be in the 
same predicament and it will not be practical to explore any new type 
other than TXT.  Just look at DMARC.  I extremely doubt a primary new 
RR type with a TXT fallback will be acceptable here by the key 
designers of it.

So lets be real about this.  I like the first paragraph. But the only 
reason for removal is lack of infrastructure support.  Keep it simple.

To me, the main lesson learned is that TXT is acceptable for future 
proposals (with a subdomain zone) and thats really all that is 
extractable by all this.  TYPE99 didn't work for a lack for 
infrastructure support -- with Microsoft DNS servers included in the 
lack of support.  Its not just a Bind world.

-- 
HLS



From sm@elandsys.com  Wed Sep 11 05:59:42 2013
Return-Path: <sm@elandsys.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 326B911E8253; Wed, 11 Sep 2013 05:59:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.499
X-Spam-Level: 
X-Spam-Status: No, score=-102.499 tagged_above=-999 required=5 tests=[AWL=0.100, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id a9UW8UQNrX-D; Wed, 11 Sep 2013 05:59:40 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 7253D11E8270; Wed, 11 Sep 2013 05:59:00 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.155.34]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8BCwRdx011603 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Sep 2013 05:58:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378904322; bh=6c8M1Pb8coPDFiMdX6tTGr1V10knoHwQxomW/2hVVX8=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=dMK2EAp85W7ftJFDXXrjspqiJ1+piZyGkx1bLTtAY1SZ8H6rVWldJQLjSsjkDD8Sm v4bCC0FozlDqDmvmGo+n/VObCYeIE6o7MwECZRQI3IKtNqS8unahDshTT2IC2uzyvZ 3VRwTY2qt23WK53BX0yIsg8RLs7D1ydiokvlH3Jg=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378904322; i=@elandsys.com; bh=6c8M1Pb8coPDFiMdX6tTGr1V10knoHwQxomW/2hVVX8=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=hM8K0qxqiTkHbJ3Z/iKuLxzFle5p+uZwhRX3bck95gb1o6IndUqAypvsVtflhl9Qb zNzvGI3TPquX5Mqvm6GExWgGuwQbCR1/SnI0Bvi1757wfvxTcASdVw3CgLHvcMad/B 6H+7CdQPEjm2ZHm5hCPZq2a621Sr/0hJ4FsVgv0g=
Message-Id: <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Wed, 11 Sep 2013 05:04:11 -0700
To: Barry Leiba <barryleiba@computer.org>, The IESG <iesg@ietf.org>, draft-ietf-spfbis-4408bis@tools.ietf.org
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <20130911015837.30196.11175.idtracker@ietfa.amsl.com>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 12:59:42 -0000

Hello,

Could the SPFBIS WG please review the following?

Thanks,
S. Moonesamy (as document shepherd)

At 18:58 10-09-2013, Barry Leiba wrote:
>Barry Leiba has entered the following ballot position for
>draft-ietf-spfbis-4408bis-19: Discuss
>
>When responding, please keep the subject line intact and reply to all
>email addresses included in the To and CC lines. (Feel free to cut this
>introductory paragraph, however.)
>
>
>Please refer to http://www.ietf.org/iesg/statement/discuss-criteria.html
>for more information about IESG DISCUSS and COMMENT positions.
>
>
>The document, along with other ballot positions, can be found here:
>http://datatracker.ietf.org/doc/draft-ietf-spfbis-4408bis/
>
>
>
>----------------------------------------------------------------------
>DISCUSS:
>----------------------------------------------------------------------
>
>I have two very small points that I think are unclear, and important
>enough that we have to get them right, both regarding the check_host()
>function.  These should be really easy to clear up:
>
>-- Section 4.6 --
>
>    The check_host() function parses and interprets the SPF record to
>    find a result for the current test.  If there are any syntax errors
>    anywhere in the record, check_host() returns immediately with the
>    result "permerror", without further interpretation.
>
>I think you're trying to say that syntax checking is done before any
>evaluation, but you aren't saying it.  It matters, because
>implementations that make different choices in that regard won't get the
>same results from check_host() in all cases, as they're required to.
>Maybe this?:
>
>NEW
>    The check_host() function parses and interprets the SPF record to
>    find a result for the current test.  The syntax of the record is
>    validated first, and if there are any syntax errors anywhere in the
>    record, check_host() returns immediately with the result "permerror",
>    without further interpretation or evaluation.
>END
>
>-- Section 5.5 --
>
>I have to say that I'm not happy about the pseudocode here: what
>situation are we in when the pseudocode differs from the text?  Which
>wins?
>
>I already see a case where they differ: the new pseudocode says "if more
>than 10 sending-domain_names are found, use at most 10", and there's
>nothing of the sort in the text.
>
>Does the working group really think there's enough value in having
>pseudocode there that it's worth saying the same thing twice and relying
>on them to be truly the same?  And is it really worth it for mechanism
>that's not recommended for use?
>
>I strongly suggest making sure that the text says what you want it to,
>and removing the pseudocode.
>
>
>----------------------------------------------------------------------
>COMMENT:
>----------------------------------------------------------------------
>
>I have a bunch of editorial comments that I'd like you to consider.
>They're all non-blocking, but I think they'll improve the document, and
>I'll be happy to chat about them if you like.
>
>-- Section 2.5 --
>
>    Performing the authorization check other than using the MAIL FROM and
>    client address at the time of the MAIL command during the SMTP
>    transaction can cause problems, such as the following: (1) It might
>    be difficult to accurately extract the required information from
>    potentially deceptive headers; (2) legitimate email might fail
>    because the sender's policy had since changed.
>
>I found that to be awkwardly worded and hard to understand.  Please
>consider this rewrite:
>
>NEW
>    The authorization check is performed during the SMTP transaction
>    at the time of the MAIL command, and uses the MAIL FROM value and
>    the client IP address.  Performing the check at later times or
>    with other input can cause problems such as the following:
>
>    *  It might be difficult to accurately extract the required
>       information from potentially deceptive headers.
>
>    *  Legitimate email might fail the authorization check because
>       the sender's policy has since changed.
>END
>
>-- Section 2.6 --
>
>It would really read best if the subsections were worded to be parallel.
>As it stands, subsections 1, 3, 4, 6, and 7 are worded as "result X means
>Y", and subsections 2 and 5 are not.  Can you re-word 2 and 5 to be
>parallel to the others?
>
>Also, why are "neutral" and "fail" called "explicit statements", but
>"pass", for example, is not?
>
>-- Section 3 --
>
>    Each SPF record is placed in the DNS tree at the owner name it
>    pertains to, not a subdomain under it, such as is done with SRV
>    records [RFC2782].
>
>This looks like it's saying that SRV records are placed in subdomains,
>and I don't think that's what you mean.  Or is it?  In any case, it's not
>clear (and I know this text is from the original).
>
>Maybe this (which also avoids the two different "it"s)?:
>
>NEW
>    Each SPF record is placed in the DNS tree at the owner name it
>    pertains to, not in a subdomain under the owner name.  This is
>    similar to how SRV records [RFC2782] are done.
>END
>
>    The example in this section might be published via these lines in a
>    domain zone file:
>
>       example.com. TXT "v=spf1 +mx a:colo.example.com/28 -all"
>       smtp-out.example.com. TXT "v=spf1 a -all"
>
>What does "smtp-out" have to do with anything?  It's not otherwise used,
>and it seems to contradict what you say about subdomains in the previous
>paragraph.
>
>-- Section 4 --
>
>    This description is not an API (Application Program Interface)
>    definition,
>
>Two total nits on this:
>1. You never use "API" other than here, so there's no need to define it,
>and
>2. the usual expansion of "API" is application programMING interface.
>I suggest, "This description is not an application programming interface
>definition, [etc]."
>
>-- 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 is discarded.
>
>Sure, and "v=spf1.0" doesn't match, and "v=spf11" doesn't match, and....
>Why is it necessary or desirable to single out "v=spf10" here?
>
>-- Section 4.6.4 --
>
>    SPF implementations MUST limit the total number of mechanisms and
>    modifiers ("terms") that cause any DNS query to 10 during SPF
>    evaluation.  Specifically, the "include", "a", "mx", "ptr", and
>    "exists" mechanisms as well as the "redirect" modifier count against
>    this collective limit.  The "all", "ip4", and "ip6" mechanisms do not
>    count against this limit.  If this number is exceeded during a check,
>    a "permerror" MUST be returned.  The "exp" modifier does not count
>    against this limit because the DNS lookup to fetch the explanation
>    string occurs after the SPF record evaluation has been completed.
>
>When I read this, I start feeling like I'm being read the rules for
>Fizzbin <http://en.wikipedia.org/wiki/Fizzbin#Fizzbin>.  I would
>appreciate it if this was re-worded so that there are two clear lists
>here: the terms that are included in the "limit of 10", and the terms
>that are not (and are, presumably, unlimited).  Perhaps something like
>this:
>
>NEW
>    Some mechanisms and modifiers (collectively, "terms") cause DNS
>    queries at the time of evaluation, and some do not.  The following
>    terms cause DNS queries: <list goes here>.  SPF implementations
>    MUST limit the total number of those terms to 10 during SPF
>    evaluation, to avoid unreasonable load on the DNS.  If this limit
>    is exceeded, the implementation MUST return "permerror".  The other
>    terms (<list goes here>) do not cause DNS queries at the time of
>    SPF evaluation, and their use is not subject to this limit.
>END
>
>If you think it's necessary (I don't):
>
>NEW+
>    The other
>    terms (<list goes here>) do not cause DNS queries at the time of
>    SPF evaluation (the "exp" modifier causes a lookup at a later time),
>    and their use is not subject to this limit.
>END
>
>Then in the next two paragraphs, I think it would improve clarity to make
>a change such as this:
>
>OLD
>    When evaluating the "mx" mechanism, the number of "MX" resource
>    records queried is included in the overall limit of 10 mechanisms/
>    modifiers that cause DNS lookups described above.  The evaluation of
>    each "MX" record MUST NOT result in querying more than 10 address
>    records,
>NEW
>    When evaluating the "mx" mechanism, the number of "MX" resource
>    records queried is included in the overall limit of 10 mechanisms/
>    modifiers that cause DNS lookups described above.  In addition to
>    that limit, the evaluation of each "MX" record MUST NOT result in
>    querying more than 10 address records,
>END
>
>(And similarly for the "ptr" paragraph.)  I know you say this in a
>paragraph of its own ("These limits are per mechanism..."), but it's
>helpful if people can understand things as they read them, and then to
>emphasize it later... rather than having them scratch their heads for a
>few paragraphs until they get to it.
>
>-- Section 4.7 --
>
>    It is better to use either a "redirect" modifier or an "all"
>    mechanism to explicitly terminate processing.  Although the latter
>    has a default (specifically "?all"), it aids debugging efforts if it
>    is explicitly provided.
>
>I'm not sure what "the latter has a default" is trying to say.  Do you
>mean that "?all" is the default if you fall off the end, but you
>shouldn't rely on that?  Or do you mean that if you say "all", then
>"?all" is taken as the default (I would think "all" would mean "+all")?
>Will you try re-wording this, please?
>
>-- Section 5 --
>
>What does "(do not publish)" mean next to "ptr" in the sender mechanisms
>list?  Ah; I see; it matches the "do not use" in Section 5.5.  You should
>probably change this to "(do not use; see the note in Section 5.5)".
>
>It would help, I think, to add to the end of the second paragraph, "The
>basic mechanisms are as follows:", and to the end of the third paragraph,
>"The designated sender mechanisms are as follows:".  Otherwise, there are
>just these disembodied lists, and the reader has to infer those
>introductions.
>
>-- Section 5.1 --
>
>    Mechanisms after "all" will never be tested.  Mechanisms listed after
>    "all" MUST be ignored.  Any "redirect" modifier (Section 6.1) MUST be
>    ignored when there is an "all" mechanism in the record.
>
>This says that the redirect in the following record will be ignored:
>
>    v=spf1 redirect=_spf.example.com +all
>
>That's sufficiently odd that it should be called out explicitly, perhaps
>by adding "regardless of the relative ordering of the terms" to the last
>sentence in the quote.
>
>-- Section 5.2 --
>
>    3.  The recursive evaluation returns either match, not match, or an
>        error.  If it matches, then the appropriate result for the
>        include: mechanism is used (e.g. include or +include produces a
>        "pass" result and -include produces "fail").
>
>    4.  If there is no match, the parent check_host() resumes processing
>        as per the table below, with the previous value of <domain>
>        restored.
>
>A few things here:
>
>1. Nit: "either" is for two things; for more than two, please remove the
>word "either" (or replace it with "one of", but that seems awkward
>here).
>
>2. "If it matches" is not parallel to "returns match", and similarly for
>"if there is no match".
>
>3. You don't say what happens if the recursive evaluation returns an
>error.  Unfortuately, "no match" and "not match" are sufficiently similar
>to be confused.
>
>I suggest this:
>
>NEW
>    3.  The recursive evaluation returns match, not match, or an
>        error.
>
>    4.  If it returns match, then the appropriate result for the
>        include: mechanism is used (e.g., include or +include produces
>        a "pass" result and -include produces "fail").
>
>    5.  If it returns not match or an error, the parent check_host()
>        resumes processing as per the table below, with the previous
>        value of <domain> restored.
>END
>
>    The "include" mechanism is intended for crossing administrative
>    boundaries.  For example, if example.com and example.org were managed
>    by the same entity, and if the permitted set of hosts for both
>    domains was "mx:example.com", it would be possible for example.org to
>    specify "include:example.com", but it would be preferable to specify
>    "redirect=example.com" or even "mx:example.com".
>
>The text you eliminated here provided a buffer that's no longer there,
>making the "For example," very odd.  You talk about crossing admin
>boundaries and immediately follow it with an example that does NOT.  I
>think it would be better to put a sentence in to restore that buffer --
>perhaps, "When remaining within one administrative authority, "include"
>is usually not the best choice."
>
>-- Section 5.5 --
>
>    This mechanism SHOULD NOT be published.  See below for discussion.
>
>It's quite a bit below.  I suggest "See the note at the end of this
>section for more information."  It might even be worth putting that note
>into a Section 5.5.1, so it's highlighted and more easily cited.
>
>-- Section 6 --
>
>    Unrecognized modifiers MUST be ignored no matter where in a record,
>    or how often.
>
>This is missing a couple of words:
>
>NEW
>    Unrecognized modifiers MUST be ignored no matter where in a record
>    they appear, or how often.
>END
>
>    For clarity, any "redirect" modifier SHOULD appear as the very last
>    term in a record.
>
>I don't usually recommend repeating things, but one thing from earlier
>probably does bear repeating here:
>
>NEW
>    For clarity, any "redirect" modifier SHOULD appear as the very last
>    term in a record.  Any "redirect" modifier MUST be ignored if there
>    is an "all" mechanism anywhere in the record.
>END


From sm@elandsys.com  Wed Sep 11 06:23:45 2013
Return-Path: <sm@elandsys.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 CAA7311E81A0; Wed, 11 Sep 2013 06:23:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.524
X-Spam-Level: 
X-Spam-Status: No, score=-102.524 tagged_above=-999 required=5 tests=[AWL=0.075, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id grwWIslAHgv4; Wed, 11 Sep 2013 06:23:45 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id EA52B11E8117; Wed, 11 Sep 2013 06:23:43 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.155.34]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8BDNQKV021962 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Sep 2013 06:23:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378905820; bh=1BG+P+6sD+YJV3Lg0C6TOIXT80Wd9LP7kiYBEpHIh6U=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=G2Nx/i3X0KzKz09wCPOFKCaBwgBcROZifapTi4/7xg0+sCF19N+/PYeP0y4zoRJH4 0Ci2cAp3btFCqtEhXsS9JESjoKuLqqEY29C63MB225Z3JxeZuWAbsqg4tymtW24ctT +d9jaQDWBmCDDVdW7a32Jf8f6JIB+0m3qDiQhz7s=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378905820; i=@elandsys.com; bh=1BG+P+6sD+YJV3Lg0C6TOIXT80Wd9LP7kiYBEpHIh6U=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=GJCChcv8bhGvYyGQFIoHpXgRQJbtOSolEu6IKjP3IVJ82qWMmqZFb82DnCHGJE1UF ZaM3sZHIYvKuSPkGf8Hv9NLZRT8EYqskos8ZsPhKEz9N+JFis4NRqFfGx/J94DSHFD XtBbaKZgSqxpXzaxowWczMhaN99tH2it5WbwTDf8=
Message-Id: <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Wed, 11 Sep 2013 06:22:32 -0700
To: Phillip Hallam-Baker <hallam@gmail.com>, draft-ietf-spfbis-4408bis.all@tools.ietf.org, iesg@ietf.org, secdir@ietf.org
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.g mail.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Wed, 11 Sep 2013 13:23:45 -0000

Hi Phillip,

I am responding to the comment about DKIM only and wait for the 
SPFBIS WG to address the other issues.

At 05:07 11-09-2013, Phillip Hallam-Baker wrote:
>I have reviewed this document as part of the security directorate's
>ongoing effort to review all IETF documents being processed by the
>IESG.  Document editors and WG chairs should treat these comments just
>like any other last call comments.
>
>The document has been produced as part of a proposal to upgrade SPF 
>to standards track recognizing the state of deployment experience.
>
>Minor issues.
>
>1.1.3.  MAIL FROM Definition
>
>I found this section completely opaque and very confusing. It should 
>not be necessary to hunt through other specs to find a definition. 
>Particularly since the referenced specs do not give an explicit 
>definition for the term as used and the references point to the 
>whole spec rather than a particular section.

I am commenting on the following paragraph only:

>The Security Considerations section is adequate for the purpose 
>except that no mention is made anywhere in the specification about 
>DKIM and how a mail receiver should interpret presence of DKIM and 
>SPF policy at the same time. This is a legitimate concern since DKIM 
>is already a standards track proposal and SPF is only now being 
>promoted to Standards Track. Thus the SPF document should address 
>the question of dual use.

There was a BoF at the last IETF meeting to discuss proposals about 
how to interpret the presence of DKIM and/or SPF policy at the same 
time ( http://www.ietf.org/proceedings/87/minutes/minutes-87-dmarc 
).  The dual use can be addressed as part of the DMARC effort.

>8.7.  Permerror
>
>"
>
>This signals an error condition that
>
>    definitely requires operator intervention to be resolved."
>
>I cannot imagine a circumstance which definitely requires a human to 
>be involved in mail delivery.
>
>
>11.2.  SPF-Authorized Email May Contain Other False Identities
>
>    Do not construe the "MAIL FROM" and "HELO" identity authorizations to
>    provide more assurance than they do.
>
>Document has quasi normative language that should be worded as 
>statements of fact rather than as direction.
>
>--
>Website: http://hallambaker.com/


From superuser@gmail.com  Wed Sep 11 06:40:01 2013
Return-Path: <superuser@gmail.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 997C911E816D; Wed, 11 Sep 2013 06:40:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.588
X-Spam-Level: 
X-Spam-Status: No, score=-2.588 tagged_above=-999 required=5 tests=[AWL=0.011,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HYNAkSuIHDMR; Wed, 11 Sep 2013 06:40:00 -0700 (PDT)
Received: from mail-we0-x22f.google.com (mail-we0-x22f.google.com [IPv6:2a00:1450:400c:c03::22f]) by ietfa.amsl.com (Postfix) with ESMTP id 4463D11E8171; Wed, 11 Sep 2013 06:39:59 -0700 (PDT)
Received: by mail-we0-f175.google.com with SMTP id q59so7857155wes.6 for <multiple recipients>; Wed, 11 Sep 2013 06:39:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=HZj/UI5a8gBi9lDv0kst9WwlmuowydkBqQQjwkaw/Ss=; b=zhfbH14CR9D0OnROC/KpxL2OzOU80vNPOdOt9r/Qhfx2H9tKgKbfdwhe/cKBuZhFU4 5vkXuD1CHsflwNqpyG0ODhY7VVzaJ3jg1GtRETcI16/RKzru3mCdYd3tBQpSvFnVmTm2 r5Yh/EJBXzYU3ewurrYmzjcICQGgiZSf3zc7gx+8fors4lp0ddqch3ZjZOM65H2QKzAA 6+87/xYNo8JG/2IAATYW/e6XbBIBCqip1kqV05XN7JknVI5FHTwf6C8SEOkAfx0S4jno ot+f8x9rmJnzlpx71e5Ia+G57N0DOy982yoCYiozYIeYwBEtnKwX3zWGh5OOowqup+9E qM6g==
MIME-Version: 1.0
X-Received: by 10.180.189.132 with SMTP id gi4mr17603789wic.19.1378906798442;  Wed, 11 Sep 2013 06:39:58 -0700 (PDT)
Received: by 10.180.106.169 with HTTP; Wed, 11 Sep 2013 06:39:58 -0700 (PDT)
In-Reply-To: <10370218.OEr9JV8dgx@scott-latitude-e6320>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130910113052.0c339a60@elandnews.com> <522F7A8F.5060807@gmail.com> <10370218.OEr9JV8dgx@scott-latitude-e6320>
Date: Wed, 11 Sep 2013 06:39:58 -0700
Message-ID: <CAL0qLwaLkTE7_BmmxsOECOP0d3UKx3gsr535sDHr+2hMiqggDA@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: Scott Kitterman <spf2@kitterman.com>
Content-Type: multipart/alternative; boundary=001a11c35294e650c904e61bc1e5
Cc: Pete Resnick <presnick@qti.qualcomm.com>, S Moonesamy <sm+ietf@elandsys.com>, "spfbis@ietf.org" <spfbis@ietf.org>, draft-ietf-spfbis-4408bis@tools.ietf.org, Spencer Dawkins <spencerdawkins.ietf@gmail.com>, spfbis-chairs@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 13:40:01 -0000

--001a11c35294e650c904e61bc1e5
Content-Type: text/plain; charset=ISO-8859-1

On Tue, Sep 10, 2013 at 6:38 PM, Scott Kitterman <spf2@kitterman.com> wrote:

> 3.1.  DNS Resource Records
>
>    SPF records MUST be published as a DNS TXT (type 16) Resource Record
>    (RR) [RFC1035] only.  The character content of the record is encoded
>    as [US-ASCII].  Use of alternative DNS RR types was supported in
>    SPF's experimental phase, but has been discontinued.
>
>    In 2003, when SPF was first being developed, the requirements for
>    assignment of a new DNS RR type were considerably more stringent than
>    they are now.  Additionally, support for easy deployment of new DNS
>    RR types was not widely deployed in DNS servers and and provisioning
>

Drop one of those "and"s.  I don't care which one.


>    systems.  As a result, at that time, there was no reasonable
>    alternative to using the TXT RR type for SPF records.
>
>    In its review of [RFC4408] the SPFbis working group concluded that
>    its dual RR type transition model was fundamentally flawed since it
>    contained no common RR type that implementers were required to serve
>    and required to check.  Many alternatives were considered to resolve
>    this issue, but ultimately the working group concluded that
>    significant migration to the SPF RR type in the forseable future was
>

"foreseeable"


>    very unlikely and that the best solution for resolving this
>    interoperability issue was to drop support for the SPF RR type from
>    SPF version 1.  See Appendix A of [RFC6686] for further information.
>
>    The circumstances surrounding SPF's initial deploymenta decade ago
>

"deployment a"


>    are unique and very, very unlikely to be repeated.  If a future
>    update to a new SPF version that could not reuse existing SPF records
>    were to be developed, it ought to use the SPF RR type.  SPF's use of
>    the TXT RR type for structured data should in no way be taken as
>    precedent for future protocol designers.  Things have changed.
>

What about "SPF's use of the TXT RR type located at the domain apex"?  As I
understand it, part of the complaint is the location of the record, not
just its type.  The underscore mechanism used by DKIM, DMARC, ADSP, VBR,
etc. seems to be gaining acceptance, or at least tolerance, because it
avoids query collisions.

Otherwise, looks okay to me.

-MSK

--001a11c35294e650c904e61bc1e5
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Tue, Sep 10, 2013 at 6:38 PM, Scott Kitterman <span dir=
=3D"ltr">&lt;<a href=3D"mailto:spf2@kitterman.com" target=3D"_blank">spf2@k=
itterman.com</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div class=
=3D"gmail_quote">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">3.1. =A0DNS Resource Records<br><div class=
=3D"im">
<br>
=A0 =A0SPF records MUST be published as a DNS TXT (type 16) Resource Record=
<br>
=A0 =A0(RR) [RFC1035] only. =A0The character content of the record is encod=
ed<br>
=A0 =A0as [US-ASCII]. =A0Use of alternative DNS RR types was supported in<b=
r>
</div><div class=3D"im">=A0 =A0SPF&#39;s experimental phase, but has been d=
iscontinued.<br>
<br>
=A0 =A0In 2003, when SPF was first being developed, the requirements for<br=
>
=A0 =A0assignment of a new DNS RR type were considerably more stringent tha=
n<br>
=A0 =A0they are now. =A0Additionally, support for easy deployment of new DN=
S<br>
=A0 =A0RR types was not widely deployed in DNS servers and and provisioning=
<br></div></blockquote><div><br></div><div>Drop one of those &quot;and&quot=
;s.=A0 I don&#39;t care which one.<br>=A0<br></div><blockquote class=3D"gma=
il_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-lef=
t:1ex">
<div class=3D"im">
=A0 =A0systems. =A0As a result, at that time, there was no reasonable<br>
=A0 =A0alternative to using the TXT RR type for SPF records.<br>
<br>
=A0 =A0In its review of [RFC4408] the SPFbis working group concluded that<b=
r>
=A0 =A0its dual RR type transition model was fundamentally flawed since it<=
br>
=A0 =A0contained no common RR type that implementers were required to serve=
<br>
</div>=A0 =A0and required to check. =A0Many alternatives were considered to=
 resolve<br>
<div class=3D"im">=A0 =A0this issue, but ultimately the working group concl=
uded that<br>
</div>=A0 =A0significant migration to the SPF RR type in the forseable futu=
re was<br></blockquote><div><br></div><div>&quot;foreseeable&quot;<br>=A0<b=
r></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border=
-left:1px #ccc solid;padding-left:1ex">

=A0 =A0very unlikely and that the best solution for resolving this<br>
<div class=3D"im">=A0 =A0interoperability issue was to drop support for the=
 SPF RR type from<br>
</div><div class=3D"im">=A0 =A0SPF version 1. =A0See Appendix A of [RFC6686=
] for further information.<br>
<br>
=A0 =A0The circumstances surrounding SPF&#39;s initial deploymenta decade a=
go<br></div></blockquote><div><br></div><div>&quot;deployment a&quot;<br>=
=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex">
<div class=3D"im">
</div>=A0 =A0are unique and very, very unlikely to be repeated. =A0If a fut=
ure<br>
=A0 =A0update to a new SPF version that could not reuse existing SPF record=
s<br>
=A0 =A0were to be developed, it ought to use the SPF RR type. =A0SPF&#39;s =
use of<br>
<div class=3D"im">=A0 =A0the TXT RR type for structured data should in no w=
ay be taken as<br>
=A0 =A0precedent for future protocol designers. =A0Things have changed.<br>=
</div></blockquote><div><br></div><div>What about &quot;SPF&#39;s use of th=
e TXT RR type located at the domain apex&quot;?=A0 As I understand it, part=
 of the complaint is the location of the record, not just its type.=A0 The =
underscore mechanism used by DKIM, DMARC, ADSP, VBR, etc. seems to be gaini=
ng acceptance, or at least tolerance, because it avoids query collisions.<b=
r>
<br></div><div>Otherwise, looks okay to me.<br><br></div><div>-MSK<br></div=
></div></div></div>

--001a11c35294e650c904e61bc1e5--

From superuser@gmail.com  Wed Sep 11 06:43:56 2013
Return-Path: <superuser@gmail.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 A74EE11E8171; Wed, 11 Sep 2013 06:43:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.589
X-Spam-Level: 
X-Spam-Status: No, score=-2.589 tagged_above=-999 required=5 tests=[AWL=0.010,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KKE8144ORBzo; Wed, 11 Sep 2013 06:43:56 -0700 (PDT)
Received: from mail-wg0-x229.google.com (mail-wg0-x229.google.com [IPv6:2a00:1450:400c:c00::229]) by ietfa.amsl.com (Postfix) with ESMTP id 3F36011E816D; Wed, 11 Sep 2013 06:43:55 -0700 (PDT)
Received: by mail-wg0-f41.google.com with SMTP id a12so1880695wgh.2 for <multiple recipients>; Wed, 11 Sep 2013 06:43:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=prERtaDMDdfMWqzcemXLy+KUBa2T0SgelMKfJ6xkY9I=; b=POiAlkwzK6xfbQB1XYQAz9/vBxUD9pBrvSCdr0cx9Vqx531i5J6J1KM3GiM3G0oERx MXeEwz1g2IfwZ1SF74+gQLSh8/GFnaDNGUwOiq8LhUlRiGazvkKRfFXSyKJ0UdOty35k 8CjCllve9ysglma9wBsmOJJQga8FG9BekDOpHidpfW1mzL2NeFYYdg/6zdgMjxh8Jur9 tpxyZjG/KIqqThPBdEir886a2Djd93YGHT4A7bT2ErdHsoYt0CuMeqcY/eAQMcC0qmBK PwIate4xuv40kxF5JhWhID4lAxxo5x1pr5NQcTCdgOBSgQr9+3dvsoy/wuuv3W5OJ/v8 lExQ==
MIME-Version: 1.0
X-Received: by 10.194.23.196 with SMTP id o4mr1617606wjf.62.1378907034388; Wed, 11 Sep 2013 06:43:54 -0700 (PDT)
Received: by 10.180.106.169 with HTTP; Wed, 11 Sep 2013 06:43:54 -0700 (PDT)
In-Reply-To: <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com>
Date: Wed, 11 Sep 2013 06:43:54 -0700
Message-ID: <CAL0qLwZ1HXEfTzvL9KtRmLRvfsgEB4Fy5x7EMV7qjekG7oTwLA@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: S Moonesamy <sm+ietf@elandsys.com>
Content-Type: multipart/alternative; boundary=047d7b5d9c6bf6907e04e61bcfd2
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, draft-ietf-spfbis-4408bis.all@tools.ietf.org, Phillip Hallam-Baker <hallam@gmail.com>, The IESG <iesg@ietf.org>, "secdir@ietf.org" <secdir@ietf.org>
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Wed, 11 Sep 2013 13:43:56 -0000

--047d7b5d9c6bf6907e04e61bcfd2
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Sep 11, 2013 at 6:22 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:

> I am responding to the comment about DKIM only and wait for the SPFBIS WG
> to address the other issues.
>

Was the SecDir review for this draft posted to the spfbis list?  I haven't
seen it.


>
>  The Security Considerations section is adequate for the purpose except
>> that no mention is made anywhere in the specification about DKIM and how a
>> mail receiver should interpret presence of DKIM and SPF policy at the same
>> time. This is a legitimate concern since DKIM is already a standards track
>> proposal and SPF is only now being promoted to Standards Track. Thus the
>> SPF document should address the question of dual use.
>>
>
> There was a BoF at the last IETF meeting to discuss proposals about how to
> interpret the presence of DKIM and/or SPF policy at the same time (
> http://www.ietf.org/**proceedings/87/minutes/**minutes-87-dmarc<http://www.ietf.org/proceedings/87/minutes/minutes-87-dmarc>).  The dual use can be addressed as part of the DMARC effort.
>

DKIM has no intrinsic policy component.   Are we actually talking about
ADSP here?

Assuming we are, I think the best we could do is to note that it's possible
for ADSP and SPF to yield conflicting policy results; one could be a "pass"
while the other could be a "fail", meaning the receiving MTA now has one
"reject" instruction and one "accept" instruction.  The receiving ADMD will
have to make a decision about which one ought to get precedence.

-MSK

--047d7b5d9c6bf6907e04e61bcfd2
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wed, Sep 11, 2013 at 6:22 AM, S Moonesamy <span dir=3D"=
ltr">&lt;<a href=3D"mailto:sm+ietf@elandsys.com" target=3D"_blank">sm+ietf@=
elandsys.com</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div class=
=3D"gmail_quote">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">I am responding to the comment about DKIM on=
ly and wait for the SPFBIS WG to address the other issues.<br></blockquote>
<div><br></div><div>Was the SecDir review for this draft posted to the spfb=
is list?=A0 I haven&#39;t seen it.<br>=A0<br></div><blockquote class=3D"gma=
il_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-lef=
t:1ex">

<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
The Security Considerations section is adequate for the purpose except that=
 no mention is made anywhere in the specification about DKIM and how a mail=
 receiver should interpret presence of DKIM and SPF policy at the same time=
. This is a legitimate concern since DKIM is already a standards track prop=
osal and SPF is only now being promoted to Standards Track. Thus the SPF do=
cument should address the question of dual use.<br>

</blockquote>
<br>
There was a BoF at the last IETF meeting to discuss proposals about how to =
interpret the presence of DKIM and/or SPF policy at the same time ( <a href=
=3D"http://www.ietf.org/proceedings/87/minutes/minutes-87-dmarc" target=3D"=
_blank">http://www.ietf.org/<u></u>proceedings/87/minutes/<u></u>minutes-87=
-dmarc</a> ). =A0The dual use can be addressed as part of the DMARC effort.=
<br>
</blockquote><div><br></div><div>DKIM has no intrinsic policy component. =
=A0 Are we actually talking about ADSP here?<br><br></div><div>Assuming we =
are, I think the best we could do is to note that it&#39;s possible for ADS=
P and SPF to yield conflicting policy results; one could be a &quot;pass&qu=
ot; while the other could be a &quot;fail&quot;, meaning the receiving MTA =
now has one &quot;reject&quot; instruction and one &quot;accept&quot; instr=
uction.=A0 The receiving ADMD will have to make a decision about which one =
ought to get precedence.<br>
<br></div><div>-MSK<br></div></div></div></div>

--047d7b5d9c6bf6907e04e61bcfd2--

From sm@elandsys.com  Wed Sep 11 06:53:15 2013
Return-Path: <sm@elandsys.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 B16AB11E826D for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 06:53:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.539
X-Spam-Level: 
X-Spam-Status: No, score=-102.539 tagged_above=-999 required=5 tests=[AWL=0.060, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nFmHcAptKczg for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 06:53:15 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id E408911E824C for <spfbis@ietf.org>; Wed, 11 Sep 2013 06:53:14 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.155.34]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8BDqwxP012897 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Sep 2013 06:53:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378907590; bh=xAAVui2kPHs4Pt0jl8LDqgMB4tN5JiRlwWzIs0HLvtU=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=wzIDqotHPhMpFRO7UoK6neEAV+DApq1ZXezLGuoK490Ma2OHKJmbzLt4z15bGTjuz ZnT7azFwgc3LFcKB7zUFvVFDiQm8nMz1qkRrP/xtUvI4thiWdU/XuRqvQfnr7L+oWl NfEXSDDvte8f5UlSD6PJJ1cvBBRbbILFrNPF6BRo=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378907590; i=@elandsys.com; bh=xAAVui2kPHs4Pt0jl8LDqgMB4tN5JiRlwWzIs0HLvtU=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=gwB8hg75mqs72Q3ZmR6r0f9N/1zArUMrn/G8wUL2mAcTBZPcdU2DGmxdh70xARaAw vVNBJQVcllnt6qSL2OLOu027Qi2PvsEcE2cwJ/9aksejEQOpwjPdlXTCNXgrcb4IhG NpHrL4ISmxY1UMXxRfsUEQwPadpknRowToCtD/mI=
Message-Id: <6.2.5.6.2.20130911064538.0bb48e10@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Wed, 11 Sep 2013 06:52:26 -0700
To: "Murray S. Kucherawy" <superuser@gmail.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <CAL0qLwZ1HXEfTzvL9KtRmLRvfsgEB4Fy5x7EMV7qjekG7oTwLA@mail.g mail.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com> <CAL0qLwZ1HXEfTzvL9KtRmLRvfsgEB4Fy5x7EMV7qjekG7oTwLA@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, Phillip Hallam-Baker <hallam@gmail.com>
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Wed, 11 Sep 2013 13:53:16 -0000

Hi Murray,
At 06:43 11-09-2013, Murray S. Kucherawy wrote:
>Was the SecDir review for this draft posted to the spfbis list?  I 
>haven't seen it.

The entire SecDir review is in the reply I posted a few minutes ago 
(SECDIR in the subject line).

Regards,
S. Moonesamy 


From superuser@gmail.com  Wed Sep 11 07:08:07 2013
Return-Path: <superuser@gmail.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 9AEA321E8117; Wed, 11 Sep 2013 07:08:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.59
X-Spam-Level: 
X-Spam-Status: No, score=-2.59 tagged_above=-999 required=5 tests=[AWL=0.009,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BW-Tga9OI9lx; Wed, 11 Sep 2013 07:08:07 -0700 (PDT)
Received: from mail-wg0-x22c.google.com (mail-wg0-x22c.google.com [IPv6:2a00:1450:400c:c00::22c]) by ietfa.amsl.com (Postfix) with ESMTP id 73FFC21E8115; Wed, 11 Sep 2013 07:07:44 -0700 (PDT)
Received: by mail-wg0-f44.google.com with SMTP id b12so6951720wgh.35 for <multiple recipients>; Wed, 11 Sep 2013 07:07:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=1UNXUw/fhSE3AKNz6lr9kgSJ0fm72PWelo4ayKn0Iso=; b=SsmvnkDeDcGXoEeoIavQamAsbeedRlnGTiFWDHfxQ1pNHZm0WZTCYFfQ9Hkps4qQjg 04HIfqhD1341aIAMLqACOlmsvu2BPCnpDXRy2HQkm5vRIQqVIyzUKF+GddXwgwKi9bPA CS4QZ7x+USajJBSQcvTEGhScAo/B1jo9tVeQiqJAzArbn74JDQExzXczCNxLQ7y3eQpA GaBXEi4tq4TrK43ae8fLOkDxBW3mZve66D5se3ut0UkValLmlHxphw3ImvkKMmH2F74c dA1K34KWYPf6ZlUm+Ci5dc9XyyHMVn+ShVOYwH2P8BD/1c4wOjSkatrYILfoSDs62uM6 etEw==
MIME-Version: 1.0
X-Received: by 10.194.23.73 with SMTP id k9mr1828819wjf.24.1378908453222; Wed, 11 Sep 2013 07:07:33 -0700 (PDT)
Received: by 10.180.106.169 with HTTP; Wed, 11 Sep 2013 07:07:33 -0700 (PDT)
In-Reply-To: <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com>
Date: Wed, 11 Sep 2013 07:07:33 -0700
Message-ID: <CAL0qLwYqMpFrnvq+uTDGC11yfO1xRUYUsO1N150wP_HsNvb6HA@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: S Moonesamy <sm+ietf@elandsys.com>
Content-Type: multipart/alternative; boundary=047d7b5d439688418304e61c24a1
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, spfbis-chairs@tools.ietf.org, Barry Leiba <barryleiba@computer.org>, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 14:08:07 -0000

--047d7b5d439688418304e61c24a1
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Sep 11, 2013 at 5:04 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:

>
>
>> ------------------------------**------------------------------**
>> ----------
>> DISCUSS:
>> ------------------------------**------------------------------**
>> ----------
>>
>> I have two very small points that I think are unclear, and important
>> enough that we have to get them right, both regarding the check_host()
>> function.  These should be really easy to clear up:
>>
>> -- Section 4.6 --
>>
>>    The check_host() function parses and interprets the SPF record to
>>    find a result for the current test.  If there are any syntax errors
>>    anywhere in the record, check_host() returns immediately with the
>>    result "permerror", without further interpretation.
>>
>> I think you're trying to say that syntax checking is done before any
>> evaluation, but you aren't saying it.  It matters, because
>> implementations that make different choices in that regard won't get the
>> same results from check_host() in all cases, as they're required to.
>> Maybe this?:
>>
>> NEW
>>    The check_host() function parses and interprets the SPF record to
>>    find a result for the current test.  The syntax of the record is
>>    validated first, and if there are any syntax errors anywhere in the
>>    record, check_host() returns immediately with the result "permerror",
>>    without further interpretation or evaluation.
>> END
>>
>
Yep.


>
>> -- Section 5.5 --
>>
>> I have to say that I'm not happy about the pseudocode here: what
>> situation are we in when the pseudocode differs from the text?  Which
>> wins?
>>
>> I already see a case where they differ: the new pseudocode says "if more
>> than 10 sending-domain_names are found, use at most 10", and there's
>> nothing of the sort in the text.
>>
>> Does the working group really think there's enough value in having
>> pseudocode there that it's worth saying the same thing twice and relying
>> on them to be truly the same?  And is it really worth it for mechanism
>> that's not recommended for use?
>>
>> I strongly suggest making sure that the text says what you want it to,
>> and removing the pseudocode.
>>
>
I've written drafts (e.g., RFC5451) that contain prose and an algorithm
description for the same thing, so it's possible to get this right.  I'm
not sure it's necessary here, so I agree we should consider dumping it.

Will review the comment stuff later today.

-MSK

--047d7b5d439688418304e61c24a1
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wed, Sep 11, 2013 at 5:04 AM, S Moonesamy <span dir=3D"=
ltr">&lt;<a href=3D"mailto:sm+ietf@elandsys.com" target=3D"_blank">sm+ietf@=
elandsys.com</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div class=
=3D"gmail_quote">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><br><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
------------------------------<u></u>------------------------------<u></u>-=
---------<br>
DISCUSS:<br>
------------------------------<u></u>------------------------------<u></u>-=
---------<br>
<br>
I have two very small points that I think are unclear, and important<br>
enough that we have to get them right, both regarding the check_host()<br>
function. =A0These should be really easy to clear up:<br>
<br>
-- Section 4.6 --<br>
<br>
=A0 =A0The check_host() function parses and interprets the SPF record to<br=
>
=A0 =A0find a result for the current test. =A0If there are any syntax error=
s<br>
=A0 =A0anywhere in the record, check_host() returns immediately with the<br=
>
=A0 =A0result &quot;permerror&quot;, without further interpretation.<br>
<br>
I think you&#39;re trying to say that syntax checking is done before any<br=
>
evaluation, but you aren&#39;t saying it. =A0It matters, because<br>
implementations that make different choices in that regard won&#39;t get th=
e<br>
same results from check_host() in all cases, as they&#39;re required to.<br=
>
Maybe this?:<br>
<br>
NEW<br>
=A0 =A0The check_host() function parses and interprets the SPF record to<br=
>
=A0 =A0find a result for the current test. =A0The syntax of the record is<b=
r>
=A0 =A0validated first, and if there are any syntax errors anywhere in the<=
br>
=A0 =A0record, check_host() returns immediately with the result &quot;perme=
rror&quot;,<br>
=A0 =A0without further interpretation or evaluation.<br>
END<br></blockquote></blockquote><div><br></div><div>Yep.<br>=A0<br></div><=
blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px=
 #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
-- Section 5.5 --<br>
<br>
I have to say that I&#39;m not happy about the pseudocode here: what<br>
situation are we in when the pseudocode differs from the text? =A0Which<br>
wins?<br>
<br>
I already see a case where they differ: the new pseudocode says &quot;if mo=
re<br>
than 10 sending-domain_names are found, use at most 10&quot;, and there&#39=
;s<br>
nothing of the sort in the text.<br>
<br>
Does the working group really think there&#39;s enough value in having<br>
pseudocode there that it&#39;s worth saying the same thing twice and relyin=
g<br>
on them to be truly the same? =A0And is it really worth it for mechanism<br=
>
that&#39;s not recommended for use?<br>
<br>
I strongly suggest making sure that the text says what you want it to,<br>
and removing the pseudocode.<br></blockquote></blockquote><div><br></div>I&=
#39;ve written drafts (e.g., RFC5451) that contain prose and an algorithm d=
escription for the same thing, so it&#39;s possible to get this right.=A0 I=
&#39;m not sure it&#39;s necessary here, so I agree we should consider dump=
ing it.<br>
<br>Will review the comment stuff later today.<br><br>-MSK<br></div></div><=
/div>

--047d7b5d439688418304e61c24a1--

From superuser@gmail.com  Wed Sep 11 07:08:30 2013
Return-Path: <superuser@gmail.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 3EC1821E80E5 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 07:08:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.59
X-Spam-Level: 
X-Spam-Status: No, score=-2.59 tagged_above=-999 required=5 tests=[AWL=0.009,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vWXgQn6Jp3lP for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 07:08:29 -0700 (PDT)
Received: from mail-we0-x231.google.com (mail-we0-x231.google.com [IPv6:2a00:1450:400c:c03::231]) by ietfa.amsl.com (Postfix) with ESMTP id 33A3321E808F for <spfbis@ietf.org>; Wed, 11 Sep 2013 07:08:29 -0700 (PDT)
Received: by mail-we0-f177.google.com with SMTP id t60so6712307wes.8 for <spfbis@ietf.org>; Wed, 11 Sep 2013 07:08:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=d7N2W7DibmQ9TOHelYFZk7iCNsuhZiKt6UPaRBO5zSU=; b=fTdOgQD0Yx2XcMBHWc8wLq8xpdr6xY1fD8qbiOd6fzDLKaFelfM/s9JoYjE1cYwUdL MHgEPrziLwQWrbiSodFEJqFO6VGrcZvoO/aF/lCvkOif3Zfbp8cRmsem5GWsW5fDwoIr kaKbSA5x0nKGEjELLP8Rf/cednQVIzDg6qDd4LnvfRG1FqFpMSjSEyE/nptnnallOEr7 xoEubgDMdxrLiZQf+ixEQX4mi3zIoQOWwAG4oWeM9WYS8/RCrVsNQ7G31rPrKNe8nne/ RRL6fwBhuKLYqxMASYTeoXvnyA8/m1S5EpnG7NYaNDJ6UKrm5HokyMp4QW/dfxK/hL05 czbA==
MIME-Version: 1.0
X-Received: by 10.180.189.132 with SMTP id gi4mr17718478wic.19.1378908508279;  Wed, 11 Sep 2013 07:08:28 -0700 (PDT)
Received: by 10.180.106.169 with HTTP; Wed, 11 Sep 2013 07:08:28 -0700 (PDT)
In-Reply-To: <6.2.5.6.2.20130911064538.0bb48e10@elandnews.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com> <CAL0qLwZ1HXEfTzvL9KtRmLRvfsgEB4Fy5x7EMV7qjekG7oTwLA@mail.gmail.com> <6.2.5.6.2.20130911064538.0bb48e10@elandnews.com>
Date: Wed, 11 Sep 2013 07:08:28 -0700
Message-ID: <CAL0qLwZE84kJRq3MmM_sF3uK8ryvAvCgB+MewJy38us7HH=k-Q@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: S Moonesamy <sm+ietf@elandsys.com>
Content-Type: multipart/alternative; boundary=001a11c35294d0598504e61c2747
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, Phillip Hallam-Baker <hallam@gmail.com>
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Wed, 11 Sep 2013 14:08:30 -0000

--001a11c35294d0598504e61c2747
Content-Type: text/plain; charset=ISO-8859-1

Ah, sorry.  My MUA cut it off and wasn't caffeinated enough to notice.


On Wed, Sep 11, 2013 at 6:52 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:

> Hi Murray,
>
> At 06:43 11-09-2013, Murray S. Kucherawy wrote:
>
>> Was the SecDir review for this draft posted to the spfbis list?  I
>> haven't seen it.
>>
>
> The entire SecDir review is in the reply I posted a few minutes ago
> (SECDIR in the subject line).
>
> Regards,
> S. Moonesamy
>

--001a11c35294d0598504e61c2747
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Ah, sorry.=A0 My MUA cut it off and wasn&#39;t caffeinated=
 enough to notice.<br></div><div class=3D"gmail_extra"><br><br><div class=
=3D"gmail_quote">On Wed, Sep 11, 2013 at 6:52 AM, S Moonesamy <span dir=3D"=
ltr">&lt;<a href=3D"mailto:sm+ietf@elandsys.com" target=3D"_blank">sm+ietf@=
elandsys.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Hi Murray,<div class=3D"im"><br>
At 06:43 11-09-2013, Murray S. Kucherawy wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
Was the SecDir review for this draft posted to the spfbis list? =A0I haven&=
#39;t seen it.<br>
</blockquote>
<br></div>
The entire SecDir review is in the reply I posted a few minutes ago (SECDIR=
 in the subject line).<br>
<br>
Regards,<br>
S. Moonesamy <br>
</blockquote></div><br></div>

--001a11c35294d0598504e61c2747--

From dotzero@gmail.com  Wed Sep 11 07:43:34 2013
Return-Path: <dotzero@gmail.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 3E60121E811B; Wed, 11 Sep 2013 07:43:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id d4tMI+FgMre6; Wed, 11 Sep 2013 07:43:33 -0700 (PDT)
Received: from mail-la0-x231.google.com (mail-la0-x231.google.com [IPv6:2a00:1450:4010:c03::231]) by ietfa.amsl.com (Postfix) with ESMTP id E008421E80B1; Wed, 11 Sep 2013 07:43:32 -0700 (PDT)
Received: by mail-la0-f49.google.com with SMTP id ev20so7299535lab.8 for <multiple recipients>; Wed, 11 Sep 2013 07:43:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=oQa+aiAN9WOxBEq8tB45uXMraS7w9sEwPffFK0PAPtU=; b=gzZFxCfxw50aD0c+fRKoPmePUJMKo0OAq1pmPKahIzV6WpzlnXPWYEo1lr3JzYites 2HylnTIbwrnnbkwLLQOhyIZIJfd3FAVci2Otybg37tAIb9eLDT6VgFZ2BwRoNze8T/TR MGh3tuZlOvNVjDSOEV5MUhPrUsSZ8Aj75ACv6MEUFZwhin38v7dQiOw78VEYkXzTUU0b AH/VnH4XR4VyRGpPQXHGwqPQog5IN3Ejcy9yyoaD21f5xEJ87/66V2NWQ3NzJIGLNznO TUv7aiG2iZSg+SsjKt07lA9hbP7lRJ15rtOc3tooaPkBLl9Hfl7f+ME53RgSeDbwqRnY B8oA==
MIME-Version: 1.0
X-Received: by 10.112.11.20 with SMTP id m20mr17320lbb.56.1378910611771; Wed, 11 Sep 2013 07:43:31 -0700 (PDT)
Received: by 10.112.137.163 with HTTP; Wed, 11 Sep 2013 07:43:31 -0700 (PDT)
In-Reply-To: <CAL0qLwZ1HXEfTzvL9KtRmLRvfsgEB4Fy5x7EMV7qjekG7oTwLA@mail.gmail.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com> <CAL0qLwZ1HXEfTzvL9KtRmLRvfsgEB4Fy5x7EMV7qjekG7oTwLA@mail.gmail.com>
Date: Wed, 11 Sep 2013 10:43:31 -0400
Message-ID: <CAJ4XoYdK6PEGN6D7zG0qwS+5ydfgeGm=tTG-6BfR5v6_QwxdVg@mail.gmail.com>
From: Dotzero <dotzero@gmail.com>
To: "Murray S. Kucherawy" <superuser@gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
Cc: "secdir@ietf.org" <secdir@ietf.org>, S Moonesamy <sm+ietf@elandsys.com>, "spfbis@ietf.org" <spfbis@ietf.org>, The IESG <iesg@ietf.org>, draft-ietf-spfbis-4408bis.all@tools.ietf.org, Phillip Hallam-Baker <hallam@gmail.com>
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Wed, 11 Sep 2013 14:43:34 -0000

On Wed, Sep 11, 2013 at 9:43 AM, Murray S. Kucherawy
<superuser@gmail.com> wrote:
> On Wed, Sep 11, 2013 at 6:22 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:
>>
>> I am responding to the comment about DKIM only and wait for the SPFBIS WG
>> to address the other issues.
>
>
> Was the SecDir review for this draft posted to the spfbis list?  I haven't
> seen it.
>
>>
>>
>>> The Security Considerations section is adequate for the purpose except
>>> that no mention is made anywhere in the specification about DKIM and how a
>>> mail receiver should interpret presence of DKIM and SPF policy at the same
>>> time. This is a legitimate concern since DKIM is already a standards track
>>> proposal and SPF is only now being promoted to Standards Track. Thus the SPF
>>> document should address the question of dual use.
>>
>>
>> There was a BoF at the last IETF meeting to discuss proposals about how to
>> interpret the presence of DKIM and/or SPF policy at the same time (
>> http://www.ietf.org/proceedings/87/minutes/minutes-87-dmarc ).  The dual use
>> can be addressed as part of the DMARC effort.
>
>
> DKIM has no intrinsic policy component.   Are we actually talking about ADSP
> here?
>
> Assuming we are, I think the best we could do is to note that it's possible
> for ADSP and SPF to yield conflicting policy results; one could be a "pass"
> while the other could be a "fail", meaning the receiving MTA now has one
> "reject" instruction and one "accept" instruction.  The receiving ADMD will
> have to make a decision about which one ought to get precedence.
>
>

ADSP should be relegated to historical. Very little implementation on
the publishing side and even less validation on the receiving side. We
(all of the usual suspects in this space) made compromises to get it
out the door and we collectively got it wrong.

Having said that, I could live with some kind of note in the SPFbis
doc along the lines of what Murray suggests.

Mike

From dhc@dcrocker.net  Wed Sep 11 07:51:40 2013
Return-Path: <dhc@dcrocker.net>
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 D715621E80B6; Wed, 11 Sep 2013 07:51:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level: 
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7L+pAmVMZyHg; Wed, 11 Sep 2013 07:51:36 -0700 (PDT)
Received: from sbh17.songbird.com (sbh17.songbird.com [72.52.113.17]) by ietfa.amsl.com (Postfix) with ESMTP id 7E6F521F9EE9; Wed, 11 Sep 2013 07:51:36 -0700 (PDT)
Received: from [192.168.1.66] (76-218-9-215.lightspeed.sntcca.sbcglobal.net [76.218.9.215]) (authenticated bits=0) by sbh17.songbird.com (8.13.8/8.13.8) with ESMTP id r8BEpJeo018418 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Wed, 11 Sep 2013 07:51:22 -0700
Message-ID: <52308352.2060902@dcrocker.net>
Date: Wed, 11 Sep 2013 07:50:58 -0700
From: Dave Crocker <dhc@dcrocker.net>
Organization: Brandenburg InternetWorking
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: S Moonesamy <sm+ietf@elandsys.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com>
In-Reply-To: <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0 (sbh17.songbird.com [72.52.113.66]); Wed, 11 Sep 2013 07:51:22 -0700 (PDT)
Cc: spfbis@ietf.org, draft-ietf-spfbis-4408bis.all@tools.ietf.org, Phillip Hallam-Baker <hallam@gmail.com>, iesg@ietf.org, secdir@ietf.org
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
X-BeenThere: spfbis@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: dcrocker@bbiw.net
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: Wed, 11 Sep 2013 14:51:41 -0000

On 9/11/2013 6:22 AM, S Moonesamy wrote:
> I am commenting on the following paragraph only:
>
>> The Security Considerations section is adequate for the purpose except
>> that no mention is made anywhere in the specification about DKIM and
>> how a mail receiver should interpret presence of DKIM and SPF policy
>> at the same time. This is a legitimate concern since DKIM is already a
>> standards track proposal and SPF is only now being promoted to
>> Standards Track. Thus the SPF document should address the question of
>> dual use.
>
> There was a BoF at the last IETF meeting to discuss proposals about how
> to interpret the presence of DKIM and/or SPF policy at the same time (
> http://www.ietf.org/proceedings/87/minutes/minutes-87-dmarc ).  The dual
> use can be addressed as part of the DMARC effort.


At the level of a fully-integrated email anti-abuse system, concern 
about possible SPF and DKIM presence and interaction effects is, of 
course, essential.

However SPF is only a component technology.  It's specification is not 
the place for discussing higher-level interaction effects.

By way of example, imagine the specification for an automobile tire 
being expected to talk about design and operations issues when the tire 
is linked to 3 siblings and a suspension system, and a motor and... 
That's an important topic, but the tire spec is wrong venue.

d/


-- 
Dave Crocker
Brandenburg InternetWorking
bbiw.net

From barryleiba@gmail.com  Wed Sep 11 08:08:12 2013
Return-Path: <barryleiba@gmail.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 6EAB211E8181; Wed, 11 Sep 2013 08:08:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.017
X-Spam-Level: 
X-Spam-Status: No, score=-102.017 tagged_above=-999 required=5 tests=[AWL=-0.039, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, NO_RELAYS=-0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZW3EEDK7NVmI; Wed, 11 Sep 2013 08:08:09 -0700 (PDT)
Received: from mail-la0-x22c.google.com (mail-la0-x22c.google.com [IPv6:2a00:1450:4010:c03::22c]) by ietfa.amsl.com (Postfix) with ESMTP id B900F21E80B1; Wed, 11 Sep 2013 08:08:03 -0700 (PDT)
Received: by mail-la0-f44.google.com with SMTP id eo20so7713310lab.3 for <multiple recipients>; Wed, 11 Sep 2013 08:08:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=yF3mqAXWnqw/HrFKWT3Mw6nEdVkWzBgZGXC7bbJVGpA=; b=hnsEINM8hhuMgDzQ4XNk984hu3jEh7GiVFbMtpmbgCQ/IUZxJSHqFVqUDhomxNkmWo oQdvqd5dknjkLFfLvrnu2Gvfj1SwD6OPNTcc9S/0W29XykO5VljthREA/2taCnatholg tilNsr2P7KS/2DBSHXzkes9+eXcPMPF6JfMTXOCNl59dkJU2yGyn/M70yL9HHhdOqsUb m/iztjiNIW/AgEIkD7LNZmt/w6qQ2kcyh+dvwNKCNQIef8f8DM3dzIZ6b1pAQFMW5wOE 1WnP1TwsiXTQczdFJ7EIRgHEu5w+6M31kM30S6frHu+RupIBMVQEm3BVrFTLfaP7vMTl VHPQ==
MIME-Version: 1.0
X-Received: by 10.112.158.225 with SMTP id wx1mr1947339lbb.37.1378912082006; Wed, 11 Sep 2013 08:08:02 -0700 (PDT)
Sender: barryleiba@gmail.com
Received: by 10.112.130.39 with HTTP; Wed, 11 Sep 2013 08:08:01 -0700 (PDT)
In-Reply-To: <CAL0qLwYqMpFrnvq+uTDGC11yfO1xRUYUsO1N150wP_HsNvb6HA@mail.gmail.com>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com> <CAL0qLwYqMpFrnvq+uTDGC11yfO1xRUYUsO1N150wP_HsNvb6HA@mail.gmail.com>
Date: Wed, 11 Sep 2013 11:08:01 -0400
X-Google-Sender-Auth: sq0FcesR26c2o1rrxrCiNTmF4Wk
Message-ID: <CALaySJLgAzqNBUN+Jt_LhWzRX_K1VZ4TkapNWsgig9K72abK+w@mail.gmail.com>
From: Barry Leiba <barryleiba@computer.org>
To: "Murray S. Kucherawy" <superuser@gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, "spfbis-chairs@tools.ietf.org" <spfbis-chairs@tools.ietf.org>, draft-ietf-spfbis-4408bis@tools.ietf.org, S Moonesamy <sm+ietf@elandsys.com>, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 15:08:13 -0000

>> I have to say that I'm not happy about the pseudocode here: what
>> situation are we in when the pseudocode differs from the text?  Which
>> wins?
>>
>> I already see a case where they differ: the new pseudocode says "if more
>> than 10 sending-domain_names are found, use at most 10", and there's
>> nothing of the sort in the text.
>>
>> Does the working group really think there's enough value in having
>> pseudocode there that it's worth saying the same thing twice and relying
>> on them to be truly the same?  And is it really worth it for mechanism
>> that's not recommended for use?
>>
>> I strongly suggest making sure that the text says what you want it to,
>> and removing the pseudocode.
>
> I've written drafts (e.g., RFC5451) that contain prose and an algorithm
> description for the same thing, so it's possible to get this right.  I'm not
> sure it's necessary here, so I agree we should consider dumping it.

To be clear: I agree with you that it's possible to get it right and
sometimes valuable.  I'm suggesting removing it because I don't think
it's valuable here.  Thanks for considering that.

Barry

From hallam@gmail.com  Wed Sep 11 07:33:48 2013
Return-Path: <hallam@gmail.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 D469921E80C3; Wed, 11 Sep 2013 07:33:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EafxDzFuf3NQ; Wed, 11 Sep 2013 07:33:48 -0700 (PDT)
Received: from mail-la0-x232.google.com (mail-la0-x232.google.com [IPv6:2a00:1450:4010:c03::232]) by ietfa.amsl.com (Postfix) with ESMTP id BCA8621E812A; Wed, 11 Sep 2013 07:33:46 -0700 (PDT)
Received: by mail-la0-f50.google.com with SMTP id lv10so821243lab.9 for <multiple recipients>; Wed, 11 Sep 2013 07:33:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=oSxmF9jOzFdU7bl9ju6086GgfsTU/VQi8e3GGGxoB4I=; b=1CDMDGdhFQGH180Q6LdfOchU34qFsXhFlCAO3WkfeWDaJBjh6V5yRI9ryQIPI38ICe TO5HkA7jDtO4cZBsK3l+bgQFvWvCq032DMLcOL2ksF/ejJIUWA8RWM1mjmqhYV+J3wkh gQ/Fs4GYebbJiUZ1icd7VeMcE2riOUlohtmMnt8XFFRN/GykPz/U8VNrIi176xCwbV6r 14E3Zb2sAhc9JjbWq9Etk4iLuJ7dSu8oeVZJbv2BtEQbqww2I8V+X88mCI4LCJFyyzeL UeaXzm8gJkdR2xWXHvV9keeCw4MBhpf7KY3c1UD4dhjCHF9ZgMrJqFBpkxLXK0T9Ncn6 Ju5A==
MIME-Version: 1.0
X-Received: by 10.152.4.6 with SMTP id g6mr340185lag.50.1378910025535; Wed, 11 Sep 2013 07:33:45 -0700 (PDT)
Received: by 10.112.148.165 with HTTP; Wed, 11 Sep 2013 07:33:45 -0700 (PDT)
In-Reply-To: <CAL0qLwZ1HXEfTzvL9KtRmLRvfsgEB4Fy5x7EMV7qjekG7oTwLA@mail.gmail.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com> <CAL0qLwZ1HXEfTzvL9KtRmLRvfsgEB4Fy5x7EMV7qjekG7oTwLA@mail.gmail.com>
Date: Wed, 11 Sep 2013 10:33:45 -0400
Message-ID: <CAMm+LwhtmjBXQ1ZQRhKW-2FvPG2AkW5fyRN7ihMOT9UJdPgkkQ@mail.gmail.com>
From: Phillip Hallam-Baker <hallam@gmail.com>
To: "Murray S. Kucherawy" <superuser@gmail.com>
Content-Type: multipart/alternative; boundary=089e013d1e603fd71604e61c82e5
X-Mailman-Approved-At: Wed, 11 Sep 2013 09:05:24 -0700
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, draft-ietf-spfbis-4408bis.all@tools.ietf.org, "secdir@ietf.org" <secdir@ietf.org>, S Moonesamy <sm+ietf@elandsys.com>, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Wed, 11 Sep 2013 14:33:49 -0000

--089e013d1e603fd71604e61c82e5
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Sep 11, 2013 at 9:43 AM, Murray S. Kucherawy <superuser@gmail.com>wrote:

> On Wed, Sep 11, 2013 at 6:22 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:
>
>> I am responding to the comment about DKIM only and wait for the SPFBIS WG
>> to address the other issues.
>>
>
> Was the SecDir review for this draft posted to the spfbis list?  I haven't
> seen it.
>

The draft-ietf-spfbis-4408bis.all@tools.ietf.org doesn't cover it? I
thought that was the point.




>
>>  The Security Considerations section is adequate for the purpose except
>>> that no mention is made anywhere in the specification about DKIM and how a
>>> mail receiver should interpret presence of DKIM and SPF policy at the same
>>> time. This is a legitimate concern since DKIM is already a standards track
>>> proposal and SPF is only now being promoted to Standards Track. Thus the
>>> SPF document should address the question of dual use.
>>>
>>
>> There was a BoF at the last IETF meeting to discuss proposals about how
>> to interpret the presence of DKIM and/or SPF policy at the same time (
>> http://www.ietf.org/**proceedings/87/minutes/**minutes-87-dmarc<http://www.ietf.org/proceedings/87/minutes/minutes-87-dmarc>).  The dual use can be addressed as part of the DMARC effort.
>>
>
> DKIM has no intrinsic policy component.   Are we actually talking about
> ADSP here?
>

If a message has a DKIM signature and it is valid for the sending domain
then that is strong evidence that the owner of the domain intended to send
it. Hence DKIM Signature overlaps with SPF policy.

Regardless RFC 5617 is standards track and it is a part of DKIM and the SPF
document should probably mention it as well.



> Assuming we are, I think the best we could do is to note that it's
> possible for ADSP and SPF to yield conflicting policy results; one could be
> a "pass" while the other could be a "fail", meaning the receiving MTA now
> has one "reject" instruction and one "accept" instruction.  The receiving
> ADMD will have to make a decision about which one ought to get precedence.
>

I suspect that the answer is that SPF will take precedence simply because
the MailFROM will be received and acted upon before the MTA has enough
information to act on DKIM information. An MTA that decides email is spam
on the basis of SPF is likely to drop the connection or tar pit it. I doubt
it is going to bother to check a DKIM signature.

-- 
Website: http://hallambaker.com/

--089e013d1e603fd71604e61c82e5
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><div class=3D"gmail_extra"><br><br><div class=3D"gmail=
_quote">On Wed, Sep 11, 2013 at 9:43 AM, Murray S. Kucherawy <span dir=3D"l=
tr">&lt;<a href=3D"mailto:superuser@gmail.com" target=3D"_blank">superuser@=
gmail.com</a>&gt;</span> wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;p=
adding-left:1ex"><div dir=3D"ltr"><div class=3D"im">On Wed, Sep 11, 2013 at=
 6:22 AM, S Moonesamy <span dir=3D"ltr">&lt;<a href=3D"mailto:sm+ietf@eland=
sys.com" target=3D"_blank">sm+ietf@elandsys.com</a>&gt;</span> wrote:<br>
</div><div class=3D"gmail_extra"><div class=3D"gmail_quote"><div class=3D"i=
m">
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;p=
adding-left:1ex">I am responding to the comment about DKIM only and wait fo=
r the SPFBIS WG to address the other issues.<br>
</blockquote>
<div><br></div></div><div>Was the SecDir review for this draft posted to th=
e spfbis list?=A0 I haven&#39;t seen it.<br></div></div></div></div></block=
quote><div><br></div><div>The <a href=3D"mailto:draft-ietf-spfbis-4408bis.a=
ll@tools.ietf.org">draft-ietf-spfbis-4408bis.all@tools.ietf.org</a> doesn&#=
39;t cover it? I thought that was the point.</div>
<div><br></div><div><br></div><div>=A0</div><blockquote class=3D"gmail_quot=
e" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-colo=
r:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir=3D"lt=
r"><div class=3D"gmail_extra">
<div class=3D"gmail_quote"><div></div><div class=3D"im"><blockquote class=
=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;bo=
rder-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;p=
adding-left:1ex">
The Security Considerations section is adequate for the purpose except that=
 no mention is made anywhere in the specification about DKIM and how a mail=
 receiver should interpret presence of DKIM and SPF policy at the same time=
. This is a legitimate concern since DKIM is already a standards track prop=
osal and SPF is only now being promoted to Standards Track. Thus the SPF do=
cument should address the question of dual use.<br>


</blockquote>
<br>
There was a BoF at the last IETF meeting to discuss proposals about how to =
interpret the presence of DKIM and/or SPF policy at the same time ( <a href=
=3D"http://www.ietf.org/proceedings/87/minutes/minutes-87-dmarc" target=3D"=
_blank">http://www.ietf.org/<u></u>proceedings/87/minutes/<u></u>minutes-87=
-dmarc</a> ). =A0The dual use can be addressed as part of the DMARC effort.=
<br>

</blockquote><div><br></div></div><div>DKIM has no intrinsic policy compone=
nt. =A0 Are we actually talking about ADSP here?<br></div></div></div></div=
></blockquote><div><br></div><div>If a message has a DKIM signature and it =
is valid for the sending domain then that is strong evidence that the owner=
 of the domain intended to send it. Hence DKIM Signature overlaps with SPF =
policy.=A0</div>
<div><br></div><div>Regardless RFC 5617 is standards track and it is a part=
 of DKIM and the SPF document should probably mention it as well.</div><div=
><br></div><div>=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:=
0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);=
border-left-style:solid;padding-left:1ex">
<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote"><div=
></div><div>Assuming we are, I think the best we could do is to note that i=
t&#39;s possible for ADSP and SPF to yield conflicting policy results; one =
could be a &quot;pass&quot; while the other could be a &quot;fail&quot;, me=
aning the receiving MTA now has one &quot;reject&quot; instruction and one =
&quot;accept&quot; instruction.=A0 The receiving ADMD will have to make a d=
ecision about which one ought to get precedence.</div>
</div></div></div></blockquote><div><br></div><div>I suspect that the answe=
r is that SPF will take precedence simply because the MailFROM will be rece=
ived and acted upon before the MTA has enough information to act on DKIM in=
formation. An MTA that decides email is spam on the basis of SPF is likely =
to drop the connection or tar pit it. I doubt it is going to bother to chec=
k a DKIM signature.=A0</div>
</div><div><br></div>-- <br>Website: <a href=3D"http://hallambaker.com/">ht=
tp://hallambaker.com/</a><br>
</div></div>

--089e013d1e603fd71604e61c82e5--

From scott@kitterman.com  Tue Sep 10 16:32:24 2013
Return-Path: <scott@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 83AB621F9B60; Tue, 10 Sep 2013 16:32:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vdPTUXdklQ6Y; Tue, 10 Sep 2013 16:32:20 -0700 (PDT)
Received: from mailout03.controlledmail.com (mailout03.controlledmail.com [208.43.65.50]) by ietfa.amsl.com (Postfix) with ESMTP id 8E1D821F9AE3; Tue, 10 Sep 2013 16:32:20 -0700 (PDT)
Received: from mailout03.controlledmail.com (localhost [127.0.0.1]) by mailout03.controlledmail.com (Postfix) with ESMTP id BA05B956002; Tue, 10 Sep 2013 19:32:19 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378855939; bh=XaCrJNA1fMHC/u7h59vnSE670rMjp7gNvHZPDxid0jg=; h=In-Reply-To:References:Subject:From:Date:To:CC:From; b=jk3vBDPcLm9MKNk6W2DLrl39nrrd2eRjjht+kccTAaeFlpc81FLRLcP+NKbYVfjpc hhrHXdQxkuNGTuP4KFhk8hM2dBiSOg72rzP94nxlIP4nuZdzMAqTJv1MqY7uoWZKjz +SqWT5bPYTwOqxWDDAnzpOQMJLTK4fVwK7ByPmU0=
Received: from [IPV6:2600:1003:b000:f292:7bb6:5a70:5e2a:a8a8] (unknown [IPv6:2600:1003:b000:f292:7bb6:5a70:5e2a:a8a8]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mailout03.controlledmail.com (Postfix) with ESMTPSA id DACBA956001;  Tue, 10 Sep 2013 19:32:18 -0400 (EDT)
User-Agent: K-9 Mail for Android
In-Reply-To: <6.2.5.6.2.20130910131842.0cec1d40@elandnews.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130910113052.0c339a60@elandnews.com> <522F7A8F.5060807@gmail.com> <6.2.5.6.2.20130910131842.0cec1d40@elandnews.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Scott Kitterman <scott@kitterman.com>
Date: Tue, 10 Sep 2013 19:32:40 -0400
To: S Moonesamy <sm+ietf@elandsys.com>, Spencer Dawkins <spencerdawkins.ietf@gmail.com>, spfbis@ietf.org
Message-ID: <1f9a8f6c-7508-43bf-97ef-2c47fd917480@email.android.com>
X-AV-Checked: ClamAV using ClamSMTP
X-Mailman-Approved-At: Wed, 11 Sep 2013 09:05:37 -0700
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Tue, 10 Sep 2013 23:32:24 -0000

I was pretty fatigued when I wrote that.  I promise it was beautiful in my head.  Sorry for the confusion.  I'll fix it tonight after I'm back with the computer ith the document on it.

Scott K

S Moonesamy <sm+ietf@elandsys.com> wrote:
>Hi Spencer,
>At 13:01 10-09-2013, Spencer Dawkins wrote:
>>I liked where the proposed text seemed to be headed, but this 
>>sentence didn't parse for me (missing words?), and it seems like a 
>>really important sentence ...
>
>Yes, there are some words missing.
>
>Can the SPFBIS WG please review the text in the message at 
>http://www.ietf.org/mail-archive/web/spfbis/current/msg04104.html and 
>suggest text to address the DISCUSS (see 
>http://www.ietf.org/mail-archive/web/spfbis/current/msg04099.html ).
>
>Regards,
>S. Moonesamy (as document shepherd)  


From superuser@gmail.com  Wed Sep 11 09:35:13 2013
Return-Path: <superuser@gmail.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 0C4B521E818E; Wed, 11 Sep 2013 09:35:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.591
X-Spam-Level: 
X-Spam-Status: No, score=-2.591 tagged_above=-999 required=5 tests=[AWL=0.008,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VA0jNJwNVgkF; Wed, 11 Sep 2013 09:35:11 -0700 (PDT)
Received: from mail-wi0-x22c.google.com (mail-wi0-x22c.google.com [IPv6:2a00:1450:400c:c05::22c]) by ietfa.amsl.com (Postfix) with ESMTP id 3132521E813D; Wed, 11 Sep 2013 09:35:10 -0700 (PDT)
Received: by mail-wi0-f172.google.com with SMTP id c10so2429971wiw.11 for <multiple recipients>; Wed, 11 Sep 2013 09:35:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=OFUEkfGms1yjtgV9g6CStIWaSTTg9EedrPvmm+62DuE=; b=lC9BqIACzOjHoq5zT09Z8dZ03ZRerzFXVllcP+H7mMwow3rZcW4Y2zNXQZXcXMy+Rr h84zmPDE69W5RGLMJKHRPAJCuxM/Vgvl7h3SuuvwdqhLFLzSsHuFFkmabUGCTxEKdgRP r0OWJixwg7Wtzedd2t8o1u3dZspTZOTI9S7HuX+pa95bglO5osSqly81ESOSnUbI9ATa HylXrglE8/8bw+FjOkZxHtw+EnOck6nUjI6yO9DdoDxVDL5IYxCnp/1nouvOUj4+++VY tWVSdWeu70y09HoFPFUTdtesfCoOtmWZcKQY/pUGe4YdtYHhh38bp+mFk4QbiLutRvYw HchA==
MIME-Version: 1.0
X-Received: by 10.180.211.19 with SMTP id my19mr2155121wic.19.1378917309327; Wed, 11 Sep 2013 09:35:09 -0700 (PDT)
Received: by 10.180.106.169 with HTTP; Wed, 11 Sep 2013 09:35:09 -0700 (PDT)
In-Reply-To: <CAMm+LwhtmjBXQ1ZQRhKW-2FvPG2AkW5fyRN7ihMOT9UJdPgkkQ@mail.gmail.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com> <CAL0qLwZ1HXEfTzvL9KtRmLRvfsgEB4Fy5x7EMV7qjekG7oTwLA@mail.gmail.com> <CAMm+LwhtmjBXQ1ZQRhKW-2FvPG2AkW5fyRN7ihMOT9UJdPgkkQ@mail.gmail.com>
Date: Wed, 11 Sep 2013 09:35:09 -0700
Message-ID: <CAL0qLwYtmmFpU9RnJYvL-pgA5e2Styxs-fpbsYG0YJW4ZHTFMg@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: Phillip Hallam-Baker <hallam@gmail.com>
Content-Type: multipart/alternative; boundary=001a11c3855665aee904e61e3419
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, draft-ietf-spfbis-4408bis.all@tools.ietf.org, "secdir@ietf.org" <secdir@ietf.org>, S Moonesamy <sm+ietf@elandsys.com>, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Wed, 11 Sep 2013 16:35:14 -0000

--001a11c3855665aee904e61e3419
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Sep 11, 2013 at 7:33 AM, Phillip Hallam-Baker <hallam@gmail.com>wrote:

> On Wed, Sep 11, 2013 at 9:43 AM, Murray S. Kucherawy <superuser@gmail.com>wrote:
>
>> On Wed, Sep 11, 2013 at 6:22 AM, S Moonesamy <sm+ietf@elandsys.com>wrote:
>>
>>> I am responding to the comment about DKIM only and wait for the SPFBIS
>>> WG to address the other issues.
>>>
>>
>> Was the SecDir review for this draft posted to the spfbis list?  I
>> haven't seen it.
>>
>
> The draft-ietf-spfbis-4408bis.all@tools.ietf.org doesn't cover it? I
> thought that was the point.
>

I'm pretty sure it's authors, shepherds, and co-chairs only, not the whole
WG.


>
>
>
>
>>
>>>  The Security Considerations section is adequate for the purpose except
>>>> that no mention is made anywhere in the specification about DKIM and how a
>>>> mail receiver should interpret presence of DKIM and SPF policy at the same
>>>> time. This is a legitimate concern since DKIM is already a standards track
>>>> proposal and SPF is only now being promoted to Standards Track. Thus the
>>>> SPF document should address the question of dual use.
>>>>
>>>
>>> There was a BoF at the last IETF meeting to discuss proposals about how
>>> to interpret the presence of DKIM and/or SPF policy at the same time (
>>> http://www.ietf.org/**proceedings/87/minutes/**minutes-87-dmarc<http://www.ietf.org/proceedings/87/minutes/minutes-87-dmarc>).  The dual use can be addressed as part of the DMARC effort.
>>>
>>
>> DKIM has no intrinsic policy component.   Are we actually talking about
>> ADSP here?
>>
>
> If a message has a DKIM signature and it is valid for the sending domain
> then that is strong evidence that the owner of the domain intended to send
> it. Hence DKIM Signature overlaps with SPF policy.
>

Ah, I see where you're going now.


>
> Regardless RFC 5617 is standards track and it is a part of DKIM and the
> SPF document should probably mention it as well.
>

ADSP has seen so little adoption that I think it would actually be a
mistake to pay it any homage here.  I think your point above about DKIM
proper is the more interesting one.


>
>
>
>> Assuming we are, I think the best we could do is to note that it's
>> possible for ADSP and SPF to yield conflicting policy results; one could be
>> a "pass" while the other could be a "fail", meaning the receiving MTA now
>> has one "reject" instruction and one "accept" instruction.  The receiving
>> ADMD will have to make a decision about which one ought to get precedence.
>>
>
> I suspect that the answer is that SPF will take precedence simply because
> the MailFROM will be received and acted upon before the MTA has enough
> information to act on DKIM information. An MTA that decides email is spam
> on the basis of SPF is likely to drop the connection or tar pit it. I doubt
> it is going to bother to check a DKIM signature.
>

Right, I had forgotten about this as well.  I shouldn't reply to SecDir
without being appropriately caffeinated.

It's not necessarily the case that an SPF failure will be acted upon before
DKIM even gets evaluated.  Though that is clearly for many installations
the optimal use because you don't have to deal with the body, any MTA that
wants to give DKIM due consideration as well will have to store the SPF
result and then decide on it later.  And there are sites that do prefer it
that way, not the least of which is the entire DMARC community.

This draft is already worded such that one can merely observe the SPF
result and record it rather than enacting it as soon as possible, possibly
using it as one input to a larger equation.  This use case could bolster
that argument by providing an example, and could even be done without
naming DKIM specifically.  Of course, the downside is that the receiver has
to deal with accepting the body.  As long as the tradeoff is made clear (if
it isn't already), we might consider adding it.

-MSK

--001a11c3855665aee904e61e3419
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wed, Sep 11, 2013 at 7:33 AM, Phillip Hallam-Baker <spa=
n dir=3D"ltr">&lt;<a href=3D"mailto:hallam@gmail.com" target=3D"_blank">hal=
lam@gmail.com</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div clas=
s=3D"gmail_quote">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div dir=3D"ltr">On Wed, Sep 11, 2013 at 9:4=
3 AM, Murray S. Kucherawy <span dir=3D"ltr">&lt;<a href=3D"mailto:superuser=
@gmail.com" target=3D"_blank">superuser@gmail.com</a>&gt;</span> wrote:<br>

<div class=3D"gmail_extra"><div class=3D"gmail_quote"><div class=3D"im"><bl=
ockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-lef=
t-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padd=
ing-left:1ex">
<div dir=3D"ltr"><div>On Wed, Sep 11, 2013 at 6:22 AM, S Moonesamy <span di=
r=3D"ltr">&lt;<a href=3D"mailto:sm+ietf@elandsys.com" target=3D"_blank">sm+=
ietf@elandsys.com</a>&gt;</span> wrote:<br>
</div><div class=3D"gmail_extra"><div class=3D"gmail_quote"><div>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;p=
adding-left:1ex">I am responding to the comment about DKIM only and wait fo=
r the SPFBIS WG to address the other issues.<br>

</blockquote>
<div><br></div></div><div>Was the SecDir review for this draft posted to th=
e spfbis list?=A0 I haven&#39;t seen it.<br></div></div></div></div></block=
quote><div><br></div></div><div>The <a href=3D"mailto:draft-ietf-spfbis-440=
8bis.all@tools.ietf.org" target=3D"_blank">draft-ietf-spfbis-4408bis.all@to=
ols.ietf.org</a> doesn&#39;t cover it? I thought that was the point.</div>
</div></div></div></blockquote><div><br></div><div>I&#39;m pretty sure it&#=
39;s authors, shepherds, and co-chairs only, not the whole WG.<br>=A0<br></=
div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-lef=
t:1px #ccc solid;padding-left:1ex">
<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote"><div=
 class=3D"im">
<div><br></div><div><br></div><div>=A0</div><blockquote class=3D"gmail_quot=
e" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-colo=
r:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir=3D"lt=
r">
<div class=3D"gmail_extra">
<div class=3D"gmail_quote"><div></div><div><blockquote class=3D"gmail_quote=
" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color=
:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;p=
adding-left:1ex">
The Security Considerations section is adequate for the purpose except that=
 no mention is made anywhere in the specification about DKIM and how a mail=
 receiver should interpret presence of DKIM and SPF policy at the same time=
. This is a legitimate concern since DKIM is already a standards track prop=
osal and SPF is only now being promoted to Standards Track. Thus the SPF do=
cument should address the question of dual use.<br>



</blockquote>
<br>
There was a BoF at the last IETF meeting to discuss proposals about how to =
interpret the presence of DKIM and/or SPF policy at the same time ( <a href=
=3D"http://www.ietf.org/proceedings/87/minutes/minutes-87-dmarc" target=3D"=
_blank">http://www.ietf.org/<u></u>proceedings/87/minutes/<u></u>minutes-87=
-dmarc</a> ). =A0The dual use can be addressed as part of the DMARC effort.=
<br>


</blockquote><div><br></div></div><div>DKIM has no intrinsic policy compone=
nt. =A0 Are we actually talking about ADSP here?<br></div></div></div></div=
></blockquote><div><br></div></div><div>If a message has a DKIM signature a=
nd it is valid for the sending domain then that is strong evidence that the=
 owner of the domain intended to send it. Hence DKIM Signature overlaps wit=
h SPF policy.</div>
</div></div></div></blockquote><div><br></div><div>Ah, I see where you&#39;=
re going now.<br>=A0<br></div><blockquote class=3D"gmail_quote" style=3D"ma=
rgin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir=3D"lt=
r"><div class=3D"gmail_extra">
<div class=3D"gmail_quote"><div>=A0</div>Regardless RFC 5617 is standards t=
rack and it is a part of DKIM and the SPF document should probably mention =
it as well.</div></div></div></blockquote><div><br></div><div>ADSP has seen=
 so little adoption that I think it would actually be a mistake to pay it a=
ny homage here.=A0 I think your point above about DKIM proper is the more i=
nteresting one.<br>
=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><div dir=3D"ltr"><div class=3D"=
gmail_extra"><div class=3D"gmail_quote"><div class=3D"im"><div><br></div><d=
iv>=A0</div>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-=
left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;p=
adding-left:1ex">
<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote"><div=
></div><div>Assuming we are, I think the best we could do is to note that i=
t&#39;s possible for ADSP and SPF to yield conflicting policy results; one =
could be a &quot;pass&quot; while the other could be a &quot;fail&quot;, me=
aning the receiving MTA now has one &quot;reject&quot; instruction and one =
&quot;accept&quot; instruction.=A0 The receiving ADMD will have to make a d=
ecision about which one ought to get precedence.</div>

</div></div></div></blockquote><div><br></div></div><div>I suspect that the=
 answer is that SPF will take precedence simply because the MailFROM will b=
e received and acted upon before the MTA has enough information to act on D=
KIM information. An MTA that decides email is spam on the basis of SPF is l=
ikely to drop the connection or tar pit it. I doubt it is going to bother t=
o check a DKIM signature.=A0</div>
</div></div></div></blockquote><div><br></div><div>Right, I had forgotten a=
bout this as well.=A0 I shouldn&#39;t reply to SecDir without being appropr=
iately caffeinated.<br><br></div><div>It&#39;s not necessarily the case tha=
t an SPF failure will be acted upon before DKIM even gets evaluated.=A0 Tho=
ugh that is clearly for many installations the optimal use because you don&=
#39;t have to deal with the body, any MTA that wants to give DKIM due consi=
deration as well will have to store the SPF result and then decide on it la=
ter.=A0 And there are sites that do prefer it that way, not the least of wh=
ich is the entire DMARC community.<br>
<br></div><div>This draft is already worded such that one can merely observ=
e the SPF result and record it rather than enacting it as soon as possible,=
 possibly using it as one input to a larger equation.=A0 This use case coul=
d bolster that argument by providing an example, and could even be done wit=
hout naming DKIM specifically.=A0 Of course, the downside is that the recei=
ver has to deal with accepting the body.=A0 As long as the tradeoff is made=
 clear (if it isn&#39;t already), we might consider adding it.<br>
<br>-MSK<br></div><div><br></div></div></div></div>

--001a11c3855665aee904e61e3419--

From johnl@iecc.com  Wed Sep 11 09:41:59 2013
Return-Path: <johnl@iecc.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 AE9AF21F9CA4 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 09:41:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.274
X-Spam-Level: 
X-Spam-Status: No, score=-102.274 tagged_above=-999 required=5 tests=[AWL=0.325, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lCzcRhmVDY7a for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 09:41:55 -0700 (PDT)
Received: from leila.iecc.com (leila6.iecc.com [IPv6:2001:470:1f07:1126:0:4c:6569:6c61]) by ietfa.amsl.com (Postfix) with ESMTP id 6D0EC21F9C2E for <spfbis@ietf.org>; Wed, 11 Sep 2013 09:41:54 -0700 (PDT)
Received: (qmail 29131 invoked from network); 11 Sep 2013 16:41:51 -0000
Received: from leila.iecc.com (64.57.183.34) by mail1.iecc.com with QMQP; 11 Sep 2013 16:41:51 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=iecc.com; h=date:message-id:from:to:cc:subject:in-reply-to:mime-version:content-type:content-transfer-encoding; s=52309d4f.xn--hew.k1309; i=johnl@user.iecc.com; bh=7+9LqEwvnPaehERKIPNY6DUVyTtmDQ1O8mYGIQHF0hM=; b=EQQBePZiz8PMFrfcPl379zv9pFfOBEDfB6H62hnmxPTEGMFw+o3GVUVqzShx2mBsXnoAvOulCFwHBtnjEo9HYgfDp9BJa+rSCa/hbjqWPYBBkfSWPQb96x2mhm8coVfTsaECjDoEV4Erl/cx+OqEvD8m9xXxInF6TEeygNFBL6KcKFLhsPA49RbPL/Gmg8Gx9CmK9A8YmpXeCEIczDgDG8+7R/WxkpLL//WjvQ+/k/Ad/8JkQhNpgimwIKbywq3+
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=taugh.com; h=date:message-id:from:to:cc:subject:in-reply-to:mime-version:content-type:content-transfer-encoding; s=52309d4f.xn--hew.k1309; olt=johnl@user.iecc.com; bh=7+9LqEwvnPaehERKIPNY6DUVyTtmDQ1O8mYGIQHF0hM=; b=hNrQ7CuNAIhgpzUbFOXA6qKyUTwVs4nkoq1nYa+zykb2vvRwL7S/tSMFQjKLtfwEoKm6YAazGNKX9semfq/rzqTet+eKeJhvtN8wWXHS9l1+Zr7BHszNxMgqDeRpYoay+8Nlcv95kuSeJL5O9+mfXoAOHrrRNhMqhVOVASAFyUkoB5xRfEkhBavHLcAERhyakw4T2DBO1OO79wU2dqtAchdsPYq2jHtXNyv5OBkuuciGabeFvu/i0wOrykfNnZWK
Date: 11 Sep 2013 16:41:29 -0000
Message-ID: <20130911164129.66943.qmail@joyce.lan>
From: "John Levine" <johnl@taugh.com>
To: spfbis@ietf.org
In-Reply-To: <CAL0qLwZ1HXEfTzvL9KtRmLRvfsgEB4Fy5x7EMV7qjekG7oTwLA@mail.gmail.com>
Organization: 
X-Headerized: yes
Mime-Version: 1.0
Content-type: text/plain; charset=utf-8
Content-transfer-encoding: 8bit
Cc: superuser@gmail.com
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Wed, 11 Sep 2013 16:41:59 -0000

>> There was a BoF at the last IETF meeting to discuss proposals about
how to >> interpret the presence of DKIM and/or SPF policy at the same
time ( 
>>><http://www.ietf.org/proceedings/87/minutes/minutes-87-dmarc>).  The
>>dual use can be addressed as part of the DMARC effort.

>DKIM has no intrinsic policy component.   Are we actually talking about
>ADSP here?

Looks like DMARC to me.  I don't see any reason to mention in in 4408bis.

R's,
John



From spf2@kitterman.com  Wed Sep 11 09:55:11 2013
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 3E7B011E81CF for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 09:55:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.648
X-Spam-Level: 
X-Spam-Status: No, score=-1.648 tagged_above=-999 required=5 tests=[AWL=0.951,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XRGTGGuboYIZ for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 09:55:06 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 3A0AB11E80FF for <spfbis@ietf.org>; Wed, 11 Sep 2013 09:55:03 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id CDC2520E40EA; Wed, 11 Sep 2013 12:54:56 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378918496; bh=IZ+lVzOOGb1mz4MfxslfQK7hbn4QFNOt/bIkP7h1jSo=; h=From:To:Subject:Date:In-Reply-To:References:From; b=bX/yDWCt/7o1HqAS+4WcVxnPK8SC6zYpT9lz/ZgyGJHt+YOoEz0/j2Zu+n+H5HxwP ozUCI5YozYa0XEds8BP2W9pfxzsyNQEzG6kHG+puEI1LDIGEkm1Z4HOt8TnnHVf+JU p+EdoCUn74m+mjm2YxawF8LyrJqiyG6KRt5ophlw=
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 B134E20E40D2;  Wed, 11 Sep 2013 12:54:56 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Wed, 11 Sep 2013 12:54:54 -0400
Message-ID: <4509124.Paquit6mK7@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <CAL0qLwaLkTE7_BmmxsOECOP0d3UKx3gsr535sDHr+2hMiqggDA@mail.gmail.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <10370218.OEr9JV8dgx@scott-latitude-e6320> <CAL0qLwaLkTE7_BmmxsOECOP0d3UKx3gsr535sDHr+2hMiqggDA@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] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 16:55:11 -0000

On Wednesday, September 11, 2013 06:39:58 Murray S. Kucherawy wrote:
> On Tue, Sep 10, 2013 at 6:38 PM, Scott Kitterman <spf2@kitterman.com> wrote:
> > 3.1.  DNS Resource Records
> > 
> >    SPF records MUST be published as a DNS TXT (type 16) Resource Record
> >    (RR) [RFC1035] only.  The character content of the record is encoded
> >    as [US-ASCII].  Use of alternative DNS RR types was supported in
> >    SPF's experimental phase, but has been discontinued.
> >    
> >    In 2003, when SPF was first being developed, the requirements for
> >    assignment of a new DNS RR type were considerably more stringent than
> >    they are now.  Additionally, support for easy deployment of new DNS
> >    RR types was not widely deployed in DNS servers and and provisioning
> 
> Drop one of those "and"s.  I don't care which one.

Fixed.

> >    systems.  As a result, at that time, there was no reasonable
> >    alternative to using the TXT RR type for SPF records.
> >    
> >    In its review of [RFC4408] the SPFbis working group concluded that
> >    its dual RR type transition model was fundamentally flawed since it
> >    contained no common RR type that implementers were required to serve
> >    and required to check.  Many alternatives were considered to resolve
> >    this issue, but ultimately the working group concluded that
> >    significant migration to the SPF RR type in the forseable future was
> 
> "foreseeable"

Fixed.

> >    very unlikely and that the best solution for resolving this
> >    interoperability issue was to drop support for the SPF RR type from
> >    SPF version 1.  See Appendix A of [RFC6686] for further information.
> >    
> >    The circumstances surrounding SPF's initial deploymenta decade ago
> 
> "deployment a"

Fixed.

> >    are unique and very, very unlikely to be repeated.  If a future
> >    update to a new SPF version that could not reuse existing SPF records
> >    were to be developed, it ought to use the SPF RR type.  SPF's use of
> >    the TXT RR type for structured data should in no way be taken as
> >    precedent for future protocol designers.  Things have changed.
> 
> What about "SPF's use of the TXT RR type located at the domain apex"?  As I
> understand it, part of the complaint is the location of the record, not
> just its type.  The underscore mechanism used by DKIM, DMARC, ADSP, VBR,
> etc. seems to be gaining acceptance, or at least tolerance, because it
> avoids query collisions.
> 
> Otherwise, looks okay to me.

Given the discuss, I don't think so.  Here's the text of the DISCUSS:

> Text needs to be created (probably for section 3.1) to better describe
> the reason this document settled on TXT RR only and therefore why no
> precedent is set for future use of the TXT RR.

I think adding something "if you use TXT anyway, use this underscore 
mechanism" isn't germane since it wasn't an option SPFbis could consider.

I can add something along those lines, I guess, but I'm not sure it's needed.

Scott K

From spf2@kitterman.com  Wed Sep 11 10:00:45 2013
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 C6C0D21E8163 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 10:00:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.965
X-Spam-Level: 
X-Spam-Status: No, score=-1.965 tagged_above=-999 required=5 tests=[AWL=0.634,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jQhlWP9IMqEz for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 10:00:39 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 2719121F9D7B for <spfbis@ietf.org>; Wed, 11 Sep 2013 09:59:38 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id DE57E20E40EA; Wed, 11 Sep 2013 12:59:33 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378918773; bh=k45WBVBpZcvuCWZKi6xeR7znz4rNoB3Bm1KOI1N92v0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=WKSVFBBVAsBc0lLehI2n273yxuZlDH1ihdkZHeYF2VOfjAe7W7wD/nLJ9gVzM0ZEV q2r7IaWKH3e0IhLTPbuOO1edVC8WziMvcht7/NmPPFYxEUc9k+N4eLiGw9ZO5O6aOh 0gB8z6LGos22v1bre/Qu3GOWeV4b1pMsmg0R6zrQ=
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 C06F620E40D2;  Wed, 11 Sep 2013 12:59:33 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Wed, 11 Sep 2013 12:59:33 -0400
Message-ID: <1722205.QZ2hcdPFdJ@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <CAL0qLwYqMpFrnvq+uTDGC11yfO1xRUYUsO1N150wP_HsNvb6HA@mail.gmail.com>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com> <CAL0qLwYqMpFrnvq+uTDGC11yfO1xRUYUsO1N150wP_HsNvb6HA@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] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 17:00:45 -0000

On Wednesday, September 11, 2013 07:07:33 Murray S. Kucherawy wrote:
> On Wed, Sep 11, 2013 at 5:04 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:
> >> ------------------------------**------------------------------**
> >> ----------
> >> DISCUSS:
> >> ------------------------------**------------------------------**
> >> ----------
> >> 
> >> I have two very small points that I think are unclear, and important
> >> enough that we have to get them right, both regarding the check_host()
> >> function.  These should be really easy to clear up:
> >> 
> >> -- Section 4.6 --
> >> 
> >>    The check_host() function parses and interprets the SPF record to
> >>    find a result for the current test.  If there are any syntax errors
> >>    anywhere in the record, check_host() returns immediately with the
> >>    result "permerror", without further interpretation.
> >> 
> >> I think you're trying to say that syntax checking is done before any
> >> evaluation, but you aren't saying it.  It matters, because
> >> implementations that make different choices in that regard won't get the
> >> same results from check_host() in all cases, as they're required to.
> >> Maybe this?:
> >> 
> >> NEW
> >> 
> >>    The check_host() function parses and interprets the SPF record to
> >>    find a result for the current test.  The syntax of the record is
> >>    validated first, and if there are any syntax errors anywhere in the
> >>    record, check_host() returns immediately with the result "permerror",
> >>    without further interpretation or evaluation.
> >> 
> >> END
> 
> Yep.

I think this change is fine.  Should I make it?

> >> -- Section 5.5 --
> >> 
> >> I have to say that I'm not happy about the pseudocode here: what
> >> situation are we in when the pseudocode differs from the text?  Which
> >> wins?
> >> 
> >> I already see a case where they differ: the new pseudocode says "if more
> >> than 10 sending-domain_names are found, use at most 10", and there's
> >> nothing of the sort in the text.
> >> 
> >> Does the working group really think there's enough value in having
> >> pseudocode there that it's worth saying the same thing twice and relying
> >> on them to be truly the same?  And is it really worth it for mechanism
> >> that's not recommended for use?
> >> 
> >> I strongly suggest making sure that the text says what you want it to,
> >> and removing the pseudocode.
> 
> I've written drafts (e.g., RFC5451) that contain prose and an algorithm
> description for the same thing, so it's possible to get this right.  I'm
> not sure it's necessary here, so I agree we should consider dumping it.
> 
> Will review the comment stuff later today.

I think we can just remove it.   Looking it over, I don't think it adds much, 
if anything.

Scott K

From superuser@gmail.com  Wed Sep 11 10:04:47 2013
Return-Path: <superuser@gmail.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 9212211E8215 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 10:04:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.591
X-Spam-Level: 
X-Spam-Status: No, score=-2.591 tagged_above=-999 required=5 tests=[AWL=0.008,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0PLfXq0Q0Ynu for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 10:04:21 -0700 (PDT)
Received: from mail-wi0-x233.google.com (mail-wi0-x233.google.com [IPv6:2a00:1450:400c:c05::233]) by ietfa.amsl.com (Postfix) with ESMTP id 03D2511E81EA for <spfbis@ietf.org>; Wed, 11 Sep 2013 10:02:59 -0700 (PDT)
Received: by mail-wi0-f179.google.com with SMTP id hm2so2477553wib.12 for <spfbis@ietf.org>; Wed, 11 Sep 2013 10:02:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=C0bSIpbROlsKtr0rVZKMNfKkdKqhGNlhH6J8UNAvSeE=; b=ooWtAhIWicJhUjjKHDgmhf1pCZcDxl3u8T+SKU29lZYilnVbezmbcBj0O4/ziOGq/c RhAfWpess4TPbShnYv50P3tyJkWY21OpMEgJc9mkxdMe83G0rG3D+arBI1uFHPNAuuda a3INCh+4JdbhdDCL843BGyL0H7JZWsteYM221lzsVFdbEOipwTuZmW5/pE9xpUBgbhSi ARZLmGX5e4nFMoef28jR8ctd4Lj+JI1VDWd5BjIkBKGhaQvj6+jXEFXUAzSSPp+Qkfzg eMwdd6992p/gNS11jDXbswNDJz5V60g4X70TZ8Qy1u+cFGgwQ7Kg5EMzdwkWlMzXFRz0 E6pA==
MIME-Version: 1.0
X-Received: by 10.194.109.35 with SMTP id hp3mr2375440wjb.55.1378918977278; Wed, 11 Sep 2013 10:02:57 -0700 (PDT)
Received: by 10.180.106.169 with HTTP; Wed, 11 Sep 2013 10:02:57 -0700 (PDT)
In-Reply-To: <4509124.Paquit6mK7@scott-latitude-e6320>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <10370218.OEr9JV8dgx@scott-latitude-e6320> <CAL0qLwaLkTE7_BmmxsOECOP0d3UKx3gsr535sDHr+2hMiqggDA@mail.gmail.com> <4509124.Paquit6mK7@scott-latitude-e6320>
Date: Wed, 11 Sep 2013 10:02:57 -0700
Message-ID: <CAL0qLwbFfC8tyLjBj+pFP-xHBOYCrwhkJsdjosPXmX-VoYHVKg@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: Scott Kitterman <spf2@kitterman.com>
Content-Type: multipart/alternative; boundary=089e010d8574d0987804e61e97cd
Cc: "spfbis@ietf.org" <spfbis@ietf.org>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 17:04:48 -0000

--089e010d8574d0987804e61e97cd
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Sep 11, 2013 at 9:54 AM, Scott Kitterman <spf2@kitterman.com> wrote:

> > Drop one of those "and"s.  I don't care which one.
>
> Fixed.
>

The WG may disagree with the choice you made as to which one you removed.
Be prepared to explain it.


> > >    are unique and very, very unlikely to be repeated.  If a future
> > >    update to a new SPF version that could not reuse existing SPF
> records
> > >    were to be developed, it ought to use the SPF RR type.  SPF's use of
> > >    the TXT RR type for structured data should in no way be taken as
> > >    precedent for future protocol designers.  Things have changed.
> >
> > What about "SPF's use of the TXT RR type located at the domain apex"?
>  As I
> > understand it, part of the complaint is the location of the record, not
> > just its type.  The underscore mechanism used by DKIM, DMARC, ADSP, VBR,
> > etc. seems to be gaining acceptance, or at least tolerance, because it
> > avoids query collisions.
> >
> > Otherwise, looks okay to me.
>
> Given the discuss, I don't think so.  Here's the text of the DISCUSS:
>
> > Text needs to be created (probably for section 3.1) to better describe
> > the reason this document settled on TXT RR only and therefore why no
> > precedent is set for future use of the TXT RR.
>
> I think adding something "if you use TXT anyway, use this underscore
> mechanism" isn't germane since it wasn't an option SPFbis could consider.
>
> I can add something along those lines, I guess, but I'm not sure it's
> needed.
>
>
My issue is that the second-last sentence there basically says "don't use
TXT for structured data in the future" as a pretty absolute thing, but in
fact the underscore "loophole" is currently something the community is
tolerating.  It seems incorrect.  I know underscore wasn't an option for
us, but as pedagogy for future protocol developers, it doesn't tell the
whole story either.

-MSK

--089e010d8574d0987804e61e97cd
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wed, Sep 11, 2013 at 9:54 AM, Scott Kitterman <span dir=
=3D"ltr">&lt;<a href=3D"mailto:spf2@kitterman.com" target=3D"_blank">spf2@k=
itterman.com</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div class=
=3D"gmail_quote">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div class=3D"im">&gt; Drop one of those &qu=
ot;and&quot;s. =A0I don&#39;t care which one.<br>
<br>
</div>Fixed.<br></blockquote><div><br></div><div>The WG may disagree with t=
he choice you made as to which one you removed.=A0 Be prepared to explain i=
t.<br>=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex">
&gt; &gt; =A0 =A0are unique and very, very unlikely to be repeated. =A0If a=
 future<br><div class=3D"im">
&gt; &gt; =A0 =A0update to a new SPF version that could not reuse existing =
SPF records<br>
&gt; &gt; =A0 =A0were to be developed, it ought to use the SPF RR type. =A0=
SPF&#39;s use of<br>
&gt; &gt; =A0 =A0the TXT RR type for structured data should in no way be ta=
ken as<br>
&gt; &gt; =A0 =A0precedent for future protocol designers. =A0Things have ch=
anged.<br>
&gt;<br>
&gt; What about &quot;SPF&#39;s use of the TXT RR type located at the domai=
n apex&quot;? =A0As I<br>
&gt; understand it, part of the complaint is the location of the record, no=
t<br>
&gt; just its type. =A0The underscore mechanism used by DKIM, DMARC, ADSP, =
VBR,<br>
&gt; etc. seems to be gaining acceptance, or at least tolerance, because it=
<br>
&gt; avoids query collisions.<br>
&gt;<br>
&gt; Otherwise, looks okay to me.<br>
<br>
</div>Given the discuss, I don&#39;t think so. =A0Here&#39;s the text of th=
e DISCUSS:<br>
<div class=3D"im"><br>
&gt; Text needs to be created (probably for section 3.1) to better describe=
<br>
&gt; the reason this document settled on TXT RR only and therefore why no<b=
r>
&gt; precedent is set for future use of the TXT RR.<br>
<br>
</div>I think adding something &quot;if you use TXT anyway, use this unders=
core<br>
mechanism&quot; isn&#39;t germane since it wasn&#39;t an option SPFbis coul=
d consider.<br>
<br>
I can add something along those lines, I guess, but I&#39;m not sure it&#39=
;s needed.<br>
<br></blockquote><div><br></div><div>My issue is that the second-last sente=
nce there basically says &quot;don&#39;t use TXT for structured data in the=
 future&quot; as a pretty absolute thing, but in fact the underscore &quot;=
loophole&quot; is currently something the community is tolerating.=A0 It se=
ems incorrect.=A0 I know underscore wasn&#39;t an option for us, but as ped=
agogy for future protocol developers, it doesn&#39;t tell the whole story e=
ither.<br>
<br>-MSK<br></div></div></div></div>

--089e010d8574d0987804e61e97cd--

From hsantos@isdg.net  Wed Sep 11 10:16:16 2013
Return-Path: <hsantos@isdg.net>
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 C7AE321F8698 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 10:15:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.716
X-Spam-Level: 
X-Spam-Status: No, score=-101.716 tagged_above=-999 required=5 tests=[AWL=0.019, BAYES_00=-2.599, HELO_MISMATCH_COM=0.553, HOST_MISMATCH_NET=0.311, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hJJ1Q7Czks3G for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 10:15:29 -0700 (PDT)
Received: from pop3.winserver.com (mail.catinthebox.net [208.247.131.9]) by ietfa.amsl.com (Postfix) with ESMTP id E78E521F9950 for <spfbis@ietf.org>; Wed, 11 Sep 2013 10:15:25 -0700 (PDT)
DKIM-Signature: v=1; d=isdg.net; s=tms1; a=rsa-sha1; c=simple/relaxed; l=4115; t=1378919716; h=Received:Received: Received:Received:Message-ID:Date:From:Organization:To:Subject: List-ID; bh=IoH/SYoT1ikEG1NbIKeXi9hMG3I=; b=lrEAo/bYuhinsM1bAfSS JZeeyyPgUuxZ0XopnOMgsDkQA79+wrWJaOnCiBpYO7vZfXq7sMAsmT0W8RhjL/fz pC9z9cMqzYh8ql8woqHqonMqO0qdYLgw8UChZDVcgyiGooDXayqoRhFa2rKT2TbR XKBq5TIOOeGIhsb7v8NA/gw=
Received: by winserver.com (Wildcat! SMTP Router v7.0.454.4) for spfbis@ietf.org; Wed, 11 Sep 2013 13:15:16 -0400
Authentication-Results: dkim.winserver.com; dkim=pass header.d=beta.winserver.com header.s=tms1 header.i=beta.winserver.com;  adsp=pass policy=all author.d=isdg.net asl.d=beta.winserver.com;
Received: from beta.winserver.com ([208.247.131.23]) by winserver.com (Wildcat! SMTP v7.0.454.4) with ESMTP id 1087244572.29028.2024; Wed, 11 Sep 2013 13:15:16 -0400
DKIM-Signature: v=1; d=beta.winserver.com; s=tms1; a=rsa-sha256; c=simple/relaxed; l=4115; t=1378919368; h=Received:Received: Message-ID:Date:From:Organization:To:Subject:List-ID; bh=FBXMq6v Vy6S9HPQvoktzEVSeZhwEBLC6QWMZ0OmY9Pg=; b=O5DNKbhO8pyAAZljEvg3GL/ SM4kkv3JPBHt9I+0rrN3m8wqFkre2STa5WKma/QC3IkGBgIqDE6Y2QjfNxjzJyEN AtJLtHZ4eG+5ZJ78QY4ogMyVV47Rdj58q34JpHUYJ/RB1xA6rCjyHzQ3x8FE/3YS AsRD8/PDhoSoksOl3sfU=
Received: by beta.winserver.com (Wildcat! SMTP Router v7.0.454.4) for spfbis@ietf.org; Wed, 11 Sep 2013 13:09:28 -0400
Received: from [192.168.1.2] ([99.121.4.27]) by beta.winserver.com (Wildcat! SMTP v7.0.454.4) with ESMTP id 533649034.9.6472; Wed, 11 Sep 2013 13:09:27 -0400
Message-ID: <5230A523.20504@isdg.net>
Date: Wed, 11 Sep 2013 13:15:15 -0400
From: Hector Santos <hsantos@isdg.net>
Organization: Santronics Software, Inc.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: spfbis@ietf.org
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com>
In-Reply-To: <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Wed, 11 Sep 2013 17:16:17 -0000

I had an issue with SPFBIS limiting discussion with integrated 
technology that is 100% related and exist in the market place. 
Protocols SenderID and Submitter SMTP extension which can alter the 
way an SPF compliant package will work.

Related, I had an issue with the limited modeling of check_host() 
function I/O which WOULD NOT fit the reality of an integrated system 
with SUBMITTER support with extended input parameters:

     spf_result = check_host(ehlo, mailfrom [,submitter])

I didn't see why this was not important other than to believe that 
SenderID/Submitter doesn't not exist.

DKIM is not RELATED to SPF.  To talk about unrelated DKIM required to 
talk about a very related item such as SenderID, SUBMITTER.

In this vain, until the IETF can say something about a SPF-related 
technology in SenderID and especially SMTP level SUBMITTER protocol 
which will require to be fitted with a Check_Host() function, the 
"Experiment" was not really completely concluded.

Keep in mind that SPF is a SMTP level technology (doesn't require the 
payload). DKIM requires the payload to be transferred and this 
diminished the optimization of an SPF method.  For DKIM, like ADSP, 
DMARC also now depended on that Author Domain anchor (the single 
binding requirement for DKIM).  SPF or the SenderID Submitter protocol 
do not depend on receiving the payload in other to function.

A DKIM discussion will require how SMTP transaction is done with SPF 
receivers, that is mainly to always receive the payload.


On 9/11/2013 9:22 AM, S Moonesamy wrote:
> Hi Phillip,
>
> I am responding to the comment about DKIM only and wait for the SPFBIS
> WG to address the other issues.
>
> At 05:07 11-09-2013, Phillip Hallam-Baker wrote:
>> I have reviewed this document as part of the security directorate's
>> ongoing effort to review all IETF documents being processed by the
>> IESG.  Document editors and WG chairs should treat these comments just
>> like any other last call comments.
>>
>> The document has been produced as part of a proposal to upgrade SPF
>> to standards track recognizing the state of deployment experience.
>>
>> Minor issues.
>>
>> 1.1.3.  MAIL FROM Definition
>>
>> I found this section completely opaque and very confusing. It should
>> not be necessary to hunt through other specs to find a definition.
>> Particularly since the referenced specs do not give an explicit
>> definition for the term as used and the references point to the
>> whole spec rather than a particular section.
>
> I am commenting on the following paragraph only:
>
>> The Security Considerations section is adequate for the purpose
>> except that no mention is made anywhere in the specification about
>> DKIM and how a mail receiver should interpret presence of DKIM and
>> SPF policy at the same time. This is a legitimate concern since DKIM
>> is already a standards track proposal and SPF is only now being
>> promoted to Standards Track. Thus the SPF document should address
>> the question of dual use.
>
> There was a BoF at the last IETF meeting to discuss proposals about
> how to interpret the presence of DKIM and/or SPF policy at the same
> time ( http://www.ietf.org/proceedings/87/minutes/minutes-87-dmarc ).
> The dual use can be addressed as part of the DMARC effort.
>
>> 8.7.  Permerror
>>
>> "
>>
>> This signals an error condition that
>>
>>    definitely requires operator intervention to be resolved."
>>
>> I cannot imagine a circumstance which definitely requires a human to
>> be involved in mail delivery.
>>
>>
>> 11.2.  SPF-Authorized Email May Contain Other False Identities
>>
>>    Do not construe the "MAIL FROM" and "HELO" identity
>> authorizations to
>>    provide more assurance than they do.
>>
>> Document has quasi normative language that should be worded as
>> statements of fact rather than as direction.
>>
>> --
>> Website: http://hallambaker.com/
>
> _______________________________________________
> spfbis mailing list
> spfbis@ietf.org
> https://www.ietf.org/mailman/listinfo/spfbis
>
>

-- 
HLS



From superuser@gmail.com  Wed Sep 11 10:24:02 2013
Return-Path: <superuser@gmail.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 734EB11E81A4; Wed, 11 Sep 2013 10:24:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.592
X-Spam-Level: 
X-Spam-Status: No, score=-2.592 tagged_above=-999 required=5 tests=[AWL=0.007,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yKvNgLdQBjND; Wed, 11 Sep 2013 10:23:59 -0700 (PDT)
Received: from mail-we0-x233.google.com (mail-we0-x233.google.com [IPv6:2a00:1450:400c:c03::233]) by ietfa.amsl.com (Postfix) with ESMTP id 8E8BF21F9E73; Wed, 11 Sep 2013 10:23:58 -0700 (PDT)
Received: by mail-we0-f179.google.com with SMTP id x55so7065828wes.24 for <multiple recipients>; Wed, 11 Sep 2013 10:23:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Lq3cA/aTGyt7AcNGbp+wb5U3vEFC8A8PR7963Cqx2eo=; b=KMxvL/joqAyq3n2W1u22DhxYB1FrmYKncTh5iNv4kUOYVMLnnW8viM1kBrgrUAp7fP b4jT61XVj4EfgkjnEFzeenV3EGitRl+tbpkuyTV4dDe2AtSA7DiypMUI5UlMf06rgnWU LpyN0IR2ZAFZVWv6YDN6oJxHmh0bqgUuPOBF29ZCQYX3NALAbBhWVhMVVxXWMb9BZha1 eFRQpHLFwRy4OEJkxfyXbZuRADnMKEK/gPdLrATplfhLQY64GTRY+Vl810iyTF3RNeAG f9uPMwF7Qb8dLVhg4Wxa0hMnqJensXuZucRoyXErUz41imRM3nV9D9NvVALI7p4C/pp0 lJEQ==
MIME-Version: 1.0
X-Received: by 10.194.71.72 with SMTP id s8mr2523130wju.52.1378920237216; Wed, 11 Sep 2013 10:23:57 -0700 (PDT)
Received: by 10.180.106.169 with HTTP; Wed, 11 Sep 2013 10:23:57 -0700 (PDT)
In-Reply-To: <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com>
Date: Wed, 11 Sep 2013 10:23:57 -0700
Message-ID: <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: S Moonesamy <sm+ietf@elandsys.com>
Content-Type: multipart/alternative; boundary=047d7bd91a04e9bbab04e61ee240
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, spfbis-chairs@tools.ietf.org, Barry Leiba <barryleiba@computer.org>, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 17:24:03 -0000

--047d7bd91a04e9bbab04e61ee240
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Sep 11, 2013 at 5:04 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:

>
>
>> ------------------------------**------------------------------**
>> ----------
>> COMMENT:
>> ------------------------------**------------------------------**
>> ----------
>>
>> I have a bunch of editorial comments that I'd like you to consider.
>> They're all non-blocking, but I think they'll improve the document, and
>> I'll be happy to chat about them if you like.
>>
>> -- Section 2.5 --
>>
>>    Performing the authorization check other than using the MAIL FROM and
>>    client address at the time of the MAIL command during the SMTP
>>    transaction can cause problems, such as the following: (1) It might
>>    be difficult to accurately extract the required information from
>>    potentially deceptive headers; (2) legitimate email might fail
>>    because the sender's policy had since changed.
>>
>> I found that to be awkwardly worded and hard to understand.  Please
>> consider this rewrite:
>>
>> NEW
>>    The authorization check is performed during the SMTP transaction
>>    at the time of the MAIL command, and uses the MAIL FROM value and
>>    the client IP address.  Performing the check at later times or
>>    with other input can cause problems such as the following:
>>
>>    *  It might be difficult to accurately extract the required
>>       information from potentially deceptive headers.
>>
>>    *  Legitimate email might fail the authorization check because
>>       the sender's policy has since changed.
>> END
>>
>
Seems reasonable.


>
>> -- Section 2.6 --
>>
>> It would really read best if the subsections were worded to be parallel.
>> As it stands, subsections 1, 3, 4, 6, and 7 are worded as "result X means
>> Y", and subsections 2 and 5 are not.  Can you re-word 2 and 5 to be
>> parallel to the others?
>>
>
Seems reasonable.


>
>> Also, why are "neutral" and "fail" called "explicit statements", but
>> "pass", for example, is not?
>>
>
I agree, "pass" should be.


>
>> -- Section 3 --
>>
>>    Each SPF record is placed in the DNS tree at the owner name it
>>    pertains to, not a subdomain under it, such as is done with SRV
>>    records [RFC2782].
>>
>> This looks like it's saying that SRV records are placed in subdomains,
>> and I don't think that's what you mean.  Or is it?  In any case, it's not
>> clear (and I know this text is from the original).
>>
>> Maybe this (which also avoids the two different "it"s)?:
>>
>> NEW
>>    Each SPF record is placed in the DNS tree at the owner name it
>>    pertains to, not in a subdomain under the owner name.  This is
>>    similar to how SRV records [RFC2782] are done.
>> END
>>
>
Seems reasonable.


>
>>    The example in this section might be published via these lines in a
>>    domain zone file:
>>
>>       example.com. TXT "v=spf1 +mx a:colo.example.com/28 -all"
>>       smtp-out.example.com. TXT "v=spf1 a -all"
>>
>> What does "smtp-out" have to do with anything?  It's not otherwise used,
>> and it seems to contradict what you say about subdomains in the previous
>> paragraph.
>>
>
Hmm.  Someone else will have to comment on this one.


>
>> -- Section 4 --
>>
>>    This description is not an API (Application Program Interface)
>>    definition,
>>
>> Two total nits on this:
>> 1. You never use "API" other than here, so there's no need to define it,
>> and
>> 2. the usual expansion of "API" is application programMING interface.
>> I suggest, "This description is not an application programming interface
>> definition, [etc]."
>>
>
Seems reasonable.


>
>> -- 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 is discarded.
>>
>> Sure, and "v=spf1.0" doesn't match, and "v=spf11" doesn't match, and....
>> Why is it necessary or desirable to single out "v=spf10" here?
>>
>
I think "v=spf1.0" is actually the better (and perhaps intended) example,
meaning "don't just stuff the part after 'spf' through a number parser and
make sure 1 comes out".


>> -- Section 4.6.4 --
>>
>>    SPF implementations MUST limit the total number of mechanisms and
>>    modifiers ("terms") that cause any DNS query to 10 during SPF
>>    evaluation.  Specifically, the "include", "a", "mx", "ptr", and
>>    "exists" mechanisms as well as the "redirect" modifier count against
>>    this collective limit.  The "all", "ip4", and "ip6" mechanisms do not
>>    count against this limit.  If this number is exceeded during a check,
>>    a "permerror" MUST be returned.  The "exp" modifier does not count
>>    against this limit because the DNS lookup to fetch the explanation
>>    string occurs after the SPF record evaluation has been completed.
>>
>> When I read this, I start feeling like I'm being read the rules for
>> Fizzbin <http://en.wikipedia.org/wiki/**Fizzbin#Fizzbin<http://en.wikipedia.org/wiki/Fizzbin#Fizzbin>>.
>>  I would
>> appreciate it if this was re-worded so that there are two clear lists
>> here: the terms that are included in the "limit of 10", and the terms
>> that are not (and are, presumably, unlimited).  Perhaps something like
>> this:
>>
>> NEW
>>    Some mechanisms and modifiers (collectively, "terms") cause DNS
>>    queries at the time of evaluation, and some do not.  The following
>>    terms cause DNS queries: <list goes here>.  SPF implementations
>>    MUST limit the total number of those terms to 10 during SPF
>>    evaluation, to avoid unreasonable load on the DNS.  If this limit
>>    is exceeded, the implementation MUST return "permerror".  The other
>>    terms (<list goes here>) do not cause DNS queries at the time of
>>    SPF evaluation, and their use is not subject to this limit.
>> END
>>
>> If you think it's necessary (I don't):
>>
>> NEW+
>>    The other
>>    terms (<list goes here>) do not cause DNS queries at the time of
>>    SPF evaluation (the "exp" modifier causes a lookup at a later time),
>>    and their use is not subject to this limit.
>> END
>>
>
I like the new text, and prefer the second bit be included.


>
>> Then in the next two paragraphs, I think it would improve clarity to make
>> a change such as this:
>>
>> OLD
>>    When evaluating the "mx" mechanism, the number of "MX" resource
>>    records queried is included in the overall limit of 10 mechanisms/
>>    modifiers that cause DNS lookups described above.  The evaluation of
>>    each "MX" record MUST NOT result in querying more than 10 address
>>    records,
>> NEW
>>    When evaluating the "mx" mechanism, the number of "MX" resource
>>    records queried is included in the overall limit of 10 mechanisms/
>>    modifiers that cause DNS lookups described above.  In addition to
>>    that limit, the evaluation of each "MX" record MUST NOT result in
>>    querying more than 10 address records,
>> END
>>
>> (And similarly for the "ptr" paragraph.)  I know you say this in a
>> paragraph of its own ("These limits are per mechanism..."), but it's
>> helpful if people can understand things as they read them, and then to
>> emphasize it later... rather than having them scratch their heads for a
>> few paragraphs until they get to it.
>>
>>
+1 to that part too.


> -- Section 4.7 --
>>
>>    It is better to use either a "redirect" modifier or an "all"
>>    mechanism to explicitly terminate processing.  Although the latter
>>    has a default (specifically "?all"), it aids debugging efforts if it
>>    is explicitly provided.
>>
>> I'm not sure what "the latter has a default" is trying to say.  Do you
>> mean that "?all" is the default if you fall off the end, but you
>> shouldn't rely on that?  Or do you mean that if you say "all", then
>> "?all" is taken as the default (I would think "all" would mean "+all")?
>> Will you try re-wording this, please?
>>
>
The former ("?all" is implicit if you fall off the end).  Suggest:

It is better to use either a "redirect" modifier or an "all" mechanism to
explicitly terminate processing.  Although there is in effect a "?all"
implicit at the end of every record, it ads debigging efforts when it is
explicitly provided.



>
>> -- Section 5 --
>>
>> What does "(do not publish)" mean next to "ptr" in the sender mechanisms
>> list?  Ah; I see; it matches the "do not use" in Section 5.5.  You should
>> probably change this to "(do not use; see the note in Section 5.5)".
>>
>
Seems reasonable.


>
>> It would help, I think, to add to the end of the second paragraph, "The
>> basic mechanisms are as follows:", and to the end of the third paragraph,
>> "The designated sender mechanisms are as follows:".  Otherwise, there are
>> just these disembodied lists, and the reader has to infer those
>> introductions.
>>
>
Sure.


>
>> -- Section 5.1 --
>>
>>    Mechanisms after "all" will never be tested.  Mechanisms listed after
>>    "all" MUST be ignored.  Any "redirect" modifier (Section 6.1) MUST be
>>    ignored when there is an "all" mechanism in the record.
>>
>> This says that the redirect in the following record will be ignored:
>>
>>    v=spf1 redirect=_spf.example.com +all
>>
>> That's sufficiently odd that it should be called out explicitly, perhaps
>> by adding "regardless of the relative ordering of the terms" to the last
>> sentence in the quote.
>>
>
Yep.


>
>> -- Section 5.2 --
>>
>>    3.  The recursive evaluation returns either match, not match, or an
>>        error.  If it matches, then the appropriate result for the
>>        include: mechanism is used (e.g. include or +include produces a
>>        "pass" result and -include produces "fail").
>>
>>    4.  If there is no match, the parent check_host() resumes processing
>>        as per the table below, with the previous value of <domain>
>>        restored.
>>
>> A few things here:
>>
>> 1. Nit: "either" is for two things; for more than two, please remove the
>> word "either" (or replace it with "one of", but that seems awkward
>> here).
>>
>> 2. "If it matches" is not parallel to "returns match", and similarly for
>> "if there is no match".
>>
>> 3. You don't say what happens if the recursive evaluation returns an
>> error.  Unfortuately, "no match" and "not match" are sufficiently similar
>> to be confused.
>>
>> I suggest this:
>>
>> NEW
>>    3.  The recursive evaluation returns match, not match, or an
>>        error.
>>
>>    4.  If it returns match, then the appropriate result for the
>>        include: mechanism is used (e.g., include or +include produces
>>        a "pass" result and -include produces "fail").
>>
>>    5.  If it returns not match or an error, the parent check_host()
>>        resumes processing as per the table below, with the previous
>>        value of <domain> restored.
>> END
>>
>
+1.


>
>>    The "include" mechanism is intended for crossing administrative
>>    boundaries.  For example, if example.com and example.org were managed
>>    by the same entity, and if the permitted set of hosts for both
>>    domains was "mx:example.com", it would be possible for example.org to
>>    specify "include:example.com", but it would be preferable to specify
>>    "redirect=example.com" or even "mx:example.com".
>>
>> The text you eliminated here provided a buffer that's no longer there,
>> making the "For example," very odd.  You talk about crossing admin
>> boundaries and immediately follow it with an example that does NOT.  I
>> think it would be better to put a sentence in to restore that buffer --
>> perhaps, "When remaining within one administrative authority, "include"
>> is usually not the best choice."
>>
>
Sure.


>
>> -- Section 5.5 --
>>
>>    This mechanism SHOULD NOT be published.  See below for discussion.
>>
>> It's quite a bit below.  I suggest "See the note at the end of this
>> section for more information."  It might even be worth putting that note
>> into a Section 5.5.1, so it's highlighted and more easily cited.
>>
>
+1.


>
>> -- Section 6 --
>>
>>    Unrecognized modifiers MUST be ignored no matter where in a record,
>>    or how often.
>>
>> This is missing a couple of words:
>>
>> NEW
>>    Unrecognized modifiers MUST be ignored no matter where in a record
>>    they appear, or how often.
>> END
>>
>
+1.


>
>>    For clarity, any "redirect" modifier SHOULD appear as the very last
>>    term in a record.
>>
>> I don't usually recommend repeating things, but one thing from earlier
>> probably does bear repeating here:
>>
>> NEW
>>    For clarity, any "redirect" modifier SHOULD appear as the very last
>>    term in a record.  Any "redirect" modifier MUST be ignored if there
>>    is an "all" mechanism anywhere in the record.
>> END
>>
>
>
Seems reasonable.

-MSK

--047d7bd91a04e9bbab04e61ee240
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wed, Sep 11, 2013 at 5:04 AM, S Moonesamy <span dir=3D"=
ltr">&lt;<a href=3D"mailto:sm+ietf@elandsys.com" target=3D"_blank">sm+ietf@=
elandsys.com</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div class=
=3D"gmail_quote">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><br><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
------------------------------<u></u>------------------------------<u></u>-=
---------<br>
COMMENT:<br>
------------------------------<u></u>------------------------------<u></u>-=
---------<br>
<br>
I have a bunch of editorial comments that I&#39;d like you to consider.<br>
They&#39;re all non-blocking, but I think they&#39;ll improve the document,=
 and<br>
I&#39;ll be happy to chat about them if you like.<br>
<br>
-- Section 2.5 --<br>
<br>
=A0 =A0Performing the authorization check other than using the MAIL FROM an=
d<br>
=A0 =A0client address at the time of the MAIL command during the SMTP<br>
=A0 =A0transaction can cause problems, such as the following: (1) It might<=
br>
=A0 =A0be difficult to accurately extract the required information from<br>
=A0 =A0potentially deceptive headers; (2) legitimate email might fail<br>
=A0 =A0because the sender&#39;s policy had since changed.<br>
<br>
I found that to be awkwardly worded and hard to understand. =A0Please<br>
consider this rewrite:<br>
<br>
NEW<br>
=A0 =A0The authorization check is performed during the SMTP transaction<br>
=A0 =A0at the time of the MAIL command, and uses the MAIL FROM value and<br=
>
=A0 =A0the client IP address. =A0Performing the check at later times or<br>
=A0 =A0with other input can cause problems such as the following:<br>
<br>
=A0 =A0* =A0It might be difficult to accurately extract the required<br>
=A0 =A0 =A0 information from potentially deceptive headers.<br>
<br>
=A0 =A0* =A0Legitimate email might fail the authorization check because<br>
=A0 =A0 =A0 the sender&#39;s policy has since changed.<br>
END<br></blockquote></blockquote><div><br></div><div>Seems reasonable.<br>=
=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
-- Section 2.6 --<br>
<br>
It would really read best if the subsections were worded to be parallel.<br=
>
As it stands, subsections 1, 3, 4, 6, and 7 are worded as &quot;result X me=
ans<br>
Y&quot;, and subsections 2 and 5 are not. =A0Can you re-word 2 and 5 to be<=
br>
parallel to the others?<br></blockquote></blockquote><div><br></div><div>Se=
ems reasonable.<br>=A0<br></div><blockquote class=3D"gmail_quote" style=3D"=
margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote =
class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid=
;padding-left:1ex">

<br>
Also, why are &quot;neutral&quot; and &quot;fail&quot; called &quot;explici=
t statements&quot;, but<br>
&quot;pass&quot;, for example, is not?<br></blockquote></blockquote><div><b=
r></div><div>I agree, &quot;pass&quot; should be.<br>=A0<br></div><blockquo=
te class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc so=
lid;padding-left:1ex">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
<br>
-- Section 3 --<br>
<br>
=A0 =A0Each SPF record is placed in the DNS tree at the owner name it<br>
=A0 =A0pertains to, not a subdomain under it, such as is done with SRV<br>
=A0 =A0records [RFC2782].<br>
<br>
This looks like it&#39;s saying that SRV records are placed in subdomains,<=
br>
and I don&#39;t think that&#39;s what you mean. =A0Or is it? =A0In any case=
, it&#39;s not<br>
clear (and I know this text is from the original).<br>
<br>
Maybe this (which also avoids the two different &quot;it&quot;s)?:<br>
<br>
NEW<br>
=A0 =A0Each SPF record is placed in the DNS tree at the owner name it<br>
=A0 =A0pertains to, not in a subdomain under the owner name. =A0This is<br>
=A0 =A0similar to how SRV records [RFC2782] are done.<br>
END<br></blockquote></blockquote><div><br></div><div>Seems reasonable.<br>=
=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
=A0 =A0The example in this section might be published via these lines in a<=
br>
=A0 =A0domain zone file:<br>
<br>
=A0 =A0 =A0 <a href=3D"http://example.com" target=3D"_blank">example.com</a=
>. TXT &quot;v=3Dspf1 +mx a:<a href=3D"http://colo.example.com/28" target=
=3D"_blank">colo.example.com/28</a> -all&quot;<br>
=A0 =A0 =A0 <a href=3D"http://smtp-out.example.com" target=3D"_blank">smtp-=
out.example.com</a>. TXT &quot;v=3Dspf1 a -all&quot;<br>
<br>
What does &quot;smtp-out&quot; have to do with anything? =A0It&#39;s not ot=
herwise used,<br>
and it seems to contradict what you say about subdomains in the previous<br=
>
paragraph.<br></blockquote></blockquote><div><br></div><div>Hmm.=A0 Someone=
 else will have to comment on this one.<br>=A0<br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
<br>
-- Section 4 --<br>
<br>
=A0 =A0This description is not an API (Application Program Interface)<br>
=A0 =A0definition,<br>
<br>
Two total nits on this:<br>
1. You never use &quot;API&quot; other than here, so there&#39;s no need to=
 define it,<br>
and<br>
2. the usual expansion of &quot;API&quot; is application programMING interf=
ace.<br>
I suggest, &quot;This description is not an application programming interfa=
ce<br>
definition, [etc].&quot;<br></blockquote></blockquote><div><br></div><div>S=
eems reasonable.<br>=A0<br></div><blockquote class=3D"gmail_quote" style=3D=
"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex">

<br>
-- Section 4.5 --<br>
<br>
=A0 =A0Starting with the set of records that were returned by the lookup,<b=
r>
=A0 =A0discard records that do not begin with a version section of exactly<=
br>
=A0 =A0&quot;v=3Dspf1&quot;. =A0Note that the version section is terminated=
 either by an<br>
=A0 =A0SP character or the end of the record. =A0A record with a version<br=
>
=A0 =A0section of &quot;v=3Dspf10&quot; does not match and is discarded.<br=
>
<br>
Sure, and &quot;v=3Dspf1.0&quot; doesn&#39;t match, and &quot;v=3Dspf11&quo=
t; doesn&#39;t match, and....<br>
Why is it necessary or desirable to single out &quot;v=3Dspf10&quot; here?<=
br></blockquote></blockquote><div><br></div><div>I think &quot;v=3Dspf1.0&q=
uot; is actually the better (and perhaps intended) example, meaning &quot;d=
on&#39;t just stuff the part after &#39;spf&#39; through a number parser an=
d make sure 1 comes out&quot;.<br>
<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bord=
er-left:1px #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
-- Section 4.6.4 --<br>
<br>
=A0 =A0SPF implementations MUST limit the total number of mechanisms and<br=
>
=A0 =A0modifiers (&quot;terms&quot;) that cause any DNS query to 10 during =
SPF<br>
=A0 =A0evaluation. =A0Specifically, the &quot;include&quot;, &quot;a&quot;,=
 &quot;mx&quot;, &quot;ptr&quot;, and<br>
=A0 =A0&quot;exists&quot; mechanisms as well as the &quot;redirect&quot; mo=
difier count against<br>
=A0 =A0this collective limit. =A0The &quot;all&quot;, &quot;ip4&quot;, and =
&quot;ip6&quot; mechanisms do not<br>
=A0 =A0count against this limit. =A0If this number is exceeded during a che=
ck,<br>
=A0 =A0a &quot;permerror&quot; MUST be returned. =A0The &quot;exp&quot; mod=
ifier does not count<br>
=A0 =A0against this limit because the DNS lookup to fetch the explanation<b=
r>
=A0 =A0string occurs after the SPF record evaluation has been completed.<br=
>
<br>
When I read this, I start feeling like I&#39;m being read the rules for<br>
Fizzbin &lt;<a href=3D"http://en.wikipedia.org/wiki/Fizzbin#Fizzbin" target=
=3D"_blank">http://en.wikipedia.org/wiki/<u></u>Fizzbin#Fizzbin</a>&gt;. =
=A0I would<br>
appreciate it if this was re-worded so that there are two clear lists<br>
here: the terms that are included in the &quot;limit of 10&quot;, and the t=
erms<br>
that are not (and are, presumably, unlimited). =A0Perhaps something like<br=
>
this:<br>
<br>
NEW<br>
=A0 =A0Some mechanisms and modifiers (collectively, &quot;terms&quot;) caus=
e DNS<br>
=A0 =A0queries at the time of evaluation, and some do not. =A0The following=
<br>
=A0 =A0terms cause DNS queries: &lt;list goes here&gt;. =A0SPF implementati=
ons<br>
=A0 =A0MUST limit the total number of those terms to 10 during SPF<br>
=A0 =A0evaluation, to avoid unreasonable load on the DNS. =A0If this limit<=
br>
=A0 =A0is exceeded, the implementation MUST return &quot;permerror&quot;. =
=A0The other<br>
=A0 =A0terms (&lt;list goes here&gt;) do not cause DNS queries at the time =
of<br>
=A0 =A0SPF evaluation, and their use is not subject to this limit.<br>
END<br>
<br>
If you think it&#39;s necessary (I don&#39;t):<br>
<br>
NEW+<br>
=A0 =A0The other<br>
=A0 =A0terms (&lt;list goes here&gt;) do not cause DNS queries at the time =
of<br>
=A0 =A0SPF evaluation (the &quot;exp&quot; modifier causes a lookup at a la=
ter time),<br>
=A0 =A0and their use is not subject to this limit.<br>
END<br></blockquote></blockquote><div><br></div><div>I like the new text, a=
nd prefer the second bit be included.<br>=A0<br></div><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-=
left:1ex">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
<br>
Then in the next two paragraphs, I think it would improve clarity to make<b=
r>
a change such as this:<br>
<br>
OLD<br>
=A0 =A0When evaluating the &quot;mx&quot; mechanism, the number of &quot;MX=
&quot; resource<br>
=A0 =A0records queried is included in the overall limit of 10 mechanisms/<b=
r>
=A0 =A0modifiers that cause DNS lookups described above. =A0The evaluation =
of<br>
=A0 =A0each &quot;MX&quot; record MUST NOT result in querying more than 10 =
address<br>
=A0 =A0records,<br>
NEW<br>
=A0 =A0When evaluating the &quot;mx&quot; mechanism, the number of &quot;MX=
&quot; resource<br>
=A0 =A0records queried is included in the overall limit of 10 mechanisms/<b=
r>
=A0 =A0modifiers that cause DNS lookups described above. =A0In addition to<=
br>
=A0 =A0that limit, the evaluation of each &quot;MX&quot; record MUST NOT re=
sult in<br>
=A0 =A0querying more than 10 address records,<br>
END<br>
<br>
(And similarly for the &quot;ptr&quot; paragraph.) =A0I know you say this i=
n a<br>
paragraph of its own (&quot;These limits are per mechanism...&quot;), but i=
t&#39;s<br>
helpful if people can understand things as they read them, and then to<br>
emphasize it later... rather than having them scratch their heads for a<br>
few paragraphs until they get to it.<br>
<br></blockquote></blockquote><div><br></div><div>+1 to that part too.<br>=
=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

-- Section 4.7 --<br>
<br>
=A0 =A0It is better to use either a &quot;redirect&quot; modifier or an &qu=
ot;all&quot;<br>
=A0 =A0mechanism to explicitly terminate processing. =A0Although the latter=
<br>
=A0 =A0has a default (specifically &quot;?all&quot;), it aids debugging eff=
orts if it<br>
=A0 =A0is explicitly provided.<br>
<br>
I&#39;m not sure what &quot;the latter has a default&quot; is trying to say=
. =A0Do you<br>
mean that &quot;?all&quot; is the default if you fall off the end, but you<=
br>
shouldn&#39;t rely on that? =A0Or do you mean that if you say &quot;all&quo=
t;, then<br>
&quot;?all&quot; is taken as the default (I would think &quot;all&quot; wou=
ld mean &quot;+all&quot;)?<br>
Will you try re-wording this, please?<br></blockquote></blockquote><div><br=
></div><div>The former (&quot;?all&quot; is implicit if you fall off the en=
d).=A0 Suggest:<br><br>It is better to use either a &quot;redirect&quot; mo=
difier or an &quot;all&quot; mechanism to explicitly terminate processing.=
=A0 Although there is in effect a &quot;?all&quot; implicit at the end of e=
very record, it ads debigging efforts when it is explicitly provided.<br>
<br>=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_=
quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1=
ex">
<br>
-- Section 5 --<br>
<br>
What does &quot;(do not publish)&quot; mean next to &quot;ptr&quot; in the =
sender mechanisms<br>
list? =A0Ah; I see; it matches the &quot;do not use&quot; in Section 5.5. =
=A0You should<br>
probably change this to &quot;(do not use; see the note in Section 5.5)&quo=
t;.<br></blockquote></blockquote><div><br></div><div>Seems reasonable.<br>=
=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
<br>
It would help, I think, to add to the end of the second paragraph, &quot;Th=
e<br>
basic mechanisms are as follows:&quot;, and to the end of the third paragra=
ph,<br>
&quot;The designated sender mechanisms are as follows:&quot;. =A0Otherwise,=
 there are<br>
just these disembodied lists, and the reader has to infer those<br>
introductions.<br></blockquote></blockquote><div><br></div><div>Sure.<br>=
=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quot=
e" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
-- Section 5.1 --<br>
<br>
=A0 =A0Mechanisms after &quot;all&quot; will never be tested. =A0Mechanisms=
 listed after<br>
=A0 =A0&quot;all&quot; MUST be ignored. =A0Any &quot;redirect&quot; modifie=
r (Section 6.1) MUST be<br>
=A0 =A0ignored when there is an &quot;all&quot; mechanism in the record.<br=
>
<br>
This says that the redirect in the following record will be ignored:<br>
<br>
=A0 =A0v=3Dspf1 redirect=3D_<a href=3D"http://spf.example.com" target=3D"_b=
lank">spf.example.com</a> +all<br>
<br>
That&#39;s sufficiently odd that it should be called out explicitly, perhap=
s<br>
by adding &quot;regardless of the relative ordering of the terms&quot; to t=
he last<br>
sentence in the quote.<br></blockquote></blockquote><div><br></div><div>Yep=
.<br>=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class=3D"gmail=
_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:=
1ex">

<br>
-- Section 5.2 --<br>
<br>
=A0 =A03. =A0The recursive evaluation returns either match, not match, or a=
n<br>
=A0 =A0 =A0 =A0error. =A0If it matches, then the appropriate result for the=
<br>
=A0 =A0 =A0 =A0include: mechanism is used (e.g. include or +include produce=
s a<br>
=A0 =A0 =A0 =A0&quot;pass&quot; result and -include produces &quot;fail&quo=
t;).<br>
<br>
=A0 =A04. =A0If there is no match, the parent check_host() resumes processi=
ng<br>
=A0 =A0 =A0 =A0as per the table below, with the previous value of &lt;domai=
n&gt;<br>
=A0 =A0 =A0 =A0restored.<br>
<br>
A few things here:<br>
<br>
1. Nit: &quot;either&quot; is for two things; for more than two, please rem=
ove the<br>
word &quot;either&quot; (or replace it with &quot;one of&quot;, but that se=
ems awkward<br>
here).<br>
<br>
2. &quot;If it matches&quot; is not parallel to &quot;returns match&quot;, =
and similarly for<br>
&quot;if there is no match&quot;.<br>
<br>
3. You don&#39;t say what happens if the recursive evaluation returns an<br=
>
error. =A0Unfortuately, &quot;no match&quot; and &quot;not match&quot; are =
sufficiently similar<br>
to be confused.<br>
<br>
I suggest this:<br>
<br>
NEW<br>
=A0 =A03. =A0The recursive evaluation returns match, not match, or an<br>
=A0 =A0 =A0 =A0error.<br>
<br>
=A0 =A04. =A0If it returns match, then the appropriate result for the<br>
=A0 =A0 =A0 =A0include: mechanism is used (e.g., include or +include produc=
es<br>
=A0 =A0 =A0 =A0a &quot;pass&quot; result and -include produces &quot;fail&q=
uot;).<br>
<br>
=A0 =A05. =A0If it returns not match or an error, the parent check_host()<b=
r>
=A0 =A0 =A0 =A0resumes processing as per the table below, with the previous=
<br>
=A0 =A0 =A0 =A0value of &lt;domain&gt; restored.<br>
END<br></blockquote></blockquote><div><br>+1.<br>=A0<br></div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;=
padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
=A0 =A0The &quot;include&quot; mechanism is intended for crossing administr=
ative<br>
=A0 =A0boundaries. =A0For example, if <a href=3D"http://example.com" target=
=3D"_blank">example.com</a> and <a href=3D"http://example.org" target=3D"_b=
lank">example.org</a> were managed<br>
=A0 =A0by the same entity, and if the permitted set of hosts for both<br>
=A0 =A0domains was &quot;mx:<a href=3D"http://example.com" target=3D"_blank=
">example.com</a>&quot;, it would be possible for <a href=3D"http://example=
.org" target=3D"_blank">example.org</a> to<br>
=A0 =A0specify &quot;include:<a href=3D"http://example.com" target=3D"_blan=
k">example.com</a>&quot;, but it would be preferable to specify<br>
=A0 =A0&quot;redirect=3D<a href=3D"http://example.com" target=3D"_blank">ex=
ample.com</a>&quot; or even &quot;mx:<a href=3D"http://example.com" target=
=3D"_blank">example.com</a>&quot;.<br>
<br>
The text you eliminated here provided a buffer that&#39;s no longer there,<=
br>
making the &quot;For example,&quot; very odd. =A0You talk about crossing ad=
min<br>
boundaries and immediately follow it with an example that does NOT. =A0I<br=
>
think it would be better to put a sentence in to restore that buffer --<br>
perhaps, &quot;When remaining within one administrative authority, &quot;in=
clude&quot;<br>
is usually not the best choice.&quot;<br></blockquote></blockquote><div><br=
></div><div>Sure.<br>=A0<br></div><blockquote class=3D"gmail_quote" style=
=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc s=
olid;padding-left:1ex">

<br>
-- Section 5.5 --<br>
<br>
=A0 =A0This mechanism SHOULD NOT be published. =A0See below for discussion.=
<br>
<br>
It&#39;s quite a bit below. =A0I suggest &quot;See the note at the end of t=
his<br>
section for more information.&quot; =A0It might even be worth putting that =
note<br>
into a Section 5.5.1, so it&#39;s highlighted and more easily cited.<br></b=
lockquote></blockquote><div><br>+1.<br>=A0<br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-le=
ft:1ex">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
<br>
-- Section 6 --<br>
<br>
=A0 =A0Unrecognized modifiers MUST be ignored no matter where in a record,<=
br>
=A0 =A0or how often.<br>
<br>
This is missing a couple of words:<br>
<br>
NEW<br>
=A0 =A0Unrecognized modifiers MUST be ignored no matter where in a record<b=
r>
=A0 =A0they appear, or how often.<br>
END<br></blockquote></blockquote><div><br>+1.<br>=A0<br></div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;=
padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .=
8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
=A0 =A0For clarity, any &quot;redirect&quot; modifier SHOULD appear as the =
very last<br>
=A0 =A0term in a record.<br>
<br>
I don&#39;t usually recommend repeating things, but one thing from earlier<=
br>
probably does bear repeating here:<br>
<br>
NEW<br>
=A0 =A0For clarity, any &quot;redirect&quot; modifier SHOULD appear as the =
very last<br>
=A0 =A0term in a record. =A0Any &quot;redirect&quot; modifier MUST be ignor=
ed if there<br>
=A0 =A0is an &quot;all&quot; mechanism anywhere in the record.<br>
END<br>
</blockquote><br></blockquote><div><br></div><div>Seems reasonable.<br><br>=
-MSK <br></div></div></div></div>

--047d7bd91a04e9bbab04e61ee240--

From spf2@kitterman.com  Wed Sep 11 11:02:08 2013
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 F094621F9BC1 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 11:02:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sHgA7eqN5QAh for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 11:02:03 -0700 (PDT)
Received: from mailout03.controlledmail.com (mailout03.controlledmail.com [208.43.65.50]) by ietfa.amsl.com (Postfix) with ESMTP id E913021F84CD for <spfbis@ietf.org>; Wed, 11 Sep 2013 11:02:02 -0700 (PDT)
Received: from mailout03.controlledmail.com (localhost [127.0.0.1]) by mailout03.controlledmail.com (Postfix) with ESMTP id 44CF7D04089; Wed, 11 Sep 2013 14:01:58 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378922518; bh=+72vR6F7Y1wQi0fAs5GkxPh5JbzFNlT9ABx6YOa0JDs=; h=In-Reply-To:References:Subject:From:Date:To:From; b=NQ5I8+W7G0+x2GDGSCMwmraip6OYX7r+nEvP/QCYfwFrqGqWHE32NmYOnX+TO485R lEqPRkVsTkK03w0SkLpdG2gw29QiokNtzuOb2xZbSvWTWDEp29WpeuKCgRK2heXI7Y b1iVIVk7Z29PTGRUOlBapBs/cDQ4C0H5w48F28yI=
Received: from [IPV6:2600:1003:b00a:49d5:f229:bcc4:d245:10a] (unknown [IPv6:2600:1003:b00a:49d5:f229:bcc4:d245:10a]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mailout03.controlledmail.com (Postfix) with ESMTPSA id D9AFDD0401E;  Wed, 11 Sep 2013 14:01:57 -0400 (EDT)
User-Agent: K-9 Mail for Android
In-Reply-To: <CAL0qLwbFfC8tyLjBj+pFP-xHBOYCrwhkJsdjosPXmX-VoYHVKg@mail.gmail.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <10370218.OEr9JV8dgx@scott-latitude-e6320> <CAL0qLwaLkTE7_BmmxsOECOP0d3UKx3gsr535sDHr+2hMiqggDA@mail.gmail.com> <4509124.Paquit6mK7@scott-latitude-e6320> <CAL0qLwbFfC8tyLjBj+pFP-xHBOYCrwhkJsdjosPXmX-VoYHVKg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Scott Kitterman <spf2@kitterman.com>
Date: Wed, 11 Sep 2013 14:02:13 -0400
To: "spfbis@ietf.org" <spfbis@ietf.org>
Message-ID: <e0e09940-410a-4c30-aef7-9016c198bcec@email.android.com>
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 18:02:13 -0000

"Murray S. Kucherawy" <superuser@gmail.com> wrote:
>On Wed, Sep 11, 2013 at 9:54 AM, Scott Kitterman <spf2@kitterman.com>
>wrote:
>
>> > Drop one of those "and"s.  I don't care which one.
>>
>> Fixed.
>>
>
>The WG may disagree with the choice you made as to which one you
>removed.
>Be prepared to explain it.
>
>
>> > >    are unique and very, very unlikely to be repeated.  If a
>future
>> > >    update to a new SPF version that could not reuse existing SPF
>> records
>> > >    were to be developed, it ought to use the SPF RR type.  SPF's
>use of
>> > >    the TXT RR type for structured data should in no way be taken
>as
>> > >    precedent for future protocol designers.  Things have changed.
>> >
>> > What about "SPF's use of the TXT RR type located at the domain
>apex"?
>>  As I
>> > understand it, part of the complaint is the location of the record,
>not
>> > just its type.  The underscore mechanism used by DKIM, DMARC, ADSP,
>VBR,
>> > etc. seems to be gaining acceptance, or at least tolerance, because
>it
>> > avoids query collisions.
>> >
>> > Otherwise, looks okay to me.
>>
>> Given the discuss, I don't think so.  Here's the text of the DISCUSS:
>>
>> > Text needs to be created (probably for section 3.1) to better
>describe
>> > the reason this document settled on TXT RR only and therefore why
>no
>> > precedent is set for future use of the TXT RR.
>>
>> I think adding something "if you use TXT anyway, use this underscore
>> mechanism" isn't germane since it wasn't an option SPFbis could
>consider.
>>
>> I can add something along those lines, I guess, but I'm not sure it's
>> needed.
>>
>>
>My issue is that the second-last sentence there basically says "don't
>use
>TXT for structured data in the future" as a pretty absolute thing, but
>in
>fact the underscore "loophole" is currently something the community is
>tolerating.  It seems incorrect.  I know underscore wasn't an option
>for
>us, but as pedagogy for future protocol developers, it doesn't tell the
>whole story either.

I agree.  I wasn't trying to to the whole story.  I was trying to address the issue that was raised. 

In case Pete wants to include something about the "underscore loophole", would you suggest text please? 

Scott K

From sm@elandsys.com  Wed Sep 11 13:46:52 2013
Return-Path: <sm@elandsys.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 1CB3B21F9D8D for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 13:46:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.549
X-Spam-Level: 
X-Spam-Status: No, score=-102.549 tagged_above=-999 required=5 tests=[AWL=0.050, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5jzujg8KAjUQ for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 13:46:51 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 610B421F9D87 for <spfbis@ietf.org>; Wed, 11 Sep 2013 13:46:51 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.155.34]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8BKkWZC010785 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Sep 2013 13:46:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378932408; bh=j39Kx2wU9wXsV83ErIjzdcujxhrTOSf1KYQdw7P9DUQ=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=wS6o+et1cdREBf/PiSReVEfTOf4okt2Nt0QPsRUsjJ9EyqJU3ckG2caggHnx+95Bb feEZ2n0PhQU3ckY4gGJs2MDHNdigOsvWnV4yZbIzx12xPE/aB63oZvSV9GqYWlr8LY kuivwJybp5FBxF2F67TVu/55ptXlKAHcNbXmO5Cg=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378932408; i=@elandsys.com; bh=j39Kx2wU9wXsV83ErIjzdcujxhrTOSf1KYQdw7P9DUQ=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=QwgpnI63nchXq+9z2GU6KJjqvlSNV2LkgUuvFF+WR0AGBSiV8NMA9tPPYzh8GzsaO Ja6jgRYWrkdOlfH7Lju80l0Hj+GTiLv5dtXh3DB0NlpEPmXtfIZ9JvCyekj2uXM8nK JfvtR1OFpA9rZSxqDSKxrqFOTIQ0012hxukaIrrQ=
Message-Id: <6.2.5.6.2.20130911133726.0ddba740@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Wed, 11 Sep 2013 13:45:48 -0700
To: Scott Kitterman <scott@kitterman.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.g mail.com>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com> <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 20:46:52 -0000

Hi Scott,

For context, Barry's DISCUSS message is at 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04109.html  I 
went through the comments sent by Murray (Murray, thanks for doing that).

There was a comment from Barry:

>    The example in this section might be published via these lines in a
>    domain zone file:
>
>       example.com. TXT "v=spf1 +mx a:colo.example.com/28 -all"
>       smtp-out.example.com. TXT "v=spf1 a -all"
>
>What does "smtp-out" have to do with anything?  It's not otherwise used,
>and it seems to contradict what you say about subdomains in the previous
>paragraph.

Could you please respond to the above?

Regards,
S. Moonesamy (as document shepherd) 


From spf2@kitterman.com  Wed Sep 11 13:54:06 2013
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 7201621E80E7 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 13:54:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TC6fhVfqpgzH for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 13:54:02 -0700 (PDT)
Received: from mailout03.controlledmail.com (mailout03.controlledmail.com [208.43.65.50]) by ietfa.amsl.com (Postfix) with ESMTP id 5732321E80CE for <spfbis@ietf.org>; Wed, 11 Sep 2013 13:54:02 -0700 (PDT)
Received: from mailout03.controlledmail.com (localhost [127.0.0.1]) by mailout03.controlledmail.com (Postfix) with ESMTP id 93EF0D04089; Wed, 11 Sep 2013 16:54:01 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378932841; bh=TK1oZltYVirfZUr84ZCnU0q2YeY3X8NqxKMiKfH67d0=; h=In-Reply-To:References:Subject:From:Date:To:CC:From; b=D1+Sau5ccDpyHEEAAG0DbTomM/zRba2fc1U6IDVnmFMoadXFlUyFFhKveVMpFnfIA 7RznNwW7damXDwnKpLaaQP8iodDJgxmPN84ld2enMbAjgR6I74aGJgfpoWKWWETF0R AMkbsq8uI7u1BM8S5PgOyeEj0cdX24Nf2m7rsZOY=
Received: from [IPV6:2600:1003:b00a:49d5:d4e4:e314:555a:211d] (unknown [IPv6:2600:1003:b00a:49d5:d4e4:e314:555a:211d]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mailout03.controlledmail.com (Postfix) with ESMTPSA id 28A4BD04053;  Wed, 11 Sep 2013 16:54:00 -0400 (EDT)
User-Agent: K-9 Mail for Android
In-Reply-To: <6.2.5.6.2.20130911133726.0ddba740@elandnews.com>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com> <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.gmail.com> <6.2.5.6.2.20130911133726.0ddba740@elandnews.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Scott Kitterman <spf2@kitterman.com>
Date: Wed, 11 Sep 2013 16:54:23 -0400
To: S Moonesamy <sm+ietf@elandsys.com>
Message-ID: <465f7cf5-94a5-4354-8f84-cce01601f471@email.android.com>
X-AV-Checked: ClamAV using ClamSMTP
Cc: spfbis@ietf.org
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 20:54:06 -0000

Will do shortly. 

Scott K

S Moonesamy <sm+ietf@elandsys.com> wrote:
>Hi Scott,
>
>For context, Barry's DISCUSS message is at 
>http://www.ietf.org/mail-archive/web/spfbis/current/msg04109.html  I 
>went through the comments sent by Murray (Murray, thanks for doing
>that).
>
>There was a comment from Barry:
>
>>    The example in this section might be published via these lines in
>a
>>    domain zone file:
>>
>>       example.com. TXT "v=spf1 +mx a:colo.example.com/28 -all"
>>       smtp-out.example.com. TXT "v=spf1 a -all"
>>
>>What does "smtp-out" have to do with anything?  It's not otherwise
>used,
>>and it seems to contradict what you say about subdomains in the
>previous
>>paragraph.
>
>Could you please respond to the above?
>
>Regards,
>S. Moonesamy (as document shepherd) 


From sm@elandsys.com  Wed Sep 11 13:54:32 2013
Return-Path: <sm@elandsys.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 8433221E80E2 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 13:54:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.556
X-Spam-Level: 
X-Spam-Status: No, score=-102.556 tagged_above=-999 required=5 tests=[AWL=0.043, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sEqx5kAfprr0 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 13:54:31 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 3C67A21E80CE for <spfbis@ietf.org>; Wed, 11 Sep 2013 13:54:31 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.155.34]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8BKsIg8022733 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Sep 2013 13:54:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378932870; bh=n54e87Z8eGm/hFanvJJpfo6OzwZh2gG9XugG5by7oBk=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=pFB03juugOII3RHgv7PspSMgjX3K1QyEpe9OwH8iaFTZh6ltEdxZ5litq4QJ+/Jb7 kNS0aD9P5bPWXcluWM/nMXoEnX08W/n7HTDeFCq1BFNKIgm4IVtJs+kSQvFYklpKzs abuehNS2c9Gok8rivNOBZIslkcIabUVEavww8aXA=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378932870; i=@elandsys.com; bh=n54e87Z8eGm/hFanvJJpfo6OzwZh2gG9XugG5by7oBk=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=NYSPSpsgIv7Kykw34PlbBKr6YzW0APZZ304Mv7BiwvUjFLAIYbADUowUlfOvdhgyZ ez7lIlomXunuaILYWPaT0M+lViodL9guyY0vBNaD4ATqnEQwlbGA0CLXlTxkA0iTMZ zTaYWpptoBOGZzGnjI+N77GOk7nw3ER3cSJUWCI4=
Message-Id: <6.2.5.6.2.20130911134838.0c217ca8@resistor.net>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Wed, 11 Sep 2013 13:53:28 -0700
To: Scott Kitterman <scott@kitterman.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <5230A523.20504@isdg.net>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com> <5230A523.20504@isdg.net>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Wed, 11 Sep 2013 20:54:32 -0000

Hi Scott,

I am copying the parts of the SECDIR review to which there hasn't 
been any response:

Issue 1:

>1.1.3.  MAIL FROM Definition
>
>I found this section completely opaque and very confusing. It should 
>not be necessary to hunt through other specs to find a definition. 
>Particularly since the referenced specs do not give an explicit 
>definition for the term as used and the references point to the 
>whole spec rather than a particular section.

Issue 2:

>8.7.  Permerror
>
>"This signals an error condition that definitely requires operator 
>intervention to be resolved."
>
>I cannot imagine a circumstance which definitely requires a human to 
>be involved in mail delivery.

Issue 3:

>11.2.  SPF-Authorized Email May Contain Other False Identities
>
>    Do not construe the "MAIL FROM" and "HELO" identity authorizations to
>    provide more assurance than they do.
>
>Document has quasi normative language that should be worded as 
>statements of fact rather than as direction.

Could you please comment about the three issues?

Thanks,
S. Moonesamy (as document shepherd) 


From superuser@gmail.com  Wed Sep 11 14:26:30 2013
Return-Path: <superuser@gmail.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 3F92611E821D for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 14:26:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.592
X-Spam-Level: 
X-Spam-Status: No, score=-2.592 tagged_above=-999 required=5 tests=[AWL=0.007,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kNIM8FrvpqXo for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 14:26:29 -0700 (PDT)
Received: from mail-pd0-x229.google.com (mail-pd0-x229.google.com [IPv6:2607:f8b0:400e:c02::229]) by ietfa.amsl.com (Postfix) with ESMTP id C22F211E8197 for <spfbis@ietf.org>; Wed, 11 Sep 2013 14:26:28 -0700 (PDT)
Received: by mail-pd0-f169.google.com with SMTP id r10so9863049pdi.28 for <spfbis@ietf.org>; Wed, 11 Sep 2013 14:26:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=E4xl+/QQqpvIv8o7EVxSv5kq+u3VCjSxA5OgQHjSK74=; b=OgfFUT1oPfN4hfIeEPj72NFFmKUcSlCmnRjWmixvinydhcvkboyoUXjkiglOi8Dk9e aV69dg5oKvVmtG46dji4dy4IOYBMgXghSyv6yYRsvybhC7QT7uuAQvLtrooxr6E5xC+3 u27DTe7xfyWotUFmApyJ2wF1fe+WDl0fvOJTjG/WcId3B+6IP8fM5h1CX3/xdtyNSf+N ggfV04M7Tj6NE9ZekTGwVfBROce5Fy/AMJYVjqGkY6RZmE1D0p9bC9o/pOlyeqCxn6Op McUYt3c6NrIn9o5rO2BoQgvgEKi+lg6Aosj5/a/5KrQkXW3J7G8baOxzYDGn7lbDnBR6 ug/g==
MIME-Version: 1.0
X-Received: by 10.68.255.69 with SMTP id ao5mr4124713pbd.66.1378934788459; Wed, 11 Sep 2013 14:26:28 -0700 (PDT)
Received: by 10.67.5.225 with HTTP; Wed, 11 Sep 2013 14:26:28 -0700 (PDT)
In-Reply-To: <e0e09940-410a-4c30-aef7-9016c198bcec@email.android.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <10370218.OEr9JV8dgx@scott-latitude-e6320> <CAL0qLwaLkTE7_BmmxsOECOP0d3UKx3gsr535sDHr+2hMiqggDA@mail.gmail.com> <4509124.Paquit6mK7@scott-latitude-e6320> <CAL0qLwbFfC8tyLjBj+pFP-xHBOYCrwhkJsdjosPXmX-VoYHVKg@mail.gmail.com> <e0e09940-410a-4c30-aef7-9016c198bcec@email.android.com>
Date: Wed, 11 Sep 2013 14:26:28 -0700
Message-ID: <CAL0qLwZq2y5nzv+1=XZMJz08mu3NvbsRF8YvWVv7bOKksyahkg@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: Scott Kitterman <spf2@kitterman.com>
Content-Type: multipart/alternative; boundary=047d7b5d60223c18f104e622466f
Cc: "spfbis@ietf.org" <spfbis@ietf.org>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 21:26:30 -0000

--047d7b5d60223c18f104e622466f
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Sep 11, 2013 at 11:02 AM, Scott Kitterman <spf2@kitterman.com>wrote:

>
> I agree.  I wasn't trying to to the whole story.  I was trying to address
> the issue that was raised.
>
> In case Pete wants to include something about the "underscore loophole",
> would you suggest text please?
>
>
 Nevermind, Pete talked me out of it.  I withdraw the suggestion.

-MSK

--047d7b5d60223c18f104e622466f
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wed, Sep 11, 2013 at 11:02 AM, Scott Kitterman <span di=
r=3D"ltr">&lt;<a href=3D"mailto:spf2@kitterman.com" target=3D"_blank">spf2@=
kitterman.com</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div clas=
s=3D"gmail_quote">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div class=3D"HOEnZb"><div class=3D"h5"><br>
</div></div>I agree. =A0I wasn&#39;t trying to to the whole story. =A0I was=
 trying to address the issue that was raised.<br>
<br>
In case Pete wants to include something about the &quot;underscore loophole=
&quot;, would you suggest text please?<br>
<div class=3D"HOEnZb"><div class=3D"h5"><br></div></div></blockquote><div><=
br></div><div>=A0Nevermind, Pete talked me out of it.=A0 I withdraw the sug=
gestion.<br><br>-MSK<br></div></div></div></div>

--047d7b5d60223c18f104e622466f--

From scott@kitterman.com  Wed Sep 11 14:38:36 2013
Return-Path: <scott@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 BB42811E81D6 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 14:38:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id d3Nf48EpZJbe for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 14:38:32 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id A9E4321E80A9 for <spfbis@ietf.org>; Wed, 11 Sep 2013 14:38:31 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id A99B520E40EA; Wed, 11 Sep 2013 17:38:29 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378935509; bh=6jaMV6+rDTmc5E1c0jRGMFSWSQQgdAiXXZ62+++eRWg=; h=From:To:Subject:Date:In-Reply-To:References:From; b=Nh0DK8j7fHl8ayZ47u6SGNFPW3GV7pQYmM+NZxUffcXtmA5hrSuYJ2qJfJ/0TwqcF DjcNseR7WTXt8OPgvWeJ+l3Z3NNRJ4+6Q5VI0+35AaxyRmPDaANFCOg8OrblfEBkvW LIsX4o/8jf4vpNu2ehWaHNxDD3G8N5yGtB1/wHsw=
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 8AC1720E40D2;  Wed, 11 Sep 2013 17:38:29 -0400 (EDT)
From: Scott Kitterman <scott@kitterman.com>
To: spfbis@ietf.org
Date: Wed, 11 Sep 2013 17:38:27 -0400
Message-ID: <1409783.xNJeGdWPul@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.gmail.com>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com> <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.gmail.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-AV-Checked: ClamAV using ClamSMTP
X-Mailman-Approved-At: Wed, 11 Sep 2013 14:41:40 -0700
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 21:38:36 -0000

On Wednesday, September 11, 2013 10:23:57 Murray S. Kucherawy wrote:
> On Wed, Sep 11, 2013 at 5:04 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:
> >> ------------------------------**------------------------------**
> >> ----------
> >> COMMENT:
> >> ------------------------------**------------------------------**
> >> ----------
> >> 
> >> I have a bunch of editorial comments that I'd like you to consider.
> >> They're all non-blocking, but I think they'll improve the document, and
> >> I'll be happy to chat about them if you like.
> >> 
> >> -- Section 2.5 --
> >> 
> >>    Performing the authorization check other than using the MAIL FROM and
> >>    client address at the time of the MAIL command during the SMTP
> >>    transaction can cause problems, such as the following: (1) It might
> >>    be difficult to accurately extract the required information from
> >>    potentially deceptive headers; (2) legitimate email might fail
> >>    because the sender's policy had since changed.
> >> 
> >> I found that to be awkwardly worded and hard to understand.  Please
> >> consider this rewrite:
> >> 
> >> NEW
> >> 
> >>    The authorization check is performed during the SMTP transaction
> >>    at the time of the MAIL command, and uses the MAIL FROM value and
> >>    the client IP address.  Performing the check at later times or
> >>    with other input can cause problems such as the following:
> >>    
> >>    *  It might be difficult to accurately extract the required
> >>    
> >>       information from potentially deceptive headers.
> >>    
> >>    *  Legitimate email might fail the authorization check because
> >>    
> >>       the sender's policy has since changed.
> >> 
> >> END
> 
> Seems reasonable.

Agreed.

> >> -- Section 2.6 --
> >> 
> >> It would really read best if the subsections were worded to be parallel.
> >> As it stands, subsections 1, 3, 4, 6, and 7 are worded as "result X means
> >> Y", and subsections 2 and 5 are not.  Can you re-word 2 and 5 to be
> >> parallel to the others?
> 
> Seems reasonable.

Agreed.

> >> Also, why are "neutral" and "fail" called "explicit statements", but
> >> "pass", for example, is not?
> 
> I agree, "pass" should be.

Yep.

> >> -- Section 3 --
> >> 
> >>    Each SPF record is placed in the DNS tree at the owner name it
> >>    pertains to, not a subdomain under it, such as is done with SRV
> >>    records [RFC2782].
> >> 
> >> This looks like it's saying that SRV records are placed in subdomains,
> >> and I don't think that's what you mean.  Or is it?  In any case, it's not
> >> clear (and I know this text is from the original).
> >> 
> >> Maybe this (which also avoids the two different "it"s)?:
> >> 
> >> NEW
> >> 
> >>    Each SPF record is placed in the DNS tree at the owner name it
> >>    pertains to, not in a subdomain under the owner name.  This is
> >>    similar to how SRV records [RFC2782] are done.
> >> 
> >> END
> 
> Seems reasonable.

Agreed.

> >>    The example in this section might be published via these lines in a
> >>    domain zone file:
> >>       example.com. TXT "v=spf1 +mx a:colo.example.com/28 -all"
> >>       smtp-out.example.com. TXT "v=spf1 a -all"
> >> 
> >> What does "smtp-out" have to do with anything?  It's not otherwise used,
> >> and it seems to contradict what you say about subdomains in the previous
> >> paragraph.
> 
> Hmm.  Someone else will have to comment on this one.
 
Those are just two examples, but the preceding text is poorly worded (I 
checked and it's no better in RFC 4408).  How about this instead, to clarify:

   The example in this section (plus an additional SPF record for
   smtp-out.example.com) might be published via these lines in a
   domain zone file:

      example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"
      smtp-out.example.com. TXT "v=spf1 a -all"


> >> -- Section 4 --
> >> 
> >>    This description is not an API (Application Program Interface)
> >>    definition,
> >> 
> >> Two total nits on this:
> >> 1. You never use "API" other than here, so there's no need to define it,
> >> and
> >> 2. the usual expansion of "API" is application programMING interface.
> >> I suggest, "This description is not an application programming interface
> >> definition, [etc]."
> 
> Seems reasonable.

Agreed.

> >> -- 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 is discarded.
> >> 
> >> Sure, and "v=spf1.0" doesn't match, and "v=spf11" doesn't match, and....
> >> Why is it necessary or desirable to single out "v=spf10" here?
> 
> I think "v=spf1.0" is actually the better (and perhaps intended) example,
> meaning "don't just stuff the part after 'spf' through a number parser and
> make sure 1 comes out".

The intent here is to show that you have to look at least one character past 
"v=spf1" to know if it's an SPF record or not.  It's an example.  As such, it 
doesn't matter much wrt the point if it's "v=spf10", "v=spf1.0", or or 
"v=spf1hatespf".  None of those start SPF records.  What's there is unchanged 
from RFC 4408.  I don't seem much of a point in changing it, but if others 
think 1.0 is better than 10, I don't mind.

> >> -- Section 4.6.4 --
> >> 
> >>    SPF implementations MUST limit the total number of mechanisms and
> >>    modifiers ("terms") that cause any DNS query to 10 during SPF
> >>    evaluation.  Specifically, the "include", "a", "mx", "ptr", and
> >>    "exists" mechanisms as well as the "redirect" modifier count against
> >>    this collective limit.  The "all", "ip4", and "ip6" mechanisms do not
> >>    count against this limit.  If this number is exceeded during a check,
> >>    a "permerror" MUST be returned.  The "exp" modifier does not count
> >>    against this limit because the DNS lookup to fetch the explanation
> >>    string occurs after the SPF record evaluation has been completed.
> >> 
> >> When I read this, I start feeling like I'm being read the rules for
> >> Fizzbin
> >> <http://en.wikipedia.org/wiki/**Fizzbin#Fizzbin<http://en.wikipedia.org/
> >> wiki/Fizzbin#Fizzbin>>.>> 
> >>  I would
> >> 
> >> appreciate it if this was re-worded so that there are two clear lists
> >> here: the terms that are included in the "limit of 10", and the terms
> >> that are not (and are, presumably, unlimited).  Perhaps something like
> >> this:
> >> 
> >> NEW
> >> 
> >>    Some mechanisms and modifiers (collectively, "terms") cause DNS
> >>    queries at the time of evaluation, and some do not.  The following
> >>    terms cause DNS queries: <list goes here>.  SPF implementations
> >>    MUST limit the total number of those terms to 10 during SPF
> >>    evaluation, to avoid unreasonable load on the DNS.  If this limit
> >>    is exceeded, the implementation MUST return "permerror".  The other
> >>    terms (<list goes here>) do not cause DNS queries at the time of
> >>    SPF evaluation, and their use is not subject to this limit.
> >> 
> >> END
> >> 
> >> If you think it's necessary (I don't):
> >> 
> >> NEW+
> >> 
> >>    The other
> >>    terms (<list goes here>) do not cause DNS queries at the time of
> >>    SPF evaluation (the "exp" modifier causes a lookup at a later time),
> >>    and their use is not subject to this limit.
> >> 
> >> END
> 
> I like the new text, and prefer the second bit be included.

If we change, and I think that's reasonable, the second bit should definitely 
be included.  "exp" not counting in the 10 has confused people and we should 
be explicit about it.

> >> Then in the next two paragraphs, I think it would improve clarity to make
> >> a change such as this:
> >> 
> >> OLD
> >> 
> >>    When evaluating the "mx" mechanism, the number of "MX" resource
> >>    records queried is included in the overall limit of 10 mechanisms/
> >>    modifiers that cause DNS lookups described above.  The evaluation of
> >>    each "MX" record MUST NOT result in querying more than 10 address
> >>    records,
> >> 
> >> NEW
> >> 
> >>    When evaluating the "mx" mechanism, the number of "MX" resource
> >>    records queried is included in the overall limit of 10 mechanisms/
> >>    modifiers that cause DNS lookups described above.  In addition to
> >>    that limit, the evaluation of each "MX" record MUST NOT result in
> >>    querying more than 10 address records,
> >> 
> >> END
> >> 
> >> (And similarly for the "ptr" paragraph.)  I know you say this in a
> >> paragraph of its own ("These limits are per mechanism..."), but it's
> >> helpful if people can understand things as they read them, and then to
> >> emphasize it later... rather than having them scratch their heads for a
> >> few paragraphs until they get to it.
> 
> +1 to that part too.

Seems reasonable.

> > -- Section 4.7 --
> > 
> >>    It is better to use either a "redirect" modifier or an "all"
> >>    mechanism to explicitly terminate processing.  Although the latter
> >>    has a default (specifically "?all"), it aids debugging efforts if it
> >>    is explicitly provided.
> >> 
> >> I'm not sure what "the latter has a default" is trying to say.  Do you
> >> mean that "?all" is the default if you fall off the end, but you
> >> shouldn't rely on that?  Or do you mean that if you say "all", then
> >> "?all" is taken as the default (I would think "all" would mean "+all")?
> >> Will you try re-wording this, please?
> 
> The former ("?all" is implicit if you fall off the end).  Suggest:
> 
> It is better to use either a "redirect" modifier or an "all" mechanism to
> explicitly terminate processing.  Although there is in effect a "?all"
> implicit at the end of every record, it ads debigging efforts when it is
> explicitly provided.

How about:

   It is better to use either a "redirect" modifier or an "all" mechanism to
   explicitly terminate processing.  Although there is an implicit "?all" at
   the end of every record that is not explicitly terminated, it aids
  debugging efforts when it is explicitly provided.

> >> -- Section 5 --
> >> 
> >> What does "(do not publish)" mean next to "ptr" in the sender mechanisms
> >> list?  Ah; I see; it matches the "do not use" in Section 5.5.  You should
> >> probably change this to "(do not use; see the note in Section 5.5)".
> 
> Seems reasonable.

OK.

> >> It would help, I think, to add to the end of the second paragraph, "The
> >> basic mechanisms are as follows:", and to the end of the third paragraph,
> >> "The designated sender mechanisms are as follows:".  Otherwise, there are
> >> just these disembodied lists, and the reader has to infer those
> >> introductions.
> 
> Sure.

Agreed.

> >> -- Section 5.1 --
> >> 
> >>    Mechanisms after "all" will never be tested.  Mechanisms listed after
> >>    "all" MUST be ignored.  Any "redirect" modifier (Section 6.1) MUST be
> >>    ignored when there is an "all" mechanism in the record.
> >> 
> >> This says that the redirect in the following record will be ignored:
> >>    v=spf1 redirect=_spf.example.com +all
> >> 
> >> That's sufficiently odd that it should be called out explicitly, perhaps
> >> by adding "regardless of the relative ordering of the terms" to the last
> >> sentence in the quote.
> 
> Yep.

OK.

> >> -- Section 5.2 --
> >> 
> >>    3.  The recursive evaluation returns either match, not match, or an
> >>        error.  If it matches, then the appropriate result for the
> >>        include: mechanism is used (e.g. include or +include produces a
> >>        "pass" result and -include produces "fail").
> >>    
> >>    4.  If there is no match, the parent check_host() resumes processing
> >>        as per the table below, with the previous value of <domain>
> >>        restored.
> >> 
> >> A few things here:
> >> 
> >> 1. Nit: "either" is for two things; for more than two, please remove the
> >> word "either" (or replace it with "one of", but that seems awkward
> >> here).
> >> 
> >> 2. "If it matches" is not parallel to "returns match", and similarly for
> >> "if there is no match".
> >> 
> >> 3. You don't say what happens if the recursive evaluation returns an
> >> error.  Unfortuately, "no match" and "not match" are sufficiently similar
> >> to be confused.
> >> 
> >> I suggest this:
> >> 
> >> NEW
> >> 
> >>    3.  The recursive evaluation returns match, not match, or an
> >>        error.
> >>    
> >>    4.  If it returns match, then the appropriate result for the
> >>        include: mechanism is used (e.g., include or +include produces
> >>        a "pass" result and -include produces "fail").
> >>    
> >>    5.  If it returns not match or an error, the parent check_host()
> >>        resumes processing as per the table below, with the previous
> >>        value of <domain> restored.
> >> 
> >> END
> 
> +1.

I think this is fine.

> >>    The "include" mechanism is intended for crossing administrative
> >>    boundaries.  For example, if example.com and example.org were managed
> >>    by the same entity, and if the permitted set of hosts for both
> >>    domains was "mx:example.com", it would be possible for example.org to
> >>    specify "include:example.com", but it would be preferable to specify
> >>    "redirect=example.com" or even "mx:example.com".
> >> 
> >> The text you eliminated here provided a buffer that's no longer there,
> >> making the "For example," very odd.  You talk about crossing admin
> >> boundaries and immediately follow it with an example that does NOT.  I
> >> think it would be better to put a sentence in to restore that buffer --
> >> perhaps, "When remaining within one administrative authority, "include"
> >> is usually not the best choice."
> 
> Sure.

Agreed.

> >> -- Section 5.5 --
> >> 
> >>    This mechanism SHOULD NOT be published.  See below for discussion.
> >> 
> >> It's quite a bit below.  I suggest "See the note at the end of this
> >> section for more information."  It might even be worth putting that note
> >> into a Section 5.5.1, so it's highlighted and more easily cited.
> 
> +1.

OK.  Someone let me know which way I should do it.  I'm OK with either.

> >> -- Section 6 --
> >> 
> >>    Unrecognized modifiers MUST be ignored no matter where in a record,
> >>    or how often.
> >> 
> >> This is missing a couple of words:
> >> 
> >> NEW
> >> 
> >>    Unrecognized modifiers MUST be ignored no matter where in a record
> >>    they appear, or how often.
> >> 
> >> END
> 
> +1.

OK.

> >>    For clarity, any "redirect" modifier SHOULD appear as the very last
> >>    term in a record.
> >> 
> >> I don't usually recommend repeating things, but one thing from earlier
> >> probably does bear repeating here:
> >> 
> >> NEW
> >> 
> >>    For clarity, any "redirect" modifier SHOULD appear as the very last
> >>    term in a record.  Any "redirect" modifier MUST be ignored if there
> >>    is an "all" mechanism anywhere in the record.
> >> 
> >> END
> 
> Seems reasonable.

OK.

Thanks for the detailed review and msk's comments on the comments.

Scott K

From sm@elandsys.com  Wed Sep 11 14:52:04 2013
Return-Path: <sm@elandsys.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 2C79011E8106; Wed, 11 Sep 2013 14:52:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.562
X-Spam-Level: 
X-Spam-Status: No, score=-102.562 tagged_above=-999 required=5 tests=[AWL=0.038, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uMqaVAARfdd3; Wed, 11 Sep 2013 14:52:02 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id EDD1621F9A44; Wed, 11 Sep 2013 14:52:01 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.155.34]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8BLpUoq012270 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Sep 2013 14:51:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378936305; bh=rnFmKwzOSAUZOMxqWaq/0ptnnmutlZZ4kOEJZKsZh2c=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=2ldakebpgacxN9PxAKEP5NlxN53rCOC0sUUtlp3kbJEymEDk8IlbOAq1gefYMcB3Z cE/zKOeAAqqQ3n3DaJV7Q+mIS/P/TBIPqski0se5lrdH/P28B7uZG5TFRl86Pcj/2s qLCCimEoQBgrDY7fpcVjCAmmGDikTbpGFqn1cx6A=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378936305; i=@elandsys.com; bh=rnFmKwzOSAUZOMxqWaq/0ptnnmutlZZ4kOEJZKsZh2c=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=NiUmlBfloRo2tTU5o9qhrKYRZ0++N+oFWHRzVNd/DRoZnAgc0kOY4k6p1E5ISBjXH mrLO6DDrgbZN/s/RA6N5oYDlmNHUFLf+f7VSZVxxrEs+bQfQfiZ6lA78ipmJRLzOWC YcKKnwl0sWxf4eFlnFmoIZ5Uwg6/bhy6Mu9eW8XE=
Message-Id: <6.2.5.6.2.20130911144430.0c3f7f78@resistor.net>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Wed, 11 Sep 2013 14:51:14 -0700
To: Barry Leiba <barryleiba@computer.org>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <1409783.xNJeGdWPul@scott-latitude-e6320>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com> <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.gmail.com> <1409783.xNJeGdWPul@scott-latitude-e6320>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 21:52:04 -0000

Hi Barry,

Scott and Murray are okay with the text you suggested to address the 
DISCUSS ( http://www.ietf.org/mail-archive/web/spfbis/current/msg04114.html ).

The SPFBIS WG seems okay with most of the text you suggested as 
COMMENT.  There are some comments from Scott (see below) for the rest.

Regards,
S. Moonesamy

At 14:38 11-09-2013, Scott Kitterman wrote:
>On Wednesday, September 11, 2013 10:23:57 Murray S. Kucherawy wrote:
> > On Wed, Sep 11, 2013 at 5:04 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:
> > >> ------------------------------**------------------------------**
> > >> ----------
> > >> COMMENT:
> > >> ------------------------------**------------------------------**
> > >> ----------
> > >>
> > >> I have a bunch of editorial comments that I'd like you to consider.
> > >> They're all non-blocking, but I think they'll improve the document, and
> > >> I'll be happy to chat about them if you like.
> > >>
> > >> -- Section 2.5 --
> > >>
> > >>    Performing the authorization check other than using the MAIL FROM and
> > >>    client address at the time of the MAIL command during the SMTP
> > >>    transaction can cause problems, such as the following: (1) It might
> > >>    be difficult to accurately extract the required information from
> > >>    potentially deceptive headers; (2) legitimate email might fail
> > >>    because the sender's policy had since changed.
> > >>
> > >> I found that to be awkwardly worded and hard to understand.  Please
> > >> consider this rewrite:
> > >>
> > >> NEW
> > >>
> > >>    The authorization check is performed during the SMTP transaction
> > >>    at the time of the MAIL command, and uses the MAIL FROM value and
> > >>    the client IP address.  Performing the check at later times or
> > >>    with other input can cause problems such as the following:
> > >>
> > >>    *  It might be difficult to accurately extract the required
> > >>
> > >>       information from potentially deceptive headers.
> > >>
> > >>    *  Legitimate email might fail the authorization check because
> > >>
> > >>       the sender's policy has since changed.
> > >>
> > >> END
> >
> > Seems reasonable.
>
>Agreed.
>
> > >> -- Section 2.6 --
> > >>
> > >> It would really read best if the subsections were worded to be parallel.
> > >> As it stands, subsections 1, 3, 4, 6, and 7 are worded as 
> "result X means
> > >> Y", and subsections 2 and 5 are not.  Can you re-word 2 and 5 to be
> > >> parallel to the others?
> >
> > Seems reasonable.
>
>Agreed.
>
> > >> Also, why are "neutral" and "fail" called "explicit statements", but
> > >> "pass", for example, is not?
> >
> > I agree, "pass" should be.
>
>Yep.
>
> > >> -- Section 3 --
> > >>
> > >>    Each SPF record is placed in the DNS tree at the owner name it
> > >>    pertains to, not a subdomain under it, such as is done with SRV
> > >>    records [RFC2782].
> > >>
> > >> This looks like it's saying that SRV records are placed in subdomains,
> > >> and I don't think that's what you mean.  Or is it?  In any 
> case, it's not
> > >> clear (and I know this text is from the original).
> > >>
> > >> Maybe this (which also avoids the two different "it"s)?:
> > >>
> > >> NEW
> > >>
> > >>    Each SPF record is placed in the DNS tree at the owner name it
> > >>    pertains to, not in a subdomain under the owner name.  This is
> > >>    similar to how SRV records [RFC2782] are done.
> > >>
> > >> END
> >
> > Seems reasonable.
>
>Agreed.
>
> > >>    The example in this section might be published via these lines in a
> > >>    domain zone file:
> > >>       example.com. TXT "v=spf1 +mx a:colo.example.com/28 -all"
> > >>       smtp-out.example.com. TXT "v=spf1 a -all"
> > >>
> > >> What does "smtp-out" have to do with anything?  It's not otherwise used,
> > >> and it seems to contradict what you say about subdomains in the previous
> > >> paragraph.
> >
> > Hmm.  Someone else will have to comment on this one.
>
>Those are just two examples, but the preceding text is poorly worded (I
>checked and it's no better in RFC 4408).  How about this instead, to clarify:
>
>    The example in this section (plus an additional SPF record for
>    smtp-out.example.com) might be published via these lines in a
>    domain zone file:
>
>       example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"
>       smtp-out.example.com. TXT "v=spf1 a -all"
>
>
> > >> -- Section 4 --
> > >>
> > >>    This description is not an API (Application Program Interface)
> > >>    definition,
> > >>
> > >> Two total nits on this:
> > >> 1. You never use "API" other than here, so there's no need to define it,
> > >> and
> > >> 2. the usual expansion of "API" is application programMING interface.
> > >> I suggest, "This description is not an application programming interface
> > >> definition, [etc]."
> >
> > Seems reasonable.
>
>Agreed.
>
> > >> -- 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 is discarded.
> > >>
> > >> Sure, and "v=spf1.0" doesn't match, and "v=spf11" doesn't match, and....
> > >> Why is it necessary or desirable to single out "v=spf10" here?
> >
> > I think "v=spf1.0" is actually the better (and perhaps intended) example,
> > meaning "don't just stuff the part after 'spf' through a number parser and
> > make sure 1 comes out".
>
>The intent here is to show that you have to look at least one character past
>"v=spf1" to know if it's an SPF record or not.  It's an example.  As such, it
>doesn't matter much wrt the point if it's "v=spf10", "v=spf1.0", or or
>"v=spf1hatespf".  None of those start SPF records.  What's there is unchanged
>from RFC 4408.  I don't seem much of a point in changing it, but if others
>think 1.0 is better than 10, I don't mind.
>
> > >> -- Section 4.6.4 --
> > >>
> > >>    SPF implementations MUST limit the total number of mechanisms and
> > >>    modifiers ("terms") that cause any DNS query to 10 during SPF
> > >>    evaluation.  Specifically, the "include", "a", "mx", "ptr", and
> > >>    "exists" mechanisms as well as the "redirect" modifier count against
> > >>    this collective limit.  The "all", "ip4", and "ip6" mechanisms do not
> > >>    count against this limit.  If this number is exceeded during a check,
> > >>    a "permerror" MUST be returned.  The "exp" modifier does not count
> > >>    against this limit because the DNS lookup to fetch the explanation
> > >>    string occurs after the SPF record evaluation has been completed.
> > >>
> > >> When I read this, I start feeling like I'm being read the rules for
> > >> Fizzbin
> > >> 
> <http://en.wikipedia.org/wiki/**Fizzbin#Fizzbin<http://en.wikipedia.org/>  
>  >> wiki/Fizzbin#Fizzbin>>.>>
> > >>  I would
> > >>
> > >> appreciate it if this was re-worded so that there are two clear lists
> > >> here: the terms that are included in the "limit of 10", and the terms
> > >> that are not (and are, presumably, unlimited).  Perhaps something like
> > >> this:
> > >>
> > >> NEW
> > >>
> > >>    Some mechanisms and modifiers (collectively, "terms") cause DNS
> > >>    queries at the time of evaluation, and some do not.  The following
> > >>    terms cause DNS queries: <list goes here>.  SPF implementations
> > >>    MUST limit the total number of those terms to 10 during SPF
> > >>    evaluation, to avoid unreasonable load on the DNS.  If this limit
> > >>    is exceeded, the implementation MUST return "permerror".  The other
> > >>    terms (<list goes here>) do not cause DNS queries at the time of
> > >>    SPF evaluation, and their use is not subject to this limit.
> > >>
> > >> END
> > >>
> > >> If you think it's necessary (I don't):
> > >>
> > >> NEW+
> > >>
> > >>    The other
> > >>    terms (<list goes here>) do not cause DNS queries at the time of
> > >>    SPF evaluation (the "exp" modifier causes a lookup at a later time),
> > >>    and their use is not subject to this limit.
> > >>
> > >> END
> >
> > I like the new text, and prefer the second bit be included.
>
>If we change, and I think that's reasonable, the second bit should definitely
>be included.  "exp" not counting in the 10 has confused people and we should
>be explicit about it.
>
> > >> Then in the next two paragraphs, I think it would improve 
> clarity to make
> > >> a change such as this:
> > >>
> > >> OLD
> > >>
> > >>    When evaluating the "mx" mechanism, the number of "MX" resource
> > >>    records queried is included in the overall limit of 10 mechanisms/
> > >>    modifiers that cause DNS lookups described above.  The evaluation of
> > >>    each "MX" record MUST NOT result in querying more than 10 address
> > >>    records,
> > >>
> > >> NEW
> > >>
> > >>    When evaluating the "mx" mechanism, the number of "MX" resource
> > >>    records queried is included in the overall limit of 10 mechanisms/
> > >>    modifiers that cause DNS lookups described above.  In addition to
> > >>    that limit, the evaluation of each "MX" record MUST NOT result in
> > >>    querying more than 10 address records,
> > >>
> > >> END
> > >>
> > >> (And similarly for the "ptr" paragraph.)  I know you say this in a
> > >> paragraph of its own ("These limits are per mechanism..."), but it's
> > >> helpful if people can understand things as they read them, and then to
> > >> emphasize it later... rather than having them scratch their heads for a
> > >> few paragraphs until they get to it.
> >
> > +1 to that part too.
>
>Seems reasonable.
>
> > > -- Section 4.7 --
> > >
> > >>    It is better to use either a "redirect" modifier or an "all"
> > >>    mechanism to explicitly terminate processing.  Although the latter
> > >>    has a default (specifically "?all"), it aids debugging efforts if it
> > >>    is explicitly provided.
> > >>
> > >> I'm not sure what "the latter has a default" is trying to say.  Do you
> > >> mean that "?all" is the default if you fall off the end, but you
> > >> shouldn't rely on that?  Or do you mean that if you say "all", then
> > >> "?all" is taken as the default (I would think "all" would mean "+all")?
> > >> Will you try re-wording this, please?
> >
> > The former ("?all" is implicit if you fall off the end).  Suggest:
> >
> > It is better to use either a "redirect" modifier or an "all" mechanism to
> > explicitly terminate processing.  Although there is in effect a "?all"
> > implicit at the end of every record, it ads debigging efforts when it is
> > explicitly provided.
>
>How about:
>
>    It is better to use either a "redirect" modifier or an "all" mechanism to
>    explicitly terminate processing.  Although there is an implicit "?all" at
>    the end of every record that is not explicitly terminated, it aids
>   debugging efforts when it is explicitly provided.
>
> > >> -- Section 5 --
> > >>
> > >> What does "(do not publish)" mean next to "ptr" in the sender mechanisms
> > >> list?  Ah; I see; it matches the "do not use" in Section 
> 5.5.  You should
> > >> probably change this to "(do not use; see the note in Section 5.5)".
> >
> > Seems reasonable.
>
>OK.
>
> > >> It would help, I think, to add to the end of the second paragraph, "The
> > >> basic mechanisms are as follows:", and to the end of the third 
> paragraph,
> > >> "The designated sender mechanisms are as 
> follows:".  Otherwise, there are
> > >> just these disembodied lists, and the reader has to infer those
> > >> introductions.
> >
> > Sure.
>
>Agreed.
>
> > >> -- Section 5.1 --
> > >>
> > >>    Mechanisms after "all" will never be tested.  Mechanisms listed after
> > >>    "all" MUST be ignored.  Any "redirect" modifier (Section 6.1) MUST be
> > >>    ignored when there is an "all" mechanism in the record.
> > >>
> > >> This says that the redirect in the following record will be ignored:
> > >>    v=spf1 redirect=_spf.example.com +all
> > >>
> > >> That's sufficiently odd that it should be called out explicitly, perhaps
> > >> by adding "regardless of the relative ordering of the terms" to the last
> > >> sentence in the quote.
> >
> > Yep.
>
>OK.
>
> > >> -- Section 5.2 --
> > >>
> > >>    3.  The recursive evaluation returns either match, not match, or an
> > >>        error.  If it matches, then the appropriate result for the
> > >>        include: mechanism is used (e.g. include or +include produces a
> > >>        "pass" result and -include produces "fail").
> > >>
> > >>    4.  If there is no match, the parent check_host() resumes processing
> > >>        as per the table below, with the previous value of <domain>
> > >>        restored.
> > >>
> > >> A few things here:
> > >>
> > >> 1. Nit: "either" is for two things; for more than two, please remove the
> > >> word "either" (or replace it with "one of", but that seems awkward
> > >> here).
> > >>
> > >> 2. "If it matches" is not parallel to "returns match", and similarly for
> > >> "if there is no match".
> > >>
> > >> 3. You don't say what happens if the recursive evaluation returns an
> > >> error.  Unfortuately, "no match" and "not match" are 
> sufficiently similar
> > >> to be confused.
> > >>
> > >> I suggest this:
> > >>
> > >> NEW
> > >>
> > >>    3.  The recursive evaluation returns match, not match, or an
> > >>        error.
> > >>
> > >>    4.  If it returns match, then the appropriate result for the
> > >>        include: mechanism is used (e.g., include or +include produces
> > >>        a "pass" result and -include produces "fail").
> > >>
> > >>    5.  If it returns not match or an error, the parent check_host()
> > >>        resumes processing as per the table below, with the previous
> > >>        value of <domain> restored.
> > >>
> > >> END
> >
> > +1.
>
>I think this is fine.
>
> > >>    The "include" mechanism is intended for crossing administrative
> > >>    boundaries.  For example, if example.com and example.org were managed
> > >>    by the same entity, and if the permitted set of hosts for both
> > >>    domains was "mx:example.com", it would be possible for example.org to
> > >>    specify "include:example.com", but it would be preferable to specify
> > >>    "redirect=example.com" or even "mx:example.com".
> > >>
> > >> The text you eliminated here provided a buffer that's no longer there,
> > >> making the "For example," very odd.  You talk about crossing admin
> > >> boundaries and immediately follow it with an example that does NOT.  I
> > >> think it would be better to put a sentence in to restore that buffer --
> > >> perhaps, "When remaining within one administrative authority, "include"
> > >> is usually not the best choice."
> >
> > Sure.
>
>Agreed.
>
> > >> -- Section 5.5 --
> > >>
> > >>    This mechanism SHOULD NOT be published.  See below for discussion.
> > >>
> > >> It's quite a bit below.  I suggest "See the note at the end of this
> > >> section for more information."  It might even be worth putting that note
> > >> into a Section 5.5.1, so it's highlighted and more easily cited.
> >
> > +1.
>
>OK.  Someone let me know which way I should do it.  I'm OK with either.
>
> > >> -- Section 6 --
> > >>
> > >>    Unrecognized modifiers MUST be ignored no matter where in a record,
> > >>    or how often.
> > >>
> > >> This is missing a couple of words:
> > >>
> > >> NEW
> > >>
> > >>    Unrecognized modifiers MUST be ignored no matter where in a record
> > >>    they appear, or how often.
> > >>
> > >> END
> >
> > +1.
>
>OK.
>
> > >>    For clarity, any "redirect" modifier SHOULD appear as the very last
> > >>    term in a record.
> > >>
> > >> I don't usually recommend repeating things, but one thing from earlier
> > >> probably does bear repeating here:
> > >>
> > >> NEW
> > >>
> > >>    For clarity, any "redirect" modifier SHOULD appear as the very last
> > >>    term in a record.  Any "redirect" modifier MUST be ignored if there
> > >>    is an "all" mechanism anywhere in the record.
> > >>
> > >> END
> >
> > Seems reasonable.
>
>OK.
>
>Thanks for the detailed review and msk's comments on the comments.
>
>Scott K


From spf2@kitterman.com  Wed Sep 11 14:53:43 2013
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 BD65211E820F for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 14:53:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.123
X-Spam-Level: 
X-Spam-Status: No, score=-2.123 tagged_above=-999 required=5 tests=[AWL=0.476,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RVK7smeLrK6p for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 14:53:32 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id E990B11E8106 for <spfbis@ietf.org>; Wed, 11 Sep 2013 14:53:31 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 5699320E40EA; Wed, 11 Sep 2013 17:53:31 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378936411; bh=kuwe6jnOqhWgqoirYP0CWF8A9WrYWV9MQRQhteQLxlk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=C837U/eaG8MyJoOv5kCrgC9fT1TSYlDDBK+1zDKWPRkJElTDLGM6UarKJZ+lamuDk pbVNK+CoQBMnFeodezH0l/xLtVVfIDwEW6OJRXJ6ryASrfb+1IMiyZEiuSjjZ52+7E lMULKch6J/o8gyTLSK2tQeKaEG6pTmDFrnR3mffo=
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 39AE920E40D2;  Wed, 11 Sep 2013 17:53:30 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Wed, 11 Sep 2013 17:53:30 -0400
Message-ID: <2297109.DlIYn73fZN@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <6.2.5.6.2.20130911134838.0c217ca8@resistor.net>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <5230A523.20504@isdg.net> <6.2.5.6.2.20130911134838.0c217ca8@resistor.net>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Wed, 11 Sep 2013 21:53:44 -0000

On Wednesday, September 11, 2013 13:53:28 S Moonesamy wrote:
> Hi Scott,
> 
> I am copying the parts of the SECDIR review to which there hasn't
> been any response:
> 
> Issue 1:
> >1.1.3.  MAIL FROM Definition
> >
> >I found this section completely opaque and very confusing. It should
> >not be necessary to hunt through other specs to find a definition.
> >Particularly since the referenced specs do not give an explicit
> >definition for the term as used and the references point to the
> >whole spec rather than a particular section.

It's a challenge, but I think it's better than inventing a new definition for 
SPF that may be different.  Would someone be willing to dive into the relevant 
RFCs and see if they can make a recommendation about how better to reference 
this?

> Issue 2:
> >8.7.  Permerror
> >
> >"This signals an error condition that definitely requires operator
> >intervention to be resolved."
> >
> >I cannot imagine a circumstance which definitely requires a human to
> >be involved in mail delivery.

These are permanent DNS errors or SPF record errors.  For example, if an SPF 
record requires too many DNS lookups, someone has to change the record to make 
the error go away.

The definitely was intended to distinguish from cases such as a DNS SERVFAIL 
that may or may not be permanent, but are temperrors in SPF.  In the case of 
ambiguity about if an error is temporary or permanent, it's treated in the 
design as assumed to be temporary.

If this is confusing, someone please suggest an alternative.

> Issue 3:
> >11.2.  SPF-Authorized Email May Contain Other False Identities
> >
> >    Do not construe the "MAIL FROM" and "HELO" identity authorizations to
> >    provide more assurance than they do.
> >
> >Document has quasi normative language that should be worded as
> >statements of fact rather than as direction.

How about:

   The "MAIL FROM" and "HELO" identity authorizations do not provide assurance
   about the authorization/authenticity of other identities used in the
   message.

> Could you please comment about the three issues?

See above.

Scott K

From presnick@qti.qualcomm.com  Wed Sep 11 14:57:15 2013
Return-Path: <presnick@qti.qualcomm.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 20B0021F8415; Wed, 11 Sep 2013 14:57:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.542
X-Spam-Level: 
X-Spam-Status: No, score=-105.542 tagged_above=-999 required=5 tests=[AWL=1.057, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2uXbuf9YuR51; Wed, 11 Sep 2013 14:57:03 -0700 (PDT)
Received: from wolverine01.qualcomm.com (wolverine01.qualcomm.com [199.106.114.254]) by ietfa.amsl.com (Postfix) with ESMTP id 8C49721F8EDF; Wed, 11 Sep 2013 14:56:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qti.qualcomm.com; i=@qti.qualcomm.com; q=dns/txt; s=qcdkim; t=1378936619; x=1410472619; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=56fHyYqCFdRXsnhNhPIjwDx8jxPr4AIBcQgU6Ryxysw=; b=ap2GEdSlCxTjJmtta4aU/tGDexylZnaXAb7OV+QhKdOPiWLZ5wv0lhZL Nn+A8p4W7ph8hjdbl00Tkyd4i+NAo+nC8Mf3/HRWWNDZfDudnyUMP3yK/ norKeJ8CCwnqWTlluTT9O031Im1TtLwx1rdYfc6o4g6Dj2EwIkzYu3Mcm s=;
X-IronPort-AV: E=McAfee;i="5400,1158,7195"; a="73777133"
Received: from ironmsg02-lv.qualcomm.com ([10.47.202.183]) by wolverine01.qualcomm.com with ESMTP; 11 Sep 2013 14:56:55 -0700
X-IronPort-AV: E=McAfee;i="5400,1158,7195"; a="19258360"
Received: from nasanexhc07.na.qualcomm.com ([172.30.39.190]) by ironmsg02-lv.qualcomm.com with ESMTP/TLS/RC4-SHA; 11 Sep 2013 14:56:55 -0700
Received: from resnick2.qualcomm.com (172.30.39.5) by qcmail1.qualcomm.com (172.30.39.190) with Microsoft SMTP Server (TLS) id 14.3.146.2; Wed, 11 Sep 2013 14:56:54 -0700
Message-ID: <5230E724.8000703@qti.qualcomm.com>
Date: Wed, 11 Sep 2013 16:56:52 -0500
From: Pete Resnick <presnick@qti.qualcomm.com>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.7; en-US; rv:1.9.1.9) Gecko/20100630 Eudora/3.0.4
MIME-Version: 1.0
To: Hector Santos <hsantos@isdg.net>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com>	<6.2.5.6.2.20130910113052.0c339a60@elandnews.com>	<522F7A8F.5060807@gmail.com>	<10370218.OEr9JV8dgx@scott-latitude-e6320> <52303A4A.5070303@isdg.net>
In-Reply-To: <52303A4A.5070303@isdg.net>
Content-Type: text/plain; charset="ISO-8859-1"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [172.30.39.5]
Cc: S Moonesamy <sm+ietf@elandsys.com>, spfbis@ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, Scott Kitterman <spf2@kitterman.com>, The IESG <iesg@ietf.org>, spfbis-chairs@tools.ietf.org, Spencer Dawkins <spencerdawkins.ietf@gmail.com>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 21:57:16 -0000

On 9/11/13 4:39 AM, Hector Santos wrote:
> On 9/10/2013 9:38 PM, Scott Kitterman wrote:
>>     In 2003, when SPF was first being developed, the requirements for
>>     assignment of a new DNS RR type were considerably more stringent 
>> than
>>     they are now.

I think this is reasonable to leave in, Hector's comments 
notwithstanding. It may not have been the primary problem, but it 
certainly didn't help.

>>     As a result, at that time, there was no reasonable
>>     alternative to using the TXT RR type for SPF records.

No need to be overly proud here. I suggest, "As a result, proponents of 
SPF found it easier and more practical to use the TXT RR type for SPF 
records."

>>     In its review of [RFC4408] the SPFbis working group concluded that
>>     its dual RR type transition model was fundamentally flawed since it
>>     contained no common RR type that implementers were required to serve
>>     and required to check.
>
> I would remove the word "fundamentally"

(*Shrug*) Stylistic choice. I don't think it makes a difference.

>>     The circumstances surrounding SPF's initial deploymenta decade ago
>>     are unique and very, very unlikely to be repeated.
>
> I don't think so.

Yeah, I'd drop the "and very, very unlikely to be repeated." This 
document doesn't need to be in the soothsayer business.

I'd also be OK with s/are unique/were different than the circumstances 
today.

Either way.

>>     If a future
>>     update to a new SPF version that could not reuse existing SPF 
>> records
>>     were to be developed, it ought to use the SPF RR type.

Not wishing to argue the point with Hector, but also not inclined to 
come down on one side or the other. How about:

"If a future update to SPF were developed that did not reuse existing 
SPF records, it could use the SPF RR type."

>>     SPF's use of
>>     the TXT RR type for structured data should in no way be taken as
>>     precedent for future protocol designers.  Things have changed.
>
>
> No it hasn't change.

Again, not wishing to argue the point, because it doesn't matter. I'm 
fine with striking "Things have changed". I'd also like to see an 
information reference, like: "Further discussion of design 
considerations when using new DNS RRs can be found in [RFC5507]."

It is not the job of this document to debate or judge the actual state 
of the current DNS infrastructure, only to document what this protocol 
did in the past and give pointers for future debate.

pr

-- 
Pete Resnick<http://www.qualcomm.com/~presnick/>
Qualcomm Technologies, Inc. - +1 (858)651-4478


From spf2@kitterman.com  Wed Sep 11 14:59:36 2013
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 A9B3A11E8186 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 14:59:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.219
X-Spam-Level: 
X-Spam-Status: No, score=-2.219 tagged_above=-999 required=5 tests=[AWL=0.380,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hqzgxcRrDKVN for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 14:59:31 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id E156F21E80A5 for <spfbis@ietf.org>; Wed, 11 Sep 2013 14:59:29 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id C9D2D20E40EA; Wed, 11 Sep 2013 17:59:15 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378936755; bh=q4DmIOh70fklsE3IMijRrtTis5M3M7+GWHCnSI8Q3ww=; h=From:To:Subject:Date:In-Reply-To:References:From; b=j3iZ9yP3DWdNIqvVXBB3+KaQmdfrZsOH1tUrRoe0VPq+fTB35Q0X40fB2HypK2SyY BS9kw6mVwzT7FVp2PfGDiUxryvaGHQ5sbIUBg6Wm7O9zxA/6C4Sz+d6mAS+5VUXIVT Oa63X6obmhs8V8mV1+yN2nAZGRDzb1TRLUA07LGk=
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 AD71A20E40D2;  Wed, 11 Sep 2013 17:59:15 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Wed, 11 Sep 2013 17:59:15 -0400
Message-ID: <1585871.AU1b4sgrpz@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <5230A523.20504@isdg.net>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com> <5230A523.20504@isdg.net>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Wed, 11 Sep 2013 21:59:37 -0000

Submitter is unrelated to SPF and it would be wrong to treat anything related 
to submitter as an "spf_result".  If you disagree, please point to me to the 
reference in RFC 4408 or documents referenced by RFC 4408 where submitter is 
described.

Scott K

On Wednesday, September 11, 2013 13:15:15 Hector Santos wrote:
> I had an issue with SPFBIS limiting discussion with integrated
> technology that is 100% related and exist in the market place.
> Protocols SenderID and Submitter SMTP extension which can alter the
> way an SPF compliant package will work.
> 
> Related, I had an issue with the limited modeling of check_host()
> function I/O which WOULD NOT fit the reality of an integrated system
> with SUBMITTER support with extended input parameters:
> 
>      spf_result = check_host(ehlo, mailfrom [,submitter])
> 
> I didn't see why this was not important other than to believe that
> SenderID/Submitter doesn't not exist.
> 
> DKIM is not RELATED to SPF.  To talk about unrelated DKIM required to
> talk about a very related item such as SenderID, SUBMITTER.
> 
> In this vain, until the IETF can say something about a SPF-related
> technology in SenderID and especially SMTP level SUBMITTER protocol
> which will require to be fitted with a Check_Host() function, the
> "Experiment" was not really completely concluded.
> 
> Keep in mind that SPF is a SMTP level technology (doesn't require the
> payload). DKIM requires the payload to be transferred and this
> diminished the optimization of an SPF method.  For DKIM, like ADSP,
> DMARC also now depended on that Author Domain anchor (the single
> binding requirement for DKIM).  SPF or the SenderID Submitter protocol
> do not depend on receiving the payload in other to function.
> 
> A DKIM discussion will require how SMTP transaction is done with SPF
> receivers, that is mainly to always receive the payload.
> 
> On 9/11/2013 9:22 AM, S Moonesamy wrote:
> > Hi Phillip,
> > 
> > I am responding to the comment about DKIM only and wait for the SPFBIS
> > WG to address the other issues.
> > 
> > At 05:07 11-09-2013, Phillip Hallam-Baker wrote:
> >> I have reviewed this document as part of the security directorate's
> >> ongoing effort to review all IETF documents being processed by the
> >> IESG.  Document editors and WG chairs should treat these comments just
> >> like any other last call comments.
> >> 
> >> The document has been produced as part of a proposal to upgrade SPF
> >> to standards track recognizing the state of deployment experience.
> >> 
> >> Minor issues.
> >> 
> >> 1.1.3.  MAIL FROM Definition
> >> 
> >> I found this section completely opaque and very confusing. It should
> >> not be necessary to hunt through other specs to find a definition.
> >> Particularly since the referenced specs do not give an explicit
> >> definition for the term as used and the references point to the
> >> whole spec rather than a particular section.
> > 
> > I am commenting on the following paragraph only:
> >> The Security Considerations section is adequate for the purpose
> >> except that no mention is made anywhere in the specification about
> >> DKIM and how a mail receiver should interpret presence of DKIM and
> >> SPF policy at the same time. This is a legitimate concern since DKIM
> >> is already a standards track proposal and SPF is only now being
> >> promoted to Standards Track. Thus the SPF document should address
> >> the question of dual use.
> > 
> > There was a BoF at the last IETF meeting to discuss proposals about
> > how to interpret the presence of DKIM and/or SPF policy at the same
> > time ( http://www.ietf.org/proceedings/87/minutes/minutes-87-dmarc ).
> > The dual use can be addressed as part of the DMARC effort.
> > 
> >> 8.7.  Permerror
> >> 
> >> "
> >> 
> >> This signals an error condition that
> >> 
> >>    definitely requires operator intervention to be resolved."
> >> 
> >> I cannot imagine a circumstance which definitely requires a human to
> >> be involved in mail delivery.
> >> 
> >> 
> >> 11.2.  SPF-Authorized Email May Contain Other False Identities
> >> 
> >>    Do not construe the "MAIL FROM" and "HELO" identity
> >> 
> >> authorizations to
> >> 
> >>    provide more assurance than they do.
> >> 
> >> Document has quasi normative language that should be worded as
> >> statements of fact rather than as direction.
> >> 
> >> --
> >> Website: http://hallambaker.com/
> > 
> > _______________________________________________
> > spfbis mailing list
> > spfbis@ietf.org
> > https://www.ietf.org/mailman/listinfo/spfbis

From spf2@kitterman.com  Wed Sep 11 15:01:53 2013
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 027EA21F8459; Wed, 11 Sep 2013 15:01:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.282
X-Spam-Level: 
X-Spam-Status: No, score=-2.282 tagged_above=-999 required=5 tests=[AWL=0.317,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YFlQUsSk2C6W; Wed, 11 Sep 2013 15:01:40 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 681F111E8186; Wed, 11 Sep 2013 15:01:32 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id E23D220E40EA; Wed, 11 Sep 2013 18:01:31 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378936891; bh=v992vqlwE5WoV/TwCJy6rz9KbciFm3HjQPeqVvYExGs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=JdDY84l1Bg0un0hB6nA24BVAK3Ly0I+QZoDgaoU/dJBnQ0sutLt/LnkHEzL9PZ35d qduL5YvtgoAzwMAl8vV7OTUxQ2uhQOc2WevNyKKlYMrDGN01SqZpddTtuICk2ez93t /JSjvv78NOkSRIlHV4LKD493s7l0uboMbcllXJa4=
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 C810920E40D2;  Wed, 11 Sep 2013 18:01:31 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org, S Moonesamy <sm+ietf@elandsys.com>, The IESG <iesg@ietf.org>
Date: Wed, 11 Sep 2013 18:01:31 -0400
Message-ID: <1623078.iZZXT7WM88@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <5230E724.8000703@qti.qualcomm.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <52303A4A.5070303@isdg.net> <5230E724.8000703@qti.qualcomm.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-AV-Checked: ClamAV using ClamSMTP
Cc: spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>, draft-ietf-spfbis-4408bis@tools.ietf.org, Spencer Dawkins <spencerdawkins.ietf@gmail.com>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 22:01:56 -0000

On Wednesday, September 11, 2013 16:56:52 Pete Resnick wrote:
> On 9/11/13 4:39 AM, Hector Santos wrote:
> > On 9/10/2013 9:38 PM, Scott Kitterman wrote:
> >>     In 2003, when SPF was first being developed, the requirements for
> >>     assignment of a new DNS RR type were considerably more stringent
> >> 
> >> than
> >> 
> >>     they are now.
> 
> I think this is reasonable to leave in, Hector's comments
> notwithstanding. It may not have been the primary problem, but it
> certainly didn't help.
> 
> >>     As a result, at that time, there was no reasonable
> >>     alternative to using the TXT RR type for SPF records.
> 
> No need to be overly proud here. I suggest, "As a result, proponents of
> SPF found it easier and more practical to use the TXT RR type for SPF
> records."
> 
> >>     In its review of [RFC4408] the SPFbis working group concluded that
> >>     its dual RR type transition model was fundamentally flawed since it
> >>     contained no common RR type that implementers were required to serve
> >>     and required to check.
> > 
> > I would remove the word "fundamentally"
> 
> (*Shrug*) Stylistic choice. I don't think it makes a difference.
> 
> >>     The circumstances surrounding SPF's initial deploymenta decade ago
> >>     are unique and very, very unlikely to be repeated.
> > 
> > I don't think so.
> 
> Yeah, I'd drop the "and very, very unlikely to be repeated." This
> document doesn't need to be in the soothsayer business.
> 
> I'd also be OK with s/are unique/were different than the circumstances
> today.
> 
> Either way.
> 
> >>     If a future
> >>     update to a new SPF version that could not reuse existing SPF
> >> 
> >> records
> >> 
> >>     were to be developed, it ought to use the SPF RR type.
> 
> Not wishing to argue the point with Hector, but also not inclined to
> come down on one side or the other. How about:
> 
> "If a future update to SPF were developed that did not reuse existing
> SPF records, it could use the SPF RR type."
> 
> >>     SPF's use of
> >>     the TXT RR type for structured data should in no way be taken as
> >>     precedent for future protocol designers.  Things have changed.
> > 
> > No it hasn't change.
> 
> Again, not wishing to argue the point, because it doesn't matter. I'm
> fine with striking "Things have changed". I'd also like to see an
> information reference, like: "Further discussion of design
> considerations when using new DNS RRs can be found in [RFC5507]."
> 
> It is not the job of this document to debate or judge the actual state
> of the current DNS infrastructure, only to document what this protocol
> did in the past and give pointers for future debate.

I think all of Pete's suggestions are good.  Should I go ahead and update my 
local copy of the to be -20?

Scott K

From sm@elandsys.com  Wed Sep 11 15:10:25 2013
Return-Path: <sm@elandsys.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 9E8FD11E8126; Wed, 11 Sep 2013 15:10:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.566
X-Spam-Level: 
X-Spam-Status: No, score=-102.566 tagged_above=-999 required=5 tests=[AWL=0.033, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id WV99DJ05J1-O; Wed, 11 Sep 2013 15:10:25 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 1C04311E8106; Wed, 11 Sep 2013 15:10:24 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.155.34]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8BMA8jm017323 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Sep 2013 15:10:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378937422; bh=NhM+uyuxC+5GTcxH3BmFT27cD/yRELe4aTF/Cn+U91w=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=4YgZjVaK0gnEecllNwHr2Et9v7fqbuP4nozPjXhIkwUTIEzdXeFuR3vgvYctsa7Nf da9rSND6+7pA65zto6I48FSpM6LtkSFWAiJyk4dkqWNMrqxWrk8Sek5CbMWHeUyHi8 i/VfoGKq+DDq/5MWQystyCiSyubUbmq4L5PfsMCs=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378937422; i=@elandsys.com; bh=NhM+uyuxC+5GTcxH3BmFT27cD/yRELe4aTF/Cn+U91w=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=kAaWzbT0xLMXlST+e3qKa+c2yknJhy7MxgSk4PUhZEt3aorxdbfrqLRm+zJlf67RZ U3y9ZU37xQZ2gSdsFzZh4G0vCuztRVGOP2zfBqfoRva+JGTR9ERgkE5OqY/zlIrVwl bgNDx9yYGEiBP2NISxeCsjleraSI8GXCy0t3/D34=
Message-Id: <6.2.5.6.2.20130911150339.0c435c60@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Wed, 11 Sep 2013 15:09:37 -0700
To: Scott Kitterman <spf2@kitterman.com>, spfbis@ietf.org, The IESG <iesg@ietf.org>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <1623078.iZZXT7WM88@scott-latitude-e6320>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <52303A4A.5070303@isdg.net> <5230E724.8000703@qti.qualcomm.com> <1623078.iZZXT7WM88@scott-latitude-e6320>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>, draft-ietf-spfbis-4408bis@tools.ietf.org, Spencer Dawkins <spencerdawkins.ietf@gmail.com>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 22:10:25 -0000

Hi Scott,
At 15:01 11-09-2013, Scott Kitterman wrote:
>I think all of Pete's suggestions are good.  Should I go ahead and update my
>local copy of the to be -20?

Okay.  Please go ahead and update your local copy.  Please do not 
post a new revision of the draft.

Could you please send me the text or post the text to the SPFBIS 
mailing list so that this change is clear to everyone?  This was the 
main issue raised during the Last Call.  It would make the rest of 
the work easier if we can get this one out of the way.

Regards,
S. Moonesamy (as document shepherd) 


From marka@isc.org  Wed Sep 11 15:22:05 2013
Return-Path: <marka@isc.org>
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 E7A8921F8EB2; Wed, 11 Sep 2013 15:22:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SgZFka1PCqUd; Wed, 11 Sep 2013 15:21:58 -0700 (PDT)
Received: from mx.pao1.isc.org (mx.pao1.isc.org [IPv6:2001:4f8:0:2::2b]) by ietfa.amsl.com (Postfix) with ESMTP id 7E55A21F9C8B; Wed, 11 Sep 2013 15:21:55 -0700 (PDT)
Received: from mx.pao1.isc.org (localhost [127.0.0.1]) by mx.pao1.isc.org (Postfix) with ESMTP id 2E243C9473; Wed, 11 Sep 2013 22:21:33 +0000 (UTC) (envelope-from marka@isc.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=isc.org; s=dkim2012; t=1378938115; bh=EpR/ypbpeoSTr2xpMRu9P7LI5abb0JdNCOSfbCeiNtc=; h=To:Cc:From:References:Subject:In-reply-to:Date; b=AcgsBdnKs9CQaJTnFtm6sm5Y1wkRgPC3jaKOmsF+10f8K4Iadf7GadGYqcm2+uRYr iA+C6tEPJzwc3vSIMRwyafa4j9dMgDcp1P1LcjUcAKfWVm8GbwJJveCA7UPTGbrXHf EM0yEoAngDC3xuybrdo5/rKxfZWF3zJ0o74SXvQw=
Received: from zmx1.isc.org (zmx1.isc.org [149.20.0.20]) by mx.pao1.isc.org (Postfix) with ESMTP; Wed, 11 Sep 2013 22:21:33 +0000 (UTC) (envelope-from marka@isc.org)
Received: from zmx1.isc.org (localhost [127.0.0.1]) by zmx1.isc.org (Postfix) with ESMTP id C36F2160446; Wed, 11 Sep 2013 22:23:16 +0000 (UTC)
Received: from rock.dv.isc.org (c211-30-183-50.carlnfd1.nsw.optusnet.com.au [211.30.183.50]) by zmx1.isc.org (Postfix) with ESMTPSA id 5C72F160363; Wed, 11 Sep 2013 22:23:16 +0000 (UTC)
Received: from rock.dv.isc.org (localhost [IPv6:::1]) by rock.dv.isc.org (Postfix) with ESMTP id 9E3FC6485A6; Thu, 12 Sep 2013 08:21:27 +1000 (EST)
To: Scott Kitterman <spf2@kitterman.com>
From: Mark Andrews <marka@isc.org>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <52303A4A.5070303@isdg.net> <5230E724.8000703@qti.qualcomm.com> <1623078.iZZXT7WM88@scott-latitude-e6320>
In-reply-to: Your message of "Wed, 11 Sep 2013 18:01:31 -0400." <1623078.iZZXT7WM88@scott-latitude-e6320>
Date: Thu, 12 Sep 2013 08:21:27 +1000
Message-Id: <20130911222127.9E3FC6485A6@rock.dv.isc.org>
X-DCC--Metrics: post.isc.org; whitelist
Cc: Pete Resnick <presnick@qti.qualcomm.com>, S Moonesamy <sm+ietf@elandsys.com>, spfbis@ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>, spfbis-chairs@tools.ietf.org, Spencer Dawkins <spencerdawkins.ietf@gmail.com>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 22:22:05 -0000

Why don't we just be honest and state that the working group did
not proceed with the migration because Microsoft failed to supply
a RFC 1304 compliant resolver (no support for arbitary type lookups),
and failed to supply a authoritative nameserver that supported
arbitary types despite RFC 3597 (standards track) stating how to
do so for the Microsoft Windows platform.  They also failed to
extend the resolver and nameserver to have type specific support
for the SPF record in RFC 4408.  This is despite all other major
nameserver vendors having support for arbitary types and/or type
specific support for the SPF record.

In message <1623078.iZZXT7WM88@scott-latitude-e6320>, Scott Kitterman writes:
> On Wednesday, September 11, 2013 16:56:52 Pete Resnick wrote:
> > On 9/11/13 4:39 AM, Hector Santos wrote:
> > > On 9/10/2013 9:38 PM, Scott Kitterman wrote:
> > >>     In 2003, when SPF was first being developed, the requirements for
> > >>     assignment of a new DNS RR type were considerably more stringent
> > >> 
> > >> than
> > >> 
> > >>     they are now.
> > 
> > I think this is reasonable to leave in, Hector's comments
> > notwithstanding. It may not have been the primary problem, but it
> > certainly didn't help.
> > 
> > >>     As a result, at that time, there was no reasonable
> > >>     alternative to using the TXT RR type for SPF records.
> > 
> > No need to be overly proud here. I suggest, "As a result, proponents of
> > SPF found it easier and more practical to use the TXT RR type for SPF
> > records."
> > 
> > >>     In its review of [RFC4408] the SPFbis working group concluded that
> > >>     its dual RR type transition model was fundamentally flawed since it
> > >>     contained no common RR type that implementers were required to serve
> > >>     and required to check.
> > > 
> > > I would remove the word "fundamentally"
> > 
> > (*Shrug*) Stylistic choice. I don't think it makes a difference.
> > 
> > >>     The circumstances surrounding SPF's initial deploymenta decade ago
> > >>     are unique and very, very unlikely to be repeated.
> > > 
> > > I don't think so.
> > 
> > Yeah, I'd drop the "and very, very unlikely to be repeated." This
> > document doesn't need to be in the soothsayer business.
> > 
> > I'd also be OK with s/are unique/were different than the circumstances
> > today.
> > 
> > Either way.
> > 
> > >>     If a future
> > >>     update to a new SPF version that could not reuse existing SPF
> > >> 
> > >> records
> > >> 
> > >>     were to be developed, it ought to use the SPF RR type.
> > 
> > Not wishing to argue the point with Hector, but also not inclined to
> > come down on one side or the other. How about:
> > 
> > "If a future update to SPF were developed that did not reuse existing
> > SPF records, it could use the SPF RR type."
> > 
> > >>     SPF's use of
> > >>     the TXT RR type for structured data should in no way be taken as
> > >>     precedent for future protocol designers.  Things have changed.
> > > 
> > > No it hasn't change.
> > 
> > Again, not wishing to argue the point, because it doesn't matter. I'm
> > fine with striking "Things have changed". I'd also like to see an
> > information reference, like: "Further discussion of design
> > considerations when using new DNS RRs can be found in [RFC5507]."
> > 
> > It is not the job of this document to debate or judge the actual state
> > of the current DNS infrastructure, only to document what this protocol
> > did in the past and give pointers for future debate.
> 
> I think all of Pete's suggestions are good.  Should I go ahead and update my 
> local copy of the to be -20?
> 
> Scott K
> _______________________________________________
> spfbis mailing list
> spfbis@ietf.org
> https://www.ietf.org/mailman/listinfo/spfbis
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka@isc.org

From superuser@gmail.com  Wed Sep 11 15:52:41 2013
Return-Path: <superuser@gmail.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 5C07D11E812E; Wed, 11 Sep 2013 15:52:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.593
X-Spam-Level: 
X-Spam-Status: No, score=-2.593 tagged_above=-999 required=5 tests=[AWL=0.006,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id EFKFOvDFPA-T; Wed, 11 Sep 2013 15:52:40 -0700 (PDT)
Received: from mail-we0-x236.google.com (mail-we0-x236.google.com [IPv6:2a00:1450:400c:c03::236]) by ietfa.amsl.com (Postfix) with ESMTP id DB08711E8106; Wed, 11 Sep 2013 15:52:37 -0700 (PDT)
Received: by mail-we0-f182.google.com with SMTP id q59so7587503wes.13 for <multiple recipients>; Wed, 11 Sep 2013 15:52:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=AGy7ypFC3vMXiS84qnxjO/s620IXQAIuHwiL+3vBzVQ=; b=Y/RMU1jzjAHP6D3HOBBuzQKmaJkNv9zjqU/XFTWYPogXZCG+6lA4rd9GaNnDNNYOIH z8Fdg/JSWat2YJUvy+XdODFeaMS3L5L6cO6vHkXlJUJcRdqEefOaV3sQ+F18tBlWw/fQ vOflpMjcqYvj/oVXxUnrFkHLDiQ4Hjc2pZoHe4Ogl4hFRbQZr2kICzweI/nJInAebikX T3zgffvso+oVP4pAD5qeP3bhF0SD1ISdI9NI5UcjlGQpBwHJBhQRpLpOAj5zunDYaUqx 9Vnc6Qiet4WG4JiivO01nrcyqAifQxj0PYYdu9v74SJAYKJ59+Kji7nI7Ceo+qw5TsYr +yPA==
MIME-Version: 1.0
X-Received: by 10.180.184.107 with SMTP id et11mr19323487wic.60.1378939956207;  Wed, 11 Sep 2013 15:52:36 -0700 (PDT)
Received: by 10.180.106.169 with HTTP; Wed, 11 Sep 2013 15:52:36 -0700 (PDT)
In-Reply-To: <20130911222127.9E3FC6485A6@rock.dv.isc.org>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <52303A4A.5070303@isdg.net> <5230E724.8000703@qti.qualcomm.com> <1623078.iZZXT7WM88@scott-latitude-e6320> <20130911222127.9E3FC6485A6@rock.dv.isc.org>
Date: Wed, 11 Sep 2013 15:52:36 -0700
Message-ID: <CAL0qLwZzB=gfS2Jv=XMRcX8YYRFNE5xdnY00ibJQ-gbspJk=zw@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: Mark Andrews <marka@isc.org>
Content-Type: multipart/alternative; boundary=001a11c227ee41a8bc04e6237abc
Cc: Pete Resnick <presnick@qti.qualcomm.com>, S Moonesamy <sm+ietf@elandsys.com>, Spencer Dawkins <spencerdawkins.ietf@gmail.com>, "spfbis@ietf.org" <spfbis@ietf.org>, draft-ietf-spfbis-4408bis@tools.ietf.org, Scott Kitterman <spf2@kitterman.com>, spfbis-chairs@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 22:52:41 -0000

--001a11c227ee41a8bc04e6237abc
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Sep 11, 2013 at 3:21 PM, Mark Andrews <marka@isc.org> wrote:

> Why don't we just be honest and state that the working group did
> not proceed with the migration because Microsoft failed to supply
> a RFC 1304 compliant resolver (no support for arbitary type lookups),
> and failed to supply a authoritative nameserver that supported
> arbitary types despite RFC 3597 (standards track) stating how to
> do so for the Microsoft Windows platform.  They also failed to
> extend the resolver and nameserver to have type specific support
> for the SPF record in RFC 4408.  This is despite all other major
> nameserver vendors having support for arbitary types and/or type
> specific support for the SPF record.
>
>
I wasn't aware that this had anything to do with Microsoft in particular.
There have been ample examples presented on these threads of provisioning
systems and the like failing to support type 99 that were not developed by
Microsoft.  I could be completely wrong, but this is the first I've heard
of a specific vendor being identified as "the" problem.

-MSK

--001a11c227ee41a8bc04e6237abc
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wed, Sep 11, 2013 at 3:21 PM, Mark Andrews <span dir=3D=
"ltr">&lt;<a href=3D"mailto:marka@isc.org" target=3D"_blank">marka@isc.org<=
/a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div class=3D"gmail_quo=
te"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bor=
der-left:1px solid rgb(204,204,204);padding-left:1ex">
Why don&#39;t we just be honest and state that the working group did<br>
not proceed with the migration because Microsoft failed to supply<br>
a RFC 1304 compliant resolver (no support for arbitary type lookups),<br>
and failed to supply a authoritative nameserver that supported<br>
arbitary types despite RFC 3597 (standards track) stating how to<br>
do so for the Microsoft Windows platform. =A0They also failed to<br>
extend the resolver and nameserver to have type specific support<br>
for the SPF record in RFC 4408. =A0This is despite all other major<br>
nameserver vendors having support for arbitary types and/or type<br>
specific support for the SPF record.<br>
<div class=3D"HOEnZb"><div class=3D"h5"><br></div></div></blockquote><div><=
br></div><div>I wasn&#39;t aware that this had anything to do with Microsof=
t in particular.=A0 There have been ample examples presented on these threa=
ds of provisioning systems and the like failing to support type 99 that wer=
e not developed by Microsoft.=A0 I could be completely wrong, but this is t=
he first I&#39;ve heard of a specific vendor being identified as &quot;the&=
quot; problem.<br>
<br></div><div>-MSK <br></div></div></div></div>

--001a11c227ee41a8bc04e6237abc--

From sm@elandsys.com  Wed Sep 11 15:52:42 2013
Return-Path: <sm@elandsys.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 D55F811E80E7; Wed, 11 Sep 2013 15:52:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.569
X-Spam-Level: 
X-Spam-Status: No, score=-102.569 tagged_above=-999 required=5 tests=[AWL=0.030, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 98IiXH914IxD; Wed, 11 Sep 2013 15:52:41 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id D49E711E8106; Wed, 11 Sep 2013 15:52:41 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.155.34]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8BMqEp4003669 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Sep 2013 15:52:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378939950; bh=gQjaalsizu2q8+r6/GmFFItxF5qyLKhtJppAcaYDmas=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=xjWIG7+UCU+PgIYK4eK5GVObgBHrGoowHgMTgo0nCaDUqRH7DqGk9yMNOJbmusGz8 FXXCzodhKZQNUmQJrbOud8x/lrojjFsg89sTP8Pd2smSYK5wKLQd85zpdbji2CzjED 2h6f/qDi77hTLIIOe2CZaS9O/JFulRDMq416ffa0=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378939950; i=@elandsys.com; bh=gQjaalsizu2q8+r6/GmFFItxF5qyLKhtJppAcaYDmas=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=Q5+QwRC3AYLKGWnRbJEmGy5nNLNRxLDQq+XD4WGs7cx0H7pGk8YbeuY9FgdRqEPVX 8/PTbD+9ANTZ6SD1GF5Znk1PkOVsDBPIm5efey6kePX9msg+AkZdqc+i/HdDjrOl2o yaazwB4veheV5yFFZ6ouCjCnMdpWbbpoMeX2r4OQ=
Message-Id: <6.2.5.6.2.20130911152402.0c435da8@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Wed, 11 Sep 2013 15:51:17 -0700
To: Mark Andrews <marka@isc.org>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <20130911222127.9E3FC6485A6@rock.dv.isc.org>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <52303A4A.5070303@isdg.net> <5230E724.8000703@qti.qualcomm.com> <1623078.iZZXT7WM88@scott-latitude-e6320> <20130911222127.9E3FC6485A6@rock.dv.isc.org>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: Pete Resnick <presnick@qti.qualcomm.com>, Scott Kitterman <spf2@kitterman.com>, S Moonesamy <sm+ietf@elandsys.com>, spfbis@ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>, spfbis-chairs@tools.ietf.org, Spencer Dawkins <spencerdawkins.ietf@gmail.com>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 22:52:43 -0000

Hi Mark,
At 15:21 11-09-2013, Mark Andrews wrote:
>Why don't we just be honest and state that the working group did
>not proceed with the migration because Microsoft failed to supply
>a RFC 1304 compliant resolver (no support for arbitary type lookups),
>and failed to supply a authoritative nameserver that supported
>arbitary types despite RFC 3597 (standards track) stating how to
>do so for the Microsoft Windows platform.  They also failed to
>extend the resolver and nameserver to have type specific support
>for the SPF record in RFC 4408.  This is despite all other major
>nameserver vendors having support for arbitary types and/or type
>specific support for the SPF record.

I do not have any affiliation with the vendor mentioned above.

The above (see quoted text) are DNS issues.

Here is what Pete Resnick as Area Director wrote:

   "- The document needs to make a statement in the document clarifying why
      the SPF RR is no longer used in the spec and making it clear that no
      precedent should be created by this protocol's continued use of TXT RR."

The SPFBIS WG is addressing the issue raised by the Area Director.  I 
don't think that a specification about the SPF protocol is the place 
to get into an exhaustive discussion about DNS issues.

Regards,
S. Moonesamy (as document shepherd) 


From barryleiba@gmail.com  Wed Sep 11 16:08:35 2013
Return-Path: <barryleiba@gmail.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 0B20211E815B; Wed, 11 Sep 2013 16:08:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.029
X-Spam-Level: 
X-Spam-Status: No, score=-102.029 tagged_above=-999 required=5 tests=[AWL=-0.051, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, NO_RELAYS=-0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id y5oL-ZTVPJXY; Wed, 11 Sep 2013 16:08:34 -0700 (PDT)
Received: from mail-lb0-x235.google.com (mail-lb0-x235.google.com [IPv6:2a00:1450:4010:c04::235]) by ietfa.amsl.com (Postfix) with ESMTP id E6CE511E820F; Wed, 11 Sep 2013 16:08:32 -0700 (PDT)
Received: by mail-lb0-f181.google.com with SMTP id u14so215200lbd.40 for <multiple recipients>; Wed, 11 Sep 2013 16:08:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=5Jl7t/1uPXnecS+t9kbsiixfgDo55enrbgjU74YquVE=; b=d1tMeV2+EqGkSmqDB42LxsWHBT8Zsbha0M/neL/TAKp5Mru2RJ479lXDuQjZLb+ofT DceCDdL4Y7kv9zOPlmqda1xcQHfDEh/ACCPfkk8oFQnvwnNp18cRtPsFqkUHss6kZ1SL lw/jlqnmUAE7WefmXGM6KCrEznwv/OcxYilEkoEGjoHUEZBlN9OFzV6RmEAjh8RZIynr NzxTc9z7tii9uj7baS4m5pP8CnewboaSBQJ988hXrA//fHBZRZTsl5z1Nrq91BYy3Uzn 9WSlhBOu9kkZ7vhRYhWhHW/YmftRcVS6DwrMaS5H5UtOMP+rI3w1quajx1r9ffnvzmD0 t8Ew==
MIME-Version: 1.0
X-Received: by 10.152.3.201 with SMTP id e9mr3412807lae.24.1378940898233; Wed, 11 Sep 2013 16:08:18 -0700 (PDT)
Sender: barryleiba@gmail.com
Received: by 10.112.130.39 with HTTP; Wed, 11 Sep 2013 16:08:18 -0700 (PDT)
In-Reply-To: <6.2.5.6.2.20130911144430.0c3f7f78@resistor.net>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com> <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.gmail.com> <1409783.xNJeGdWPul@scott-latitude-e6320> <6.2.5.6.2.20130911144430.0c3f7f78@resistor.net>
Date: Wed, 11 Sep 2013 19:08:18 -0400
X-Google-Sender-Auth: klY9JSK5GrBqe7uGEaiaJtBCuTk
Message-ID: <CALaySJKz_4zj0kDWQ5JDNNF82SqQ2MRZaXagphaUVouOR14=_Q@mail.gmail.com>
From: Barry Leiba <barryleiba@computer.org>
To: "spfbis@ietf.org" <spfbis@ietf.org>
Content-Type: text/plain; charset=ISO-8859-1
Cc: "spfbis-chairs@tools.ietf.org" <spfbis-chairs@tools.ietf.org>, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Wed, 11 Sep 2013 23:08:35 -0000

> Scott and Murray are okay with the text you suggested to address the DISCUSS
> ( http://www.ietf.org/mail-archive/web/spfbis/current/msg04114.html ).
>
> The SPFBIS WG seems okay with most of the text you suggested as COMMENT.
> There are some comments from Scott (see below) for the rest.

Thanks, SM, for brokering.  As this is now going directly to the WG,
Scott, Murray, or others can respond directly at this point.

>>    The example in this section might be published via these lines in a
>>    domain zone file:
>>       example.com. TXT "v=spf1 +mx a:colo.example.com/28 -all"
>>       smtp-out.example.com. TXT "v=spf1 a -all"
>>
>> What does "smtp-out" have to do with anything?  It's not otherwise used,
>> and it seems to contradict what you say about subdomains in the previous
>> paragraph.
>
> Those are just two examples, but the preceding text is poorly worded (I
> checked and it's no better in RFC 4408).  How about this instead, to
> clarify:
>
>    The example in this section (plus an additional SPF record for
>    smtp-out.example.com) might be published via these lines in a
>    domain zone file:
>
>       example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"
>       smtp-out.example.com. TXT "v=spf1 a -all"

Well, OK... and it is a non-blocking comment, remember.  But what
value is there in including that second line at all?  You're giving a
specific example in that section, and this is supporting that example.
 If this were a general section of multiple examples, maybe.  I think
you should just strike it.

But, again: non-blocking comment.  Do as you think best, and this is
the last I'll say about this.

>>> -- 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 is discarded.
>>>
>>> Sure, and "v=spf1.0" doesn't match, and "v=spf11" doesn't match,
>>> and.... Why is it necessary or desirable to single out "v=spf10" here?
>>
>> I think "v=spf1.0" is actually the better (and perhaps intended) example,
>> meaning "don't just stuff the part after 'spf' through a number parser and
>> make sure 1 comes out".
>
> The intent here is to show that you have to look at least one character
> past "v=spf1" to know if it's an SPF record or not.  It's an example.  As
> such, it doesn't matter much wrt the point if it's "v=spf10", "v=spf1.0", or
> or "v=spf1hatespf".  None of those start SPF records.  What's there is
> unchanged from RFC 4408.  I don't seem much of a point in changing it,
> but if others think 1.0 is better than 10, I don't mind.

Again, non-blocking, so, again, do as you think is best, and this will
be my last comment on it.

It just seems bizarre to me to pick one particular invalid value and
say that it doesn't match and is discarded.  The point is that
*anything* that isn't exactly "v=spf1" doesn't match and is discarded.

Let me suggest a specific text change.  Take it, leave it, or change
it -- you don't need to bat it around with me further.

NEW
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".  The version section is terminated by either an SP character
or the end of the record; if "v=spf1" is followed by any character
other than SP, it does not match and that record is discarded.
END

>>> NEW
>>>    Some mechanisms and modifiers (collectively, "terms") cause DNS
>>>    queries at the time of evaluation, and some do not.  The following
>>>    terms cause DNS queries: <list goes here>.  SPF implementations
>>>    MUST limit the total number of those terms to 10 during SPF
>>>    evaluation, to avoid unreasonable load on the DNS.  If this limit
>>>    is exceeded, the implementation MUST return "permerror".  The other
>>>    terms (<list goes here>) do not cause DNS queries at the time of
>>>    SPF evaluation (the "exp" modifier causes a lookup at a later time),
>>>    and their use is not subject to this limit.
>>> END
>>
>> I like the new text, and prefer the second bit be included.
>
> If we change, and I think that's reasonable, the second bit should definitely
> be included.  "exp" not counting in the 10 has confused people and we
> should be explicit about it.

Kewl; thanks.

>> How about:
>>
>>    It is better to use either a "redirect" modifier or an "all" mechanism to
>>    explicitly terminate processing.  Although there is an implicit "?all" at
>>    the end of every record that is not explicitly terminated, it aids
>>   debugging efforts when it is explicitly provided.

Also nice.

>>> -- Section 5.5 --
>>>
>>>    This mechanism SHOULD NOT be published.  See below for discussion.
>>>
>>> It's quite a bit below.  I suggest "See the note at the end of this
>>> section for more information."  It might even be worth putting that note
>>> into a Section 5.5.1, so it's highlighted and more easily cited.
>>
>> +1.
>
> OK.  Someone let me know which way I should do it.  I'm OK with either.

I kind of like the separate section, but it's a smaller change to just
leave the note and say "see the note."  Unless anyone feels strongly
that a separate section is worth the trouble, I suggest just pointing
people to the note explicitly.

And again, thanks for all the work on this, and for considering my
fairly long list.

Barry

From superuser@gmail.com  Wed Sep 11 18:27:08 2013
Return-Path: <superuser@gmail.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 5630721F9123; Wed, 11 Sep 2013 18:27:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id p4w6EhFKEwSe; Wed, 11 Sep 2013 18:27:07 -0700 (PDT)
Received: from mail-wi0-x22f.google.com (mail-wi0-x22f.google.com [IPv6:2a00:1450:400c:c05::22f]) by ietfa.amsl.com (Postfix) with ESMTP id 8398721F90CC; Wed, 11 Sep 2013 18:27:06 -0700 (PDT)
Received: by mail-wi0-f175.google.com with SMTP id ez12so2866582wid.8 for <multiple recipients>; Wed, 11 Sep 2013 18:27:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=caBxd+ASYoQ9QO0L+kgzw7F/GzxLoeuB1lQoAjlFBRo=; b=ni8W8s3b5qd9tp3HVicAR3B2YQ2OT09fD5UqewIDEGqff+UYlgxGqMQee6YAa6+zBn DFacO/HoZfVsIgGKoW8YYx1OVXkgJQXp0kVPa5VmF1O9YWT+uhqcsDNuUNLMXFimCohB 7RanIQ5eOT/XLMv3VGfpA1DP/X2XIqNF7vppsNJAeUmgwRi5xmzfx/RXaq4Tc8U1dfyu HwvYZg2vb6nvKb9ALLCldOsiQAhIfIOWLUYAPry4/GxZCBLu69q2uFXIHFankDZltQb4 D/EI5kzK/ekC512tQs50i3KK0KMeY8KCBiAbvqLa0tYr3NV+RFvtD4MjkaVu3ao9qv4x MAxA==
MIME-Version: 1.0
X-Received: by 10.180.189.9 with SMTP id ge9mr3651644wic.52.1378949225672; Wed, 11 Sep 2013 18:27:05 -0700 (PDT)
Received: by 10.180.106.169 with HTTP; Wed, 11 Sep 2013 18:27:05 -0700 (PDT)
In-Reply-To: <CALaySJKz_4zj0kDWQ5JDNNF82SqQ2MRZaXagphaUVouOR14=_Q@mail.gmail.com>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130911050206.0dc1ff68@elandnews.com> <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.gmail.com> <1409783.xNJeGdWPul@scott-latitude-e6320> <6.2.5.6.2.20130911144430.0c3f7f78@resistor.net> <CALaySJKz_4zj0kDWQ5JDNNF82SqQ2MRZaXagphaUVouOR14=_Q@mail.gmail.com>
Date: Wed, 11 Sep 2013 18:27:05 -0700
Message-ID: <CAL0qLwZaS5oj+NiNecjLsmdhXz_iwn9=rEsPAUok5=u1y6F-pA@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: Barry Leiba <barryleiba@computer.org>
Content-Type: multipart/alternative; boundary=001a11c34302c276c404e625a252
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, "spfbis-chairs@tools.ietf.org" <spfbis-chairs@tools.ietf.org>, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Thu, 12 Sep 2013 01:27:08 -0000

--001a11c34302c276c404e625a252
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Sep 11, 2013 at 4:08 PM, Barry Leiba <barryleiba@computer.org>wrote:

> >>    The example in this section might be published via these lines in a
> >>    domain zone file:
> >>       example.com. TXT "v=spf1 +mx a:colo.example.com/28 -all"
> >>       smtp-out.example.com. TXT "v=spf1 a -all"
> >>
> >> What does "smtp-out" have to do with anything?  It's not otherwise used,
> >> and it seems to contradict what you say about subdomains in the previous
> >> paragraph.
> >
> > Those are just two examples, but the preceding text is poorly worded (I
> > checked and it's no better in RFC 4408).  How about this instead, to
> > clarify:
> >
> >    The example in this section (plus an additional SPF record for
> >    smtp-out.example.com) might be published via these lines in a
> >    domain zone file:
> >
> >       example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"
> >       smtp-out.example.com. TXT "v=spf1 a -all"
>
> Well, OK... and it is a non-blocking comment, remember.  But what
> value is there in including that second line at all?  You're giving a
> specific example in that section, and this is supporting that example.
>  If this were a general section of multiple examples, maybe.  I think
> you should just strike it.
>

I agree actually.  I don't know what this adds, unless we want to explain
what the use of the second record would be (e.g., there's an intent to say
with a MAIL FROM domain of smtp-out.example.com is much more tightly
constrained for some reason).  If we don't want to describe the use case,
we should strike the second record.
NEW

> 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".  The version section is terminated by either an SP character
> or the end of the record; if "v=spf1" is followed by any character
> other than SP, it does not match and that record is discarded.
> END
>

That'd be fine with me too.

-MSK

--001a11c34302c276c404e625a252
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wed, Sep 11, 2013 at 4:08 PM, Barry Leiba <span dir=3D"=
ltr">&lt;<a href=3D"mailto:barryleiba@computer.org" target=3D"_blank">barry=
leiba@computer.org</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div=
 class=3D"gmail_quote">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">&gt;&gt; =A0 =A0The example in this section =
might be published via these lines in a<br><div class=3D"im">
&gt;&gt; =A0 =A0domain zone file:<br>
&gt;&gt; =A0 =A0 =A0 <a href=3D"http://example.com" target=3D"_blank">examp=
le.com</a>. TXT &quot;v=3Dspf1 +mx a:<a href=3D"http://colo.example.com/28"=
 target=3D"_blank">colo.example.com/28</a> -all&quot;<br>
&gt;&gt; =A0 =A0 =A0 <a href=3D"http://smtp-out.example.com" target=3D"_bla=
nk">smtp-out.example.com</a>. TXT &quot;v=3Dspf1 a -all&quot;<br>
&gt;&gt;<br>
&gt;&gt; What does &quot;smtp-out&quot; have to do with anything? =A0It&#39=
;s not otherwise used,<br>
&gt;&gt; and it seems to contradict what you say about subdomains in the pr=
evious<br>
&gt;&gt; paragraph.<br>
&gt;<br>
</div><div class=3D"im">&gt; Those are just two examples, but the preceding=
 text is poorly worded (I<br>
&gt; checked and it&#39;s no better in RFC 4408). =A0How about this instead=
, to<br>
&gt; clarify:<br>
&gt;<br>
&gt; =A0 =A0The example in this section (plus an additional SPF record for<=
br>
&gt; =A0 =A0<a href=3D"http://smtp-out.example.com" target=3D"_blank">smtp-=
out.example.com</a>) might be published via these lines in a<br>
&gt; =A0 =A0domain zone file:<br>
&gt;<br>
&gt; =A0 =A0 =A0 <a href=3D"http://example.com" target=3D"_blank">example.c=
om</a>. =A0 =A0 =A0 =A0 =A0TXT &quot;v=3Dspf1 +mx a:<a href=3D"http://colo.=
example.com/28" target=3D"_blank">colo.example.com/28</a> -all&quot;<br>
&gt; =A0 =A0 =A0 <a href=3D"http://smtp-out.example.com" target=3D"_blank">=
smtp-out.example.com</a>. TXT &quot;v=3Dspf1 a -all&quot;<br>
<br>
</div>Well, OK... and it is a non-blocking comment, remember. =A0But what<b=
r>
value is there in including that second line at all? =A0You&#39;re giving a=
<br>
specific example in that section, and this is supporting that example.<br>
=A0If this were a general section of multiple examples, maybe. =A0I think<b=
r>
you should just strike it.<br></blockquote><div><br></div><div>I agree actu=
ally.=A0 I don&#39;t know what this adds, unless we want to explain what th=
e use of the second record would be (e.g., there&#39;s an intent to say wit=
h a MAIL FROM domain of <a href=3D"http://smtp-out.example.com">smtp-out.ex=
ample.com</a> is much more tightly constrained for some reason).=A0 If we d=
on&#39;t want to describe the use case, we should strike the second record.=
<br>
NEW<br>
</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-l=
eft:1px #ccc solid;padding-left:1ex"><div class=3D"im">Starting with the se=
t of records that were returned by the lookup,<br>
discard records that do not begin with a version section of exactly<br>
</div>&quot;v=3Dspf1&quot;. =A0The version section is terminated by either =
an SP character<br>
or the end of the record; if &quot;v=3Dspf1&quot; is followed by any charac=
ter<br>
other than SP, it does not match and that record is discarded.<br>
END<br></blockquote><div><br></div><div>That&#39;d be fine with me too.<br>=
<br>-MSK<br></div></div></div></div>

--001a11c34302c276c404e625a252--

From johnl@iecc.com  Wed Sep 11 18:33:53 2013
Return-Path: <johnl@iecc.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 82D6F11E80ED for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 18:33:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.339
X-Spam-Level: 
X-Spam-Status: No, score=-102.339 tagged_above=-999 required=5 tests=[AWL=0.260, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DDQB3H26uWMq for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 18:33:49 -0700 (PDT)
Received: from leila.iecc.com (leila6.iecc.com [IPv6:2001:470:1f07:1126:0:4c:6569:6c61]) by ietfa.amsl.com (Postfix) with ESMTP id 0A65121F9E94 for <spfbis@ietf.org>; Wed, 11 Sep 2013 18:33:36 -0700 (PDT)
Received: (qmail 96841 invoked from network); 12 Sep 2013 01:33:36 -0000
Received: from leila.iecc.com (64.57.183.34) by mail1.iecc.com with QMQP; 12 Sep 2013 01:33:36 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=iecc.com; h=date:message-id:from:to:cc:subject:in-reply-to:mime-version:content-type:content-transfer-encoding; s=523119f0.xn--i8sz2z.k1309; i=johnl@user.iecc.com; bh=BMWfCNvNS0QNaEl3P6aNx+PviLIhWbZfrigFbdTa5g0=; b=jCDcdFfJKXyoRAA2qPCP2GO8/PUOfZIUx0Jz42ZwyVEgllPVSTsGNDmGe27/eqE6umtgtfADd3oxFEEBS2OeMkuv7TJDs8c0466Zx9jJPAu5uo03aj/GUGc4l+WcC/kjgCvG6JMcoayrxyTFydzLURih8TBHpgPqAyGLpjJ5IrWvh7XVfcMdAI2Y4At3rkWZLfapuv6Xf7DkKVlpm9gYxYLm/LcK8DMelqcV2C6NO6DNVYYNPXWq1D3Jrfsu8iko
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=taugh.com; h=date:message-id:from:to:cc:subject:in-reply-to:mime-version:content-type:content-transfer-encoding; s=523119f0.xn--i8sz2z.k1309; olt=johnl@user.iecc.com; bh=BMWfCNvNS0QNaEl3P6aNx+PviLIhWbZfrigFbdTa5g0=; b=BTIZWvYCIKu2IoYfV6hnUGyxYnIO3TR24x06h1Y8Txi2HInM9xbJCf0sWehaee8sczDIhtSEwgMHBLuQni8WV4/+fCvGZrot1ehExVuhniPJQVMGN0i7qhxKoxotzk6ij9ZXoM9J7c14ufNBQgw+vT8eDxrp1jxp9SskDHjj06LUBx31umrjwas8mJVKVaPaX02DocGkkdBN3U2peOFZWlvmwO5+MOa3Ji41NXULCVLluNsXdspwzHEcpZHP+w1i
Date: 12 Sep 2013 01:33:13 -0000
Message-ID: <20130912013313.42887.qmail@joyce.lan>
From: "John Levine" <johnl@taugh.com>
To: spfbis@ietf.org
In-Reply-To: <20130911222127.9E3FC6485A6@rock.dv.isc.org>
Organization: 
X-Headerized: yes
Mime-Version: 1.0
Content-type: text/plain; charset=utf-8
Content-transfer-encoding: 8bit
Cc: marka@isc.org
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Thu, 12 Sep 2013 01:33:53 -0000

In article <20130911222127.9E3FC6485A6@rock.dv.isc.org> you write:
>
>Why don't we just be honest and state that the working group did
>not proceed with the migration because Microsoft failed to supply
>a RFC 1304 compliant resolver (no support for arbitary type lookups),
>and failed to supply a authoritative nameserver that supported
>arbitary types despite RFC 3597 (standards track) stating how to
>do so for the Microsoft Windows platform.

Because it's not true.  MS may have cruddy DNS software, but that was
not and is not the only or the primary issue.  See the previous
million or so messages on this topic for details.

R's,
John

From johnl@iecc.com  Wed Sep 11 18:51:09 2013
Return-Path: <johnl@iecc.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 CFC8711E80F6 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 18:51:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.413
X-Spam-Level: 
X-Spam-Status: No, score=-102.413 tagged_above=-999 required=5 tests=[AWL=0.186, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id V1ZoHoNTPVS2 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 18:51:05 -0700 (PDT)
Received: from leila.iecc.com (leila6.iecc.com [IPv6:2001:470:1f07:1126:0:4c:6569:6c61]) by ietfa.amsl.com (Postfix) with ESMTP id 4869111E815F for <spfbis@ietf.org>; Wed, 11 Sep 2013 18:51:05 -0700 (PDT)
Received: (qmail 99313 invoked from network); 12 Sep 2013 01:51:02 -0000
Received: from leila.iecc.com (64.57.183.34) by mail1.iecc.com with QMQP; 12 Sep 2013 01:51:02 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=iecc.com; h=date:message-id:from:to:cc:subject:in-reply-to:mime-version:content-type:content-transfer-encoding; s=52311e06.xn--9vv.k1309; i=johnl@user.iecc.com; bh=TEX8xyKVTpqTRdFAHC/iw1Vhq7uChCtEle3Gkb6P6dU=; b=wKJe/SOofUvwbdUwqMXEi38tZG97B+rXpayiwKCFWUSCNy49oJRob3qzH1EI7+3MLeNmmWT30lNMtzUa65OXcAakv+S/0IAikjA0nhWUy4Lb5dhLsQUmknvIraaOmX49wt/OZ5q/FYPYPmrEdEO/pSgxU8XrFFcI9urdQwPTPH6Pnzr6lQw+UsyEL3AyKS+kHsjp7wnVMY/HRHFCXFhYWInmSy+srLpkfjRdAjo/MIf87VcjTzoI02WTWfy8KdIO
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=taugh.com; h=date:message-id:from:to:cc:subject:in-reply-to:mime-version:content-type:content-transfer-encoding; s=52311e06.xn--9vv.k1309; olt=johnl@user.iecc.com; bh=TEX8xyKVTpqTRdFAHC/iw1Vhq7uChCtEle3Gkb6P6dU=; b=F0h4DtGkOTmj1q/jfj2eTK5pvZvw9EeyYvYLi6IX2Ut2uGgXE1MCc5jqveX0+LefsIMCKwDAhyCZ2ecK6eWJfQC4Hhf8gquOx3Dv43pmnX9LcsGA4Ppes8sFCfi4Y1zzb8oG9MuT15z8FuoWEm8RrcxMMjLolSAhFUTd9g8NE2nG4eOjRGQPprEUbAH3Us7VRm/7zSHHS9CqoxADjsOUtKRFhACuZC9VXcIwQ6gtFUqA6fm7ZMhniOUaPsJIX5O4
Date: 12 Sep 2013 01:50:39 -0000
Message-ID: <20130912015039.43001.qmail@joyce.lan>
From: "John Levine" <johnl@taugh.com>
To: spfbis@ietf.org
In-Reply-To: <CAL0qLwZaS5oj+NiNecjLsmdhXz_iwn9=rEsPAUok5=u1y6F-pA@mail.gmail.com>
Organization: 
X-Headerized: yes
Mime-Version: 1.0
Content-type: text/plain; charset=utf-8
Content-transfer-encoding: 8bit
Cc: superuser@gmail.com
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Thu, 12 Sep 2013 01:51:09 -0000

>I agree actually.  I don't know what this adds, unless we want to explain
>what the use of the second record would be (e.g., there's an intent to say
>with a MAIL FROM domain of smtp-out.example.com is much more tightly
>constrained for some reason).  If we don't want to describe the use case,
>we should strike the second record.

I'd think that smtp-out.example.com is the host name of the SMTP server so it appears
in the EHLO, and SPF uses it for bounces with null senders.

R's,
John

From marka@isc.org  Wed Sep 11 18:59:36 2013
Return-Path: <marka@isc.org>
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 4230211E80F6 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 18:59:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id d5Y8MqL0-k6t for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 18:59:30 -0700 (PDT)
Received: from mx.pao1.isc.org (mx.pao1.isc.org [IPv6:2001:4f8:0:2::2b]) by ietfa.amsl.com (Postfix) with ESMTP id 768DA21F8F9A for <spfbis@ietf.org>; Wed, 11 Sep 2013 18:59:30 -0700 (PDT)
Received: from mx.pao1.isc.org (localhost [127.0.0.1]) by mx.pao1.isc.org (Postfix) with ESMTP id 0480FC94B6; Thu, 12 Sep 2013 01:59:17 +0000 (UTC) (envelope-from marka@isc.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=isc.org; s=dkim2012; t=1378951170; bh=gbF9ER+0XDGRN+KuYI1tFZEC0m3v+9X5R2t67pUG6+g=; h=To:Cc:From:References:Subject:In-reply-to:Date; b=pKzhZdsizpO2fTDdhIRrL6vZ2EdMTDj2uxd7Puc4YEwreQTRlrJDUuVR3fUu1Ycq0 ZqMJkLIpDUqTGzQ5On1z0rl86x/qvSk3vb35E2hXIIoHG2BHYMH3qKtS++qKevEqU0 bhnN4SItz2Ftt+pjhlE2efLoSyV9NlGg907K3hts=
Received: from zmx1.isc.org (zmx1.isc.org [149.20.0.20]) by mx.pao1.isc.org (Postfix) with ESMTP; Thu, 12 Sep 2013 01:59:17 +0000 (UTC) (envelope-from marka@isc.org)
Received: from zmx1.isc.org (localhost [127.0.0.1]) by zmx1.isc.org (Postfix) with ESMTP id 4BD67160446; Thu, 12 Sep 2013 02:01:01 +0000 (UTC)
Received: from rock.dv.isc.org (c211-30-183-50.carlnfd1.nsw.optusnet.com.au [211.30.183.50]) by zmx1.isc.org (Postfix) with ESMTPSA id 187FF160363; Thu, 12 Sep 2013 02:01:01 +0000 (UTC)
Received: from rock.dv.isc.org (localhost [IPv6:::1]) by rock.dv.isc.org (Postfix) with ESMTP id 3186464C0A4; Thu, 12 Sep 2013 11:59:14 +1000 (EST)
To: "John Levine" <johnl@taugh.com>
From: Mark Andrews <marka@isc.org>
References: <20130912013313.42887.qmail@joyce.lan>
In-reply-to: Your message of "12 Sep 2013 01:33:13 +0000." <20130912013313.42887.qmail@joyce.lan>
Date: Thu, 12 Sep 2013 11:59:14 +1000
Message-Id: <20130912015914.3186464C0A4@rock.dv.isc.org>
X-DCC--Metrics: post.isc.org; whitelist
Cc: spfbis@ietf.org
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Thu, 12 Sep 2013 01:59:36 -0000

In message <20130912013313.42887.qmail@joyce.lan>, "John Levine" writes:
> In article <20130911222127.9E3FC6485A6@rock.dv.isc.org> you write:
> >
> >Why don't we just be honest and state that the working group did
> >not proceed with the migration because Microsoft failed to supply
> >a RFC 1304 compliant resolver (no support for arbitary type lookups),
> >and failed to supply a authoritative nameserver that supported
> >arbitary types despite RFC 3597 (standards track) stating how to
> >do so for the Microsoft Windows platform.
> 
> Because it's not true.  MS may have cruddy DNS software, but that was
> not and is not the only or the primary issue.  See the previous
> million or so messages on this topic for details.

Not having a manditory type was a bogus excuse as we needed to go from
TXT only to SPF only.  It was a MIGRATION.  Having TXT only publisher
not "working" with SPF only checkers was NOT broken.  It should
have been a INTENTED result of successful MIGTATION.

The end state of the MIGRATION was SPF only for both publishers and
checkers which would NEVER interoperate with "TXT only" publishers
and checkers.

Once you swallow the bogus arguement that "ALL publishers have to work
with ALL checkers" you can't have a MIGRATION as it becomes logically
impossible to do.

Then it just came down to pragmatics.  Microsoft's lack to support was
a big part of the pragmatics arguement.

Mark

> R's,
> John
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka@isc.org

From spf2@kitterman.com  Wed Sep 11 21:34:54 2013
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 6922E11E8130 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 21:34:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.327
X-Spam-Level: 
X-Spam-Status: No, score=-2.327 tagged_above=-999 required=5 tests=[AWL=0.272,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AyqyNRwZaJhg for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 21:34:50 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id C4CDB11E814E for <spfbis@ietf.org>; Wed, 11 Sep 2013 21:34:47 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 9CE0B20E40EA; Thu, 12 Sep 2013 00:34:45 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378960485; bh=xhl73ibhsp9d7YTsAvWKKSQQNGmrCrkMT9qqEQw/G9I=; h=From:To:Subject:Date:In-Reply-To:References:From; b=ldU3mrIOoLUJcNLgg8zTcO9njnVowWnqkqXxGnEHWMojlqpC1rGeSDxO27bUpAedT /NiqtuoqmisPmRhTeLJDBM+yiM6XLB6QyhO1DSgjNNwFC77jbtI6zpnUzdcLjoDyJk 79Z3fJQwFlloA3jG5y0VcrBb+nvJnnNGXGjjLt1A=
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 803F920E40D2;  Thu, 12 Sep 2013 00:34:45 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Thu, 12 Sep 2013 00:34:44 -0400
Message-ID: <1461923.BurkIj9pH1@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <CALaySJKz_4zj0kDWQ5JDNNF82SqQ2MRZaXagphaUVouOR14=_Q@mail.gmail.com>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130911144430.0c3f7f78@resistor.net> <CALaySJKz_4zj0kDWQ5JDNNF82SqQ2MRZaXagphaUVouOR14=_Q@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] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Thu, 12 Sep 2013 04:34:54 -0000

On Wednesday, September 11, 2013 19:08:18 Barry Leiba wrote:
> > Scott and Murray are okay with the text you suggested to address the
> > DISCUSS (
> > http://www.ietf.org/mail-archive/web/spfbis/current/msg04114.html ).
> > 
> > The SPFBIS WG seems okay with most of the text you suggested as COMMENT.
> > There are some comments from Scott (see below) for the rest.
> 
> Thanks, SM, for brokering.  As this is now going directly to the WG,
> Scott, Murray, or others can respond directly at this point.
> 
> >>    The example in this section might be published via these lines in a
> >>    
> >>    domain zone file:
> >>       example.com. TXT "v=spf1 +mx a:colo.example.com/28 -all"
> >>       smtp-out.example.com. TXT "v=spf1 a -all"
> >> 
> >> What does "smtp-out" have to do with anything?  It's not otherwise used,
> >> and it seems to contradict what you say about subdomains in the previous
> >> paragraph.
> > 
> > Those are just two examples, but the preceding text is poorly worded (I
> > checked and it's no better in RFC 4408).  How about this instead, to
> > 
> > clarify:
> >    The example in this section (plus an additional SPF record for
> >    smtp-out.example.com) might be published via these lines in a
> >    
> >    domain zone file:
> >       example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"
> >       smtp-out.example.com. TXT "v=spf1 a -all"
> 
> Well, OK... and it is a non-blocking comment, remember.  But what
> value is there in including that second line at all?  You're giving a
> specific example in that section, and this is supporting that example.
>  If this were a general section of multiple examples, maybe.  I think
> you should just strike it.
> 
> But, again: non-blocking comment.  Do as you think best, and this is
> the last I'll say about this.

I think that makes sense.  I removed it.

> >>> -- 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 is discarded.
> >>> 
> >>> Sure, and "v=spf1.0" doesn't match, and "v=spf11" doesn't match,
> >>> and.... Why is it necessary or desirable to single out "v=spf10" here?
> >> 
> >> I think "v=spf1.0" is actually the better (and perhaps intended) example,
> >> meaning "don't just stuff the part after 'spf' through a number parser
> >> and
> >> make sure 1 comes out".
> > 
> > The intent here is to show that you have to look at least one character
> > past "v=spf1" to know if it's an SPF record or not.  It's an example.  As
> > such, it doesn't matter much wrt the point if it's "v=spf10", "v=spf1.0",
> > or or "v=spf1hatespf".  None of those start SPF records.  What's there is
> > unchanged from RFC 4408.  I don't seem much of a point in changing it,
> > but if others think 1.0 is better than 10, I don't mind.
> 
> Again, non-blocking, so, again, do as you think is best, and this will
> be my last comment on it.
> 
> It just seems bizarre to me to pick one particular invalid value and
> say that it doesn't match and is discarded.  The point is that
> *anything* that isn't exactly "v=spf1" doesn't match and is discarded.
> 
> Let me suggest a specific text change.  Take it, leave it, or change
> it -- you don't need to bat it around with me further.
> 
> NEW
> 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".  The version section is terminated by either an SP character
> or the end of the record; if "v=spf1" is followed by any character
> other than SP, it does not match and that record is discarded.
> END

Thanks.  I changed the existing text to have the sentence start, "As an 
example, ..." so that it's clear this is exemplary.  I think that is the 
minimal change that should resolve this.

> >>> NEW
> >>> 
> >>>    Some mechanisms and modifiers (collectively, "terms") cause DNS
> >>>    queries at the time of evaluation, and some do not.  The following
> >>>    terms cause DNS queries: <list goes here>.  SPF implementations
> >>>    MUST limit the total number of those terms to 10 during SPF
> >>>    evaluation, to avoid unreasonable load on the DNS.  If this limit
> >>>    is exceeded, the implementation MUST return "permerror".  The other
> >>>    terms (<list goes here>) do not cause DNS queries at the time of
> >>>    SPF evaluation (the "exp" modifier causes a lookup at a later time),
> >>>    and their use is not subject to this limit.
> >>> 
> >>> END
> >> 
> >> I like the new text, and prefer the second bit be included.
> > 
> > If we change, and I think that's reasonable, the second bit should
> > definitely be included.  "exp" not counting in the 10 has confused people
> > and we should be explicit about it.
> 
> Kewl; thanks.

Did that.

> >> How about:
> >>    It is better to use either a "redirect" modifier or an "all" mechanism
> >>    to
> >>    explicitly terminate processing.  Although there is an implicit "?all"
> >>    at
> >>    the end of every record that is not explicitly terminated, it aids
> >>   
> >>   debugging efforts when it is explicitly provided.
> 
> Also nice.

Done.

> >>> -- Section 5.5 --
> >>> 
> >>>    This mechanism SHOULD NOT be published.  See below for discussion.
> >>> 
> >>> It's quite a bit below.  I suggest "See the note at the end of this
> >>> section for more information."  It might even be worth putting that note
> >>> into a Section 5.5.1, so it's highlighted and more easily cited.
> >> 
> >> +1.
> > 
> > OK.  Someone let me know which way I should do it.  I'm OK with either.
> 
> I kind of like the separate section, but it's a smaller change to just
> leave the note and say "see the note."  Unless anyone feels strongly
> that a separate section is worth the trouble, I suggest just pointing
> people to the note explicitly.

I just pointed at the note.

> And again, thanks for all the work on this, and for considering my
> fairly long list.

Thanks for the feedback.  I'll post a new diff shortly.

Scott K

From spf2@kitterman.com  Wed Sep 11 21:49:25 2013
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 7881311E80EA for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 21:49:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.853
X-Spam-Level: 
X-Spam-Status: No, score=-0.853 tagged_above=-999 required=5 tests=[AWL=-1.270, BAYES_40=-0.185, HTML_MESSAGE=0.001, J_CHICKENPOX_33=0.6, NORMAL_HTTP_TO_IP=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lYo7+opTwVVx for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 21:49:20 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 2005311E8137 for <spfbis@ietf.org>; Wed, 11 Sep 2013 21:49:20 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id EA06920E40EA; Thu, 12 Sep 2013 00:49:16 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378961357; bh=sCot8uDRcvvDsmrujOjvNFC6HgYec7b8nyoh+Dg8vBg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cpfVC3H+x1RFjyLur8H2mswwHIgs28zZ1gx+Ezi2c4Po2QsD0/aWB/+l0WNgwIuEZ rHKvSYej3XOefzZThhHbIM9OAuP2SBzlbTbQehMact5N75Ti/gXkv78BZvFpM8pONf gV+XF7Ll4Lq3P23ubzLJd2V2NSTtht2M97kcgXhs=
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 BDDB320E40D2;  Thu, 12 Sep 2013 00:49:16 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: S Moonesamy <sm+ietf@elandsys.com>, Pete Resnick <presnick@qti.qualcomm.com>
Date: Thu, 12 Sep 2013 00:49:16 -0400
Message-ID: <2405077.Cn8DraDvER@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <6.2.5.6.2.20130911150339.0c435c60@elandnews.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <1623078.iZZXT7WM88@scott-latitude-e6320> <6.2.5.6.2.20130911150339.0c435c60@elandnews.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="nextPart459656491.JZNEy2MKK3"
Content-Transfer-Encoding: 7Bit
X-AV-Checked: ClamAV using ClamSMTP
Cc: spfbis@ietf.org
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Thu, 12 Sep 2013 04:49:25 -0000

This is a multi-part message in MIME format.

--nextPart459656491.JZNEy2MKK3
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"

On Wednesday, September 11, 2013 15:09:37 S Moonesamy wrote:
> Hi Scott,
> 
> At 15:01 11-09-2013, Scott Kitterman wrote:
> >I think all of Pete's suggestions are good.  Should I go ahead and update
> >my local copy of the to be -20?
> 
> Okay.  Please go ahead and update your local copy.  Please do not
> post a new revision of the draft.

Done.  rfcdiff of the full post -19 diff attached.  I've applied the changes due 
to Barry's comments as well.

> Could you please send me the text or post the text to the SPFBIS
> mailing list so that this change is clear to everyone?  This was the
> main issue raised during the Last Call.  It would make the rest of
> the work easier if we can get this one out of the way.

Here is the revised section 3.1:

3.1.  DNS Resource Records

    SPF records MUST be published as a DNS TXT (type 16) Resource Record
    (RR) [RFC1035] only.  The character content of the record is encoded
    as [US-ASCII].  Use of alternative DNS RR types was supported in
-   SPF's experimental phase, but has been discontinued.  See Appendix A
-   of [RFC6686] for further information.
+   SPF's experimental phase, but has been discontinued.

+   In 2003, when SPF was first being developed, the requirements for
+   assignment of a new DNS RR type were considerably more stringent than
+   they are now.  Additionally, support for easy deployment of new DNS
+   RR types was not widely deployed in DNS servers and provisioning
+   systems.  As a result, developers of SPF found it easier and more
+   practical to use the TXT RR type for SPF records.

+   In its review of [RFC4408] the SPFbis working group concluded that
+   its dual RR type transition model was fundamentally flawed since it
+   contained no common RR type that implementers were required to serve
+   and required to check.  Many alternatives were considered to resolve
+   this issue, but ultimately the working group concluded that
+   significant migration to the SPF RR type in the foreseeable future was
+   very unlikely and that the best solution for resolving this
+   interoperability issue was to drop support for the SPF RR type from
+   SPF version 1.  See Appendix A of [RFC6686] for further information.
+
+   The circumstances surrounding SPF's initial deployment a decade ago
+   are unique.  If a future update to SPF were developed that did not
+   reuse existing SPF records, it could use the SPF RR type.  SPF's use
+   of the TXT RR type for structured data should in no way be taken as
+   precedent for future protocol designers.  Further discussion of
+   design considerations when using new DNS RR types can be found in
+   [RFC5507].

I am waiting any changes based on the SECDIR review for some responses to my 
last message on that topic.

Scott K
--nextPart459656491.JZNEy2MKK3
Content-Disposition: attachment; filename="draft-ietf-spfbis-4408bis-20-from-19.diff.html"
Content-Transfer-Encoding: 7Bit
Content-Type: text/html; charset="UTF-8"; name="draft-ietf-spfbis-4408bis-20-from-19.diff.html"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!-- Generated by rfcdiff 1.41: rfcdiff  --> 
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional" > -->
<!-- System: Linux Scott-Latitude-E6320 3.8.0-30-generic #44-Ubuntu SMP Thu Aug 22 20:54:42 UTC 2013 i686 i686 i686 GNU/Linux --> 
<!-- Using awk: /usr/bin/gawk: GNU Awk 4.0.1 --> 
<!-- Using diff: /usr/bin/diff: diff (GNU diffutils) 3.2 --> 
<!-- Using wdiff: /usr/bin/wdiff: wdiff (GNU wdiff) 1.1.2 --> 
<html> 
<head> 
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
  <meta http-equiv="Content-Style-Type" content="text/css" /> 
  <title>Diff: draft-ietf-spfbis-4408bis-19.txt - draft-ietf-spfbis-4408bis-20.txt</title> 
  <style type="text/css"> 
    body    { margin: 0.4ex; margin-right: auto; } 
    tr      { } 
    td      { white-space: pre; font-family: monospace; vertical-align: top; font-size: 0.86em;} 
    th      { font-size: 0.86em; } 
    .small  { font-size: 0.6em; font-style: italic; font-family: Verdana, Helvetica, sans-serif; } 
    .left   { background-color: #EEE; } 
    .right  { background-color: #FFF; } 
    .diff   { background-color: #CCF; } 
    .lblock { background-color: #BFB; } 
    .rblock { background-color: #FF8; } 
    .insert { background-color: #8FF; } 
    .delete { background-color: #ACF; } 
    .void   { background-color: #FFB; } 
    .cont   { background-color: #EEE; } 
    .linebr { background-color: #AAA; } 
    .lineno { color: red; background-color: #FFF; font-size: 0.7em; text-align: right; padding: 0 2px; } 
    .elipsis{ background-color: #AAA; } 
    .left .cont { background-color: #DDD; } 
    .right .cont { background-color: #EEE; } 
    .lblock .cont { background-color: #9D9; } 
    .rblock .cont { background-color: #DD6; } 
    .insert .cont { background-color: #0DD; } 
    .delete .cont { background-color: #8AD; } 
    .stats, .stats td, .stats th { background-color: #EEE; padding: 2px 0; } 
  </style> 
</head> 
<body > 
  <table border="0" cellpadding="0" cellspacing="0"> 
  <tr bgcolor="orange"><th></th><th>&nbsp;draft-ietf-spfbis-4408bis-19.txt&nbsp;</th><th> </th><th>&nbsp;draft-ietf-spfbis-4408bis-20.txt&nbsp;</th><th></th></tr> 
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Network Working Group                                       S. Kitterman</td><td> </td><td class="right">Network Working Group                                       S. Kitterman</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Internet-Draft                              Kitterman Technical Services</td><td> </td><td class="right">Internet-Draft                              Kitterman Technical Services</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0001" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Obsoletes: 4408 (if approved)                         <span class="delete">   August 17</span>, 2013</td><td> </td><td class="rblock">Obsoletes: 4408 (if approved)                         <span class="insert">September 12</span>, 2013</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Intended status: Standards Track</td><td> </td><td class="right">Intended status: Standards Track</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0002" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Expires: <span class="delete">February 18</span>, 2014</td><td> </td><td class="rblock">Expires: <span class="insert">March 16</span>, 2014</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"> Sender Policy Framework (SPF) for Authorizing Use of Domains in Email,</td><td> </td><td class="right"> Sender Policy Framework (SPF) for Authorizing Use of Domains in Email,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                               Version 1</td><td> </td><td class="right">                               Version 1</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0003" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">                      draft-ietf-spfbis-4408bis-<span class="delete">19</span></td><td> </td><td class="rblock">                      draft-ietf-spfbis-4408bis-<span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Abstract</td><td> </td><td class="right">Abstract</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Email on the Internet can be forged in a number of ways.  In</td><td> </td><td class="right">   Email on the Internet can be forged in a number of ways.  In</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   particular, existing protocols place no restriction on what a sending</td><td> </td><td class="right">   particular, existing protocols place no restriction on what a sending</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   host can use as the "MAIL FROM" of a message or the domain given on</td><td> </td><td class="right">   host can use as the "MAIL FROM" of a message or the domain given on</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the SMTP HELO/EHLO commands.  This document describes version 1 of</td><td> </td><td class="right">   the SMTP HELO/EHLO commands.  This document describes version 1 of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the Sender Policy Framework (SPF) protocol, whereby ADministrative</td><td> </td><td class="right">   the Sender Policy Framework (SPF) protocol, whereby ADministrative</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Management Domains (ADMDs) can explicitly authorize the hosts that</td><td> </td><td class="right">   Management Domains (ADMDs) can explicitly authorize the hosts that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   are allowed to use its domain names, and a receiving host can check</td><td> </td><td class="right">   are allowed to use its domain names, and a receiving host can check</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 1, line 41</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 1, line 41</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are working documents of the Internet Engineering</td><td> </td><td class="right">   Internet-Drafts are working documents of the Internet Engineering</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Task Force (IETF).  Note that other groups may also distribute</td><td> </td><td class="right">   Task Force (IETF).  Note that other groups may also distribute</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   working documents as Internet-Drafts.  The list of current Internet-</td><td> </td><td class="right">   working documents as Internet-Drafts.  The list of current Internet-</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td> </td><td class="right">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are draft documents valid for a maximum of six months</td><td> </td><td class="right">   Internet-Drafts are draft documents valid for a maximum of six months</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and may be updated, replaced, or obsoleted by other documents at any</td><td> </td><td class="right">   and may be updated, replaced, or obsoleted by other documents at any</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   time.  It is inappropriate to use Internet-Drafts as reference</td><td> </td><td class="right">   time.  It is inappropriate to use Internet-Drafts as reference</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   material or to cite them other than as "work in progress."</td><td> </td><td class="right">   material or to cite them other than as "work in progress."</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0004" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This Internet-Draft will expire on <span class="delete">February 18</span>, 2014.</td><td> </td><td class="rblock">   This Internet-Draft will expire on <span class="insert">March 16</span>, 2014.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Copyright Notice</td><td> </td><td class="right">Copyright Notice</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Copyright (c) 2013 IETF Trust and the persons identified as the</td><td> </td><td class="right">   Copyright (c) 2013 IETF Trust and the persons identified as the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   document authors.  All rights reserved.</td><td> </td><td class="right">   document authors.  All rights reserved.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td> </td><td class="right">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Provisions Relating to IETF Documents</td><td> </td><td class="right">   Provisions Relating to IETF Documents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td> </td><td class="right">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   publication of this document.  Please review these documents</td><td> </td><td class="right">   publication of this document.  Please review these documents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> page 3, line 32</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> page 3, line 32</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   3.  SPF Records  . . . . . . . . . . . . . . . . . . . . . . . . . 12</td><td> </td><td class="right">   3.  SPF Records  . . . . . . . . . . . . . . . . . . . . . . . . . 12</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     3.1.  DNS Resource Records . . . . . . . . . . . . . . . . . . . 12</td><td> </td><td class="right">     3.1.  DNS Resource Records . . . . . . . . . . . . . . . . . . . 12</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     3.2.  Multiple DNS Records . . . . . . . . . . . . . . . . . . . 13</td><td> </td><td class="right">     3.2.  Multiple DNS Records . . . . . . . . . . . . . . . . . . . 13</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     3.3.  Multiple Strings in a Single DNS record  . . . . . . . . . 13</td><td> </td><td class="right">     3.3.  Multiple Strings in a Single DNS record  . . . . . . . . . 13</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0005" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.4.  Record Size  . . . . . . . . . . . . . . . . . . . . . . . 1<span class="delete">3</span></td><td> </td><td class="rblock">     3.4.  Record Size  . . . . . . . . . . . . . . . . . . . . . . . 1<span class="insert">4</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     3.5.  Wildcard Records . . . . . . . . . . . . . . . . . . . . . 14</td><td> </td><td class="right">     3.5.  Wildcard Records . . . . . . . . . . . . . . . . . . . . . 14</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0006" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   4.  The check_host() Function  . . . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock">   4.  The check_host() Function  . . . . . . . . . . . . . . . . . . <span class="insert">16</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.1.  Arguments  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock">     4.1.  Arguments  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">16</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.2.  Results  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">15</span></td><td> </td><td class="rblock">     4.2.  Results  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">16</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.3.  Initial Processing . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">     4.3.  Initial Processing . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.4.  Record Lookup  . . . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">     4.4.  Record Lookup  . . . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.5.  Selecting Records  . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">     4.5.  Selecting Records  . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.6.  Record Evaluation  . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">     4.6.  Record Evaluation  . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.1.  Term Evaluation  . . . . . . . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock">       4.6.1.  Term Evaluation  . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.2.  Mechanisms . . . . . . . . . . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock">       4.6.2.  Mechanisms . . . . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.3.  Modifiers  . . . . . . . . . . . . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock">       4.6.3.  Modifiers  . . . . . . . . . . . . . . . . . . . . . . <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.4.  DNS Lookup Limits  . . . . . . . . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock">       4.6.4.  DNS Lookup Limits  . . . . . . . . . . . . . . . . . . <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.7.  Default Result . . . . . . . . . . . . . . . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock">     4.7.  Default Result . . . . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.8.  Domain Specification . . . . . . . . . . . . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock">     4.8.  Domain Specification . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   5.  Mechanism Definitions  . . . . . . . . . . . . . . . . . . . . <span class="delete">21</span></td><td> </td><td class="rblock">   5.  Mechanism Definitions  . . . . . . . . . . . . . . . . . . . . <span class="insert">22</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.1.  "all"  . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">22</span></td><td> </td><td class="rblock">     5.1.  "all"  . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">23</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.2.  "include"  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">22</span></td><td> </td><td class="rblock">     5.2.  "include"  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">23</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.3.  "a"  . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">24</span></td><td> </td><td class="rblock">     5.3.  "a"  . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">25</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.4.  "mx" . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">24</span></td><td> </td><td class="rblock">     5.4.  "mx" . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">25</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.5.  "ptr" (do not use) . . . . . . . . . . . . . . . . . . . . <span class="delete">24</span></td><td> </td><td class="rblock">     5.5.  "ptr" (do not use) . . . . . . . . . . . . . . . . . . . . <span class="insert">25</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.6.  "ip4" and "ip6"  . . . . . . . . . . . . . . . . . . . . . <span class="delete">26</span></td><td> </td><td class="rblock">     5.6.  "ip4" and "ip6"  . . . . . . . . . . . . . . . . . . . . . <span class="insert">27</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.7.  "exists" . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">26</span></td><td> </td><td class="rblock">     5.7.  "exists" . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">27</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   6.  Modifier Definitions . . . . . . . . . . . . . . . . . . . . . <span class="delete">28</span></td><td> </td><td class="rblock">   6.  Modifier Definitions . . . . . . . . . . . . . . . . . . . . . <span class="insert">29</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     6.1.  redirect: Redirected Query . . . . . . . . . . . . . . . . <span class="delete">28</span></td><td> </td><td class="rblock">     6.1.  redirect: Redirected Query . . . . . . . . . . . . . . . . <span class="insert">29</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     6.2.  exp: Explanation . . . . . . . . . . . . . . . . . . . . . <span class="delete">29</span></td><td> </td><td class="rblock">     6.2.  exp: Explanation . . . . . . . . . . . . . . . . . . . . . <span class="insert">30</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   7.  Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">31</span></td><td> </td><td class="rblock">   7.  Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.1.  Formal Specification . . . . . . . . . . . . . . . . . . . <span class="delete">31</span></td><td> </td><td class="rblock">     7.1.  Formal Specification . . . . . . . . . . . . . . . . . . . <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.2.  Macro Definitions  . . . . . . . . . . . . . . . . . . . . <span class="delete">31</span></td><td> </td><td class="rblock">     7.2.  Macro Definitions  . . . . . . . . . . . . . . . . . . . . <span class="insert">32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.3.  Macro Processing Details . . . . . . . . . . . . . . . . . <span class="delete">32</span></td><td> </td><td class="rblock">     7.3.  Macro Processing Details . . . . . . . . . . . . . . . . . <span class="insert">33</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.4.  Expansion Examples . . . . . . . . . . . . . . . . . . . . <span class="delete">34</span></td><td> </td><td class="rblock">     7.4.  Expansion Examples . . . . . . . . . . . . . . . . . . . . <span class="insert">35</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   8.  Result Handling  . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">36</span></td><td> </td><td class="rblock">   8.  Result Handling  . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">37</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.1.  None . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">36</span></td><td> </td><td class="rblock">     8.1.  None . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">37</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">36</span></td><td> </td><td class="rblock">     8.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">37</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock">     8.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock">     8.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock">     8.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">38</span></td><td> </td><td class="rblock">     8.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">39</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">38</span></td><td> </td><td class="rblock">     8.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">39</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   9.  Recording the Result . . . . . . . . . . . . . . . . . . . . . <span class="delete">39</span></td><td> </td><td class="rblock">   9.  Recording the Result . . . . . . . . . . . . . . . . . . . . . <span class="insert">40</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.1.  The Received-SPF Header Field  . . . . . . . . . . . . . . <span class="delete">39</span></td><td> </td><td class="rblock">     9.1.  The Received-SPF Header Field  . . . . . . . . . . . . . . <span class="insert">40</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.2.  SPF Results in the Authentication-Results Header Field . . <span class="delete">41</span></td><td> </td><td class="rblock">     9.2.  SPF Results in the Authentication-Results Header Field . . <span class="insert">42</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   10. Effects on Infrastructure  . . . . . . . . . . . . . . . . . . <span class="delete">43</span></td><td> </td><td class="rblock">   10. Effects on Infrastructure  . . . . . . . . . . . . . . . . . . <span class="insert">44</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     10.1. Sending Domains  . . . . . . . . . . . . . . . . . . . . . <span class="delete">43</span></td><td> </td><td class="rblock">     10.1. Sending Domains  . . . . . . . . . . . . . . . . . . . . . <span class="insert">44</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       10.1.1. DNS Resource Considerations  . . . . . . . . . . . . . <span class="delete">43</span></td><td> </td><td class="rblock">       10.1.1. DNS Resource Considerations  . . . . . . . . . . . . . <span class="insert">44</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       10.1.2. Administrator's Considerations . . . . . . . . . . . . <span class="delete">44</span></td><td> </td><td class="rblock">       10.1.2. Administrator's Considerations . . . . . . . . . . . . <span class="insert">45</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       10.1.3. Bounces  . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">45</span></td><td> </td><td class="rblock">       10.1.3. Bounces  . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">46</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     10.2. Receivers  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">45</span></td><td> </td><td class="rblock">     10.2. Receivers  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">46</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     10.3. Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">45</span></td><td> </td><td class="rblock">     10.3. Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">46</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   11. Security Considerations  . . . . . . . . . . . . . . . . . . . <span class="delete">47</span></td><td> </td><td class="rblock">   11. Security Considerations  . . . . . . . . . . . . . . . . . . . <span class="insert">48</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.1. Processing Limits  . . . . . . . . . . . . . . . . . . . . <span class="delete">47</span></td><td> </td><td class="rblock">     11.1. Processing Limits  . . . . . . . . . . . . . . . . . . . . <span class="insert">48</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.2. SPF-Authorized Email May Contain Other False Identities  . <span class="delete">48</span></td><td> </td><td class="rblock">     11.2. SPF-Authorized Email May Contain Other False Identities  . <span class="insert">49</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.3. Spoofed DNS and IP Data  . . . . . . . . . . . . . . . . . <span class="delete">48</span></td><td> </td><td class="rblock">     11.3. Spoofed DNS and IP Data  . . . . . . . . . . . . . . . . . <span class="insert">49</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.4. Cross-User Forgery . . . . . . . . . . . . . . . . . . . . <span class="delete">48</span></td><td> </td><td class="rblock">     11.4. Cross-User Forgery . . . . . . . . . . . . . . . . . . . . <span class="insert">49</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.5. Untrusted Information Sources  . . . . . . . . . . . . . . <span class="delete">49</span></td><td> </td><td class="rblock">     11.5. Untrusted Information Sources  . . . . . . . . . . . . . . <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       11.5.1. Recorded Results . . . . . . . . . . . . . . . . . . . <span class="delete">49</span></td><td> </td><td class="rblock">       11.5.1. Recorded Results . . . . . . . . . . . . . . . . . . . <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       11.5.2. External Explanations  . . . . . . . . . . . . . . . . <span class="delete">49</span></td><td> </td><td class="rblock">       11.5.2. External Explanations  . . . . . . . . . . . . . . . . <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       11.5.3. Macro Expansion  . . . . . . . . . . . . . . . . . . . <span class="delete">50</span></td><td> </td><td class="rblock">       11.5.3. Macro Expansion  . . . . . . . . . . . . . . . . . . . <span class="insert">51</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.6. Privacy Exposure . . . . . . . . . . . . . . . . . . . . . <span class="delete">50</span></td><td> </td><td class="rblock">     11.6. Privacy Exposure . . . . . . . . . . . . . . . . . . . . . <span class="insert">51</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.7. Delivering Mail Producing a 'Fail' Result  . . . . . . . . <span class="delete">50</span></td><td> </td><td class="rblock">     11.7. Delivering Mail Producing a 'Fail' Result  . . . . . . . . <span class="insert">51</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   12. Contributors and Acknowledgements  . . . . . . . . . . . . . . <span class="delete">51</span></td><td> </td><td class="rblock">   12. Contributors and Acknowledgements  . . . . . . . . . . . . . . <span class="insert">52</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   13. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . <span class="delete">52</span></td><td> </td><td class="rblock">   13. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . <span class="insert">53</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     13.1. The SPF DNS Record Type  . . . . . . . . . . . . . . . . . <span class="delete">52</span></td><td> </td><td class="rblock">     13.1. The SPF DNS Record Type  . . . . . . . . . . . . . . . . . <span class="insert">53</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     13.2. The Received-SPF Mail Header Field . . . . . . . . . . . . <span class="delete">52</span></td><td> </td><td class="rblock">     13.2. The Received-SPF Mail Header Field . . . . . . . . . . . . <span class="insert">53</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     13.3. SPF Modifier Registry  . . . . . . . . . . . . . . . . . . <span class="delete">52</span></td><td> </td><td class="rblock">     13.3. SPF Modifier Registry  . . . . . . . . . . . . . . . . . . <span class="insert">53</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   14. References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock">   14. References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">54</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     14.1. Normative References . . . . . . . . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock">     14.1. Normative References . . . . . . . . . . . . . . . . . . . <span class="insert">54</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     14.2. Informative References . . . . . . . . . . . . . . . . . . <span class="delete">54</span></td><td> </td><td class="rblock">     14.2. Informative References . . . . . . . . . . . . . . . . . . <span class="insert">55</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix A.  Collected ABNF  . . . . . . . . . . . . . . . . . . . <span class="delete">56</span></td><td> </td><td class="rblock">   Appendix A.  Collected ABNF  . . . . . . . . . . . . . . . . . . . <span class="insert">57</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix B.  Extended Examples . . . . . . . . . . . . . . . . . . <span class="delete">59</span></td><td> </td><td class="rblock">   Appendix B.  Extended Examples . . . . . . . . . . . . . . . . . . <span class="insert">60</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     B.1.  Simple Examples  . . . . . . . . . . . . . . . . . . . . . <span class="delete">59</span></td><td> </td><td class="rblock">     B.1.  Simple Examples  . . . . . . . . . . . . . . . . . . . . . <span class="insert">60</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     B.2.  Multiple Domain Example  . . . . . . . . . . . . . . . . . <span class="delete">60</span></td><td> </td><td class="rblock">     B.2.  Multiple Domain Example  . . . . . . . . . . . . . . . . . <span class="insert">61</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     B.3.  DNSBL Style Example  . . . . . . . . . . . . . . . . . . . <span class="delete">61</span></td><td> </td><td class="rblock">     B.3.  DNSBL Style Example  . . . . . . . . . . . . . . . . . . . <span class="insert">62</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     B.4.  Multiple Requirements Example  . . . . . . . . . . . . . . <span class="delete">61</span></td><td> </td><td class="rblock">     B.4.  Multiple Requirements Example  . . . . . . . . . . . . . . <span class="insert">62</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Appendix C.  Changes in implementation requirements from RFC</td><td> </td><td class="right">   Appendix C.  Changes in implementation requirements from RFC</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0007" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">                4408  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">62</span></td><td> </td><td class="rblock">                4408  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">63</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix D.  Further Testing Advice  . . . . . . . . . . . . . . . <span class="delete">63</span></td><td> </td><td class="rblock">   Appendix D.  Further Testing Advice  . . . . . . . . . . . . . . . <span class="insert">64</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix E.  SPF/Mediator Interactions . . . . . . . . . . . . . . <span class="delete">64</span></td><td> </td><td class="rblock">   Appendix E.  SPF/Mediator Interactions . . . . . . . . . . . . . . <span class="insert">65</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     E.1.  Originating ADMDs  . . . . . . . . . . . . . . . . . . . . <span class="delete">64</span></td><td> </td><td class="rblock">     E.1.  Originating ADMDs  . . . . . . . . . . . . . . . . . . . . <span class="insert">65</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     E.2.  Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">65</span></td><td> </td><td class="rblock">     E.2.  Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">66</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     E.3.  Receving ADMDs . . . . . . . . . . . . . . . . . . . . . . <span class="delete">65</span></td><td> </td><td class="rblock">     E.3.  Receving ADMDs . . . . . . . . . . . . . . . . . . . . . . <span class="insert">66</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix F.  Mail Services . . . . . . . . . . . . . . . . . . . . <span class="delete">66</span></td><td> </td><td class="rblock">   Appendix F.  Mail Services . . . . . . . . . . . . . . . . . . . . <span class="insert">67</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix G.  MTA Relays  . . . . . . . . . . . . . . . . . . . . . <span class="delete">67</span></td><td> </td><td class="rblock">   Appendix G.  MTA Relays  . . . . . . . . . . . . . . . . . . . . . <span class="insert">68</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix H.  Local Policy Considerations . . . . . . . . . . . . . <span class="delete">68</span></td><td> </td><td class="rblock">   Appendix H.  Local Policy Considerations . . . . . . . . . . . . . <span class="insert">69</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     H.1.  Policy For SPF Pass  . . . . . . . . . . . . . . . . . . . <span class="delete">68</span></td><td> </td><td class="rblock">     H.1.  Policy For SPF Pass  . . . . . . . . . . . . . . . . . . . <span class="insert">69</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     H.2.  Policy For SPF Fail  . . . . . . . . . . . . . . . . . . . <span class="delete">68</span></td><td> </td><td class="rblock">     H.2.  Policy For SPF Fail  . . . . . . . . . . . . . . . . . . . <span class="insert">69</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     H.3.  Policy For SPF Permerror . . . . . . . . . . . . . . . . . <span class="delete">69</span></td><td> </td><td class="rblock">     H.3.  Policy For SPF Permerror . . . . . . . . . . . . . . . . . <span class="insert">70</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     H.4.  Policy For SPF Temperror . . . . . . . . . . . . . . . . . <span class="delete">69</span></td><td> </td><td class="rblock">     H.4.  Policy For SPF Temperror . . . . . . . . . . . . . . . . . <span class="insert">70</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix I.  Protocol Status . . . . . . . . . . . . . . . . . . . <span class="delete">71</span></td><td> </td><td class="rblock">   Appendix I.  Protocol Status . . . . . . . . . . . . . . . . . . . <span class="insert">72</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix J.  Change History  . . . . . . . . . . . . . . . . . . . <span class="delete">72</span></td><td> </td><td class="rblock">   Appendix J.  Change History  . . . . . . . . . . . . . . . . . . . <span class="insert">73</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">75</span></td><td> </td><td class="rblock">   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">76</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">1.  Introduction</td><td> </td><td class="right">1.  Introduction</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The current email infrastructure has the property that any host</td><td> </td><td class="right">   The current email infrastructure has the property that any host</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   injecting mail into the system can use any DNS domain name it wants</td><td> </td><td class="right">   injecting mail into the system can use any DNS domain name it wants</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   in each of the various identifiers specified by [RFC5321] and</td><td> </td><td class="right">   in each of the various identifiers specified by [RFC5321] and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5322].  Although this feature is desirable in some circumstances,</td><td> </td><td class="right">   [RFC5322].  Although this feature is desirable in some circumstances,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   it is a major obstacle to reducing Unsolicited Bulk Email (UBE, aka</td><td> </td><td class="right">   it is a major obstacle to reducing Unsolicited Bulk Email (UBE, aka</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   spam).  Furthermore, many domain owning ADMDs (as described in</td><td> </td><td class="right">   spam).  Furthermore, many domain owning ADMDs (as described in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5598]) are understandably concerned about the ease with which</td><td> </td><td class="right">   [RFC5598]) are understandably concerned about the ease with which</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> page 11, line 45</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> page 11, line 45</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.5.  Softfail</td><td> </td><td class="right">2.6.5.  Softfail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The ADMD has published a weak statement that the host is probably not</td><td> </td><td class="right">   The ADMD has published a weak statement that the host is probably not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorized.  It has not published a stronger, more definitive policy</td><td> </td><td class="right">   authorized.  It has not published a stronger, more definitive policy</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that results in a "fail".</td><td> </td><td class="right">   that results in a "fail".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.6.  Temperror</td><td> </td><td class="right">2.6.6.  Temperror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "temperror" result means the SPF verifier encountered a transient</td><td> </td><td class="right">   A "temperror" result means the SPF verifier encountered a transient</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (generally DNS) error while performing the check.  A later retry may</td><td> </td><td class="right">   (generally DNS) error while performing the check.  A later retry may</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0008" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   succeed without further operator action.</td><td> </td><td class="rblock">   succeed without further <span class="insert">DNS </span>operator action.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.7.  Permerror</td><td> </td><td class="right">2.6.7.  Permerror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "permerror" result means the domain's published records could not</td><td> </td><td class="right">   A "permerror" result means the domain's published records could not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be correctly interpreted.  This signals an error condition that</td><td> </td><td class="right">   be correctly interpreted.  This signals an error condition that</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0009" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   definitely requires operator intervention to be resolved.</td><td> </td><td class="rblock">   definitely requires <span class="insert">DNS </span>operator intervention to be resolved.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.  SPF Records</td><td> </td><td class="right">3.  SPF Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   An SPF record is a DNS record that declares which hosts are, and are</td><td> </td><td class="right">   An SPF record is a DNS record that declares which hosts are, and are</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   not, authorized to use a domain name for the "HELO" and "MAIL FROM"</td><td> </td><td class="right">   not, authorized to use a domain name for the "HELO" and "MAIL FROM"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   identities.  Loosely, the record partitions hosts into permitted and</td><td> </td><td class="right">   identities.  Loosely, the record partitions hosts into permitted and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   not-permitted sets (though some hosts might fall into neither</td><td> </td><td class="right">   not-permitted sets (though some hosts might fall into neither</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   category).</td><td> </td><td class="right">   category).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The SPF record is expressed as a single string of text found in the</td><td> </td><td class="right">   The SPF record is expressed as a single string of text found in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l5" /><small>skipping to change at</small><em> page 12, line 32</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> page 12, line 32</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "a:colo.example.com/28" (the + is implied), and "-all".</td><td> </td><td class="right">   "a:colo.example.com/28" (the + is implied), and "-all".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Each SPF record is placed in the DNS tree at the owner name it</td><td> </td><td class="right">   Each SPF record is placed in the DNS tree at the owner name it</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   pertains to, not a subdomain under it, such as is done with SRV</td><td> </td><td class="right">   pertains to, not a subdomain under it, such as is done with SRV</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   records [RFC2782].</td><td> </td><td class="right">   records [RFC2782].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The example in this section might be published via these lines in a</td><td> </td><td class="right">   The example in this section might be published via these lines in a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   domain zone file:</td><td> </td><td class="right">   domain zone file:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"</td><td> </td><td class="right">      example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0010" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">      smtp-out.example.com. TXT "v=spf1 a -all"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Since TXT records have multiple uses, beware of other TXT records</td><td> </td><td class="right">   Since TXT records have multiple uses, beware of other TXT records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   published there for other purposes.  They might cause problems with</td><td> </td><td class="right">   published there for other purposes.  They might cause problems with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   size limits (see Section 3.4) and care has to be taken to ensure only</td><td> </td><td class="right">   size limits (see Section 3.4) and care has to be taken to ensure only</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF records are used for SPF processing.</td><td> </td><td class="right">   SPF records are used for SPF processing.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ADMDs publishing SPF records ought to keep the amount of DNS</td><td> </td><td class="right">   ADMDs publishing SPF records ought to keep the amount of DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   information needed to evaluate a record to a minimum.  Section 4.6.4</td><td> </td><td class="right">   information needed to evaluate a record to a minimum.  Section 4.6.4</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and Section 10.1.1 provide some suggestions about "include"</td><td> </td><td class="right">   and Section 10.1.1 provide some suggestions about "include"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mechanisms and chained "redirect" modifiers.</td><td> </td><td class="right">   mechanisms and chained "redirect" modifiers.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.1.  DNS Resource Records</td><td> </td><td class="right">3.1.  DNS Resource Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF records MUST be published as a DNS TXT (type 16) Resource Record</td><td> </td><td class="right">   SPF records MUST be published as a DNS TXT (type 16) Resource Record</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (RR) [RFC1035] only.  The character content of the record is encoded</td><td> </td><td class="right">   (RR) [RFC1035] only.  The character content of the record is encoded</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   as [US-ASCII].  Use of alternative DNS RR types was supported in</td><td> </td><td class="right">   as [US-ASCII].  Use of alternative DNS RR types was supported in</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0011" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   SPF's experimental phase, but has been discontinued.  See Appendix A</td><td> </td><td class="rblock">   SPF's experimental phase, but has been discontinued.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   of [RFC6686] for further information.</td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   <span class="insert">In 2003, when SPF was first being developed, the requirements for</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   assignment of a new DNS RR type were considerably more stringent than</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   they are now.  Additionally, support for easy deployment of new DNS</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   RR types was not widely deployed in DNS servers and provisioning</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   systems.  As a result, developers of SPF found it easier and more</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   practical to use the TXT RR type for SPF records.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   In its review of [RFC4408] the SPFbis working group concluded that</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   its dual RR type transition model was fundamentally flawed since it</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   contained no common RR type that implementers were required to serve</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   and required to check.  Many alternatives were considered to resolve</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   this issue, but ultimately the working group concluded that</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   significant migration to the SPF RR type in the forseeable future was</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   very unlikely and that the best solution for resolving this</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   interoperability issue was to drop support for the SPF RR type from</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   SPF version 1.</span>  See Appendix A of [RFC6686] for further information.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   <span class="insert">The circumstances surrounding SPF's initial deployment a decade ago</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   are unique.  If a future update to SPF were developed that did not</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   reuse existing SPF records, it could use the SPF RR type.  SPF's use</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   of the TXT RR type for structured data should in no way be taken as</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   precedent for future protocol designers.  Further discussion of</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   design considerations when using new DNS RR types can be found in</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   [RFC5507].</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.2.  Multiple DNS Records</td><td> </td><td class="right">3.2.  Multiple DNS Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A domain name MUST NOT have multiple records that would cause an</td><td> </td><td class="right">   A domain name MUST NOT have multiple records that would cause an</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorization check to select more than one record.  See Section 4.5</td><td> </td><td class="right">   authorization check to select more than one record.  See Section 4.5</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for the selection rules.</td><td> </td><td class="right">   for the selection rules.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.3.  Multiple Strings in a Single DNS record</td><td> </td><td class="right">3.3.  Multiple Strings in a Single DNS record</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As defined in [RFC1035] sections 3.3 and 3.3.14, a single text DNS</td><td> </td><td class="right">   As defined in [RFC1035] sections 3.3 and 3.3.14, a single text DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l6" /><small>skipping to change at</small><em> page 13, line 38</em></th><th> </th><th><a name="part-r6" /><small>skipping to change at</small><em> page 14, line 14</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.4.  Record Size</td><td> </td><td class="right">3.4.  Record Size</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The published SPF record for a given domain name SHOULD remain small</td><td> </td><td class="right">   The published SPF record for a given domain name SHOULD remain small</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   enough that the results of a query for it will fit within 512 octets.</td><td> </td><td class="right">   enough that the results of a query for it will fit within 512 octets.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This UDP limit is defined in [RFC1035] section 2.3.4, although it was</td><td> </td><td class="right">   This UDP limit is defined in [RFC1035] section 2.3.4, although it was</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   raised by [RFC2671].  Staying below 512 octets ought to prevent older</td><td> </td><td class="right">   raised by [RFC2671].  Staying below 512 octets ought to prevent older</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   DNS implementations from failing over to TCP,and will work with UDP</td><td> </td><td class="right">   DNS implementations from failing over to TCP,and will work with UDP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   in the absence of EDNS0 [RFC6891] support.  Since the answer size is</td><td> </td><td class="right">   in the absence of EDNS0 [RFC6891] support.  Since the answer size is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   dependent on many things outside the scope of this document, it is</td><td> </td><td class="right">   dependent on many things outside the scope of this document, it is</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0012" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   only possible to give this guideline: If the combined length of the</td><td> </td><td class="rblock">   only possible to give this guideline: If the <span class="insert">size of the DNS message,</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   DNS name and the text of all the records of a given type is under 450</td><td> </td><td class="rblock"><span class="insert">   the</span> combined length of the DNS name and the text of all the records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   octets, then DNS answers ought to fit in UDP packets.  Records that</td><td> </td><td class="rblock">   of a given type is under 450 octets, then DNS answers ought to fit in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   are too long to fit in a single UDP packet could be silently ignored</td><td> </td><td class="rblock">   UDP packets.  Records that are too long to fit in a single UDP packet</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   by SPF verifiers due to firewall and other issues that interfere with</td><td> </td><td class="rblock">   could be silently ignored by SPF verifiers due to firewall and other</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   the operation of DNS over TCP or using ENDS0.</td><td> </td><td class="rblock">   issues that interfere with the operation of DNS over TCP or using</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   ENDS0.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Note that when computing the sizes for replies to queries of the TXT</td><td> </td><td class="right">   Note that when computing the sizes for replies to queries of the TXT</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   format, one has to take into account any other TXT records published</td><td> </td><td class="right">   format, one has to take into account any other TXT records published</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   at the domain name.  Similarly, the sizes for replies to all queries</td><td> </td><td class="right">   at the domain name.  Similarly, the sizes for replies to all queries</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   related to SPF have to be evaluated to fit in a single 512 octet UDP</td><td> </td><td class="right">   related to SPF have to be evaluated to fit in a single 512 octet UDP</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0013" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   packet.</td><td> </td><td class="rblock">   packet<span class="insert"> (i.e.  DNS message size limited to 450 octects)</span>.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">3.5.  Wildcard Records</td><td> </td><td class="right">3.5.  Wildcard Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Use of wildcard records for publishing is discouraged and care has to</td><td> </td><td class="right">   Use of wildcard records for publishing is discouraged and care has to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be taken if they are used.  If a zone includes wildcard MX records,</td><td> </td><td class="right">   be taken if they are used.  If a zone includes wildcard MX records,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   it might want to publish wildcard declarations, subject to the same</td><td> </td><td class="right">   it might want to publish wildcard declarations, subject to the same</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   requirements and problems.  In particular, the declaration MUST be</td><td> </td><td class="right">   requirements and problems.  In particular, the declaration MUST be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   repeated for any host that has any RR records at all, and for</td><td> </td><td class="right">   repeated for any host that has any RR records at all, and for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   subdomains thereof.  Consider the example in [RFC1034], Section</td><td> </td><td class="right">   subdomains thereof.  Consider the example in [RFC1034], Section</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   4.3.3.  Based on that, we can do the following:</td><td> </td><td class="right">   4.3.3.  Based on that, we can do the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l7" /><small>skipping to change at</small><em> page 16, line 40</em></th><th> </th><th><a name="part-r7" /><small>skipping to change at</small><em> page 17, line 40</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">4.5.  Selecting Records</td><td> </td><td class="right">4.5.  Selecting Records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Records begin with a version section:</td><td> </td><td class="right">   Records begin with a version section:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   record           = version terms *SP</td><td> </td><td class="right">   record           = version terms *SP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   version          = "v=spf1"</td><td> </td><td class="right">   version          = "v=spf1"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Starting with the set of records that were returned by the lookup,</td><td> </td><td class="right">   Starting with the set of records that were returned by the lookup,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   discard records that do not begin with a version section of exactly</td><td> </td><td class="right">   discard records that do not begin with a version section of exactly</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "v=spf1".  Note that the version section is terminated either by an</td><td> </td><td class="right">   "v=spf1".  Note that the version section is terminated either by an</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0014" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   SP character or the end of the record.  <span class="delete">A</span> record with a version</td><td> </td><td class="rblock">   SP character or the end of the record.  <span class="insert">As an example, a</span> record with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   section of "v=spf10" does not match and is discarded.</td><td> </td><td class="rblock">   a version section of "v=spf10" does not match and is discarded.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If the resultant record set includes no records, check_host()</td><td> </td><td class="right">   If the resultant record set includes no records, check_host()</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   produces the "none" result.  If the resultant record set includes</td><td> </td><td class="right">   produces the "none" result.  If the resultant record set includes</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   more than one record, check_host() produces the "permerror" result.</td><td> </td><td class="right">   more than one record, check_host() produces the "permerror" result.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">4.6.  Record Evaluation</td><td> </td><td class="right">4.6.  Record Evaluation</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The check_host() function parses and interprets the SPF record to</td><td> </td><td class="right">   The check_host() function parses and interprets the SPF record to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   find a result for the current test.  If there are any syntax errors</td><td> </td><td class="right">   find a result for the current test.  If there are any syntax errors</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   anywhere in the record, check_host() returns immediately with the</td><td> </td><td class="right">   anywhere in the record, check_host() returns immediately with the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l8" /><small>skipping to change at</small><em> page 18, line 27</em></th><th> </th><th><a name="part-r8" /><small>skipping to change at</small><em> page 19, line 27</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">4.6.3.  Modifiers</td><td> </td><td class="right">4.6.3.  Modifiers</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Modifiers are not mechanisms.  They do not return match or not-match.</td><td> </td><td class="right">   Modifiers are not mechanisms.  They do not return match or not-match.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Instead, they provide additional information.  Although modifiers do</td><td> </td><td class="right">   Instead, they provide additional information.  Although modifiers do</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   not directly affect the evaluation of the record, the "redirect"</td><td> </td><td class="right">   not directly affect the evaluation of the record, the "redirect"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   modifier has an effect after all the mechanisms have been evaluated.</td><td> </td><td class="right">   modifier has an effect after all the mechanisms have been evaluated.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">4.6.4.  DNS Lookup Limits</td><td> </td><td class="right">4.6.4.  DNS Lookup Limits</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0015" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">SPF implementations MUST limit the total number of</span> mechanisms and</td><td> </td><td class="rblock">   <span class="insert">Some</span> mechanisms and modifiers <span class="insert">(collectively, "terms")</span> cause DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   modifiers <span class="delete">("terms") that</span> cause <span class="delete">any</span> DNS <span class="delete">query to 10 during SPF</span></td><td> </td><td class="rblock">   <span class="insert">queries at the time of evaluation, and some do not.  The following</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   evaluation.  Specifically,</span> the "include", "a", "mx", "ptr", and</td><td> </td><td class="rblock"><span class="insert">   terms cause DNS queries:</span> the "include", "a", "mx", "ptr", and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   "exists" mechanisms <span class="delete">as well as</span> the "redirect" <span class="delete">modifier count against</span></td><td> </td><td class="rblock">   "exists" mechanisms <span class="insert">and</span> the "redirect" <span class="insert">modifier.  SPF implementations</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   this <span class="delete">collective limit.</span>  The "all", "ip4", and "ip6" mechanisms do not</td><td> </td><td class="rblock"><span class="insert">   MUST limit the total number of those terms to 10 during SPF</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">count against this limit.  If this number is exceeded during a check,</span></td><td> </td><td class="rblock"><span class="insert">   evaluation, to avoid unreasonable load on the DNS.  If</span> this <span class="insert">limit is</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   a "permerror" MUST be returned.  The "exp" modifier does not count</span></td><td> </td><td class="rblock"><span class="insert">   exceeded, the implementation MUST return "permerror".</span>  The <span class="insert">other</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   against this limit because the</span> DNS <span class="delete">lookup to fetch the explanation</span></td><td> </td><td class="rblock"><span class="insert">   terms: the</span> "all", "ip4", and "ip6" mechanisms do not <span class="insert">cause</span> DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   string occurs after</span> the SPF <span class="delete">record</span> evaluation <span class="delete">has been completed.</span></td><td> </td><td class="rblock">   <span class="insert">queries at</span> the <span class="insert">time of</span> SPF evaluation <span class="insert">(the "exp" modifier causes a</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   lookup at a later time), and their use, including "exp", is not</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   subject to this limit.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   When evaluating the "mx" mechanism, the number of "MX" resource</td><td> </td><td class="right">   When evaluating the "mx" mechanism, the number of "MX" resource</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   records queried is included in the overall limit of 10 mechanisms/</td><td> </td><td class="right">   records queried is included in the overall limit of 10 mechanisms/</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   modifiers that cause DNS lookups described above.  The evaluation of</td><td> </td><td class="right">   modifiers that cause DNS lookups described above.  The evaluation of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   each "MX" record MUST NOT result in querying more than 10 address</td><td> </td><td class="right">   each "MX" record MUST NOT result in querying more than 10 address</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   records, either "A" or "AAAA" resource records.  If this limit is</td><td> </td><td class="right">   records, either "A" or "AAAA" resource records.  If this limit is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   exceeded, the "mx" mechanism MUST produce a "permerror" result.</td><td> </td><td class="right">   exceeded, the "mx" mechanism MUST produce a "permerror" result.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   When evaluating the "ptr" mechanism or the %{p} macro, the number of</td><td> </td><td class="right">   When evaluating the "ptr" mechanism or the %{p} macro, the number of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "PTR" resource records queried is included in the overall limit of 10</td><td> </td><td class="right">   "PTR" resource records queried is included in the overall limit of 10</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l9" /><small>skipping to change at</small><em> page 19, line 32</em></th><th> </th><th><a name="part-r9" /><small>skipping to change at</small><em> page 20, line 34</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   limit configurable.  In this case, a default of two is RECOMMENDED.</td><td> </td><td class="right">   limit configurable.  In this case, a default of two is RECOMMENDED.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">4.7.  Default Result</td><td> </td><td class="right">4.7.  Default Result</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If none of the mechanisms match and there is no "redirect" modifier,</td><td> </td><td class="right">   If none of the mechanisms match and there is no "redirect" modifier,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   then the check_host() returns a result of "neutral", just as if</td><td> </td><td class="right">   then the check_host() returns a result of "neutral", just as if</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "?all" were specified as the last directive.  If there is a</td><td> </td><td class="right">   "?all" were specified as the last directive.  If there is a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "redirect" modifier, check_host() proceeds as defined in Section 6.1.</td><td> </td><td class="right">   "redirect" modifier, check_host() proceeds as defined in Section 6.1.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   It is better to use either a "redirect" modifier or an "all"</td><td> </td><td class="right">   It is better to use either a "redirect" modifier or an "all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0016" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   mechanism to explicitly terminate processing.  Although the <span class="delete">latter</span></td><td> </td><td class="rblock">   mechanism to explicitly terminate processing.  Although <span class="insert">there is an</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   has a default (specifically "?all"),</span> it aids debugging efforts <span class="delete">if</span> it</td><td> </td><td class="rblock"><span class="insert">   implicit "?all" at</span> the <span class="insert">end of every record that is not explicitly</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   is explicitly provided.</td><td> </td><td class="rblock"><span class="insert">   terminated,</span> it aids debugging efforts <span class="insert">when</span> it is explicitly provided.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   For example:</td><td> </td><td class="right">   For example:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      v=spf1 +mx -all</td><td> </td><td class="right">      v=spf1 +mx -all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   or</td><td> </td><td class="right">   or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      v=spf1 +mx redirect=_spf.example.com</td><td> </td><td class="right">      v=spf1 +mx redirect=_spf.example.com</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">4.8.  Domain Specification</td><td> </td><td class="right">4.8.  Domain Specification</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Several of these mechanisms and modifiers have a domain-spec section.</td><td> </td><td class="right">   Several of these mechanisms and modifiers have a domain-spec section.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l10" /><small>skipping to change at</small><em> page 24, line 43</em></th><th> </th><th><a name="part-r10" /><small>skipping to change at</small><em> page 25, line 43</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the mechanism matches.</td><td> </td><td class="right">   the mechanism matches.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Note regarding implicit MXes: If the &lt;target-name&gt; has no MX record,</td><td> </td><td class="right">   Note regarding implicit MXes: If the &lt;target-name&gt; has no MX record,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   check_host() MUST NOT apply the implicit MX rules of[RFC5321] by</td><td> </td><td class="right">   check_host() MUST NOT apply the implicit MX rules of[RFC5321] by</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   querying for an A or AAAA record for the same name.</td><td> </td><td class="right">   querying for an A or AAAA record for the same name.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">5.5.  "ptr" (do not use)</td><td> </td><td class="right">5.5.  "ptr" (do not use)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This mechanism tests whether the DNS reverse-mapping for &lt;ip&gt; exists</td><td> </td><td class="right">   This mechanism tests whether the DNS reverse-mapping for &lt;ip&gt; exists</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and correctly points to a domain name within a particular domain.</td><td> </td><td class="right">   and correctly points to a domain name within a particular domain.</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0017" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This mechanism SHOULD NOT be published.  See <span class="delete">below</span> for <span class="delete">discussion.</span></td><td> </td><td class="rblock">   This mechanism SHOULD NOT be published.  See <span class="insert">the note at the end of</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   this section</span> for <span class="insert">more information.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ptr              = "ptr"    [ ":" domain-spec ]</td><td> </td><td class="right">   ptr              = "ptr"    [ ":" domain-spec ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The &lt;ip&gt;'s name is looked up using this procedure:</td><td> </td><td class="right">   The &lt;ip&gt;'s name is looked up using this procedure:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Perform a DNS reverse-mapping for &lt;ip&gt;: Look up the corresponding</td><td> </td><td class="right">   o  Perform a DNS reverse-mapping for &lt;ip&gt;: Look up the corresponding</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      PTR record in "in-addr.arpa." if the address is an IPv4 one and in</td><td> </td><td class="right">      PTR record in "in-addr.arpa." if the address is an IPv4 one and in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      "ip6.arpa." if it is an IPv6 address.</td><td> </td><td class="right">      "ip6.arpa." if it is an IPv6 address.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  For each record returned, validate the domain name by looking up</td><td> </td><td class="right">   o  For each record returned, validate the domain name by looking up</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l11" /><small>skipping to change at</small><em> page 26, line 14</em></th><th> </th><th><a name="part-r11" /><small>skipping to change at</small><em> page 27, line 16</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MUST support it.</td><td> </td><td class="right">   MUST support it.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">5.6.  "ip4" and "ip6"</td><td> </td><td class="right">5.6.  "ip4" and "ip6"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These mechanisms test whether &lt;ip&gt; is contained within a given IP</td><td> </td><td class="right">   These mechanisms test whether &lt;ip&gt; is contained within a given IP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   network.</td><td> </td><td class="right">   network.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</td><td> </td><td class="right">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</td><td> </td><td class="right">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0018" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ip4-cidr-length  = "/" <span class="delete">1*DIGIT</span></td><td> </td><td class="rblock">   ip4-cidr-length  = "/" <span class="insert">("0" |  %x31-39 0*1DIGIT) ; value range 0-32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ip6-cidr-length  = "/" <span class="delete">1*DIGIT</span></td><td> </td><td class="rblock">   ip6-cidr-length  = "/" <span class="insert">("0" |  %x31-39 0*2DIGIT) ; value range 0-128</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</td><td> </td><td class="right">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4-network      = qnum "." qnum "." qnum "." qnum</td><td> </td><td class="right">   ip4-network      = qnum "." qnum "." qnum "." qnum</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   qnum             = DIGIT                 ; 0-9</td><td> </td><td class="right">   qnum             = DIGIT                 ; 0-9</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / %x31-39 DIGIT       ; 10-99</td><td> </td><td class="right">                      / %x31-39 DIGIT       ; 10-99</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "1" 2DIGIT          ; 100-199</td><td> </td><td class="right">                      / "1" 2DIGIT          ; 100-199</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "2" %x30-34 DIGIT   ; 200-249</td><td> </td><td class="right">                      / "2" %x30-34 DIGIT   ; 200-249</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "25" %x30-35        ; 250-255</td><td> </td><td class="right">                      / "25" %x30-35        ; 250-255</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">            ; as per conventional dotted quad notation.  e.g., 192.0.2.0</td><td> </td><td class="right">            ; as per conventional dotted quad notation.  e.g., 192.0.2.0</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</td><td> </td><td class="right">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l12" /><small>skipping to change at</small><em> page 36, line 7</em></th><th> </th><th><a name="part-r12" /><small>skipping to change at</small><em> page 37, line 7</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   %{d2}.trusted-domains.example.net</td><td> </td><td class="right">   %{d2}.trusted-domains.example.net</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                                example.com.trusted-domains.example.net</td><td> </td><td class="right">                                example.com.trusted-domains.example.net</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   IPv6:</td><td> </td><td class="right">   IPv6:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   %{ir}.%{v}._spf.%{d2}                               1.0.B.C.0.0.0.0.</td><td> </td><td class="right">   %{ir}.%{v}._spf.%{d2}                               1.0.B.C.0.0.0.0.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.B.D.0.1.0.0.2.ip6._spf.example.com</td><td> </td><td class="right">   0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.B.D.0.1.0.0.2.ip6._spf.example.com</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.  Result Handling</td><td> </td><td class="right">8.  Result Handling</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0019" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This section provides guidance for operators in response to the</td><td> </td><td class="rblock">   This section provides guidance for <span class="insert">SPF verifier</span> operators in response</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   various possible outputs of check_host() on a message.  Definitions</td><td> </td><td class="rblock">   to the various possible outputs of check_host() on a message.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   of SPF results are presented in Section 2.6; this section provides</td><td> </td><td class="rblock">   Definitions of SPF results are presented in Section 2.6; this section</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   more detail on each for use in developing local policy for message</td><td> </td><td class="rblock">   provides more detail on each for use in developing local policy for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   handling.</td><td> </td><td class="rblock">   message handling.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Every operating environment is different.  There are some receivers</td><td> </td><td class="right">   Every operating environment is different.  There are some receivers</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for whom strict adherence to SPF is appropriate, and definitive</td><td> </td><td class="right">   for whom strict adherence to SPF is appropriate, and definitive</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   treatment of messages that are evaluated to be explicitly</td><td> </td><td class="right">   treatment of messages that are evaluated to be explicitly</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   unauthorized ("fail" and sometimes "softfail") is the norm.  There</td><td> </td><td class="right">   unauthorized ("fail" and sometimes "softfail") is the norm.  There</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   are others for which the "false negative" cases are more of a</td><td> </td><td class="right">   are others for which the "false negative" cases are more of a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   concern.  This concern is typically handled by merely recording the</td><td> </td><td class="right">   concern.  This concern is typically handled by merely recording the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result in the header and allowing the message to pass on for</td><td> </td><td class="right">   result in the header and allowing the message to pass on for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   additional processing.  There are still others where SPF is one of</td><td> </td><td class="right">   additional processing.  There are still others where SPF is one of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   several inputs to the message handling decision.  As such, there is</td><td> </td><td class="right">   several inputs to the message handling decision.  As such, there is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l13" /><small>skipping to change at</small><em> page 38, line 28</em></th><th> </th><th><a name="part-r13" /><small>skipping to change at</small><em> page 39, line 28</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   software SHOULD use an SMTP reply code of 451 and, if supported, the</td><td> </td><td class="right">   software SHOULD use an SMTP reply code of 451 and, if supported, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   4.4.3 enhanced status code (see [RFC3463], Section 3.5).  These</td><td> </td><td class="right">   4.4.3 enhanced status code (see [RFC3463], Section 3.5).  These</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   errors can be caused by problems in either the sender's or receiver's</td><td> </td><td class="right">   errors can be caused by problems in either the sender's or receiver's</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   DNS software.  See Appendix H.4 for considerations on developing</td><td> </td><td class="right">   DNS software.  See Appendix H.4 for considerations on developing</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   local policy.</td><td> </td><td class="right">   local policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.7.  Permerror</td><td> </td><td class="right">8.7.  Permerror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "permerror" result means the domain's published records could not</td><td> </td><td class="right">   A "permerror" result means the domain's published records could not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be correctly interpreted.  This signals an error condition that</td><td> </td><td class="right">   be correctly interpreted.  This signals an error condition that</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0020" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   definitely requires operator intervention to be resolved.  If the</td><td> </td><td class="rblock">   definitely requires <span class="insert">DNS </span>operator intervention to be resolved.  If the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message is rejected during the SMTP transaction for this reason, the</td><td> </td><td class="right">   message is rejected during the SMTP transaction for this reason, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   software SHOULD use an SMTP reply code of 550 and, if supported, the</td><td> </td><td class="right">   software SHOULD use an SMTP reply code of 550 and, if supported, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   5.5.2 enhanced status code (see [RFC3463], Section 3.6).  Be aware</td><td> </td><td class="right">   5.5.2 enhanced status code (see [RFC3463], Section 3.6).  Be aware</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that if the ADMD uses macros (Section 7), it is possible that this</td><td> </td><td class="right">   that if the ADMD uses macros (Section 7), it is possible that this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result is due to the checked identities having an unexpected format.</td><td> </td><td class="right">   result is due to the checked identities having an unexpected format.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   It is also possible that this result is generated by certain SPF</td><td> </td><td class="right">   It is also possible that this result is generated by certain SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   verifiers due to the input arguments having an unexpected format; see</td><td> </td><td class="right">   verifiers due to the input arguments having an unexpected format; see</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Section 4.8.  See Appendix H.3 for considerations on developing local</td><td> </td><td class="right">   Section 4.8.  See Appendix H.3 for considerations on developing local</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   policy.</td><td> </td><td class="right">   policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">9.  Recording the Result</td><td> </td><td class="right">9.  Recording the Result</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   To provide downstream agents, such as MUAs, with the information they</td><td> </td><td class="right">   To provide downstream agents, such as MUAs, with the information they</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   might need in terms of evaluating or representing the apparent safety</td><td> </td><td class="right">   might need in terms of evaluating or representing the apparent safety</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of the message content, it is RECOMMENDED that SMTP receivers record</td><td> </td><td class="right">   of the message content, it is RECOMMENDED that SMTP receivers record</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0021" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   the result of SPF processing in the message header.  For operators</td><td> </td><td class="rblock">   the result of SPF processing in the message header.  For <span class="insert">SPF verifier</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   that choose to record SPF results in the header of the message for</td><td> </td><td class="rblock">   operators that choose to record SPF results in the header of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   processing by internal filters or MUAs, two methods are presented.</td><td> </td><td class="rblock">   message for processing by internal filters or MUAs, two methods are</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Section 9.1 defines the Received-SPF field, which is the results</td><td> </td><td class="rblock">   presented.  Section 9.1 defines the Received-SPF field, which is the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   field originally defined for SPF use.  Section 9.2 discusses</td><td> </td><td class="rblock">   results field originally defined for SPF use.  Section 9.2 discusses</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Authentication-Results [RFC5451] which was specified more recently</td><td> </td><td class="right">   Authentication-Results [RFC5451] which was specified more recently</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and is designed for use by SPF and other authentication methods.</td><td> </td><td class="right">   and is designed for use by SPF and other authentication methods.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Both are in common use, and hence both are included here.  However,</td><td> </td><td class="right">   Both are in common use, and hence both are included here.  However,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   it is important to note that they were designed to serve slightly</td><td> </td><td class="right">   it is important to note that they were designed to serve slightly</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   different purposes.  Received-SPF is intended to include enough</td><td> </td><td class="right">   different purposes.  Received-SPF is intended to include enough</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   information to enable reconstruction of the SPF evaluation of the</td><td> </td><td class="right">   information to enable reconstruction of the SPF evaluation of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message, while Authentication-Results is designed only to relay the</td><td> </td><td class="right">   message, while Authentication-Results is designed only to relay the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result itself and related output details of likely use to end users</td><td> </td><td class="right">   result itself and related output details of likely use to end users</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (e.g., what property of the message was actually authenticated and</td><td> </td><td class="right">   (e.g., what property of the message was actually authenticated and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   what it contained), leaving reconstructive work to the purview of</td><td> </td><td class="right">   what it contained), leaving reconstructive work to the purview of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   system logs and the Received field contents.  Also, Received-SPF</td><td> </td><td class="right">   system logs and the Received field contents.  Also, Received-SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   relies on compliance of agents within the receiving ADMD to adhere to</td><td> </td><td class="right">   relies on compliance of agents within the receiving ADMD to adhere to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the header field ordering rules of [RFC5321] and [RFC5322], while</td><td> </td><td class="right">   the header field ordering rules of [RFC5321] and [RFC5322], while</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Authentication-Results includes some provisions to protect against</td><td> </td><td class="right">   Authentication-Results includes some provisions to protect against</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   non-compliant implementations.</td><td> </td><td class="right">   non-compliant implementations.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0022" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   An operator could choose to use both to serve different downstream</td><td> </td><td class="rblock">   An <span class="insert">SPF verifier</span> operator could choose to use both to serve different</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   agents.  In such cases, care needs to be taken to ensure both fields</td><td> </td><td class="rblock">   downstream agents.  In such cases, care needs to be taken to ensure</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   are conveying the same details, or unexpected results can occur.</td><td> </td><td class="rblock">   both fields are conveying the same details, or unexpected results can</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   occur.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">9.1.  The Received-SPF Header Field</td><td> </td><td class="right">9.1.  The Received-SPF Header Field</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The Received-SPF header field is a trace field (see [RFC5322] Section</td><td> </td><td class="right">   The Received-SPF header field is a trace field (see [RFC5322] Section</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   3.6.7) and SHOULD be prepended to the existing header, above the</td><td> </td><td class="right">   3.6.7) and SHOULD be prepended to the existing header, above the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Received: field that is generated by the SMTP receiver.  It MUST</td><td> </td><td class="right">   Received: field that is generated by the SMTP receiver.  It MUST</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   appear above all other Received-SPF fields in the message.  The</td><td> </td><td class="right">   appear above all other Received-SPF fields in the message.  The</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   header field has the following format:</td><td> </td><td class="right">   header field has the following format:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   header-field     = "Received-SPF:" [CFWS] result FWS [comment FWS]</td><td> </td><td class="right">   header-field     = "Received-SPF:" [CFWS] result FWS [comment FWS]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l14" /><small>skipping to change at</small><em> page 55, line 11</em></th><th> </th><th><a name="part-r14" /><small>skipping to change at</small><em> page 56, line 11</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC4632]  Fuller, V. and T. Li, "Classless Inter-domain Routing</td><td> </td><td class="right">   [RFC4632]  Fuller, V. and T. Li, "Classless Inter-domain Routing</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              (CIDR): The Internet Address Assignment and Aggregation</td><td> </td><td class="right">              (CIDR): The Internet Address Assignment and Aggregation</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Plan", BCP 122, RFC 4632, August 2006.</td><td> </td><td class="right">              Plan", BCP 122, RFC 4632, August 2006.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC4880]  Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R.</td><td> </td><td class="right">   [RFC4880]  Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Thayer, "OpenPGP Message Format", RFC 4880, November 2007.</td><td> </td><td class="right">              Thayer, "OpenPGP Message Format", RFC 4880, November 2007.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC4954]  Siemborski, R. and A. Melnikov, "SMTP Service Extension</td><td> </td><td class="right">   [RFC4954]  Siemborski, R. and A. Melnikov, "SMTP Service Extension</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              for Authentication", RFC 4954, July 2007.</td><td> </td><td class="right">              for Authentication", RFC 4954, July 2007.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0023" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   <span class="insert">[RFC5507]  IAB, Faltstrom, P., Austein, R., and P. Koch, "Design</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">              Choices When Expanding the DNS", RFC 5507, April 2009.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5751]  Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet</td><td> </td><td class="right">   [RFC5751]  Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Mail Extensions (S/MIME) Version 3.2 Message</td><td> </td><td class="right">              Mail Extensions (S/MIME) Version 3.2 Message</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Specification", RFC 5751, January 2010.</td><td> </td><td class="right">              Specification", RFC 5751, January 2010.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5782]  Levine, J., "DNS Blacklists and Whitelists", RFC 5782,</td><td> </td><td class="right">   [RFC5782]  Levine, J., "DNS Blacklists and Whitelists", RFC 5782,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              February 2010.</td><td> </td><td class="right">              February 2010.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC6409]  Gellens, R. and J. Klensin, "Message Submission for Mail",</td><td> </td><td class="right">   [RFC6409]  Gellens, R. and J. Klensin, "Message Submission for Mail",</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              STD 72, RFC 6409, November 2011.</td><td> </td><td class="right">              STD 72, RFC 6409, November 2011.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l15" /><small>skipping to change at</small><em> page 56, line 40</em></th><th> </th><th><a name="part-r15" /><small>skipping to change at</small><em> page 57, line 40</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</td><td> </td><td class="right">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</td><td> </td><td class="right">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   exists           = "exists"   ":" domain-spec</td><td> </td><td class="right">   exists           = "exists"   ":" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   modifier         = redirect / explanation / unknown-modifier</td><td> </td><td class="right">   modifier         = redirect / explanation / unknown-modifier</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   redirect         = "redirect" "=" domain-spec</td><td> </td><td class="right">   redirect         = "redirect" "=" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   explanation      = "exp" "=" domain-spec</td><td> </td><td class="right">   explanation      = "exp" "=" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   unknown-modifier = name "=" macro-string</td><td> </td><td class="right">   unknown-modifier = name "=" macro-string</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      ; where name is not any known modifier</td><td> </td><td class="right">                      ; where name is not any known modifier</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0024" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ip4-cidr-length  = "/" <span class="delete">1*DIGIT</span></td><td> </td><td class="rblock">   ip4-cidr-length  = "/" <span class="insert">("0" |  %x31-39 0*1DIGIT) ; value range 0-32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ip6-cidr-length  = "/" <span class="delete">1*DIGIT</span></td><td> </td><td class="rblock">   ip6-cidr-length  = "/" <span class="insert">("0" |  %x31-39 0*2DIGIT) ; value range 0-128</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</td><td> </td><td class="right">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4-network      = qnum "." qnum "." qnum "." qnum</td><td> </td><td class="right">   ip4-network      = qnum "." qnum "." qnum "." qnum</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   qnum             = DIGIT                 ; 0-9</td><td> </td><td class="right">   qnum             = DIGIT                 ; 0-9</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / %x31-39 DIGIT       ; 10-99</td><td> </td><td class="right">                      / %x31-39 DIGIT       ; 10-99</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "1" 2DIGIT          ; 100-199</td><td> </td><td class="right">                      / "1" 2DIGIT          ; 100-199</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "2" %x30-34 DIGIT   ; 200-249</td><td> </td><td class="right">                      / "2" %x30-34 DIGIT   ; 200-249</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      / "25" %x30-35        ; 250-255</td><td> </td><td class="right">                      / "25" %x30-35        ; 250-255</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">            ; conventional dotted quad notation.  e.g., 192.0.2.0</td><td> </td><td class="right">            ; conventional dotted quad notation.  e.g., 192.0.2.0</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</td><td> </td><td class="right">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l16" /><small>skipping to change at</small><em> page 69, line 28</em></th><th> </th><th><a name="part-r16" /><small>skipping to change at</small><em> page 70, line 28</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   receiver can do to draw attention to the difficulty encountered while</td><td> </td><td class="right">   receiver can do to draw attention to the difficulty encountered while</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   protecting itself from messages that do not have a definite SPF</td><td> </td><td class="right">   protecting itself from messages that do not have a definite SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result of some kind.  However, if the SPF implementation is defective</td><td> </td><td class="right">   result of some kind.  However, if the SPF implementation is defective</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and returns spurious "permerror" results, only the sender is actively</td><td> </td><td class="right">   and returns spurious "permerror" results, only the sender is actively</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   notified of the defect (in the form of rejected mail), and not the</td><td> </td><td class="right">   notified of the defect (in the form of rejected mail), and not the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   receiver making use of SPF.</td><td> </td><td class="right">   receiver making use of SPF.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The less intrusive handling choice is to deliver the message, perhaps</td><td> </td><td class="right">   The less intrusive handling choice is to deliver the message, perhaps</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   with some kind of annotation of the difficulty encountered and/or</td><td> </td><td class="right">   with some kind of annotation of the difficulty encountered and/or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   logging of a similar nature.  However, this will not be desirable to</td><td> </td><td class="right">   logging of a similar nature.  However, this will not be desirable to</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0025" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   operators that wish to implement SPF checking as strictly as</td><td> </td><td class="rblock">   <span class="insert">SPF verifier</span> operators that wish to implement SPF checking as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   possible, nor is this sort of passive problem reporting typically</td><td> </td><td class="rblock">   strictly as possible, nor is this sort of passive problem reporting</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   effective.</td><td> </td><td class="rblock">   typically effective.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There is of course the option placing this choice in the hands of the</td><td> </td><td class="right">   There is of course the option placing this choice in the hands of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0026" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   operator rather than the implementer since this kind of choice is</td><td> </td><td class="rblock">   <span class="insert">SPF verifier</span> operator rather than the implementer since this kind of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   often a matter of local policy rather than a condition with a</td><td> </td><td class="rblock">   choice is often a matter of local policy rather than a condition with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   universal solution, but this adds one more piece of complexity to an</td><td> </td><td class="rblock">   a universal solution, but this adds one more piece of complexity to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   already non-trivial environment.</td><td> </td><td class="rblock">   an already non-trivial environment.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0027" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Both implementers and operators need to be cautious of all choices</td><td> </td><td class="rblock">   Both implementers and <span class="insert">SPF verfier</span> operators need to be cautious of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   and outcomes when handling SPF results.</td><td> </td><td class="rblock">   all choices and outcomes when handling SPF results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">H.4.  Policy For SPF Temperror</td><td> </td><td class="right">H.4.  Policy For SPF Temperror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "temperror" result (see Section 2.6.6) indicates the SPF</td><td> </td><td class="right">   The "temperror" result (see Section 2.6.6) indicates the SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   processing module at the receiver could not retrieve and SPF policy</td><td> </td><td class="right">   processing module at the receiver could not retrieve and SPF policy</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   record due to a (probably) transient condition.  This gives no true</td><td> </td><td class="right">   record due to a (probably) transient condition.  This gives no true</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   indication about the authorized use of the data found in the</td><td> </td><td class="right">   indication about the authorized use of the data found in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   envelope.</td><td> </td><td class="right">   envelope.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As with all results, implementers have a choice to make regarding</td><td> </td><td class="right">   As with all results, implementers have a choice to make regarding</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l17" /><small>skipping to change at</small><em> page 70, line 23</em></th><th> </th><th><a name="part-r17" /><small>skipping to change at</small><em> page 71, line 23</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Because of long queue lifetimes, it is possible that mail will be</td><td> </td><td class="right">   Because of long queue lifetimes, it is possible that mail will be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   repeatedly deferred for several days and so any awareness by the</td><td> </td><td class="right">   repeatedly deferred for several days and so any awareness by the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   sender of a problem could be quite delayed.  If "temperrors" persist</td><td> </td><td class="right">   sender of a problem could be quite delayed.  If "temperrors" persist</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for multiple delivery attempts, it might be preferable to treat the</td><td> </td><td class="right">   for multiple delivery attempts, it might be preferable to treat the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   error as permanent and reduce the amount of time the message is in</td><td> </td><td class="right">   error as permanent and reduce the amount of time the message is in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   transit.</td><td> </td><td class="right">   transit.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The less intrusive handling choice is to deliver the message, perhaps</td><td> </td><td class="right">   The less intrusive handling choice is to deliver the message, perhaps</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   with some kind of annotation of the difficulty encountered and/or</td><td> </td><td class="right">   with some kind of annotation of the difficulty encountered and/or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   logging of a similar nature.  However, this will not be desirable to</td><td> </td><td class="right">   logging of a similar nature.  However, this will not be desirable to</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0028" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   operators that wish to implement SPF checking as strictly as</td><td> </td><td class="rblock">   <span class="insert">SPF verifier</span> operators that wish to implement SPF checking as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   possible, nor is this sort of passive problem reporting typically</td><td> </td><td class="rblock">   strictly as possible, nor is this sort of passive problem reporting</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   effective.</td><td> </td><td class="rblock">   typically effective.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There is of course the option placing this choice in the hands of the</td><td> </td><td class="right">   There is of course the option placing this choice in the hands of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0029" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   operator rather than the implementer since this kind of choice is</td><td> </td><td class="rblock">   <span class="insert">SPF verifier</span> operator rather than the implementer since this kind of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   often a matter of local policy rather than a condition with a</td><td> </td><td class="rblock">   choice is often a matter of local policy rather than a condition with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   universal solution, but this adds one more piece of complexity to an</td><td> </td><td class="rblock">   a universal solution, but this adds one more piece of complexity to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   already non-trivial environment.</td><td> </td><td class="rblock">   an already non-trivial environment.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0030" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Both implementers and operators need to be cautious of all choices</td><td> </td><td class="rblock">   Both implementers and <span class="insert">SPF verifier</span> operators need to be cautious of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   and outcomes when handling SPF results.</td><td> </td><td class="rblock">   all choices and outcomes when handling SPF results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Appendix I.  Protocol Status</td><td> </td><td class="right">Appendix I.  Protocol Status</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   NOTE TO RFC EDITOR: To be removed prior to publication.</td><td> </td><td class="right">   NOTE TO RFC EDITOR: To be removed prior to publication.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF has been in development since the summer of 2003 and has seen</td><td> </td><td class="right">   SPF has been in development since the summer of 2003 and has seen</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   deployment beyond the developers beginning in December 2003.  The</td><td> </td><td class="right">   deployment beyond the developers beginning in December 2003.  The</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   design of SPF slowly evolved until the spring of 2004 and has since</td><td> </td><td class="right">   design of SPF slowly evolved until the spring of 2004 and has since</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   stabilized.  There have been quite a number of forms of SPF, some</td><td> </td><td class="right">   stabilized.  There have been quite a number of forms of SPF, some</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   written up as documents, some submitted as Internet Drafts, and many</td><td> </td><td class="right">   written up as documents, some submitted as Internet Drafts, and many</td><td class="lineno" valign="top"></td></tr>

     <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
     <tr bgcolor="gray"><th colspan="5" align="center"><a name="end">&nbsp;End of changes. 30 change blocks.&nbsp;</a></th></tr>
     <tr class="stats"><td></td><th><i>156 lines changed or deleted</i></th><th><i> </i></th><th><i>187 lines changed or added</i></th><td></td></tr>
     <tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.41. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/" >http://tools.ietf.org/tools/rfcdiff/</a> </td></tr>
   </table>
   </body>
   </html>

--nextPart459656491.JZNEy2MKK3--


From spf2@kitterman.com  Wed Sep 11 21:58:14 2013
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 64E9621F9FAC for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 21:58:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.22
X-Spam-Level: 
X-Spam-Status: No, score=-2.22 tagged_above=-999 required=5 tests=[AWL=0.379,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UKdsluzP14+9 for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 21:58:09 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 8860821F9FAD for <spfbis@ietf.org>; Wed, 11 Sep 2013 21:58:09 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 0B65920E40EA; Thu, 12 Sep 2013 00:58:09 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1378961889; bh=60MRm4DTjT1dJHLC9TfeqA8uXcWuaNGHZqpD99PHLk4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=He5gscUbaDTm88sCCwdwvDHOMrPjy+sWKHTbuTvvbrhSr2/99MqdFu9GMGfLsmPWw cpnNxcueMdIBoFBBhoOBOyLhYvqnoeQnHzI1UbG1FpxWarnprQT5Pu17XXFAVcUg08 NKg3RLr+ByOhu737VLq1pW5HqR4XrH9sq9YVI6TY=
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 DD87120E40D2;  Thu, 12 Sep 2013 00:58:08 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Thu, 12 Sep 2013 00:58:08 -0400
Message-ID: <1876295.3zJYQE0Gan@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <1409783.xNJeGdWPul@scott-latitude-e6320>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.gmail.com> <1409783.xNJeGdWPul@scott-latitude-e6320>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Thu, 12 Sep 2013 04:58:14 -0000

On Wednesday, September 11, 2013 17:38:27 Scott Kitterman wrote:
> On Wednesday, September 11, 2013 10:23:57 Murray S. Kucherawy wrote:
> > On Wed, Sep 11, 2013 at 5:04 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:
> > >> ------------------------------**------------------------------**
> > >> ----------
> > >> COMMENT:
> > >> ------------------------------**------------------------------**
> > >> ----------
> > >> 
> > >> I have a bunch of editorial comments that I'd like you to consider.
> > >> They're all non-blocking, but I think they'll improve the document, and
> > >> I'll be happy to chat about them if you like.
> > >> 
> > >> -- Section 2.5 --
> > >> 
> > >>    Performing the authorization check other than using the MAIL FROM
> > >>    and
> > >>    client address at the time of the MAIL command during the SMTP
> > >>    transaction can cause problems, such as the following: (1) It might
> > >>    be difficult to accurately extract the required information from
> > >>    potentially deceptive headers; (2) legitimate email might fail
> > >>    because the sender's policy had since changed.
> > >> 
> > >> I found that to be awkwardly worded and hard to understand.  Please
> > >> consider this rewrite:
> > >> 
> > >> NEW
> > >> 
> > >>    The authorization check is performed during the SMTP transaction
> > >>    at the time of the MAIL command, and uses the MAIL FROM value and
> > >>    the client IP address.  Performing the check at later times or
> > >>    with other input can cause problems such as the following:
> > >>    
> > >>    *  It might be difficult to accurately extract the required
> > >>    
> > >>       information from potentially deceptive headers.
> > >>    
> > >>    *  Legitimate email might fail the authorization check because
> > >>    
> > >>       the sender's policy has since changed.
> > >> 
> > >> END
> > 
> > Seems reasonable.
> 
> Agreed.
> 
> > >> -- Section 2.6 --
> > >> 
> > >> It would really read best if the subsections were worded to be
> > >> parallel.
> > >> As it stands, subsections 1, 3, 4, 6, and 7 are worded as "result X
> > >> means
> > >> Y", and subsections 2 and 5 are not.  Can you re-word 2 and 5 to be
> > >> parallel to the others?
> > 
> > Seems reasonable.
> 
> Agreed.
> 
> > >> Also, why are "neutral" and "fail" called "explicit statements", but
> > >> "pass", for example, is not?
> > 
> > I agree, "pass" should be.
> 
> Yep.
> 
> > >> -- Section 3 --
> > >> 
> > >>    Each SPF record is placed in the DNS tree at the owner name it
> > >>    pertains to, not a subdomain under it, such as is done with SRV
> > >>    records [RFC2782].
> > >> 
> > >> This looks like it's saying that SRV records are placed in subdomains,
> > >> and I don't think that's what you mean.  Or is it?  In any case, it's
> > >> not
> > >> clear (and I know this text is from the original).
> > >> 
> > >> Maybe this (which also avoids the two different "it"s)?:
> > >> 
> > >> NEW
> > >> 
> > >>    Each SPF record is placed in the DNS tree at the owner name it
> > >>    pertains to, not in a subdomain under the owner name.  This is
> > >>    similar to how SRV records [RFC2782] are done.
> > >> 
> > >> END
> > 
> > Seems reasonable.
> 
> Agreed.
> 
> > >>    The example in this section might be published via these lines in a
> > >>    
> > >>    domain zone file:
> > >>       example.com. TXT "v=spf1 +mx a:colo.example.com/28 -all"
> > >>       smtp-out.example.com. TXT "v=spf1 a -all"
> > >> 
> > >> What does "smtp-out" have to do with anything?  It's not otherwise
> > >> used,
> > >> and it seems to contradict what you say about subdomains in the
> > >> previous
> > >> paragraph.
> > 
> > Hmm.  Someone else will have to comment on this one.
> 
> Those are just two examples, but the preceding text is poorly worded (I
> checked and it's no better in RFC 4408).  How about this instead, to
> clarify:
> 
>    The example in this section (plus an additional SPF record for
>    smtp-out.example.com) might be published via these lines in a
>    domain zone file:
> 
>       example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"
>       smtp-out.example.com. TXT "v=spf1 a -all"
> 
> > >> -- Section 4 --
> > >> 
> > >>    This description is not an API (Application Program Interface)
> > >>    definition,
> > >> 
> > >> Two total nits on this:
> > >> 1. You never use "API" other than here, so there's no need to define
> > >> it,
> > >> and
> > >> 2. the usual expansion of "API" is application programMING interface.
> > >> I suggest, "This description is not an application programming
> > >> interface
> > >> definition, [etc]."
> > 
> > Seems reasonable.
> 
> Agreed.
> 
> > >> -- 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 is discarded.
> > >> 
> > >> Sure, and "v=spf1.0" doesn't match, and "v=spf11" doesn't match,
> > >> and....
> > >> Why is it necessary or desirable to single out "v=spf10" here?
> > 
> > I think "v=spf1.0" is actually the better (and perhaps intended) example,
> > meaning "don't just stuff the part after 'spf' through a number parser and
> > make sure 1 comes out".
> 
> The intent here is to show that you have to look at least one character past
> "v=spf1" to know if it's an SPF record or not.  It's an example.  As such,
> it doesn't matter much wrt the point if it's "v=spf10", "v=spf1.0", or or
> "v=spf1hatespf".  None of those start SPF records.  What's there is
> unchanged from RFC 4408.  I don't seem much of a point in changing it, but
> if others think 1.0 is better than 10, I don't mind.
> 
> > >> -- Section 4.6.4 --
> > >> 
> > >>    SPF implementations MUST limit the total number of mechanisms and
> > >>    modifiers ("terms") that cause any DNS query to 10 during SPF
> > >>    evaluation.  Specifically, the "include", "a", "mx", "ptr", and
> > >>    "exists" mechanisms as well as the "redirect" modifier count against
> > >>    this collective limit.  The "all", "ip4", and "ip6" mechanisms do
> > >>    not
> > >>    count against this limit.  If this number is exceeded during a
> > >>    check,
> > >>    a "permerror" MUST be returned.  The "exp" modifier does not count
> > >>    against this limit because the DNS lookup to fetch the explanation
> > >>    string occurs after the SPF record evaluation has been completed.
> > >> 
> > >> When I read this, I start feeling like I'm being read the rules for
> > >> Fizzbin
> > >> <http://en.wikipedia.org/wiki/**Fizzbin#Fizzbin<http://en.wikipedia.org
> > >> /
> > >> wiki/Fizzbin#Fizzbin>>.>>
> > >> 
> > >>  I would
> > >> 
> > >> appreciate it if this was re-worded so that there are two clear lists
> > >> here: the terms that are included in the "limit of 10", and the terms
> > >> that are not (and are, presumably, unlimited).  Perhaps something like
> > >> this:
> > >> 
> > >> NEW
> > >> 
> > >>    Some mechanisms and modifiers (collectively, "terms") cause DNS
> > >>    queries at the time of evaluation, and some do not.  The following
> > >>    terms cause DNS queries: <list goes here>.  SPF implementations
> > >>    MUST limit the total number of those terms to 10 during SPF
> > >>    evaluation, to avoid unreasonable load on the DNS.  If this limit
> > >>    is exceeded, the implementation MUST return "permerror".  The other
> > >>    terms (<list goes here>) do not cause DNS queries at the time of
> > >>    SPF evaluation, and their use is not subject to this limit.
> > >> 
> > >> END
> > >> 
> > >> If you think it's necessary (I don't):
> > >> 
> > >> NEW+
> > >> 
> > >>    The other
> > >>    terms (<list goes here>) do not cause DNS queries at the time of
> > >>    SPF evaluation (the "exp" modifier causes a lookup at a later time),
> > >>    and their use is not subject to this limit.
> > >> 
> > >> END
> > 
> > I like the new text, and prefer the second bit be included.
> 
> If we change, and I think that's reasonable, the second bit should
> definitely be included.  "exp" not counting in the 10 has confused people
> and we should be explicit about it.
> 
> > >> Then in the next two paragraphs, I think it would improve clarity to
> > >> make
> > >> a change such as this:
> > >> 
> > >> OLD
> > >> 
> > >>    When evaluating the "mx" mechanism, the number of "MX" resource
> > >>    records queried is included in the overall limit of 10 mechanisms/
> > >>    modifiers that cause DNS lookups described above.  The evaluation of
> > >>    each "MX" record MUST NOT result in querying more than 10 address
> > >>    records,
> > >> 
> > >> NEW
> > >> 
> > >>    When evaluating the "mx" mechanism, the number of "MX" resource
> > >>    records queried is included in the overall limit of 10 mechanisms/
> > >>    modifiers that cause DNS lookups described above.  In addition to
> > >>    that limit, the evaluation of each "MX" record MUST NOT result in
> > >>    querying more than 10 address records,
> > >> 
> > >> END
> > >> 
> > >> (And similarly for the "ptr" paragraph.)  I know you say this in a
> > >> paragraph of its own ("These limits are per mechanism..."), but it's
> > >> helpful if people can understand things as they read them, and then to
> > >> emphasize it later... rather than having them scratch their heads for a
> > >> few paragraphs until they get to it.
> > 
> > +1 to that part too.
> 
> Seems reasonable.
> 
> > > -- Section 4.7 --
> > > 
> > >>    It is better to use either a "redirect" modifier or an "all"
> > >>    mechanism to explicitly terminate processing.  Although the latter
> > >>    has a default (specifically "?all"), it aids debugging efforts if it
> > >>    is explicitly provided.
> > >> 
> > >> I'm not sure what "the latter has a default" is trying to say.  Do you
> > >> mean that "?all" is the default if you fall off the end, but you
> > >> shouldn't rely on that?  Or do you mean that if you say "all", then
> > >> "?all" is taken as the default (I would think "all" would mean "+all")?
> > >> Will you try re-wording this, please?
> > 
> > The former ("?all" is implicit if you fall off the end).  Suggest:
> > 
> > It is better to use either a "redirect" modifier or an "all" mechanism to
> > explicitly terminate processing.  Although there is in effect a "?all"
> > implicit at the end of every record, it ads debigging efforts when it is
> > explicitly provided.
> 
> How about:
> 
>    It is better to use either a "redirect" modifier or an "all" mechanism to
> explicitly terminate processing.  Although there is an implicit "?all" at
> the end of every record that is not explicitly terminated, it aids
> debugging efforts when it is explicitly provided.
> 
> > >> -- Section 5 --
> > >> 
> > >> What does "(do not publish)" mean next to "ptr" in the sender
> > >> mechanisms
> > >> list?  Ah; I see; it matches the "do not use" in Section 5.5.  You
> > >> should
> > >> probably change this to "(do not use; see the note in Section 5.5)".
> > 
> > Seems reasonable.
> 
> OK.
> 
> > >> It would help, I think, to add to the end of the second paragraph, "The
> > >> basic mechanisms are as follows:", and to the end of the third
> > >> paragraph,
> > >> "The designated sender mechanisms are as follows:".  Otherwise, there
> > >> are
> > >> just these disembodied lists, and the reader has to infer those
> > >> introductions.
> > 
> > Sure.
> 
> Agreed.
> 
> > >> -- Section 5.1 --
> > >> 
> > >>    Mechanisms after "all" will never be tested.  Mechanisms listed
> > >>    after
> > >>    "all" MUST be ignored.  Any "redirect" modifier (Section 6.1) MUST
> > >>    be
> > >>    ignored when there is an "all" mechanism in the record.
> > >> 
> > >> This says that the redirect in the following record will be ignored:
> > >>    v=spf1 redirect=_spf.example.com +all
> > >> 
> > >> That's sufficiently odd that it should be called out explicitly,
> > >> perhaps
> > >> by adding "regardless of the relative ordering of the terms" to the
> > >> last
> > >> sentence in the quote.
> > 
> > Yep.
> 
> OK.
> 
> > >> -- Section 5.2 --
> > >> 
> > >>    3.  The recursive evaluation returns either match, not match, or an
> > >>    
> > >>        error.  If it matches, then the appropriate result for the
> > >>        include: mechanism is used (e.g. include or +include produces a
> > >>        "pass" result and -include produces "fail").
> > >>    
> > >>    4.  If there is no match, the parent check_host() resumes processing
> > >>    
> > >>        as per the table below, with the previous value of <domain>
> > >>        restored.
> > >> 
> > >> A few things here:
> > >> 
> > >> 1. Nit: "either" is for two things; for more than two, please remove
> > >> the
> > >> word "either" (or replace it with "one of", but that seems awkward
> > >> here).
> > >> 
> > >> 2. "If it matches" is not parallel to "returns match", and similarly
> > >> for
> > >> "if there is no match".
> > >> 
> > >> 3. You don't say what happens if the recursive evaluation returns an
> > >> error.  Unfortuately, "no match" and "not match" are sufficiently
> > >> similar
> > >> to be confused.
> > >> 
> > >> I suggest this:
> > >> 
> > >> NEW
> > >> 
> > >>    3.  The recursive evaluation returns match, not match, or an
> > >>    
> > >>        error.
> > >>    
> > >>    4.  If it returns match, then the appropriate result for the
> > >>    
> > >>        include: mechanism is used (e.g., include or +include produces
> > >>        a "pass" result and -include produces "fail").
> > >>    
> > >>    5.  If it returns not match or an error, the parent check_host()
> > >>    
> > >>        resumes processing as per the table below, with the previous
> > >>        value of <domain> restored.
> > >> 
> > >> END
> > 
> > +1.
> 
> I think this is fine.
> 
> > >>    The "include" mechanism is intended for crossing administrative
> > >>    boundaries.  For example, if example.com and example.org were
> > >>    managed
> > >>    by the same entity, and if the permitted set of hosts for both
> > >>    domains was "mx:example.com", it would be possible for example.org
> > >>    to
> > >>    specify "include:example.com", but it would be preferable to specify
> > >>    "redirect=example.com" or even "mx:example.com".
> > >> 
> > >> The text you eliminated here provided a buffer that's no longer there,
> > >> making the "For example," very odd.  You talk about crossing admin
> > >> boundaries and immediately follow it with an example that does NOT.  I
> > >> think it would be better to put a sentence in to restore that buffer --
> > >> perhaps, "When remaining within one administrative authority, "include"
> > >> is usually not the best choice."
> > 
> > Sure.
> 
> Agreed.
> 
> > >> -- Section 5.5 --
> > >> 
> > >>    This mechanism SHOULD NOT be published.  See below for discussion.
> > >> 
> > >> It's quite a bit below.  I suggest "See the note at the end of this
> > >> section for more information."  It might even be worth putting that
> > >> note
> > >> into a Section 5.5.1, so it's highlighted and more easily cited.
> > 
> > +1.
> 
> OK.  Someone let me know which way I should do it.  I'm OK with either.
> 
> > >> -- Section 6 --
> > >> 
> > >>    Unrecognized modifiers MUST be ignored no matter where in a record,
> > >>    or how often.
> > >> 
> > >> This is missing a couple of words:
> > >> 
> > >> NEW
> > >> 
> > >>    Unrecognized modifiers MUST be ignored no matter where in a record
> > >>    they appear, or how often.
> > >> 
> > >> END
> > 
> > +1.
> 
> OK.
> 
> > >>    For clarity, any "redirect" modifier SHOULD appear as the very last
> > >>    term in a record.
> > >> 
> > >> I don't usually recommend repeating things, but one thing from earlier
> > >> probably does bear repeating here:
> > >> 
> > >> NEW
> > >> 
> > >>    For clarity, any "redirect" modifier SHOULD appear as the very last
> > >>    term in a record.  Any "redirect" modifier MUST be ignored if there
> > >>    is an "all" mechanism anywhere in the record.
> > >> 
> > >> END
> > 
> > Seems reasonable.
> 
> OK.
> 
> Thanks for the detailed review and msk's comments on the comments.

I just realized the update to the draft I just posted doesn't include any of 
these changes.  They are not (now) forgotten.  I'll included them next time I 
update things.

Scott K

From sm@elandsys.com  Wed Sep 11 23:11:21 2013
Return-Path: <sm@elandsys.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 2FA4521E8148; Wed, 11 Sep 2013 23:11:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.572
X-Spam-Level: 
X-Spam-Status: No, score=-102.572 tagged_above=-999 required=5 tests=[AWL=0.027, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 06SMm+-IwKRv; Wed, 11 Sep 2013 23:11:20 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 68F2121E8147; Wed, 11 Sep 2013 23:11:20 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.155.34]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8C6B13D012700 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Sep 2013 23:11:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378966274; bh=0VZJJLP6m8JDQiZOt7SdPnM/FMg0WXHAqDWvGONY8zA=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=qaEdlz/a3J+C15vOGZOJxLN0Mu7Tx9jlVrWyUlrxDwPvF8AI7T4vnwq2Fka41DBPt 5b7sdr/dIzfTu25B6E5T2j70Kk2OETzpdKBgONhrQKyB7GAOsClx9HlNTya6LQ/leq QqlmCgjq1SFMKkun/vSi+3DdEZT2IzRNNZ3YYsyI=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378966274; i=@elandsys.com; bh=0VZJJLP6m8JDQiZOt7SdPnM/FMg0WXHAqDWvGONY8zA=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=s86cv391Q1UoOn1ILRWPczXEJrEbX8aKpqN3uxZMi8LFUWsWNq0F1xzNnRqIbHQkm yLPXnZCg7+R3xup5x3ZaYXa3nMYdZZGSf7C+3xN7HYmvLAVo+eVW6YRPmPZUGj5G7Q NKvMvi95tlFfpXTGmJVJ4QPA/voNI6MFb7knAZTs=
Message-Id: <6.2.5.6.2.20130911224817.0bdcd030@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Wed, 11 Sep 2013 22:54:54 -0700
To: Pete Resnick <presnick@qti.qualcomm.com>, The IESG <iesg@ietf.org>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <2405077.Cn8DraDvER@scott-latitude-e6320>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <1623078.iZZXT7WM88@scott-latitude-e6320> <6.2.5.6.2.20130911150339.0c435c60@elandnews.com> <2405077.Cn8DraDvER@scott-latitude-e6320>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Thu, 12 Sep 2013 06:11:21 -0000

Hi Pete,

The DISCUSS was as follows:

>----------------------------------------------------------------------
>DISCUSS:
>----------------------------------------------------------------------
>
>Holding my own DISCUSS:
>
>Text needs to be created (probably for section 3.1) to better describe
>the reason this document settled on TXT RR only and therefore why no
>precedent is set for future use of the TXT RR.

Here is the revised section 3.1:

3.1.  DNS Resource Records

     SPF records MUST be published as a DNS TXT (type 16) Resource Record
     (RR) [RFC1035] only.  The character content of the record is encoded
     as [US-ASCII].  Use of alternative DNS RR types was supported in
     SPF's experimental phase, but has been discontinued.

     In 2003, when SPF was first being developed, the requirements for
     assignment of a new DNS RR type were considerably more stringent than
     they are now.  Additionally, support for easy deployment of new DNS
     RR types was not widely deployed in DNS servers and provisioning
     systems.  As a result, developers of SPF found it easier and more
     practical to use the TXT RR type for SPF records.

     In its review of [RFC4408] the SPFbis working group concluded that
     its dual RR type transition model was fundamentally flawed since it
     contained no common RR type that implementers were required to serve
     and required to check.  Many alternatives were considered to resolve
     this issue, but ultimately the working group concluded that
     significant migration to the SPF RR type in the foreseeable future was
     very unlikely and that the best solution for resolving this
     interoperability issue was to drop support for the SPF RR type from
     SPF version 1.  See Appendix A of [RFC6686] for further information.

     The circumstances surrounding SPF's initial deployment a decade ago
     are unique.  If a future update to SPF were developed that did not
     reuse existing SPF records, it could use the SPF RR type.  SPF's use
     of the TXT RR type for structured data should in no way be taken as
     precedent for future protocol designers.  Further discussion of
     design considerations when using new DNS RR types can be found in
     [RFC5507].

Regards,
S. Moonesamy (as document shepherd) 


From sm@elandsys.com  Wed Sep 11 23:16:48 2013
Return-Path: <sm@elandsys.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 5AED521E813A for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 23:16:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.574
X-Spam-Level: 
X-Spam-Status: No, score=-102.574 tagged_above=-999 required=5 tests=[AWL=0.025, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YmS1U7MiVULS for <spfbis@ietfa.amsl.com>; Wed, 11 Sep 2013 23:16:47 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 415F821E814D for <spfbis@ietf.org>; Wed, 11 Sep 2013 23:16:43 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.155.34]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8C6GRxP010540 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 11 Sep 2013 23:16:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378966599; bh=3EhDyqChkZLBEuUwGCOUt2t2Ri54neFBPqBzw7g92vo=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=jPbvPmGbvUKS5qtn2di1/nN7IcHl10S7mxBQ6w2wqcemQer6o4VGc1ixdz/cgmGmR xgqpNJ9qsepP7hyOcNN2ngaMv/7hE96bHe+eM2ogazfv/kcwLQWgZCsbfMd5TVMP33 H9cKuow+tH+bL2IWLXWp310cdUpOK0Ycnnl44B8U=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378966599; i=@elandsys.com; bh=3EhDyqChkZLBEuUwGCOUt2t2Ri54neFBPqBzw7g92vo=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=fJhRH2PzWpZzsYRQf0KArZbvCUfs8afQe4XKaPxpH3pPiuwtiPP3QTORT0v6iMvvV HdDxPTNfLbzNDc6UGa53gpftfq5AzLEngoDm3e1Q7UeLRWI5CuKgrSnptsFnxxnntb xSvQ/htmyRTBnbwN0Hka7UfXPRL0DM8SgcSF66gw=
Message-Id: <6.2.5.6.2.20130911225513.0cd8fc00@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Wed, 11 Sep 2013 23:15:46 -0700
To: Scott Kitterman <spf2@kitterman.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <2405077.Cn8DraDvER@scott-latitude-e6320>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <1623078.iZZXT7WM88@scott-latitude-e6320> <6.2.5.6.2.20130911150339.0c435c60@elandnews.com> <2405077.Cn8DraDvER@scott-latitude-e6320>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org
Subject: [spfbis] DISCUSSes and SecDir review (was: Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT))
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: Thu, 12 Sep 2013 06:16:48 -0000

Hi Scott,

Thanks for all the work.  I'll wait for Pete's response.  I suggest 
that we focus on the other parts of the draft as from now.

At 21:49 11-09-2013, Scott Kitterman wrote:
>Done.  rfcdiff of the full post -19 diff attached.  I've applied the 
>changes due
>to Barry's comments as well.

Ok.

>Here is the revised section 3.1:

Thanks.

>I am waiting any changes based on the SECDIR review for some responses to my
>last message on that topic.

I'll send the reply to the SECDIR review.  I'll recommend no change 
for the DKIM issue mentioned in the review.  It should be possible to 
address Issue 1 ( 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04135.html 
).  The response to Issues 2 and 3 look okay to me.

There is already text from Barry's DISCUSS (Thanks, Barry) to fix 
Section 4.6.  There was a comment from Pete about the size 
limitations in 3.4.  I'll have to go over the discussion again for that one.

As a note to the working group please let me know if I missed any 
part of the draft that requires a change in response to the IESG Evaluation.

Regards,
S. Moonesamy (as document shepherd) 


From mansaxel@besserwisser.org  Thu Sep 12 00:14:08 2013
Return-Path: <mansaxel@besserwisser.org>
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 5056211E817B; Thu, 12 Sep 2013 00:14:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.648
X-Spam-Level: 
X-Spam-Status: No, score=-1.648 tagged_above=-999 required=5 tests=[AWL=0.652,  BAYES_00=-2.599, MIME_8BIT_HEADER=0.3, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id YmYfkEs8pAiM; Thu, 12 Sep 2013 00:14:07 -0700 (PDT)
Received: from jaja.besserwisser.org (jaja.besserwisser.org [IPv6:2a01:298:4:0:211:43ff:fe36:1299]) by ietfa.amsl.com (Postfix) with ESMTP id B532511E8175; Thu, 12 Sep 2013 00:14:07 -0700 (PDT)
Received: by jaja.besserwisser.org (Postfix, from userid 1004) id BE5CE9E99; Thu, 12 Sep 2013 09:14:04 +0200 (CEST)
Date: Thu, 12 Sep 2013 09:14:04 +0200
From: =?utf-8?B?TcOlbnM=?= Nilsson <mansaxel@besserwisser.org>
To: S Moonesamy <sm+ietf@elandsys.com>
Message-ID: <20130912071404.GA21612@besserwisser.org>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com> <1623078.iZZXT7WM88@scott-latitude-e6320> <6.2.5.6.2.20130911150339.0c435c60@elandnews.com> <2405077.Cn8DraDvER@scott-latitude-e6320> <6.2.5.6.2.20130911224817.0bdcd030@elandnews.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ZGiS0Q5IWpPtfppv"
Content-Disposition: inline
In-Reply-To: <6.2.5.6.2.20130911224817.0bdcd030@elandnews.com>
X-URL: http://vvv.besserwisser.org
X-Purpose: More of everything NOW!
X-happyness: Life is good.
User-Agent: Mutt/1.5.20 (2009-06-14)
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Thu, 12 Sep 2013 07:14:08 -0000

--ZGiS0Q5IWpPtfppv
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Subject: Re: [spfbis] Pete Resnick's Discuss on draft-ietf-spfbis-4408bis-1=
9: (with DISCUSS and COMMENT) Date: Wed, Sep 11, 2013 at 10:54:54PM -0700 Q=
uoting S Moonesamy (sm+ietf@elandsys.com):
> Hi Pete,
>=20
> The DISCUSS was as follows:
>=20
> >----------------------------------------------------------------------
> >DISCUSS:
> >----------------------------------------------------------------------
> >
> >Holding my own DISCUSS:
> >
> >Text needs to be created (probably for section 3.1) to better describe
> >the reason this document settled on TXT RR only and therefore why no
> >precedent is set for future use of the TXT RR.

This text is a much more honest and clear description of the design
mishaps and blunderations that led us into the current situation. I do
not think we need do more to describe the state than so in this document.

Having thus praised the editors for their thorough work, I'd like to state =
that:

Actions speak louder than words, and since we're all (apparently)
reasonably in agreement about the undesirability of another protocol
"simply using TXT" something heavier than "shame on us, ok for this time,
don't do that again!" is needed.

Thus, I am still opposed to deprecating SPF/99.=20

By the way, Carthago should be turned into rubble.=20
--=20
M=C3=A5ns Nilsson     primary/secondary/besserwisser/machina
MN-1334-RIPE                             +46 705 989668
The FALAFEL SANDWICH lands on my HEAD and I become a VEGETARIAN ...

--ZGiS0Q5IWpPtfppv
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAlIxabwACgkQ02/pMZDM1cU7+gCgkAC8M/9DnXKMCUaV+3hhwvZ6
uq0An25yIkNkAmLrZJG4H9zLa+13BITw
=dQ21
-----END PGP SIGNATURE-----

--ZGiS0Q5IWpPtfppv--

From R.E.Sonneveld@sonnection.nl  Thu Sep 12 01:23:23 2013
Return-Path: <R.E.Sonneveld@sonnection.nl>
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 A6C1921F9F2B for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 01:23:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.599
X-Spam-Level: 
X-Spam-Status: No, score=-3.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uUEOqv-4fDe4 for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 01:23:18 -0700 (PDT)
Received: from mx20.mailtransaction.com (mx20.mailtransaction.com [78.46.16.213]) by ietfa.amsl.com (Postfix) with ESMTP id A9FF521F9FB1 for <spfbis@ietf.org>; Thu, 12 Sep 2013 01:23:10 -0700 (PDT)
Received: from mx24.mailtransaction.com (mx21.mailtransaction.com [78.46.16.236]) by mx20.mailtransaction.com (Postfix) with ESMTP id 3cbCfN0lhmz1L8fB; Thu, 12 Sep 2013 10:23:08 +0200 (CEST)
Received: from jaguar.sonnection.nl (D57E1702.static.ziggozakelijk.nl [213.126.23.2]) by mx24.mailtransaction.com (Postfix) with ESMTP id 3cbCfM6YJ6z1L8f8; Thu, 12 Sep 2013 10:23:07 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by jaguar.sonnection.nl (Postfix) with ESMTP id B6486123135; Thu, 12 Sep 2013 10:23:07 +0200 (CEST)
X-Virus-Scanned: amavisd-new at sonnection.nl
Received: from jaguar.sonnection.nl ([127.0.0.1]) by localhost (jaguar.sonnection.nl [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 2cEzuUpkOzGe; Thu, 12 Sep 2013 10:23:04 +0200 (CEST)
Received: from [192.168.1.49] (unknown [192.168.1.49]) by jaguar.sonnection.nl (Postfix) with ESMTPSA id 0F66D123156; Thu, 12 Sep 2013 10:23:04 +0200 (CEST)
Message-ID: <523179E7.6090207@sonnection.nl>
Date: Thu, 12 Sep 2013 10:23:03 +0200
From: "Rolf E. Sonneveld" <R.E.Sonneveld@sonnection.nl>
Organization: Sonnection B.V.
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130804 Thunderbird/17.0.8
MIME-Version: 1.0
To: Scott Kitterman <spf2@kitterman.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <5230A523.20504@isdg.net> <6.2.5.6.2.20130911134838.0c217ca8@resistor.net> <2297109.DlIYn73fZN@scott-latitude-e6320>
In-Reply-To: <2297109.DlIYn73fZN@scott-latitude-e6320>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=sonnection.nl; s=2009; t=1378974188; bh=Xhq/qGxr0jspNOu/ZtRIcbo51muphc4eXBZ343E0tPw=; h=Message-ID:Date:From:To:Subject:From; b=EXdKqvfa5UzhKcRXZcGYXvUyS9uM2W56CN3lK7VyVBF8ilyVe4bp4uA2VAibgZO10 D4zjECxuushOUPLhiWMFN/hG6W7lLyx93Z6Pwwlbn2LAVsG5kWySWwqKuWSWqqPVMW AHdFob0vqQdAfn3w3Oxc90KZqisRi/poO30Uf0bA=
DKIM-Filter: OpenDKIM Filter v2.8.2 mx20.mailtransaction.com 3cbCfN0lhmz1L8fB
Cc: spfbis@ietf.org
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
X-BeenThere: spfbis@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: R.E.Sonneveld@sonnection.nl
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: Thu, 12 Sep 2013 08:23:23 -0000

Hi, Scott,

On 09/11/2013 11:53 PM, Scott Kitterman wrote:
> On Wednesday, September 11, 2013 13:53:28 S Moonesamy wrote:
>> Hi Scott,
>>
>> I am copying the parts of the SECDIR review to which there hasn't
>> been any response:
>>
>> Issue 1:
>>> 1.1.3.  MAIL FROM Definition
>>>
>>> I found this section completely opaque and very confusing. It should
>>> not be necessary to hunt through other specs to find a definition.
>>> Particularly since the referenced specs do not give an explicit
>>> definition for the term as used and the references point to the
>>> whole spec rather than a particular section.
> It's a challenge, but I think it's better than inventing a new definition for
> SPF that may be different.  Would someone be willing to dive into the relevant
> RFCs and see if they can make a recommendation about how better to reference
> this?

To avoid confusion it's better not to mention a whole list of possible 
names/aliases in this Definition paragraph.

May I suggest the following text:


1.1.3.  MAIL FROM Definition

    This document is concerned with the identity of the sender of a
    mail message, as referred to in [RFC5321]:

        "The transaction starts with a MAIL command that gives the
        sender identification."

.  Since there are many other names for this identity, it is
    important to choose a name that is:

    1. commonly used
    2. well defined

    As such, throughout this document the term "MAIL FROM" will be used,
    which is defined as the RFC5321.MailFrom identity described in 
[RFC5598].


--

/rolf

From sm@elandsys.com  Thu Sep 12 01:49:16 2013
Return-Path: <sm@elandsys.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 A70C421E818E; Thu, 12 Sep 2013 01:49:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.576
X-Spam-Level: 
X-Spam-Status: No, score=-102.576 tagged_above=-999 required=5 tests=[AWL=0.023, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AOfl6cwTCwZl; Thu, 12 Sep 2013 01:49:16 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 7C15221E8190; Thu, 12 Sep 2013 01:49:11 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.155.34]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8C8mm4F009475 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 12 Sep 2013 01:48:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378975741; bh=uIT2NCfbeAtbXcMTZ+X402mhn0E8B7aqxtpS6INwYlo=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=ehkZxbKoUAM2VshydbXlQZK1egUafHAX4O4Ljcv/dV1w/S66zN5La4bJdPrqmYr90 zpvZe6wIFPX0SEzs29VCG85rBqOeyG8j4O9LAkCWmukvL1qLizn+aW+aRS4dEg7O9T CjEbHRrrWZjFMjI6V8TBd075NIhyh6ikbnPdWe5E=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378975741; i=@elandsys.com; bh=uIT2NCfbeAtbXcMTZ+X402mhn0E8B7aqxtpS6INwYlo=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=4DqsMQCCszXNNz4kqa5j8Rg26ADX5Zp8n932s2P9otuU3RojsdjEQDIaLrATXmPyM 3OpzRS+BaflyLz29RuuSO8iRobF0elGylIT0V7qOoCBbuIFSNsuwHcFOkDiY0SmC31 TJ1uQINi67VL451Kr1JdcgR923hKU/Bm97o6Jkz0=
Message-Id: <6.2.5.6.2.20130911234125.0d7cbbb0@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Thu, 12 Sep 2013 01:46:01 -0700
To: Douglas Otis <doug.mtview@gmail.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <6FC7A544-0AB5-4BC0-A0BF-D0D8D740D3B8@gmail.com>
References: <6FC7A544-0AB5-4BC0-A0BF-D0D8D740D3B8@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, ietf@ietf.org, Andrew Sullivan <ajs@anvilwalrusden.com>
Subject: Re: [spfbis] Last Call: <draft-ietf-spfbis-4408bis-19.txt> (Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1) to Proposed Standard
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: Thu, 12 Sep 2013 08:49:16 -0000

Hi Doug,
At 21:55 11-09-2013, Douglas Otis wrote:
>Recommended text is as follows:

Thanks for suggesting text.  I'll take this up with the SPFBIS WG 
after the (IESG) DISCUSSes have been addressed.

Here are some quick comments.  Section 4.6.4 was reviewed again in 
response to the DISCUSS from Barry Leiba.  I will take the new 
changes into consideration when making a suggestion to the SPFBIS WG 
about that part of the draft.  I'll also review the text proposed in 
the message at 
http://www.ietf.org/mail-archive/web/ietf/current/msg82402.html 
before making that suggestion.

There were also some text clarifications to Section 5 in response to 
comments from Barry Leiba.  I'll see whether the addition of the one 
sentence which you propose fits in.

Some text was proposed to address the "DNS message" issue in Section 
3.4 ( 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04104.html 
).  I'll use your suggestion and some of the other suggestions to get 
this issue resolved.

It is my understanding that you consider the "macro" issue (Section 
11.5.3 in the text which was proposed) as a major one.  The argument 
in your message starts with IPv6 or DNSSEC not being in the purview 
of draft-ietf-spfbis-4408bis.  It is followed by EDNS0 is used with 
DNSSEC, and there is a discussion about MTU after that.  The next 
paragraph starts with the argument that the SPF macro feature can be 
used for "attacks".  The proposed text then argues that SPF records 
containing macros are to be ignored to mitigate such an attack.  At 
the moment I do not know what I will suggest.  I welcome any new 
input from anyone who has not commented about the "macro" issue.

I suggest using the spfbis@ietf.org mailing list only for any 
follow-up about the above instead of copying the message to the ietf@ietf.org.

Regards,
S. Moonesamy (as document shepherd) 


From sm@elandsys.com  Thu Sep 12 07:20:50 2013
Return-Path: <sm@elandsys.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 AEED111E8233; Thu, 12 Sep 2013 07:20:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.578
X-Spam-Level: 
X-Spam-Status: No, score=-102.578 tagged_above=-999 required=5 tests=[AWL=0.021, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eWXmXI3uJ6CP; Thu, 12 Sep 2013 07:20:44 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id B351411E8244; Thu, 12 Sep 2013 07:20:30 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.139.127]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8CEKEEk026591 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 12 Sep 2013 07:20:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378995628; bh=wCdvk6nVO1Ka9hJysa7hv5K+bvP1OhfZwg8D6bFcDSs=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=tnz5fpku/Vpqd59g7uwmSbZ/AkOSjlySIMSfeBcAWOmILYrhE5IIlJepR+/2eZhrn f04D0vikjhyAVFuHOJtr19nTp/XXs6ijPTuzDwjlAmosAdypmUpmwOSx035c+MJAvS xZcnKLTuSgncGDrEdG2gsKk75pKj8C3ETa42cx74=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378995628; i=@elandsys.com; bh=wCdvk6nVO1Ka9hJysa7hv5K+bvP1OhfZwg8D6bFcDSs=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=X4KXQik6EqOk7Uvkq3nz4SluPkeRmkiNRrtEAKYgDh2PZxL2UPCII5qZCDhHSjDik cdkjLzwceagjJFG9xl67k1NdHgyJpEnntoszO1pPLc0mbD5OqgBpEPMUiZOW+aW1T9 xnHb3oGD2G5FAjg87QcA54BuEDyY8dTQTAQpxnIU=
Message-Id: <6.2.5.6.2.20130912065558.0b960550@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Thu, 12 Sep 2013 07:18:08 -0700
To: "Benoit Claise" <bclaise@cisco.com>, The IESG <iesg@ietf.org>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <20130912104701.7259.79919.idtracker@ietfa.amsl.com>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 12 Sep 2013 14:20:50 -0000

Hi Benoit,
At 03:47 12-09-2013, Benoit Claise wrote:
>Benoit Claise has entered the following ballot position for
>draft-ietf-spfbis-4408bis-19: No Objection

[snip]
----------------------------------------------------------------------
>COMMENT:
>----------------------------------------------------------------------
>
>disclaimer: I've only reviewed the changes compared to the RFC 4088.
>
>Regarding "Appendix J.  Change History":
>    NOTE TO RFC EDITOR: Changes since RFC 4408 (to be removed prior to
>    publication)
>
>Personally, I like it when the new RFC has one section summarizing the
>changes compared to the initial RFC.
>This would be a mix of:
>    Appendix J.  Change History", but no needs to mention the editorial
>changes
>    Appendix C.  Changes in implementation requirements from RFC 4408

Appendix C contains the changes between the draft and RFC 4408.  The 
question of changes was mentioned by Eliot Lear in his AppsDir review 
(see 
http://www.ietf.org/mail-archive/web/apps-discuss/current/msg10278.html 
).  My suggestion to the SPFBIS WG is to leave this as it is.

Regards,
S. Moonesamy (as document shepherd) 


From sm@elandsys.com  Thu Sep 12 07:30:40 2013
Return-Path: <sm@elandsys.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 7CA6921E80B7; Thu, 12 Sep 2013 07:30:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.579
X-Spam-Level: 
X-Spam-Status: No, score=-102.579 tagged_above=-999 required=5 tests=[AWL=0.020, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yCtZMCeAbhUj; Thu, 12 Sep 2013 07:30:39 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id ADCBA11E812F; Thu, 12 Sep 2013 07:30:39 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.139.127]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8CEUFIT001105 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 12 Sep 2013 07:30:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378996230; bh=JayyQ7Z4Z1VSFLKNvL+tviw2bjQimMu5Bsm35EHJ0gA=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=TwPzvzL0zLx1YDqQGUWNh+KTduBs+bLk8gENuDU9nCNWOZXBErwznvjy7G6tDXe+k 8ePtFTvKJDe7evRpEK2w6iwRyr/6biYnJsP1h4TfWt6FJGgPbnpof5ECUAQn/CHJ7o LzNAsxY/cBy08RqyJjhbOaG9YIhYC4z4YsFyDVvk=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378996230; i=@elandsys.com; bh=JayyQ7Z4Z1VSFLKNvL+tviw2bjQimMu5Bsm35EHJ0gA=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=uU4Ljx84uoMKVgyMQmPXhClW4tStqvJMXkln849zUAMY6c1OKPJ6eW2ZbJ3Jd+C6x XeZj9PhroD1A9Qc0JkxJdOL8EXeImG7TRmn8hr31OiX1+LLoHZjUsHlw/EHe48U8GZ +Bo1BWEDpscgOGmGPkQHDIqnzOWtBdGPqKWjTUTk=
Message-Id: <6.2.5.6.2.20130912072207.0b998388@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Thu, 12 Sep 2013 07:26:53 -0700
To: Sean Turner <turners@ieca.com>, The IESG <iesg@ietf.org>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <20130912114310.25787.59356.idtracker@ietfa.amsl.com>
References: <20130912114310.25787.59356.idtracker@ietfa.amsl.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org
Subject: Re: [spfbis] Sean Turner's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 12 Sep 2013 14:30:40 -0000

Hi Sean,
At 04:43 12-09-2013, Sean Turner wrote:
>Sean Turner has entered the following ballot position for
>draft-ietf-spfbis-4408bis-19: No Objection

[snip]

>----------------------------------------------------------------------
>COMMENT:
>----------------------------------------------------------------------
>
>Should s11.3 also provide a mitigation via a reference for the spoofed
>DNS?  Right now it just points to the DNS threats RFC.  I guess the
>reader can infer they should use DNSSEC if they're worried but adding a
>pointer to the right RFC would be better.  Something as simple as adding
>"... and see [RFCXYZ] for a countermeasure" or something like that.

I'll suggest:

   and see RFC 4033 for a countermeasure.

and leave it to the SPFBIS WG to comment on the above.

Regards,
S. Moonesamy (as document shepherd) 


From sm@elandsys.com  Thu Sep 12 07:31:58 2013
Return-Path: <sm@elandsys.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 CC96B21E80FA; Thu, 12 Sep 2013 07:31:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.58
X-Spam-Level: 
X-Spam-Status: No, score=-102.58 tagged_above=-999 required=5 tests=[AWL=0.019, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0F8k+f-GQ6LA; Thu, 12 Sep 2013 07:31:58 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 07C8421E80DD; Thu, 12 Sep 2013 07:31:58 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.139.127]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8CEUFIV001105 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 12 Sep 2013 07:30:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378996236; bh=pF+bjubs2MhqqV8uN+XoT8xBs6zFrguEK6kaFqL7tm8=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=fG4lJvuFe+EhSeyGh7DPK6kyQJ6jcG8soT/YRHnbtKRTZJoISqSvhtLsblTCJvIes ffft7UWtlrouPXh1yi+qAKS7KjbFWZDUtu+TvflUmSfe7Wbs8IRDh/ovdVXwQWjILi rBp1Le3rspu+sGIJmvPh8ql9+7uAxWikexgSh2BM=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378996236; i=@elandsys.com; bh=pF+bjubs2MhqqV8uN+XoT8xBs6zFrguEK6kaFqL7tm8=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=W04iCT/WDHinhbd8l7vv5LqgiQWM8LmsUYYSiKGWHehwDA4VDcsqFA29g8vxFi8Ry 5QI4SQy9aPuQo5RuLlVJJbjZVnw4oRcS0cKbr7Krrj6ECBeubB7pqguwmXyHiq7zGc u4+MzwiT0LXfOwo+snEYWwyT1ptFZALeG4F5InJY=
Message-Id: <6.2.5.6.2.20130912072800.0b998240@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Thu, 12 Sep 2013 07:29:37 -0700
To: spfbis@ietf.org
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <20130912101511.20829.6656.idtracker@ietfa.amsl.com>
References: <20130912101511.20829.6656.idtracker@ietfa.amsl.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>, Stephen Farrell <stephen.farrell@cs.tcd.ie>
Subject: Re: [spfbis] Stephen Farrell's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 12 Sep 2013 14:31:58 -0000

Hello,

Could the SPFBIS WG please address the following comment?

Thanks,
S. Moonesamy (as document shepherd)

At 03:15 12-09-2013, Stephen Farrell wrote:
>Stephen Farrell has entered the following ballot position for
>draft-ietf-spfbis-4408bis-19: No Objection
>
>When responding, please keep the subject line intact and reply to all
>email addresses included in the To and CC lines. (Feel free to cut this
>introductory paragraph, however.)
>
>
>Please refer to http://www.ietf.org/iesg/statement/discuss-criteria.html
>for more information about IESG DISCUSS and COMMENT positions.
>
>
>The document, along with other ballot positions, can be found here:
>http://datatracker.ietf.org/doc/draft-ietf-spfbis-4408bis/
>
>
>
>----------------------------------------------------------------------
>COMMENT:
>----------------------------------------------------------------------
>
>
>- 4.1: given that recursion is allowed and that you have
>overall limits on how many DNS transactions can be done,
>is the "transactions-remaining" value also an implicit
>parameter of a check_host() call? This is only a comment
>since check_host is not a formal API but it'd seem to make
>it easier to get right if you make that implicit parameter
>explicit. Or do the limits apply to each call as you
>recurse?  That wasn't entirely clear to me.
>
>- I didn't get appendix D at all - what's that do?
>
>- Appendix E.1, 2nd bullet: what's that? I think it needs
>a reference if you want it to be understood.


From turners@ieca.com  Thu Sep 12 07:40:38 2013
Return-Path: <turners@ieca.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 2756D21E8105 for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 07:40:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.48
X-Spam-Level: 
X-Spam-Status: No, score=-102.48 tagged_above=-999 required=5 tests=[AWL=0.119, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Fw6WoNF73lgU for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 07:40:31 -0700 (PDT)
Received: from gateway09.websitewelcome.com (gateway09.websitewelcome.com [64.5.38.13]) by ietfa.amsl.com (Postfix) with ESMTP id 3465211E821E for <spfbis@ietf.org>; Thu, 12 Sep 2013 07:40:31 -0700 (PDT)
Received: by gateway09.websitewelcome.com (Postfix, from userid 507) id 0DA143DC2826E; Thu, 12 Sep 2013 09:39:31 -0500 (CDT)
Received: from gator3286.hostgator.com (gator3286.hostgator.com [198.57.247.250]) by gateway09.websitewelcome.com (Postfix) with ESMTP id D2AC93DC2821F for <spfbis@ietf.org>; Thu, 12 Sep 2013 09:39:30 -0500 (CDT)
Received: from [96.231.225.44] (port=61237 helo=thunderfish.local) by gator3286.hostgator.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.80) (envelope-from <turners@ieca.com>) id 1VK84K-0000JV-UE; Thu, 12 Sep 2013 09:40:29 -0500
Message-ID: <5231D25B.6040004@ieca.com>
Date: Thu, 12 Sep 2013 10:40:27 -0400
From: Sean Turner <turners@ieca.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: S Moonesamy <sm+ietf@elandsys.com>
References: <20130912114310.25787.59356.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912072207.0b998388@elandnews.com>
In-Reply-To: <6.2.5.6.2.20130912072207.0b998388@elandnews.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - gator3286.hostgator.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - ieca.com
X-BWhitelist: no
X-Source: 
X-Source-Args: 
X-Source-Dir: 
X-Source-Sender: (thunderfish.local) [96.231.225.44]:61237
X-Source-Auth: sean.turner@ieca.com
X-Email-Count: 3
X-Source-Cap: ZG9tbWdyNDg7ZG9tbWdyNDg7Z2F0b3IzMjg2Lmhvc3RnYXRvci5jb20=
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Sean Turner's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 12 Sep 2013 14:40:38 -0000

On 9/12/13 10:26 AM, S Moonesamy wrote:
> Hi Sean,
> At 04:43 12-09-2013, Sean Turner wrote:
>> Sean Turner has entered the following ballot position for
>> draft-ietf-spfbis-4408bis-19: No Objection
>
> [snip]
>
>> ----------------------------------------------------------------------
>> COMMENT:
>> ----------------------------------------------------------------------
>>
>> Should s11.3 also provide a mitigation via a reference for the spoofed
>> DNS?  Right now it just points to the DNS threats RFC.  I guess the
>> reader can infer they should use DNSSEC if they're worried but adding a
>> pointer to the right RFC would be better.  Something as simple as adding
>> "... and see [RFCXYZ] for a countermeasure" or something like that.
>
> I'll suggest:
>
>    and see RFC 4033 for a countermeasure.
>
> and leave it to the SPFBIS WG to comment on the above.

That would work for me.

spt

From bclaise@cisco.com  Thu Sep 12 07:56:59 2013
Return-Path: <bclaise@cisco.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 50D2711E8251; Thu, 12 Sep 2013 07:56:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.523
X-Spam-Level: 
X-Spam-Status: No, score=-10.523 tagged_above=-999 required=5 tests=[AWL=0.076, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jZwNtbHXNMQ5; Thu, 12 Sep 2013 07:56:53 -0700 (PDT)
Received: from av-tac-bru.cisco.com (weird-brew.cisco.com [144.254.15.118]) by ietfa.amsl.com (Postfix) with ESMTP id 2ADC811E8236; Thu, 12 Sep 2013 07:56:47 -0700 (PDT)
X-TACSUNS: Virus Scanned
Received: from strange-brew.cisco.com (localhost.cisco.com [127.0.0.1]) by av-tac-bru.cisco.com (8.13.8+Sun/8.13.8) with ESMTP id r8CEuV94008039; Thu, 12 Sep 2013 16:56:31 +0200 (CEST)
Received: from [10.60.67.87] (ams-bclaise-8916.cisco.com [10.60.67.87]) by strange-brew.cisco.com (8.13.8+Sun/8.13.8) with ESMTP id r8CEtZOH029145; Thu, 12 Sep 2013 16:55:51 +0200 (CEST)
Message-ID: <5231D5E5.5070407@cisco.com>
Date: Thu, 12 Sep 2013 16:55:33 +0200
From: Benoit Claise <bclaise@cisco.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: S Moonesamy <sm+ietf@elandsys.com>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com>
In-Reply-To: <6.2.5.6.2.20130912065558.0b960550@elandnews.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 12 Sep 2013 14:56:59 -0000
X-List-Received-Date: Thu, 12 Sep 2013 14:56:59 -0000

>>
>> disclaimer: I've only reviewed the changes compared to the RFC 4088.
>>
>> Regarding "Appendix J.  Change History":
>>    NOTE TO RFC EDITOR: Changes since RFC 4408 (to be removed prior to
>>    publication)
>>
>> Personally, I like it when the new RFC has one section summarizing the
>> changes compared to the initial RFC.
>> This would be a mix of:
>>    Appendix J.  Change History", but no needs to mention the editorial
>> changes
>>    Appendix C.  Changes in implementation requirements from RFC 4408
>
> Appendix C contains the changes between the draft and RFC 4408.
Well, maybe "Changes in implementation requirements from RFC 4408"
So my first question is: what are the changes that are not related to 
the implementation requirements?
As a good example, 
http://tools.ietf.org/html/draft-ietf-v6ops-rfc3316bis-04#appendix-B is 
useful.

Anyway, I made my point, up to AD/document shepherd to decide.

Regards, Benoit
> The question of changes was mentioned by Eliot Lear in his AppsDir 
> review (see 
> http://www.ietf.org/mail-archive/web/apps-discuss/current/msg10278.html ).  
> My suggestion to the SPFBIS WG is to leave this as it is.
>
> Regards,
> S. Moonesamy (as document shepherd)
>


From presnick@qti.qualcomm.com  Thu Sep 12 08:03:12 2013
Return-Path: <presnick@qti.qualcomm.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 5266C11E8238; Thu, 12 Sep 2013 08:02:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.599
X-Spam-Level: 
X-Spam-Status: No, score=-102.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 27YjGtjeK2US; Thu, 12 Sep 2013 08:02:46 -0700 (PDT)
Received: from sabertooth02.qualcomm.com (sabertooth02.qualcomm.com [65.197.215.38]) by ietfa.amsl.com (Postfix) with ESMTP id 917BE11E820D; Thu, 12 Sep 2013 08:02:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qti.qualcomm.com; i=@qti.qualcomm.com; q=dns/txt; s=qcdkim; t=1378998137; x=1410534137; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=U9TBlUg7DJMxJ0KpMIrBv/GTOEwjCGu8eXycDPHSFgU=; b=mM0pRS0KU9A5Ubf1DGtOGeopvRft+PH1wbGeojFCsBNRKqJVnxMzB0rw 5ugYcPNe/u8tROpqdRt5KuZ3Dbo/Jr9trATHvV5Cv+ffXp385bQHGdE+N Uv9KwKFBDSyINS/Rkt3JMz09J0r0wYdrUdO97xu5d6zrjnLYRwRVK7QY1 U=;
X-IronPort-AV: E=McAfee;i="5400,1158,7195"; a="51423751"
Received: from ironmsg02-lv.qualcomm.com ([10.47.202.183]) by sabertooth02.qualcomm.com with ESMTP; 12 Sep 2013 08:02:05 -0700
X-IronPort-AV: E=McAfee;i="5400,1158,7195"; a="19296631"
Received: from nasanexhc03.na.qualcomm.com ([172.30.48.26]) by ironmsg02-lv.qualcomm.com with ESMTP/TLS/RC4-SHA; 12 Sep 2013 08:02:05 -0700
Received: from nasanexhc05.na.qualcomm.com (172.30.48.2) by NASANEXHC03.na.qualcomm.com (172.30.48.26) with Microsoft SMTP Server (TLS) id 14.3.146.2; Thu, 12 Sep 2013 08:02:05 -0700
Received: from resnick2.qualcomm.com (172.30.48.1) by qcmail1.qualcomm.com (172.30.48.2) with Microsoft SMTP Server (TLS) id 14.3.146.2; Thu, 12 Sep 2013 08:02:05 -0700
Message-ID: <5231D76B.6040507@qti.qualcomm.com>
Date: Thu, 12 Sep 2013 10:02:03 -0500
From: Pete Resnick <presnick@qti.qualcomm.com>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.7; en-US; rv:1.9.1.9) Gecko/20100630 Eudora/3.0.4
MIME-Version: 1.0
To: S Moonesamy <sm+ietf@elandsys.com>
References: <20130907135512.24084.48602.idtracker@ietfa.amsl.com>	<1623078.iZZXT7WM88@scott-latitude-e6320>	<6.2.5.6.2.20130911150339.0c435c60@elandnews.com>	<2405077.Cn8DraDvER@scott-latitude-e6320> <6.2.5.6.2.20130911224817.0bdcd030@elandnews.com>
In-Reply-To: <6.2.5.6.2.20130911224817.0bdcd030@elandnews.com>
Content-Type: text/plain; charset="ISO-8859-1"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [172.30.48.1]
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Pete Resnick's Discuss on	draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Thu, 12 Sep 2013 15:03:13 -0000

Looks good to me. I'll clear my DISCUSS during or just after the call.

pr

On 9/12/13 12:54 AM, S Moonesamy wrote:
> Hi Pete,
>
> The DISCUSS was as follows:
>
>> ----------------------------------------------------------------------
>> DISCUSS:
>> ----------------------------------------------------------------------
>>
>> Holding my own DISCUSS:
>>
>> Text needs to be created (probably for section 3.1) to better describe
>> the reason this document settled on TXT RR only and therefore why no
>> precedent is set for future use of the TXT RR.
>
> Here is the revised section 3.1:
>
> 3.1.  DNS Resource Records
>
>     SPF records MUST be published as a DNS TXT (type 16) Resource Record
>     (RR) [RFC1035] only.  The character content of the record is encoded
>     as [US-ASCII].  Use of alternative DNS RR types was supported in
>     SPF's experimental phase, but has been discontinued.
>
>     In 2003, when SPF was first being developed, the requirements for
>     assignment of a new DNS RR type were considerably more stringent than
>     they are now.  Additionally, support for easy deployment of new DNS
>     RR types was not widely deployed in DNS servers and provisioning
>     systems.  As a result, developers of SPF found it easier and more
>     practical to use the TXT RR type for SPF records.
>
>     In its review of [RFC4408] the SPFbis working group concluded that
>     its dual RR type transition model was fundamentally flawed since it
>     contained no common RR type that implementers were required to serve
>     and required to check.  Many alternatives were considered to resolve
>     this issue, but ultimately the working group concluded that
>     significant migration to the SPF RR type in the foreseeable future 
> was
>     very unlikely and that the best solution for resolving this
>     interoperability issue was to drop support for the SPF RR type from
>     SPF version 1.  See Appendix A of [RFC6686] for further information.
>
>     The circumstances surrounding SPF's initial deployment a decade ago
>     are unique.  If a future update to SPF were developed that did not
>     reuse existing SPF records, it could use the SPF RR type.  SPF's use
>     of the TXT RR type for structured data should in no way be taken as
>     precedent for future protocol designers.  Further discussion of
>     design considerations when using new DNS RR types can be found in
>     [RFC5507].
>
> Regards,
> S. Moonesamy (as document shepherd)

-- 
Pete Resnick<http://www.qualcomm.com/~presnick/>
Qualcomm Technologies, Inc. - +1 (858)651-4478


From johnl@iecc.com  Thu Sep 12 08:03:52 2013
Return-Path: <johnl@iecc.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 DFA9421F84B1 for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 08:03:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.677
X-Spam-Level: 
X-Spam-Status: No, score=-102.677 tagged_above=-999 required=5 tests=[AWL=-0.078, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MvY+EVae5U3F for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 08:03:43 -0700 (PDT)
Received: from leila.iecc.com (leila6.iecc.com [IPv6:2001:470:1f07:1126:0:4c:6569:6c61]) by ietfa.amsl.com (Postfix) with ESMTP id 1764521E809F for <spfbis@ietf.org>; Thu, 12 Sep 2013 08:02:51 -0700 (PDT)
Received: (qmail 80177 invoked from network); 12 Sep 2013 15:02:49 -0000
Received: from leila.iecc.com (64.57.183.34) by mail1.iecc.com with QMQP; 12 Sep 2013 15:02:49 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=iecc.com; h=date:message-id:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding; s=5231d799.xn--i8sz2z.k1309; i=johnl@user.iecc.com; bh=q+2IUzDt3vGZECd88lnEaGroes3I9mImeZu5pflId/E=; b=Gfq2BVc1vnY1gsQKpLxLSG9hEdD4U0Ns3u0zV17Xye1QggNNMxp4SHb1ygV97BQba4TapalANb8nfxoH5qH5/Egk+g5mM8tYbYT6NI6F0J252QsiZw3lIylxO4Zo+Jp/6EXy5Y1snVL2UMWbOPVAcW1m8APNGDr96VqbqZ8U/G+u5iEmhyhcvuuMbv/8PneXQ+znrFN0DLI3EFjRoVgqzKuyK1wVYi98RvGjo0EKZV1axDRNRVwBOizhK3PhXvCx
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=taugh.com; h=date:message-id:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding; s=5231d799.xn--i8sz2z.k1309; olt=johnl@user.iecc.com; bh=q+2IUzDt3vGZECd88lnEaGroes3I9mImeZu5pflId/E=; b=A+wti5jDevBH8lJdvjenxH59OoLTmm28Ncy8hsqODjXw2mVmxRhzczA1ue+OlCJ/zY121tCSdkxvVFycmVOubJdP/uYouf4KmOwuGsdfFD+/x5ihf8wYVeK7z/oVCeC9WTuc+2V+tqNzm53ppKygBNBUWOhKZNcmnuIBwoPbo+fQ6P/GY1OoGiU1vFJt4Aig/GnVJA261zW+FtEQATQ3bft67nUD1/cw0iqS0gOq8fD8Sk9EJwnh5NPrOpbQ6z1Z
Date: 12 Sep 2013 15:02:27 -0000
Message-ID: <20130912150227.57069.qmail@joyce.lan>
From: "John Levine" <johnl@taugh.com>
To: spfbis@ietf.org
In-Reply-To: <5231D25B.6040004@ieca.com>
Organization: 
X-Headerized: yes
Mime-Version: 1.0
Content-type: text/plain; charset=utf-8
Content-transfer-encoding: 8bit
Subject: Re: [spfbis] Sean Turner's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 12 Sep 2013 15:03:52 -0000

I don't see anything about SPF that makes DNS spoofing more of a
problem than any other DNS application, so I don't see why it needs
another plug for DNSSEC.

On the other hand, it's not a big deal, if it'll make the discuss go away, that's fine.


>>> ----------------------------------------------------------------------
>>> COMMENT:
>>> ----------------------------------------------------------------------
>>>
>>> Should s11.3 also provide a mitigation via a reference for the spoofed
>>> DNS?  Right now it just points to the DNS threats RFC.  I guess the
>>> reader can infer they should use DNSSEC if they're worried but adding a
>>> pointer to the right RFC would be better.  Something as simple as adding
>>> "... and see [RFCXYZ] for a countermeasure" or something like that.
>>
>> I'll suggest:
>>
>>    and see RFC 4033 for a countermeasure.
>>
>> and leave it to the SPFBIS WG to comment on the above.
>
>That would work for me.

From sm@elandsys.com  Thu Sep 12 08:10:33 2013
Return-Path: <sm@elandsys.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 7AA6D11E816D; Thu, 12 Sep 2013 08:10:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.581
X-Spam-Level: 
X-Spam-Status: No, score=-102.581 tagged_above=-999 required=5 tests=[AWL=0.018, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NIaA7Y52vCN1; Thu, 12 Sep 2013 08:10:32 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id D4A3D11E822D; Thu, 12 Sep 2013 08:10:28 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.139.127]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8CFACr1023577 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 12 Sep 2013 08:10:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1378998626; bh=m+mcOiQ+w7oQOIKz78T7ULM28WmqnIBVpMhJxSMy82w=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=3ZlG44OfGaYyI8y1VFjMl46KxLPvOkCrHNT+qYH3m/V7nELtb0rJxJctIaeDwpILB 8eadnNv/MR7lc6x5WKRQwLiPIsAbl9NnLqG8YELhSIc1Sk0CXHFXERgz0AO5sb7pEh n5J4f46ZA0IZsXP/fnZHgxf6rt6X8kmyA5sJXxe8=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1378998626; i=@elandsys.com; bh=m+mcOiQ+w7oQOIKz78T7ULM28WmqnIBVpMhJxSMy82w=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=Fb4nEh/e3cm/6rbX4bBEcPnd0mxOwkisl1D/p3QtcqjMS6afgAyJuJj4T4iDqxC1Q Z2yRWUDz55Td1bbA1sofD8ig4Pggs9nxj0Dmd1V3eV9Ml6QoDyJf7X9yUiZnmgkA8E 1OYvM5cEwQPyPOGGUCUL3QlS11ddRGvumbaqphAw=
Message-Id: <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Thu, 12 Sep 2013 08:09:21 -0700
To: Benoit Claise <bclaise@cisco.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <5231D5E5.5070407@cisco.com>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 12 Sep 2013 15:10:34 -0000

Hi Benoit,
At 07:55 12-09-2013, Benoit Claise wrote:
>Well, maybe "Changes in implementation requirements from RFC 4408"
>So my first question is: what are the changes that are not related 
>to the implementation requirements?
>As a good example, 
>http://tools.ietf.org/html/draft-ietf-v6ops-rfc3316bis-04#appendix-B is useful.

That is a good question (re. implementation requirements).  I suggest 
following the example you provided if Pete Resnick is okay with that.

Regards,
S. Moonesamy (as document shepherd) 


From R.E.Sonneveld@sonnection.nl  Thu Sep 12 08:36:37 2013
Return-Path: <R.E.Sonneveld@sonnection.nl>
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 0DFEE11E8274; Thu, 12 Sep 2013 08:36:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.599
X-Spam-Level: 
X-Spam-Status: No, score=-3.599 tagged_above=-999 required=5 tests=[AWL=-0.001, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id UtLJnOC35SAM; Thu, 12 Sep 2013 08:36:19 -0700 (PDT)
Received: from mx20.mailtransaction.com (mx20.mailtransaction.com [78.46.16.213]) by ietfa.amsl.com (Postfix) with ESMTP id D222311E81BC; Thu, 12 Sep 2013 08:35:52 -0700 (PDT)
Received: from mx24.mailtransaction.com (mx21.mailtransaction.com [78.46.16.236]) by mx20.mailtransaction.com (Postfix) with ESMTP id 3cbPFS5flHz1L8fM; Thu, 12 Sep 2013 17:35:40 +0200 (CEST)
Received: from jaguar.sonnection.nl (D57E1702.static.ziggozakelijk.nl [213.126.23.2]) by mx24.mailtransaction.com (Postfix) with ESMTP id 3cbPFS4ZCxz1L8fB; Thu, 12 Sep 2013 17:35:40 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by jaguar.sonnection.nl (Postfix) with ESMTP id 647781231E3; Thu, 12 Sep 2013 17:35:40 +0200 (CEST)
X-Virus-Scanned: amavisd-new at sonnection.nl
Received: from jaguar.sonnection.nl ([127.0.0.1]) by localhost (jaguar.sonnection.nl [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 12WgKmWnrtbm; Thu, 12 Sep 2013 17:35:33 +0200 (CEST)
Received: from [192.168.1.49] (unknown [192.168.1.49]) by jaguar.sonnection.nl (Postfix) with ESMTPSA id A8B3F1231DE; Thu, 12 Sep 2013 17:35:33 +0200 (CEST)
Message-ID: <5231DF45.6070507@sonnection.nl>
Date: Thu, 12 Sep 2013 17:35:33 +0200
From: "Rolf E. Sonneveld" <R.E.Sonneveld@sonnection.nl>
Organization: Sonnection B.V.
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130804 Thunderbird/17.0.8
MIME-Version: 1.0
To: "Murray S. Kucherawy" <superuser@gmail.com>
References: <522B2AC4.4090006@qti.qualcomm.com> <2C6B0D9B-7E1E-4CC3-AA41-935D65E79A3F@frobbit.se> <CAL0qLwbx7eXvid+EZr+JJ-FpHZkTDhvJanOk-4EEntfr8zjUjg@mail.gmail.com>
In-Reply-To: <CAL0qLwbx7eXvid+EZr+JJ-FpHZkTDhvJanOk-4EEntfr8zjUjg@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------020203080500090801030802"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=sonnection.nl; s=2009; t=1379000140; bh=Ha917cQ67fh0zH0E/WSqu4Sn/FwIwLnT3l5sXTdXsY8=; h=Message-ID:Date:From:To:Subject:From; b=ERM1QIKZAs91n9qDyl0Xao8dTjFJiuNymGZFtxVNlu9sXKQ8RJxmklKn6BNBCR6ak WGIkl3scnifVag6hzfSKWP2xjx6+i+t8gIyaiHsrlRokRJ5YvjiQmSE8DKAVMV9UuH 1V22NAXSBU/XF0qwCzn0bwequtm2qPMuNmuNqwJQ=
DKIM-Filter: OpenDKIM Filter v2.8.2 mx20.mailtransaction.com 3cbPFS5flHz1L8fM
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, Pete Resnick <presnick@qti.qualcomm.com>, IETF-Discussion list <ietf@ietf.org>, =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= <paf@frobbit.se>
Subject: Re: [spfbis] Conclusions of Last Call for draft-ietf-spfbis-4408bis
X-BeenThere: spfbis@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: R.E.Sonneveld@sonnection.nl
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: Thu, 12 Sep 2013 15:36:38 -0000

This is a multi-part message in MIME format.
--------------020203080500090801030802
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: quoted-printable

On 09/10/2013 01:39 PM, Murray S. Kucherawy wrote:
> Hi Patrik,
>
> On Tue, Sep 10, 2013 at 4:04 AM, Patrik F=E4ltstr=F6m <paf@frobbit.se=20
> <mailto:paf@frobbit.se>> wrote:
>
>     What we did look at was first of all every query for an MX
>     resource record. Then we look at +/-1 second from the timestamp of
>     that MX query for TXT and/or SPF record for the same owner. We
>     draw the conclusion that if there is a query for an MX record, and
>     then either TXT or SPF (or both) within the approximately same
>     timespan, then they are related queries.
>
>
> I'm not sure that's a valid conclusion.  Since MX is needed only for a=20
> sending system, a receiving system doing an SPF check of either type=20
> has no reason to query for MX.  The exception to this might be a=20
> heuristic check to see if the domain in the MAIL FROM has MX or A=20
> published such that a reply appears to be possible, but I wouldn't=20
> expect a strong correlation in your data.

Well, if the TXT/SPF query precedes the MX query (so the case '-1=20
second' of the '+/-1 second' described by Patrik) it might indicate an=20
SPF record which includes an mx mechanism. In that case the queries are=20
related.

/rolf


--------------020203080500090801030802
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 09/10/2013 01:39 PM, Murray S.
      Kucherawy wrote:<br>
    </div>
    <blockquote
cite="mid:CAL0qLwbx7eXvid+EZr+JJ-FpHZkTDhvJanOk-4EEntfr8zjUjg@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi Patrik,<br>
        <br>
        On Tue, Sep 10, 2013 at 4:04 AM, Patrik F&auml;ltstr&ouml;m <span
          dir="ltr">&lt;<a moz-do-not-send="true"
            href="mailto:paf@frobbit.se" target="_blank">paf@frobbit.se</a>&gt;</span>
        wrote:<br>
        <div class="gmail_extra">
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">What we
              did look at was first of all every query for an MX
              resource record. Then we look at +/-1 second from the
              timestamp of that MX query for TXT and/or SPF record for
              the same owner. We draw the conclusion that if there is a
              query for an MX record, and then either TXT or SPF (or
              both) within the approximately same timespan, then they
              are related queries.<br>
              <br>
            </blockquote>
            <div><br>
            </div>
            <div>I'm not sure that's a valid conclusion.&nbsp; Since MX is
              needed only for a sending system, a receiving system doing
              an SPF check of either type has no reason to query for
              MX.&nbsp; The exception to this might be a heuristic check to
              see if the domain in the MAIL FROM has MX or A published
              such that a reply appears to be possible, but I wouldn't
              expect a strong correlation in your data.<br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Well, if the TXT/SPF query precedes the MX query (so the case '-1
    second' of the '+/-1 second' described by Patrik) it might indicate
    an SPF record which includes an mx mechanism. In that case the
    queries are related.<br>
    <br>
    /rolf<br>
    <br>
  </body>
</html>

--------------020203080500090801030802--

From sm@elandsys.com  Thu Sep 12 10:00:46 2013
Return-Path: <sm@elandsys.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 5DE8C21E8107 for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 10:00:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.582
X-Spam-Level: 
X-Spam-Status: No, score=-102.582 tagged_above=-999 required=5 tests=[AWL=0.017, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ot22cIHZIUcz for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 10:00:45 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 8ACFC21E80FC for <spfbis@ietf.org>; Thu, 12 Sep 2013 10:00:45 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.139.127]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8CH0WdB018292 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 12 Sep 2013 10:00:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379005243; bh=Z7jqBJm43rxk6FwrHEcXUENqghdgXgz+3A7POWqBCgs=; h=Date:To:From:Subject:Cc; b=iQh+CHDN0pNq+gu/XLcuz8kIOePLwp/u6xQrN9rkq203qpfv2L9EfnapHw/jhE8Ye Gk2LbYaRdjIyj143jRFVxHLOlVKfz+vjAm04MINmGtiAlfJ01dPNthn2Rx9sPwbkIv rCxCNij1cVCcBBQZYk03BimWsqjTHjSCn5Qlom9g=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379005243; i=@elandsys.com; bh=Z7jqBJm43rxk6FwrHEcXUENqghdgXgz+3A7POWqBCgs=; h=Date:To:From:Subject:Cc; b=JtOqVVtb9X805PaZnjTHYGN7w82SsnttQi5+cU53gI89SGRG8kMZjH3DKgOxA8L7F wa5qCqxrSFePas2zakzLTOzhA9QJQEPDfoOzq4ntMcKHlYhb+iK/ei46zfk9fqb3Qy ZKfp2Di+wg7MOFOS5phNCUlz1UW9MYp+S9OwXVUk=
Message-Id: <6.2.5.6.2.20130912094525.0ca26c60@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Thu, 12 Sep 2013 10:00:08 -0700
To: Scott Kitterman <spf2@kitterman.com>
From: S Moonesamy <sm+ietf@elandsys.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org
Subject: [spfbis] Revised I-D of draft-ietf-spfbis-4408bis
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: Thu, 12 Sep 2013 17:00:46 -0000

Hi Scott,

Could you please post a revised I-D for draft-ietf-spfbis-4408bis?

Pete Resnick, as Area Director, is okay with the text at 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04161.html 
There's also the text from Barry Leiba's messages as Area Director 
(see 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04150.html and 
the other messages on that thread).

I'll go over the comments from the other Area Directors and we can 
work from -20.  There will be editorial changes to address those 
comments and the feedback from participants.

As a general note to the SPFBIS WG the document will be on the IESG 
telechat on September 26.  It would be good if all the changes can be 
settled by September 19 so that the IESG has ample time for its review.

Regards,
S. Moonesamy (as document shepherd) 


From sm@elandsys.com  Thu Sep 12 10:42:21 2013
Return-Path: <sm@elandsys.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 D18AE21E8181 for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 10:42:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.433
X-Spam-Level: 
X-Spam-Status: No, score=-102.433 tagged_above=-999 required=5 tests=[AWL=-0.134, BAYES_00=-2.599, MIME_8BIT_HEADER=0.3, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xsoRn73ZXH4m for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 10:42:21 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 3E79021E8151 for <spfbis@ietf.org>; Thu, 12 Sep 2013 10:42:20 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.139.127]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8CHfqE1020525 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 12 Sep 2013 10:42:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379007728; bh=G538huDu51WuNZFM4irSzWXY89xWPTTahg2ku2wHW14=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=1t2t17BriNW45UceKXG40SQ8N4E35AvcE1NZ+EWk/gMaOtRYtY58/T+cKgnQgFiVK xzt/bhagkVpNf5Xut5ebDSj9KGvDrEipOc7JJ64sFNX2bS6cq4ueaoCCE6ycnjcAqO fbDtSxzC5/1yqWxbX9frGN000OmT6HncT9cid1ic=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379007728; i=@elandsys.com; bh=G538huDu51WuNZFM4irSzWXY89xWPTTahg2ku2wHW14=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=LeHmbGYFYhd/2ug5HbBj7f9bx76s/txgVvvQYBe+CjgZIqHX2WJHP1rHUc+coCgS3 yQWP8wIR3wODZWpqaFj5qGF4Ka99VVszZMF/nlxyFZ87rdqpBW8MoNG2X/Ub1UroP2 jWGRzHTUCoDmcLYj1GTFpt2gEzI8hIzxpae+ljGE=
Message-Id: <6.2.5.6.2.20130912102324.0cb97a38@resistor.net>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Thu, 12 Sep 2013 10:41:34 -0700
To: R.E.Sonneveld@sonnection.nl, "Murray S. Kucherawy" <superuser@gmail.com>,  Patrik =?iso-8859-1?Q?F=E4ltstr=F6m?= <paf@frobbit.se>, =?iso-8859-1?Q?M=C3ns?= Nilsson <mansaxel@besserwisser.org>, Scott Kitterman <spf2@kitterman.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <5231DF45.6070507@sonnection.nl>
References: <522B2AC4.4090006@qti.qualcomm.com> <2C6B0D9B-7E1E-4CC3-AA41-935D65E79A3F@frobbit.se> <CAL0qLwbx7eXvid+EZr+JJ-FpHZkTDhvJanOk-4EEntfr8zjUjg@mail.gmail.com> <5231DF45.6070507@sonnection.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"; format=flowed
Content-Transfer-Encoding: quoted-printable
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>
Subject: Re: [spfbis] Conclusions of Last Call for draft-ietf-spfbis-4408bis
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: Thu, 12 Sep 2013 17:42:22 -0000

Hello,

I read the message from M=C3ns Nilsson and the=20
messages from Patrik F=E4ltstr=F6m.  I also received=20
an email with Scott Kitterman.  Pete, Andrew,=20
please do correct me if I got this wrong:

The second paragraph in Section 13.1 is about a=20
request for a IANA action.  The paragraph can be=20
dropped as that action is not being taken.

There will be an informative reference to RFC=20
5507 (see text for Pete's DISCUSS).

This should hopefully conclude the discussion to everybody's satisfaction.

Regards,
S. Moonesamy (as document shepherd)=20


From spf2@kitterman.com  Thu Sep 12 10:53:33 2013
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 F357121F9D33 for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 10:53:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HnYb6m8z7lCh for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 10:53:32 -0700 (PDT)
Received: from mailout03.controlledmail.com (mailout03.controlledmail.com [IPv6:2607:f0d0:3001:aa::2]) by ietfa.amsl.com (Postfix) with ESMTP id 5547721F9D3A for <spfbis@ietf.org>; Thu, 12 Sep 2013 10:53:27 -0700 (PDT)
Received: from mailout03.controlledmail.com (localhost [127.0.0.1]) by mailout03.controlledmail.com (Postfix) with ESMTP id 61229D04089; Thu, 12 Sep 2013 13:53:26 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1379008406; bh=jDgd/AoeQQnopeoBcqt9/jlSbDXzpRJGR1GOVMYgwjY=; h=In-Reply-To:References:Subject:From:Date:To:CC:From; b=NOIe1sxfU8VICL5axuL089BfL033rLRq1mTpgMB/VzumyE6+OWyPao+UNsfpxWRs9 F+HRZGR/9s8E98vEwWGsg+4QoyUgMdhnRLojnyzT9c3ZWRDHztdOmtuXg11JvBjWU8 96P5MBuyOj9PonitL6jSLwHLCYleDy4gPE/sVW24=
Received: from [IPV6:2600:1003:b015:b58:c632:b2ef:1dd7:f959] (unknown [IPv6:2600:1003:b015:b58:c632:b2ef:1dd7:f959]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mailout03.controlledmail.com (Postfix) with ESMTPSA id DD498D04053;  Thu, 12 Sep 2013 13:53:25 -0400 (EDT)
User-Agent: K-9 Mail for Android
In-Reply-To: <6.2.5.6.2.20130912094525.0ca26c60@elandnews.com>
References: <6.2.5.6.2.20130912094525.0ca26c60@elandnews.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Scott Kitterman <spf2@kitterman.com>
Date: Thu, 12 Sep 2013 13:53:49 -0400
To: S Moonesamy <sm+ietf@elandsys.com>
Message-ID: <ef771f8a-f9a2-4a51-901f-035ab9389ae4@email.android.com>
X-AV-Checked: ClamAV using ClamSMTP
Cc: spfbis@ietf.org
Subject: Re: [spfbis] Revised I-D of draft-ietf-spfbis-4408bis
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: Thu, 12 Sep 2013 17:53:33 -0000

S Moonesamy <sm+ietf@elandsys.com> wrote:
>Hi Scott,
>
>Could you please post a revised I-D for draft-ietf-spfbis-4408bis?
>

I can, probably in about 10 hours.  I'll be able to give more detailed email replies then too.

Scott K

From sklist@kitterman.com  Thu Sep 12 11:01:07 2013
Return-Path: <sklist@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 9424011E80EC; Thu, 12 Sep 2013 11:01:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D-YBIOqbdwVI; Thu, 12 Sep 2013 11:01:01 -0700 (PDT)
Received: from mailout03.controlledmail.com (mailout03.controlledmail.com [208.43.65.50]) by ietfa.amsl.com (Postfix) with ESMTP id B30FD21F9FCF; Thu, 12 Sep 2013 11:00:38 -0700 (PDT)
Received: from mailout03.controlledmail.com (localhost [127.0.0.1]) by mailout03.controlledmail.com (Postfix) with ESMTP id 7C749D04089; Thu, 12 Sep 2013 14:00:30 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1379008830; bh=pR+G4HyKkcQ3CPiAIwe16KbNjqxcy94HxAGIRrOwPpg=; h=In-Reply-To:References:Subject:From:Date:To:CC:From; b=kNiuTboEqpM+QmGv/Wg/nnAUfNJdALUN/CIQ7Zw0SOXDoXm5wkNB1WA5BXr63l8M8 8w1bDvBrBi2n3gQ/TXtv4Pz5dtnXMQkeWNJhLKVi54pm+SFjVOn8xBAXgxEu2bw8Hb uEG5PfXA+hl+uV7wEa2/syjLk7w/vbUT8894mGEI=
Received: from [IPV6:2600:1003:b015:b58:c632:b2ef:1dd7:f959] (unknown [IPv6:2600:1003:b015:b58:c632:b2ef:1dd7:f959]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mailout03.controlledmail.com (Postfix) with ESMTPSA id C3825D04053;  Thu, 12 Sep 2013 14:00:29 -0400 (EDT)
User-Agent: K-9 Mail for Android
In-Reply-To: <5231D5E5.5070407@cisco.com>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Scott Kitterman <sklist@kitterman.com>
Date: Thu, 12 Sep 2013 14:00:41 -0400
To: Benoit Claise <bclaise@cisco.com>,S Moonesamy <sm+ietf@elandsys.com>
Message-ID: <f87b7655-1be7-4ae1-a8c3-05dae1ca9b83@email.android.com>
X-AV-Checked: ClamAV using ClamSMTP
X-Mailman-Approved-At: Thu, 12 Sep 2013 11:09:41 -0700
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 12 Sep 2013 18:01:07 -0000

There are any number of changes we made that don't affect implementation requirements. An example that comes immediately to mind is that the draft says do not use the "ptr" mechanism.  That doesn't change implementation requirements because it's still part of the protocol for backward compatibility. 

Scott K

Benoit Claise <bclaise@cisco.com> wrote:
>
>>>
>>> disclaimer: I've only reviewed the changes compared to the RFC 4088.
>>>
>>> Regarding "Appendix J.  Change History":
>>>    NOTE TO RFC EDITOR: Changes since RFC 4408 (to be removed prior
>to
>>>    publication)
>>>
>>> Personally, I like it when the new RFC has one section summarizing
>the
>>> changes compared to the initial RFC.
>>> This would be a mix of:
>>>    Appendix J.  Change History", but no needs to mention the
>editorial
>>> changes
>>>    Appendix C.  Changes in implementation requirements from RFC 4408
>>
>> Appendix C contains the changes between the draft and RFC 4408.
>Well, maybe "Changes in implementation requirements from RFC 4408"
>So my first question is: what are the changes that are not related to 
>the implementation requirements?
>As a good example, 
>http://tools.ietf.org/html/draft-ietf-v6ops-rfc3316bis-04#appendix-B is
>
>useful.
>
>Anyway, I made my point, up to AD/document shepherd to decide.
>
>Regards, Benoit
>> The question of changes was mentioned by Eliot Lear in his AppsDir 
>> review (see 
>>
>http://www.ietf.org/mail-archive/web/apps-discuss/current/msg10278.html
>).  
>> My suggestion to the SPFBIS WG is to leave this as it is.
>>
>> Regards,
>> S. Moonesamy (as document shepherd)
>>
>
>_______________________________________________
>spfbis mailing list
>spfbis@ietf.org
>https://www.ietf.org/mailman/listinfo/spfbis


From presnick@qti.qualcomm.com  Thu Sep 12 12:56:40 2013
Return-Path: <presnick@qti.qualcomm.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 D74D111E81E3 for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 12:56:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.599
X-Spam-Level: 
X-Spam-Status: No, score=-102.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sTOlXferORLR for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 12:56:36 -0700 (PDT)
Received: from sabertooth01.qualcomm.com (sabertooth01.qualcomm.com [65.197.215.72]) by ietfa.amsl.com (Postfix) with ESMTP id A95FB11E81A3 for <spfbis@ietf.org>; Thu, 12 Sep 2013 12:56:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qti.qualcomm.com; i=@qti.qualcomm.com; q=dns/txt; s=qcdkim; t=1379015796; x=1410551796; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=KVCY7Rs7UMrYkl4/kolCEctCicBjDwPkqhiXskksjyo=; b=ssHgXDo6djDZtENglx30rYzZM4Z9GnNQE4Dp8YkWmKfBTQ7ikID5RRkf aa/R4FX6thT30j3tSNjcgiq1nWueShDsNKYRA4GFf3Op2MaFEZovVhrbx wPhwuHGnCN+yn3V7uT5fwoPBxlmpB9YvddgzGWVBTwT9Liv1iG2yRXI6s g=;
X-IronPort-AV: E=McAfee;i="5400,1158,7196"; a="51335274"
Received: from ironmsg01-lv.qualcomm.com ([10.47.202.180]) by sabertooth01.qualcomm.com with ESMTP; 12 Sep 2013 12:56:35 -0700
X-IronPort-AV: E=McAfee;i="5400,1158,7196"; a="19349833"
Received: from nasanexhc08.na.qualcomm.com ([172.30.39.7]) by ironmsg01-lv.qualcomm.com with ESMTP/TLS/RC4-SHA; 12 Sep 2013 12:56:34 -0700
Received: from resnick2.qualcomm.com (172.30.39.5) by qcmail1.qualcomm.com (172.30.39.7) with Microsoft SMTP Server (TLS) id 14.3.146.2; Thu, 12 Sep 2013 12:56:34 -0700
Message-ID: <52321C70.7060307@qti.qualcomm.com>
Date: Thu, 12 Sep 2013 14:56:32 -0500
From: Pete Resnick <presnick@qti.qualcomm.com>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.7; en-US; rv:1.9.1.9) Gecko/20100630 Eudora/3.0.4
MIME-Version: 1.0
To: S Moonesamy <sm+ietf@elandsys.com>
References: <6.2.5.6.2.20130912094525.0ca26c60@elandnews.com>
In-Reply-To: <6.2.5.6.2.20130912094525.0ca26c60@elandnews.com>
Content-Type: text/plain; charset="ISO-8859-1"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [172.30.39.5]
Cc: spfbis@ietf.org, Scott Kitterman <spf2@kitterman.com>
Subject: Re: [spfbis] Revised I-D of draft-ietf-spfbis-4408bis
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: Thu, 12 Sep 2013 19:56:41 -0000

On 9/12/13 12:00 PM, S Moonesamy wrote:
> As a general note to the SPFBIS WG the document will be on the IESG 
> telechat on September 26.  It would be good if all the changes can be 
> settled by September 19 so that the IESG has ample time for its review.

A little note on this, especially if you happen to follow the 
sausage-making that is the IESG process:

The IESG was satisfied that all of the assorted Last Call comments and 
IESG comments were being addressed (as well as can be expected) in the 
upcoming new version of the draft. Normally, the IESG conditionally 
approves documents in that state, leaving it to the sponsoring AD to 
double-check before final approval. But there were a *lot* of comments 
and controversy regarding this document. So I offered to put the 
document back as a returning item on the next IESG agenda so that the 
IESG could confirm that all of the changes were in. I expect there to be 
no blocking ballots after -20 comes out, and then it's just a matter of 
SM and I confirming all of the changes for the IESG to sign off on. An 
out-of-the-ordinary step, but not unprecedented and nothing to be 
concerned about. The IESG discussion of the document went very well.

pr

-- 
Pete Resnick<http://www.qualcomm.com/~presnick/>
Qualcomm Technologies, Inc. - +1 (858)651-4478


From spf2@kitterman.com  Thu Sep 12 18:28:48 2013
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 78F9411E813F for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 18:28:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.258
X-Spam-Level: 
X-Spam-Status: No, score=-2.258 tagged_above=-999 required=5 tests=[AWL=0.341,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ht3iaZX2skZE for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 18:28:35 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id C3E4A21F9D0C for <spfbis@ietf.org>; Thu, 12 Sep 2013 18:28:35 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id A0CF820E40F0; Thu, 12 Sep 2013 21:28:34 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1379035714; bh=gVeK8Jo5R+W5FtjYVTi16HnIwQAYJnQf7rj4ygNQUY8=; h=From:To:Subject:Date:In-Reply-To:References:From; b=ihxj15B6YBXyAv7u9MSDg1v/nyRqG+MN+kl8rMeyESMLF/j2ujxXIO5rZsTxYzupO jYO2jnwpMmK+/GOy/TzxdUYxxOfnf8GmAQ+8XrUjPEdrhUgXUiCuOluAmByNEb88QU khm5c5OwZ/ug7sNREISdPgZhP4cD2cYQ2Tw1wam8=
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 83BFB20E4076;  Thu, 12 Sep 2013 21:28:34 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Thu, 12 Sep 2013 21:28:31 -0400
Message-ID: <7883048.PMslXZEC8x@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <6.2.5.6.2.20130912094525.0ca26c60@elandnews.com>
References: <6.2.5.6.2.20130912094525.0ca26c60@elandnews.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] Revised I-D of draft-ietf-spfbis-4408bis
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, 13 Sep 2013 01:28:48 -0000

On Thursday, September 12, 2013 10:00:08 S Moonesamy wrote:
> Hi Scott,
> 
> Could you please post a revised I-D for draft-ietf-spfbis-4408bis?

In retrospect, it wasn't 100% clear if I'm supposed to post -20 as the last 
interim diff I sent to the list or work on other outstanding comments first.  In 
the interest of being conservative, I'm posting -20 just as I last sent it to 
the list.

Scott K

From internet-drafts@ietf.org  Thu Sep 12 18:30:19 2013
Return-Path: <internet-drafts@ietf.org>
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 1771011E819F; Thu, 12 Sep 2013 18:30:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.563
X-Spam-Level: 
X-Spam-Status: No, score=-102.563 tagged_above=-999 required=5 tests=[AWL=0.037, BAYES_00=-2.599, NO_RELAYS=-0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FlzIOQXUmhcU; Thu, 12 Sep 2013 18:30:18 -0700 (PDT)
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id 9E27411E825E; Thu, 12 Sep 2013 18:30:18 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
From: internet-drafts@ietf.org
To: i-d-announce@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 4.71.p1
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <20130913013018.21907.73813.idtracker@ietfa.amsl.com>
Date: Thu, 12 Sep 2013 18:30:18 -0700
Cc: spfbis@ietf.org
Subject: [spfbis] I-D Action: draft-ietf-spfbis-4408bis-20.txt
X-BeenThere: spfbis@ietf.org
X-Mailman-Version: 2.1.12
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, 13 Sep 2013 01:30:19 -0000

A New Internet-Draft is available from the on-line Internet-Drafts director=
ies.
 This draft is a work item of the SPF Update Working Group of the IETF.

	Title           : Sender Policy Framework (SPF) for Authorizing Use of Dom=
ains in Email, Version 1
	Author(s)       : Scott Kitterman
	Filename        : draft-ietf-spfbis-4408bis-20.txt
	Pages           : 76
	Date            : 2013-09-12

Abstract:
   Email on the Internet can be forged in a number of ways.  In
   particular, existing protocols place no restriction on what a sending
   host can use as the "MAIL FROM" of a message or the domain given on
   the SMTP HELO/EHLO commands.  This document describes version 1 of
   the Sender Policy Framework (SPF) protocol, whereby ADministrative
   Management Domains (ADMDs) can explicitly authorize the hosts that
   are allowed to use its domain names, and a receiving host can check
   such authorization.

   This document obsoletes RFC4408.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-spfbis-4408bis

There's also a htmlized version available at:
http://tools.ietf.org/html/draft-ietf-spfbis-4408bis-20

A diff from the previous version is available at:
http://www.ietf.org/rfcdiff?url2=3Ddraft-ietf-spfbis-4408bis-20


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From sm@elandsys.com  Thu Sep 12 18:53:18 2013
Return-Path: <sm@elandsys.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 BDBC121F9E77 for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 18:53:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.577
X-Spam-Level: 
X-Spam-Status: No, score=-102.577 tagged_above=-999 required=5 tests=[AWL=0.023, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xcl4YdR39r-r for <spfbis@ietfa.amsl.com>; Thu, 12 Sep 2013 18:53:18 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 2A8A421F9E6D for <spfbis@ietf.org>; Thu, 12 Sep 2013 18:53:17 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.139.127]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8D1r3FS014890 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 12 Sep 2013 18:53:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379037195; bh=gc1GrqqK5rXuCT10HxEFD8bzhs3c9e8gX15BLyubhLE=; h=Date:To:From:Subject:In-Reply-To:References; b=1+Go8v/5/uY5Zp8mXrHMrku2aSqniFEvk7A6E6ieQB6UYrz3M4kdf6+qlLvMtUMMj 8bWA3F21FhSas56FanIHbMKTLhzO4EQc24PvvLBH9QkhEpj+u6rNXuRp3+69TyOU1E +Lgq9fLEAOLpiYCkNjt2vHC5B4LS0SuMu7onllg4=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379037195; i=@elandsys.com; bh=gc1GrqqK5rXuCT10HxEFD8bzhs3c9e8gX15BLyubhLE=; h=Date:To:From:Subject:In-Reply-To:References; b=zuHk4R6q2voq/S/UKS3c6QRSanZyJ74+2AkkU2/83+asIhLW3cydat9McqT12+soG D1qctDHGBwvSfQXDmPwJTT3lOyABtpPWWsSShpVIr3PNdOlMn+qo/z6b3GcVO0Fc19 UiLa2hVWZcr6OJQ0Cb5Qoj/wHbKzhWYgBGxYvuLE=
Message-Id: <6.2.5.6.2.20130912184532.0c912bc8@resistor.net>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Thu, 12 Sep 2013 18:52:40 -0700
To: Scott Kitterman <spf2@kitterman.com>, spfbis@ietf.org
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <7883048.PMslXZEC8x@scott-latitude-e6320>
References: <6.2.5.6.2.20130912094525.0ca26c60@elandnews.com> <7883048.PMslXZEC8x@scott-latitude-e6320>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Subject: Re: [spfbis] Revised I-D of draft-ietf-spfbis-4408bis
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, 13 Sep 2013 01:53:18 -0000

Hi Scott,
At 18:28 12-09-2013, Scott Kitterman wrote:
>In retrospect, it wasn't 100% clear if I'm supposed to post -20 as the last
>interim diff I sent to the list or work on other outstanding 
>comments first.  In
>the interest of being conservative, I'm posting -20 just as I last sent it to
>the list.

It's okay.  Let's work from draft-ietf-spfbis-4408bis-20.

Before I forget Appendix A will have to be moved into a section (Pete 
Resnick commented about that previously).

Regards,
S. Moonesamy (as document shepherd) 


From doug.mtview@gmail.com  Fri Sep 13 14:39:45 2013
Return-Path: <doug.mtview@gmail.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 7255B21F9FB1 for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 14:39:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=-0.001, BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pIZ98N7iQ+qo for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 14:39:44 -0700 (PDT)
Received: from mail-pa0-x233.google.com (mail-pa0-x233.google.com [IPv6:2607:f8b0:400e:c03::233]) by ietfa.amsl.com (Postfix) with ESMTP id DB91F21F9FC6 for <spfbis@ietf.org>; Fri, 13 Sep 2013 14:39:43 -0700 (PDT)
Received: by mail-pa0-f51.google.com with SMTP id lf1so3053523pab.10 for <spfbis@ietf.org>; Fri, 13 Sep 2013 14:39:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:content-type:message-id:mime-version:date:subject:cc:to; bh=Gj4Fs15oj3p3qReLm7fUNlTjcaaP8O51cuu9+lm8RFU=; b=eYwj8lOrvin1m+rrg/4rhWI7Hd1D3eKuTqF+l5P38Gf81p/g41JvSNGJmMDYw1QCxC OoXkginkyndTOrmYS/UaNAM284/jPUQtRYDSu3k/kL28shu5/fwbpUt917NGb2A/my7D gqPcQmMopS2kMk/m8bM2aiKVsW+Z4Iuwhx4xA1qMlFVjFsz+t5E07oLnbX8WmJeHukuh Hh2SQt4ilitBvYN1x5rb9WSFt5I1QlII+7CiaVV1Az5NMk8NQsqfdULd5/9qDzDnKZvO tUjfP+LdPa4Kvf/4IoEtrX5j+QpzSj8AknYmAUuKQuvxqUbuKfXOZJCtAtY4FFHrWQ26 yHZg==
X-Received: by 10.66.145.4 with SMTP id sq4mr4326208pab.178.1379108383635; Fri, 13 Sep 2013 14:39:43 -0700 (PDT)
Received: from [192.168.0.54] (107-0-5-6-ip-static.hfc.comcastbusiness.net. [107.0.5.6]) by mx.google.com with ESMTPSA id sy2sm13952926pbc.16.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 13 Sep 2013 14:39:42 -0700 (PDT)
From: Douglas Otis <doug.mtview@gmail.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_93A89D89-ABB2-400E-AA9F-C13D530EED8D"
Message-Id: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com>
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
Date: Fri, 13 Sep 2013 14:39:40 -0700
To: "spfbis@ietf.org" <spfbis@ietf.org>
X-Mailer: Apple Mail (2.1508)
Cc: S Moonesamy <sm+ietf@elandsys.com>, Andrew Sullivan <ajs@anvilwalrusden.com>
Subject: [spfbis] draft-ietf-spfbis-4408bis-20 review
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, 13 Sep 2013 21:39:45 -0000

--Apple-Mail=_93A89D89-ABB2-400E-AA9F-C13D530EED8D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Dear SPFbis WG,

The section on DNS Lookup Limits is much better.  Well done.

However a few errors remain.  I will attempt to explain this in a =
friendly way.  Any failure in this regard is not intentional.

The last paragraph in 3.4.  Record Size:
,---
Note that when computing the sizes for replies to queries of the TXT
format, one has to take into account any other TXT records published
at the domain name. Similarly, the sizes for replies to all queries
related to SPF have to be evaluated to fit in a single 512 octet UDP
packet (i.e. DNS message size limited to 450 octects).
'--

It is wrong to refer to limiting the UDP packet to 512 octets.  There =
has never been a 512 octet packet MTU limitation.  As I understand the =
issue, this is to avoid CPE enforcement of DNS Message size.  This limit =
predates IPv6 which changed the minimum MTU from 576 to 1280 octets.  =
EDNS0 makes the limit explicit at 1280 octets or more.  Please remove =
the term 512 octet UDP packet.  The evaluation should be to ensure the =
generated response fits within a 512 octet DNS message and perhaps =
recommend that this should be less than 450 octets (note the misspelling =
of octets).  Is this additional reduction to ensure 567 octet MTU =
compliance with IPv6 headers (which seems unlikely necessary) or is this =
to handle unexpected additional information included in a DNS response?  =
Either way, there has never been a 512 octet packet size constraint.

It would also be better to ensure the recent change to "void" response =
gets noticed.  The last paragraph of section
5. Mechanism Definitions should make a reference to the last paragraph =
in 4.6.4. DNS Lookup Limits.

It is unfortunate there is still no mention of a macro's ability to =
modulate what might be queried based upon message content rather than =
information from DNS which greatly impacts network amplification =
assessments.  Since SPF uses neither a dedicated resource record type or =
a standardized naming convention, mitigation efforts within DNS =
operations are less assured. =20

If there is any interchange concern, some effort should be made to =
determine whether SPF records containing macros suffer from similar =
interchange issues as those related to SPF RR types.  The extremely =
infrequent use of macros should suggest an underlying reason.  I am not =
free to make any specific disclosures.  Since this issue will impact =
interchange, it seems this should be reviewed to benefit those deploying =
SPF.

Regards,
Douglas Otis

=20

 =20







--Apple-Mail=_93A89D89-ABB2-400E-AA9F-C13D530EED8D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><font =
face=3D"Menlo">Dear SPFbis WG,</font><div><font =
face=3D"Menlo"><br></font></div><div><font face=3D"Menlo">The section on =
DNS Lookup Limits is much better. &nbsp;Well =
done.</font></div><div><font face=3D"Menlo"><br></font></div><div><font =
face=3D"Menlo">However a few errors remain. &nbsp;I will attempt to =
explain this in a friendly way. &nbsp;Any failure in this regard is not =
intentional.</font></div><div><div><font =
face=3D"Menlo"><br></font></div><div><font face=3D"Menlo">The last =
paragraph in&nbsp;3.4. &nbsp;Record Size:</font></div><div><font =
face=3D"Menlo">,---</font></div><div><font face=3D"Menlo">Note that when =
computing the sizes for replies to queries of the =
TXT</font></div><div><font face=3D"Menlo">format, one has to take into =
account any other TXT records published</font></div><div><font =
face=3D"Menlo">at the domain name.  Similarly, the sizes for replies to =
all queries</font></div><div><font face=3D"Menlo">related to SPF have to =
be evaluated to fit in a single 512 octet UDP</font></div><div><font =
face=3D"Menlo">packet (i.e.  DNS message size limited to 450 =
octects).</font></div><div><font face=3D"Menlo">'--</font></div><div><font=
 face=3D"Menlo"><br></font></div><div><font face=3D"Menlo">It is wrong =
to refer to limiting the UDP packet to 512 octets. &nbsp;There has never =
been a 512 octet packet MTU limitation. &nbsp;As I understand the issue, =
this is to avoid&nbsp;CPE&nbsp;enforcement of DNS Message size. =
&nbsp;This limit predates IPv6 which changed the minimum MTU from 576 to =
1280 octets. &nbsp;EDNS0 makes the limit explicit at 1280 octets or =
more. &nbsp;Please remove the term 512 octet UDP packet. &nbsp;The =
evaluation should be to ensure the generated response fits within a 512 =
octet DNS message and perhaps recommend that this should be less than =
450 octets (note the misspelling of octets). &nbsp;Is this additional =
reduction to ensure 567 octet MTU compliance with IPv6 headers (which =
seems unlikely necessary) or is this to handle unexpected additional =
information included in a DNS response? &nbsp;Either way, there has =
never been a 512 octet packet size constraint.</font></div><div><font =
face=3D"Menlo"><br></font></div><div><font face=3D"Menlo">It would also =
be better to ensure the recent change to "void" response gets noticed. =
&nbsp;The last paragraph of section</font></div><div><font =
face=3D"Menlo">5. Mechanism Definitions should make a reference to the =
last paragraph in&nbsp;4.6.4. DNS Lookup Limits.</font></div><div><font =
face=3D"Menlo"><br></font></div><div><font face=3D"Menlo">It is =
unfortunate there is still no mention of a macro's ability to modulate =
what might be queried based upon message content rather than information =
from DNS which greatly impacts network amplification assessments. =
&nbsp;Since SPF uses neither a dedicated resource record type or a =
standardized naming convention, mitigation efforts within DNS operations =
are less assured. &nbsp;</font></div><div><font =
face=3D"Menlo"><br></font></div><div><font face=3D"Menlo">If there is =
any interchange concern, some effort should be made to determine whether =
SPF records containing macros suffer from similar interchange issues as =
those related to SPF RR types. &nbsp;The extremely infrequent use of =
macros should suggest an underlying reason. &nbsp;I am not free to make =
any specific disclosures. &nbsp;Since this issue will impact =
interchange, it seems this should be reviewed to benefit those deploying =
SPF.</font></div><div><font face=3D"Menlo"><br></font></div><div><font =
face=3D"Menlo">Regards,</font></div><div><font face=3D"Menlo">Douglas =
Otis</font></div><div><font face=3D"Menlo"><br></font></div><div><font =
face=3D"Menlo">&nbsp;</font></div><div><font =
face=3D"Menlo"><br></font></div><div><font =
face=3D"Menlo">&nbsp;&nbsp;</font></div><div><font =
face=3D"Menlo"><br></font></div><div><font =
face=3D"Menlo"><br><br></font><br></div><div><font =
face=3D"Menlo"><br></font></div><div><div><br></div></div></div></body></h=
tml>=

--Apple-Mail=_93A89D89-ABB2-400E-AA9F-C13D530EED8D--

From sm@elandsys.com  Fri Sep 13 15:36:48 2013
Return-Path: <sm@elandsys.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 AD98111E8192 for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 15:36:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.579
X-Spam-Level: 
X-Spam-Status: No, score=-102.579 tagged_above=-999 required=5 tests=[AWL=0.020, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KSbqpiLZUK21 for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 15:36:48 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id D40E811E8184 for <spfbis@ietf.org>; Fri, 13 Sep 2013 15:36:47 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.152.219]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8DMaLk9003223 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 13 Sep 2013 15:36:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379111793; bh=F4VYfLeI4rnh+zTN085ywYBvKbOJCIlm3fRINOqRRGw=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=KfnWtRv5t7D9PSnWFZs9pkk6DKuETuo8FV74gHv2rBaa7uzb6wffPAtYg41ehyv+h R61xZxOuVG4h1BH77rIQjiDNA3dYCP8eoSW4j9gzB578eb2tFvDGY7GEWZ58uBD3QT dbBabQckwBjZBWrZyiOIejMsIgBF6v12zUbfKQCw=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379111793; i=@elandsys.com; bh=F4VYfLeI4rnh+zTN085ywYBvKbOJCIlm3fRINOqRRGw=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=1rO7FvfGEZrw2AqOxFjmjaYthhNIiipsjinDgKkSvUiV8xITtQqmTrkcpR0nqLEeS IuvG5cEw2KsQ2vY2WnIUlpyEGHZaBd5NImDxU9ED4TgWZb2s24lC2/I5pQLaYPFiYN F9OSHyy00j0A2266agVXJKLanTw0nYFh0BJFeFJk=
Message-Id: <6.2.5.6.2.20130913152347.0c874cb8@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Fri, 13 Sep 2013 15:36:01 -0700
To: Scott Kitterman <spf2@kitterman.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, Douglas Otis <doug.mtview@gmail.com>
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review
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, 13 Sep 2013 22:36:49 -0000

Hi Scott,
At 14:39 13-09-2013, Douglas Otis wrote:
>It is wrong to refer to limiting the UDP packet to 512 
>octets.  There has never been a 512 octet packet MTU limitation.  As 
>I understand the issue, this is to avoid CPE enforcement of DNS 
>Message size.  This limit predates IPv6 which changed the minimum 
>MTU from 576 to 1280 octets.  EDNS0 makes the limit explicit at 1280 
>octets or more.  Please remove the term 512 octet UDP packet.  The 
>evaluation should be to ensure the generated response fits within a 
>512 octet DNS message and perhaps recommend that this should be less 
>than 450 octets (note the misspelling of octets).  Is this 
>additional reduction to ensure 567 octet MTU compliance with IPv6 
>headers (which seems unlikely necessary) or is this to handle 
>unexpected additional information included in a DNS 
>response?  Either way, there has never been a 512 octet packet size constraint.

As a note to Doug, I am responding to the above only.  Please note 
that I am not ignoring the other comments.

In my opinion this proposed change is about an editorial issue.  The 
issue is about the term "UDP packet" as used in the first and second 
paragraphs of Section 3.4 of draft-ietf-spfbis-4408bis-20.

Could you please propose text to address this?

Thanks,
S. Moonesamy (as document shepherd) 


From doug.mtview@gmail.com  Fri Sep 13 16:30:46 2013
Return-Path: <doug.mtview@gmail.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 6F17211E823B for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 16:30:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BqfJm7UiWQWS for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 16:30:46 -0700 (PDT)
Received: from mail-pa0-x236.google.com (mail-pa0-x236.google.com [IPv6:2607:f8b0:400e:c03::236]) by ietfa.amsl.com (Postfix) with ESMTP id E903411E823A for <spfbis@ietf.org>; Fri, 13 Sep 2013 16:30:45 -0700 (PDT)
Received: by mail-pa0-f54.google.com with SMTP id kx10so3126205pab.13 for <spfbis@ietf.org>; Fri, 13 Sep 2013 16:30:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=8JMpFIVwM+rybnhLlj8NR+aVlz2QP7T8x4krA5A6VkU=; b=NGrWIjefEtYLxBWnh1MkJJciA7fBRdxRYnluy39NM2UCvQfMME5ueqBc5SiQ6CRFKT I9C9NckQDYpRKklxT/R8sH7T3BTTs78PudpOEMOGfthaejgAJdRHOM5Xo9lOODpaToi2 Z2dvV9EvXcMnpAJok7D64CwaMYOIGcrhssTdlxcA0EGbx77tMK72Rbf1iNc2ERnkDXcQ KLpyPp4+DaV1bUyftYWN5sft/sUsCabkjxi78DHJxzedAdFCPx54H/Exo8C8lfhWhKZc bN3ahT0KFskHer76quVq/F6BBkydx0w4fjWJwjIKkNIY5IdFA79ZmSUFd1USlqHhh8dX AW2A==
X-Received: by 10.68.130.71 with SMTP id oc7mr16224190pbb.10.1379115045602; Fri, 13 Sep 2013 16:30:45 -0700 (PDT)
Received: from [192.168.0.54] (107-0-5-6-ip-static.hfc.comcastbusiness.net. [107.0.5.6]) by mx.google.com with ESMTPSA id f2sm14300376pbg.44.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 13 Sep 2013 16:30:44 -0700 (PDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
From: Douglas Otis <doug.mtview@gmail.com>
In-Reply-To: <6.2.5.6.2.20130913152347.0c874cb8@elandnews.com>
Date: Fri, 13 Sep 2013 16:30:42 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <BA4D9B3E-F9A6-46AF-BBA7-D6AD463020CA@gmail.com>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <6.2.5.6.2.20130913152347.0c874cb8@elandnews.com>
To: S Moonesamy <sm+ietf@elandsys.com>
X-Mailer: Apple Mail (2.1508)
Cc: spfbis@ietf.org, Scott Kitterman <spf2@kitterman.com>
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review (response size)
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, 13 Sep 2013 23:30:46 -0000

On Sep 13, 2013, at 3:36 PM, S Moonesamy <sm+ietf@elandsys.com> wrote:

> Hi Scott,
> At 14:39 13-09-2013, Douglas Otis wrote:
>> It is wrong to refer to limiting the UDP packet to 512 octets.  There =
has never been a 512 octet packet MTU limitation.  As I understand the =
issue, this is to avoid CPE enforcement of DNS Message size.  This limit =
predates IPv6 which changed the minimum MTU from 576 to 1280 octets.  =
EDNS0 makes the limit explicit at 1280 octets or more.  Please remove =
the term 512 octet UDP packet.  The evaluation should be to ensure the =
generated response fits within a 512 octet DNS message and perhaps =
recommend that this should be less than 450 octets (note the misspelling =
of octets).  Is this additional reduction to ensure 567 octet MTU =
compliance with IPv6 headers (which seems unlikely necessary) or is this =
to handle unexpected additional information included in a DNS response?  =
Either way, there has never been a 512 octet packet size constraint.
>=20
> As a note to Doug, I am responding to the above only.  Please note =
that I am not ignoring the other comments.
>=20
> In my opinion this proposed change is about an editorial issue.  The =
issue is about the term "UDP packet" as used in the first and second =
paragraphs of Section 3.4 of draft-ietf-spfbis-4408bis-20.
Dear SM,=20

Season to taste. ;^)

Was:
,---
Note that when computing the sizes for replies to queries of the TXT
format, one has to take into account any other TXT records published
at the domain name.  Similarly, the sizes for replies to all queries
related to SPF have to be evaluated to fit in a single 512 octet UDP
packet (i.e.  DNS message size limited to 450 octects).
'---

Change to:
,---
Note that when computing the sizes for replies to queries of the TXT
format, one has to take into account any other TXT records published
at the domain name.  Similarly, the sizes for replies to all queries
related to SPF have to be evaluated to fit in a 512 octet DNS=20
Message.  Limiting responses to less than a 450 octet DNS Message
may accommodate additional information added automatically.
'---

Regards,
Douglas Otis


From sm@elandsys.com  Fri Sep 13 17:02:12 2013
Return-Path: <sm@elandsys.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 DF65B11E80EE for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 17:02:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.58
X-Spam-Level: 
X-Spam-Status: No, score=-102.58 tagged_above=-999 required=5 tests=[AWL=0.019, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id H5C2xwlf+eko for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 17:02:12 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 50AAB11E8102 for <spfbis@ietf.org>; Fri, 13 Sep 2013 17:02:11 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.152.219]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8E01kZG012437 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 13 Sep 2013 17:02:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379116924; bh=xxLOjkjw2+Somv9d0GyoGCGJ5gNTqAK4mJsSBZos34E=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=1c9XG6qlj3xMCp6wwu+pzAaG+9OLK2kvCBde8tvz2JL3pOwJu1slSIJaEC2ydUOS7 rlqSrvujyowqNQvbwcvXJYSoqWjBAhKGTUFBd1/e39OTm71C+0k9CJt08HkBfX/zP5 yfRk1ck3FCetF9LiUlYbO3in21q0Ph8MxjWssTms=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379116924; i=@elandsys.com; bh=xxLOjkjw2+Somv9d0GyoGCGJ5gNTqAK4mJsSBZos34E=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=tshh15QifxfiFXqPAEBzq0MtfbKnK+VnRW3LEbrttlNE30su87C3rl7b00Bwq/OZx oTfaaNMw6NqAusgm63vKP6Qz9xiLF8qPDeejtPt6t8iVYd5u2zxhSpDNBqsTfTBXI0 mf2zVHI0un2OF1VZ9PheRhtAEK2zwQD6SNgH/8Nw=
Message-Id: <6.2.5.6.2.20130913165239.0be3fed0@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Fri, 13 Sep 2013 17:01:24 -0700
To: Douglas Otis <doug.mtview@gmail.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <BA4D9B3E-F9A6-46AF-BBA7-D6AD463020CA@gmail.com>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <6.2.5.6.2.20130913152347.0c874cb8@elandnews.com> <BA4D9B3E-F9A6-46AF-BBA7-D6AD463020CA@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, Scott Kitterman <spf2@kitterman.com>
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review (response size)
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: Sat, 14 Sep 2013 00:02:13 -0000

Hi Doug,
At 16:30 13-09-2013, Douglas Otis wrote:
>Season to taste. ;^)

:-)

>Change to:
>,---
>Note that when computing the sizes for replies to queries of the TXT
>format, one has to take into account any other TXT records published
>at the domain name.  Similarly, the sizes for replies to all queries
>related to SPF have to be evaluated to fit in a 512 octet DNS
>Message.  Limiting responses to less than a 450 octet DNS Message
>may accommodate additional information added automatically.

The above looks okay to me.  The last sentence could be dropped.

Regards,
S. Moonesamy (as document shepherd) 


From ajs@anvilwalrusden.com  Fri Sep 13 17:12:08 2013
Return-Path: <ajs@anvilwalrusden.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 7C84B11E80EE for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 17:12:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.84
X-Spam-Level: 
X-Spam-Status: No, score=-0.84 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_MISMATCH_INFO=1.448, HOST_MISMATCH_NET=0.311]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eoiGPmB4V-Li for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 17:12:02 -0700 (PDT)
Received: from mx1.yitter.info (ow5p.x.rootbsd.net [208.79.81.114]) by ietfa.amsl.com (Postfix) with ESMTP id AC13211E80E9 for <spfbis@ietf.org>; Fri, 13 Sep 2013 17:12:02 -0700 (PDT)
Received: from mx1.yitter.info (ip-64-134-70-170.public.wayport.net [64.134.70.170]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.yitter.info (Postfix) with ESMTPSA id B3DED8A031 for <spfbis@ietf.org>; Sat, 14 Sep 2013 00:12:01 +0000 (UTC)
Date: Fri, 13 Sep 2013 20:12:04 -0400
From: Andrew Sullivan <ajs@anvilwalrusden.com>
To: spfbis@ietf.org
Message-ID: <20130914001204.GB78680@mx1.yitter.info>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <6.2.5.6.2.20130913152347.0c874cb8@elandnews.com> <BA4D9B3E-F9A6-46AF-BBA7-D6AD463020CA@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <BA4D9B3E-F9A6-46AF-BBA7-D6AD463020CA@gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review (response size)
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: Sat, 14 Sep 2013 00:12:08 -0000

On Fri, Sep 13, 2013 at 04:30:42PM -0700, Douglas Otis wrote:
> related to SPF have to be evaluated to fit in a single 512 octet UDP
> packet (i.e.  DNS message size limited to 450 octects).

> Message.  Limiting responses to less than a 450 octet DNS Message
> may accommodate additional information added automatically.

I must have missed it before, given the changes that are flying fast
and furious, but where in the world did 450 octets come from?  That's
not a "DNS magic number" anywhere of which I am aware.

A

-- 
Andrew Sullivan
ajs@anvilwalrusden.com

From doug.mtview@gmail.com  Fri Sep 13 17:25:34 2013
Return-Path: <doug.mtview@gmail.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 9139311E80EE; Fri, 13 Sep 2013 17:25:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id BSDTCM7CV879; Fri, 13 Sep 2013 17:25:33 -0700 (PDT)
Received: from mail-pb0-x22a.google.com (mail-pb0-x22a.google.com [IPv6:2607:f8b0:400e:c01::22a]) by ietfa.amsl.com (Postfix) with ESMTP id 6027311E8128; Fri, 13 Sep 2013 17:25:22 -0700 (PDT)
Received: by mail-pb0-f42.google.com with SMTP id un15so1876371pbc.15 for <multiple recipients>; Fri, 13 Sep 2013 17:25:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:mime-version:content-type:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=L8NQ3BZV4j3hbfIKIqCdV8JoGOCo51zL7s3sKvJVgvQ=; b=FU7ujvSTFKkdFoWBgyIUVcVFOQ3yvKUFKg4Ja4THToeI6H0GmeQGthJWQA1XuYaRqO THT9H1qabOIDo7sbHvXje0nhlal5rGHjS+9kl8LO1v1G04FjZo08ZoLWQv2AoYHVS6NB qIMkB5fQGVfSY3zEYKVxSqTCbe5lGsiw8EWw76uKsEVeR1Y1K0KtgDzheiF4dIWEyHcM 6AllqvIbEwKxxzP+xySde40r5ckxeWMScK3t61nLnaTmjgcGmBHg8+FAsbCoUVRJltn0 I9Ge5QtxOGrGwNAspIqrn3WgjjcUCCp/4j336irdmzpVxV3KR7KgahEvIojb9w3cfEMy VZgQ==
X-Received: by 10.66.122.40 with SMTP id lp8mr17946291pab.82.1379118322668; Fri, 13 Sep 2013 17:25:22 -0700 (PDT)
Received: from [192.168.0.54] (107-0-5-6-ip-static.hfc.comcastbusiness.net. [107.0.5.6]) by mx.google.com with ESMTPSA id m4sm12026640pbg.38.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 13 Sep 2013 17:25:21 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
Content-Type: text/plain; charset=us-ascii
From: Douglas Otis <doug.mtview@gmail.com>
In-Reply-To: <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com>
Date: Fri, 13 Sep 2013 17:25:20 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com> <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com>
To: S Moonesamy <sm+ietf@elandsys.com>
X-Mailer: Apple Mail (2.1508)
Cc: Benoit Claise <bclaise@cisco.com>, spfbis@ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>, spfbis-chairs@tools.ietf.org
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Sat, 14 Sep 2013 00:25:34 -0000

On Sep 12, 2013, at 8:09 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:

> Hi Benoit,
> At 07:55 12-09-2013, Benoit Claise wrote:
>> Well, maybe "Changes in implementation requirements from RFC 4408"
>> So my first question is: what are the changes that are not related to =
the implementation requirements?
>> As a good example, =
http://tools.ietf.org/html/draft-ietf-v6ops-rfc3316bis-04#appendix-B is =
useful.
>=20
> That is a good question (re. implementation requirements).  I suggest =
following the example you provided if Pete Resnick is okay with that.

Dear SM,

I would like to respond to this suggestion.

This suggestion overlooks SPF parameters from email messages combine to =
form DNS queries using macros in an endless number of ways.  Our data =
shows spam is largely emitted from compromised systems where SPF offers =
a covert method of targeting victims.  This form of abuse can increase =
network amplification by a factor of 3 or more beyond typical DNS =
attacks. This type of abuse also side steps Source Address Validation =
BCP38 aimed at disabling source address spoofing as well as UDP Source =
Port Randomization or even DNS Response Rate Limiting. =20

Such an attack is likely well beyond what DNS or DNSSEC can handle by =
employing usual defenses.  In addition, SPF does not use a dedicated =
resource record type nor a naming convention and is likely to ignore =
receipt of large TXT and PTR RRsets.  With so few domains publishing SPF =
macros, large providers already indicate they ignore SPF records =
containing macros which reduces this threat.  After all, if this type of =
abuse were to occur, it would likely require a response from email =
providers and not DNS operators.  IMHO, the current specification has =
not kept up with current practices.

Regards,
Douglas Otis







From doug.mtview@gmail.com  Fri Sep 13 17:34:44 2013
Return-Path: <doug.mtview@gmail.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 D17DB11E80EE for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 17:34:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id s0dqLfEueIAn for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 17:34:44 -0700 (PDT)
Received: from mail-pd0-x22b.google.com (mail-pd0-x22b.google.com [IPv6:2607:f8b0:400e:c02::22b]) by ietfa.amsl.com (Postfix) with ESMTP id 5D51811E80E9 for <spfbis@ietf.org>; Fri, 13 Sep 2013 17:34:44 -0700 (PDT)
Received: by mail-pd0-f171.google.com with SMTP id g10so1887593pdj.2 for <spfbis@ietf.org>; Fri, 13 Sep 2013 17:34:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=+DkoKKwgT4TAVGPSFxnSTC0O/UjV9rehrTgk5sh7dzE=; b=eRzesCOOHhIBCH6YGm1bSROy/+JjaGk1uBQ9VRSRWNsaix/opU9eihZXQcQAez7ZXs 7KD8t4zTnRZG14kkftDUO92H8ZlnYZGQjsmi2TSI1k9BI9MMigsqhoxcc6sH6RTbIuu7 +MX8lLlzLRmVNEaeQBoTrFnHfZ1F3o0kCBDjYVCU9/gzXxdBXODQHxJGqlKRfzG0U6bG nI/J6y1m11rwhJi6wcyYMe3J0FWBLHsHk+t4OJKiPrUQjXeAKfMmdUzorPIgEXMHhciy uMBneXi2ay41W4J3sh4pMJPCFTah/mBFxxigx8n6zHVcbGOeFWK4gdguAIrisO8kD8OI X7nw==
X-Received: by 10.67.4.197 with SMTP id cg5mr18049597pad.10.1379118884026; Fri, 13 Sep 2013 17:34:44 -0700 (PDT)
Received: from [192.168.0.54] (107-0-5-6-ip-static.hfc.comcastbusiness.net. [107.0.5.6]) by mx.google.com with ESMTPSA id fa4sm21049498pab.17.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 13 Sep 2013 17:34:43 -0700 (PDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
From: Douglas Otis <doug.mtview@gmail.com>
In-Reply-To: <20130914001204.GB78680@mx1.yitter.info>
Date: Fri, 13 Sep 2013 17:34:41 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <72C262F1-0715-499D-948F-989A9A007824@gmail.com>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <6.2.5.6.2.20130913152347.0c874cb8@elandnews.com> <BA4D9B3E-F9A6-46AF-BBA7-D6AD463020CA@gmail.com> <20130914001204.GB78680@mx1.yitter.info>
To: Andrew Sullivan <ajs@anvilwalrusden.com>
X-Mailer: Apple Mail (2.1508)
Cc: spfbis@ietf.org
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review (response size)
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: Sat, 14 Sep 2013 00:34:44 -0000

Dear Andrew,

I did not recommend this value, but I did say it sounded like reasonable =
advice.   I have been burnt a number of times by "helpful" DNS servers =
that decide to add some additional information.   I also wondered if =
this was about a IPv6 related issue, which may require a reduction of 40 =
for the IP header assuming a goal was to retain a 576 octet MTU.  But =
this does not sound reasonable either.=20

Regard,
Douglas Otis

On Sep 13, 2013, at 5:12 PM, Andrew Sullivan <ajs@anvilwalrusden.com> =
wrote:

> On Fri, Sep 13, 2013 at 04:30:42PM -0700, Douglas Otis wrote:
>> related to SPF have to be evaluated to fit in a single 512 octet UDP
>> packet (i.e.  DNS message size limited to 450 octects).
>=20
>> Message.  Limiting responses to less than a 450 octet DNS Message
>> may accommodate additional information added automatically.
>=20
> I must have missed it before, given the changes that are flying fast
> and furious, but where in the world did 450 octets come from?  That's
> not a "DNS magic number" anywhere of which I am aware.
>=20
> A
>=20
> --=20
> Andrew Sullivan
> ajs@anvilwalrusden.com
> _______________________________________________
> spfbis mailing list
> spfbis@ietf.org
> https://www.ietf.org/mailman/listinfo/spfbis


From ajs@anvilwalrusden.com  Fri Sep 13 17:37:25 2013
Return-Path: <ajs@anvilwalrusden.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 F1A8811E8128; Fri, 13 Sep 2013 17:37:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.84
X-Spam-Level: 
X-Spam-Status: No, score=-0.84 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_MISMATCH_INFO=1.448, HOST_MISMATCH_NET=0.311]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id i-vEVTQ-nD-5; Fri, 13 Sep 2013 17:37:11 -0700 (PDT)
Received: from mx1.yitter.info (ow5p.x.rootbsd.net [208.79.81.114]) by ietfa.amsl.com (Postfix) with ESMTP id B359B11E80E9; Fri, 13 Sep 2013 17:37:11 -0700 (PDT)
Received: from mx1.yitter.info (ip-64-134-70-170.public.wayport.net [64.134.70.170]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.yitter.info (Postfix) with ESMTPSA id 514D28A031; Sat, 14 Sep 2013 00:36:59 +0000 (UTC)
Date: Fri, 13 Sep 2013 20:36:55 -0400
From: Andrew Sullivan <ajs@anvilwalrusden.com>
To: Douglas Otis <doug.mtview@gmail.com>
Message-ID: <20130914003652.GF78680@mx1.yitter.info>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com> <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com> <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Cc: S Moonesamy <sm+ietf@elandsys.com>, spfbis@ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>, Benoit Claise <bclaise@cisco.com>, spfbis-chairs@tools.ietf.org
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Sat, 14 Sep 2013 00:37:25 -0000

Doug,

I'm writing as co-chair on what I hope are strictly procedural
matters.

On Fri, Sep 13, 2013 at 05:25:20PM -0700, Douglas Otis wrote:
> to ignore receipt of large TXT and PTR RRsets.  With so few domains
> publishing SPF macros, large providers already indicate they ignore
> SPF records containing macros which reduces this threat.

It would be nice if you would produce even one citation for this,
since it's been asked of you repeatedly.

> response from email providers and not DNS operators.  IMHO, the
> current specification has not kept up with current practices.

That is entirely possible.  The WG is not chartered to remove
features that are in use.  By anyone.  We already had that appeal, and
made that decision.  So why does it matter if there is a feature in
here that is falling out of favour?  A later effort can remove it if
it is really unused.  But we can't.

Best,

A

-- 
Andrew Sullivan
ajs@anvilwalrusden.com

From spf2@kitterman.com  Fri Sep 13 20:32:17 2013
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 8E8CC11E8131 for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 20:32:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.289
X-Spam-Level: 
X-Spam-Status: No, score=-2.289 tagged_above=-999 required=5 tests=[AWL=0.310,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id h9JoRbjQpWFz for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 20:32:12 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 6B36211E815E for <spfbis@ietf.org>; Fri, 13 Sep 2013 20:32:12 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id BA35A20E40F6; Fri, 13 Sep 2013 23:32:06 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1379129526; bh=rZWrh6H5TToouD25dZdcie2cVz2sT0HcLcYvlddvVco=; h=From:To:Subject:Date:In-Reply-To:References:From; b=V1r1vD9OodI5QRXt3Fl8EvD6oxbUkTkiqKUFOfFwt9RWhr4GLuW/aNhSQ/4cQLEHA 448hN2s77TJKT4OzAYNQvacpagf35uOvVGWj10uO6a6rjPbavryr2fQWwtJSvvfc2U LDqLwgd0Uko8E3ZnYl9QW6N0+BYIIfx0CeQrsoWM=
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 9D8F720E40CB;  Fri, 13 Sep 2013 23:32:06 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Fri, 13 Sep 2013 23:32:05 -0400
Message-ID: <5129719.PDZTiHcDZ6@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <20130914001204.GB78680@mx1.yitter.info>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <BA4D9B3E-F9A6-46AF-BBA7-D6AD463020CA@gmail.com> <20130914001204.GB78680@mx1.yitter.info>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review (response size)
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: Sat, 14 Sep 2013 03:32:17 -0000

On Friday, September 13, 2013 20:12:04 Andrew Sullivan wrote:
> On Fri, Sep 13, 2013 at 04:30:42PM -0700, Douglas Otis wrote:
> > related to SPF have to be evaluated to fit in a single 512 octet UDP
> > packet (i.e.  DNS message size limited to 450 octects).
> > 
> > Message.  Limiting responses to less than a 450 octet DNS Message
> > may accommodate additional information added automatically.
> 
> I must have missed it before, given the changes that are flying fast
> and furious, but where in the world did 450 octets come from?  That's
> not a "DNS magic number" anywhere of which I am aware.

It's from RFC 4408:

   3.1.4. Record Size

   The published SPF record for a given domain name SHOULD remain small
   enough that the results of a query for it will fit within 512 octets.
   This will keep even older DNS implementations from falling over to
   TCP.  Since the answer size is dependent on many things outside the
   scope of this document, it is only possible to give this guideline:
   If the combined length of the DNS name and the text of all the
   records of a given type (TXT or SPF) is under 450 characters, then
   DNS answers should fit in UDP packets.  Note that when computing the
   sizes for queries of the TXT format, one must take into account any
   other TXT records published at the domain name.  Records that are too
   long to fit in a single UDP packet MAY be silently ignored by SPF
   clients.

It's meant to provide record publishers with a rule of thumb to use on how 
large an SPF record can be without risk of needing EDNS0 or TCP.

Scott K

From doug.mtview@gmail.com  Fri Sep 13 20:57:06 2013
Return-Path: <doug.mtview@gmail.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 4C6DF11E8131; Fri, 13 Sep 2013 20:57:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level: 
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[AWL=-0.000, BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OBDbAzUOEHrP; Fri, 13 Sep 2013 20:57:00 -0700 (PDT)
Received: from mail-pa0-x22c.google.com (mail-pa0-x22c.google.com [IPv6:2607:f8b0:400e:c03::22c]) by ietfa.amsl.com (Postfix) with ESMTP id 9593F11E80ED; Fri, 13 Sep 2013 20:56:59 -0700 (PDT)
Received: by mail-pa0-f44.google.com with SMTP id fz6so3292520pac.31 for <multiple recipients>; Fri, 13 Sep 2013 20:56:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=subject:mime-version:content-type:from:in-reply-to:date:cc :message-id:references:to; bh=XLMSAlQ38ACDxkjE6ae9BpY5qXiObO2JVGGZBEUndmg=; b=Xqq/GK6HEAgHCTEsFYtwpp0SAgw8d+heUYcwgWmW5CXrgv6d3c4HwAXPHf4leOwnqE I6S6/oS427/ol8eYA6gPC4eiJvMceQcLms1lMAPMYRepQXdU8ZIPOgDksWL+Ks6g2DfX B6SS4GTSs6xKyA2yniMY3psgzBBJOeXgaattScrQp1XnyB3pi0trDjaxFVHIknTzxgQv 3GCyy4ItuLEZcvd3VP0b3W/BKEp86hPbqs4Y6wclIH8Lj+kTzxOvReDQHBl9wfJsQBNH ZEBrJ/xhXQSgS9iaSUA7LF2f/414rKsuGg2SL+VWCQdzb7y6uXaFfr1NVL8V97jjrEbM t3AA==
X-Received: by 10.66.187.34 with SMTP id fp2mr18713588pac.12.1379131018118; Fri, 13 Sep 2013 20:56:58 -0700 (PDT)
Received: from [192.168.0.54] (107-0-5-6-ip-static.hfc.comcastbusiness.net. [107.0.5.6]) by mx.google.com with ESMTPSA id mr3sm15393052pbb.27.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 13 Sep 2013 20:56:57 -0700 (PDT)
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
Content-Type: multipart/alternative; boundary="Apple-Mail=_74237C84-AEAA-4FAE-92BB-6B43AC0139D9"
From: Douglas Otis <doug.mtview@gmail.com>
In-Reply-To: <20130914003652.GF78680@mx1.yitter.info>
Date: Fri, 13 Sep 2013 20:56:55 -0700
Message-Id: <BD926F72-A6C3-4F0B-BBFB-A18668C9E4AF@gmail.com>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com> <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com> <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com> <20130914003652.GF78680@mx1.yitter.info>
To: Andrew Sullivan <ajs@anvilwalrusden.com>
X-Mailer: Apple Mail (2.1508)
Cc: S Moonesamy <sm+ietf@elandsys.com>, spfbis@ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>, Benoit Claise <bclaise@cisco.com>, spfbis-chairs@tools.ietf.org
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Sat, 14 Sep 2013 03:57:06 -0000

--Apple-Mail=_74237C84-AEAA-4FAE-92BB-6B43AC0139D9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Dear Andrew,

See comments inline.

On Sep 13, 2013, at 5:36 PM, Andrew Sullivan <ajs@anvilwalrusden.com> =
wrote:

> Doug,
>=20
> I'm writing as co-chair on what I hope are strictly procedural
> matters.
>=20
> On Fri, Sep 13, 2013 at 05:25:20PM -0700, Douglas Otis wrote:
>> to ignore receipt of large TXT and PTR RRsets.  With so few domains
>> publishing SPF macros, large providers already indicate they ignore
>> SPF records containing macros which reduces this threat.
>=20
> It would be nice if you would produce even one citation for this,
> since it's been asked of you repeatedly.=20

I fully understand a desire to limit discussions about aspects of this =
protocol.  This will take more time than anyone wants to afford for =
email.  In my prior response off list copied to Pete, this was agreeing =
with your statement about the WG skill with DNS.  Also, I am obligated =
to keep some conversations in confidence.  More than just IETF members =
are involved.

In my defense, may I ask whether the draft =
http://tools.ietf.org/html/draft-otis-spfbis-macros-nixed-01 been =
reviewed?

It contains a reference to a survey by the SPF website =
http://spf-all.com/stats.html which indicates of all domains publishing =
SPF records 99.947% contain no macros.  It seems a reasonable person =
would wonder why.

The issue of the PTR RRset is a matter of record.  There are even recent =
conversations with Scott where I noted the SPFbis protocol omits limits =
on the number of PTR RRs unlike limits placed on MX RRs.  I even =
suggested text to remedy this oversight.  He responded this was not an =
issue for SPF.  We are also going over language regarding response =
sizes.  May I point out there are no SPF error conditions caused by a =
TXT RRset or PTR RRset being too large.

I hope you can imagine what this might mean from the perspective of =
network amplifications caused by a protocol that recommends resolving =
two separate names using this highly inefficient protocol overlaying DNS =
to provide massive automation for unknown entities that lacks any =
dedicated resource record type or naming convention.  Carefully review =
the process for the PTR mechanism and estimate the DNS transactions and =
the resulting network traffic that could be caused for each occurrence.=20=


The MX mechanism can generate 111 DNS transactions with a recursive =
server.  This ignores supporting transactions likely needed in a =
resolution process.  Make that estimate again while assuming EDNS0 with =
a 1410 octet MTU, and again with a 4096 octet MTU.  As I had mentioned, =
use of IPv6 and DNSSEC is not within the purview of SPF.  The SPF =
protocol should not be allowed to ignore its impact on DNSSEC despite a =
steady insistence SPF does nothing special with DNS and any problem must =
be considered the fault of DNS.  The only remedy available is for =
providers to ignore any SPF TXT resource records containing macros.  =
What else can be done?

As an aside, at the time SPF was developed, there was already the binary =
APL RR, that when combined the MX record, could define the entire =
outbound address space within a single transaction.  It seems one vendor =
remains the major obstacle.  Not surprisingly, this vendor is now seldom =
used to directly interface with email.  Why should their abstinence be =
allowed to destroy safe deployment of DNSSEC?  Why should SPF be allowed =
to blame DNS?

>> response from email providers and not DNS operators.  IMHO, the
>> current specification has not kept up with current practices.
>=20
> That is entirely possible.  The WG is not chartered to remove
> features that are in use.  By anyone.  We already had that appeal, and
> made that decision.  So why does it matter if there is a feature in
> here that is falling out of favour?  A later effort can remove it if
> it is really unused.  But we can't.

At the same time, it seems irresponsible to completely deprecate use of =
the dedicated RR record type that had a much higher level of use while =
not deprecating a far more dangerous macro option used by far fewer =
domains.  Such an oversight  can not be excused by blaming the charter.

If I have said something offensive, allow me once again to assure you =
this was never my intent.

Regards,
Douglas Otis







--Apple-Mail=_74237C84-AEAA-4FAE-92BB-6B43AC0139D9
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Dear =
Andrew,<div><br></div><div>See comments =
inline.<br><div><br></div><div><div><div>On Sep 13, 2013, at 5:36 PM, =
Andrew Sullivan &lt;<a =
href=3D"mailto:ajs@anvilwalrusden.com">ajs@anvilwalrusden.com</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite">Doug,<br><br>I'm writing as co-chair on what I hope are =
strictly procedural<br>matters.<br><br>On Fri, Sep 13, 2013 at =
05:25:20PM -0700, Douglas Otis wrote:<br><blockquote type=3D"cite">to =
ignore receipt of large TXT and PTR RRsets. &nbsp;With so few =
domains<br>publishing SPF macros, large providers already indicate they =
ignore<br>SPF records containing macros which reduces this =
threat.<br></blockquote><br>It would be nice if you would produce even =
one citation for this,<br>since it's been asked of you =
repeatedly.&nbsp;<br></blockquote><div><br></div><div>I fully understand =
a desire to limit discussions about aspects of this protocol. &nbsp;This =
will take more time than anyone wants to afford for email. &nbsp;In my =
prior response off list copied to Pete, this was agreeing with your =
statement about the WG skill with DNS. &nbsp;Also,&nbsp;I am obligated =
to keep some conversations in confidence. &nbsp;More than just IETF =
members are involved.</div><div><br></div>In my defense, may I ask =
whether the draft&nbsp;<a =
href=3D"http://tools.ietf.org/html/draft-otis-spfbis-macros-nixed-01">http=
://tools.ietf.org/html/draft-otis-spfbis-macros-nixed-01</a>&nbsp;been =
reviewed?</div><div><br></div><div>It contains a reference to a survey =
by the SPF website&nbsp;<a =
href=3D"http://spf-all.com/stats.html">http://spf-all.com/stats.html</a>&n=
bsp;which indicates of all domains publishing SPF =
records&nbsp;99.947%&nbsp;contain no macros. &nbsp;It seems a reasonable =
person would wonder why.</div><div><div><br></div><div>The issue of the =
PTR RRset is a matter of record. &nbsp;There are even recent =
conversations with Scott where I noted the SPFbis protocol omits limits =
on the number of PTR RRs unlike limits placed on MX RRs. &nbsp;I even =
suggested text to remedy this oversight. &nbsp;He responded this was not =
an issue for SPF. &nbsp;We are also going over language regarding =
response sizes. &nbsp;May I point out there are no SPF error conditions =
caused by a TXT RRset or PTR RRset being too =
large.</div><div><br></div><div>I hope you can imagine what this might =
mean from the perspective of network amplifications caused by a protocol =
that recommends resolving two separate names using this highly =
inefficient protocol overlaying DNS to provide massive automation for =
unknown entities that lacks any dedicated resource record type or naming =
convention. &nbsp;Carefully review the process for the PTR mechanism and =
estimate the DNS transactions and the resulting network traffic that =
could be caused for each occurrence.&nbsp;</div><div><br></div><div>The =
MX mechanism can generate 111 DNS transactions with a recursive server. =
&nbsp;This ignores supporting transactions likely needed in a resolution =
process. &nbsp;Make that estimate again while assuming EDNS0 with a 1410 =
octet MTU, and again with a 4096 octet MTU. &nbsp;As I had mentioned, =
use of IPv6 and DNSSEC is not within the purview of SPF. &nbsp;The SPF =
protocol should not be allowed to ignore its impact on DNSSEC despite a =
steady insistence SPF does nothing special with DNS and any problem must =
be considered the fault of DNS. &nbsp;The only remedy available is for =
providers to ignore any SPF TXT resource records containing macros. =
&nbsp;What else can be done?</div><div><br></div><div>As an aside, at =
the time SPF was developed, there was already the binary APL RR, that =
when combined the MX record, could define the entire outbound address =
space within a single transaction. &nbsp;It seems one vendor remains the =
major obstacle. &nbsp;Not surprisingly, this vendor is now seldom used =
to directly interface with email. &nbsp;Why should their abstinence be =
allowed to destroy safe deployment of DNSSEC? &nbsp;Why should SPF be =
allowed to blame DNS?</div><div><br></div><blockquote =
type=3D"cite"><blockquote type=3D"cite">response from email providers =
and not DNS operators. &nbsp;IMHO, the<br>current specification has not =
kept up with current practices.<br></blockquote><br>That is entirely =
possible. &nbsp;The WG is not chartered to remove<br>features that are =
in use. &nbsp;By anyone. &nbsp;We already had that appeal, and<br>made =
that decision. &nbsp;So why does it matter if there is a feature =
in<br>here that is falling out of favour? &nbsp;A later effort can =
remove it if<br>it is really unused. &nbsp;But we =
can't.<br></blockquote><div><br></div><div>At the same time, it seems =
irresponsible to completely deprecate use of the dedicated RR record =
type that had a much higher level of use while not deprecating a far =
more dangerous macro option used by far fewer domains. &nbsp;Such an =
oversight &nbsp;can not be excused by blaming the =
charter.</div><div><br></div><div>If I have said something offensive, =
allow me once again to assure you this was never my =
intent.</div><div><br></div><div>Regards,</div><div>Douglas =
Otis</div><div><br></div><div><br></div><div><br></div><div><br></div><br>=
</div><br></div></div></body></html>=

--Apple-Mail=_74237C84-AEAA-4FAE-92BB-6B43AC0139D9--

From spf2@kitterman.com  Fri Sep 13 21:18:26 2013
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 0D90011E80F3 for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 21:18:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.315
X-Spam-Level: 
X-Spam-Status: No, score=-2.315 tagged_above=-999 required=5 tests=[AWL=0.284,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KiLQYczg1lhx for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 21:18:20 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id BDAF011E80ED for <spfbis@ietf.org>; Fri, 13 Sep 2013 21:18:20 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 048C220E40F6; Sat, 14 Sep 2013 00:18:20 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1379132300; bh=vT89KbbaX8rsysHnGbC5BXLHtOd3aEsKYvHqY++gALk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=iZeX6duaEhtsPdWffX5huk3a27Ph3eUIIY6ThVzaxC7LU7x4elpYBadtCi+9GLQGs NwUBucfUEBSy9tQp9ux6ybzz4U+kRGK3Rbm9pUBUqnVuKWaZM0dT4TNVQoNh8jI1Tj hX80jcnn3wPEQCSpocLL4DqR6A1/dk4myugwvcDc=
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 DAE1820E40CB;  Sat, 14 Sep 2013 00:18:19 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Sat, 14 Sep 2013 00:18:18 -0400
Message-ID: <2340356.St57jYUxEv@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <BD926F72-A6C3-4F0B-BBFB-A18668C9E4AF@gmail.com>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <20130914003652.GF78680@mx1.yitter.info> <BD926F72-A6C3-4F0B-BBFB-A18668C9E4AF@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] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Sat, 14 Sep 2013 04:18:26 -0000

On Friday, September 13, 2013 20:56:55 Douglas Otis wrote:
..
> The issue of the PTR RRset is a matter of record.  There are even recent
> conversations with Scott where I noted the SPFbis protocol omits limits on
> the number of PTR RRs unlike limits placed on MX RRs.  I even suggested
> text to remedy this oversight.  He responded this was not an issue for
> SPF.  We are also going over language regarding response sizes.  May I
> point out there are no SPF error conditions caused by a TXT RRset or PTR
> RRset being too large.
...
To correct the record, I said it was intentional.  The reason why it's treated 
different is explained on 4408bis.  We had language that treated PTR like MX 
for lookup limits, but that was changed for the reasons explained.  I didn't 
say it was "not an issue".  It was a deliberate design choice based on two 
competing issues.

We debated this in the WG already and I'm not aware of any new information 
that would make re-litigating it a reasonable thing to do.

I'm only commenting on this part to correct what I see as an error relating to 
what I've said in the past.

Scott K

From spf2@kitterman.com  Fri Sep 13 21:25:33 2013
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 B300511E80ED for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 21:25:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.337
X-Spam-Level: 
X-Spam-Status: No, score=-2.337 tagged_above=-999 required=5 tests=[AWL=0.262,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZDDbqkb-L3Sd for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 21:25:27 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 4F93611E80E8 for <spfbis@ietf.org>; Fri, 13 Sep 2013 21:25:25 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 9232120E40F6; Sat, 14 Sep 2013 00:25:24 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1379132724; bh=khM93Pm1Y6QhLAeIVpgfMiKeuKqPUbSRoczdFJatHAQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=nU8im31zhHBOWyUEjf7/Swqmv77My7VBQXqTJV+K/CG/QSVQXsLVwIt8olH3yDfj9 cQRxLAWD6NI2iC0GwO11ok3jzPmf1JSMgCZjKnPrVUv+LD8KXGg8hqqTUHefBbI3G2 /Qde7ZWWlJnDu3Zbi1p6ikE/cZHUB2b9Xmh5WEHo=
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 7CCA120E40CB;  Sat, 14 Sep 2013 00:25:24 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Sat, 14 Sep 2013 00:25:23 -0400
Message-ID: <38312086.HKzMeyOO04@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <6.2.5.6.2.20130913165239.0be3fed0@elandnews.com>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <BA4D9B3E-F9A6-46AF-BBA7-D6AD463020CA@gmail.com> <6.2.5.6.2.20130913165239.0be3fed0@elandnews.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] draft-ietf-spfbis-4408bis-20 review (response size)
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: Sat, 14 Sep 2013 04:25:33 -0000

On Friday, September 13, 2013 17:01:24 S Moonesamy wrote:
> Hi Doug,
> 
> At 16:30 13-09-2013, Douglas Otis wrote:
> >Season to taste. ;^)
> >
> :-)
> :
> >Change to:
> >,---
> >Note that when computing the sizes for replies to queries of the TXT
> >format, one has to take into account any other TXT records published
> >at the domain name.  Similarly, the sizes for replies to all queries
> >related to SPF have to be evaluated to fit in a 512 octet DNS
> >Message.  Limiting responses to less than a 450 octet DNS Message
> >may accommodate additional information added automatically.
> 
> The above looks okay to me.  The last sentence could be dropped.

No.

The point is you can't use the entire 512 [insert term here] for the SPF 
record due to potentially other TXT records and DNS message overhead.  The 450 
number is a rule of thumb that was developed to provide a ~safe SPF record 
size in the absence of other TXT records.  The propose language uses the term 
"DNS message" both for the UDP packet size and for the part of that packet 
that can be used for an SPF record.

I strongly object to dropping the 450 recommendation based on no data that 
says it's bad (it is in RFC 4408 and no case to remove it has been 
recommended).

All the rambling about IPv6, EDNS0, etc is irrelevant.  The point is to keep 
the record small enough to make it reliable.

Even if there was a point in the the change, the language is definitely a 
regression from what was there before because it uses the same term for two 
different things.

Scott K

From sm@elandsys.com  Fri Sep 13 22:32:35 2013
Return-Path: <sm@elandsys.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 2EFCC21F9E96; Fri, 13 Sep 2013 22:32:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.581
X-Spam-Level: 
X-Spam-Status: No, score=-102.581 tagged_above=-999 required=5 tests=[AWL=0.018, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JGLKLAl3CP1P; Fri, 13 Sep 2013 22:32:34 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 05DE021F9E83; Fri, 13 Sep 2013 22:32:33 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.152.219]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8E5WDp0023061 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 13 Sep 2013 22:32:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379136747; bh=npQXH4yMBH4Gx/nt9cm5TpTSRsEsUB+3NfIoB92dQV8=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=p3QchBnKAM5FTftTl6RTxrFZljFsmlsL1zErRr5C+7L0urBMLhMmLtfo4kn1nvPyR LFKwBvd+s7cnfPseHakBizO4xuQVXX0g7/UoXuACzBE34u+uBUs1eWLBKopv+Aj0T6 TNKX3wc2gFz3SEdcc1Lnfw3wPsOntucTVbDVKNC4=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379136747; i=@elandsys.com; bh=npQXH4yMBH4Gx/nt9cm5TpTSRsEsUB+3NfIoB92dQV8=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=i/5dRJOfUn4zpU0xA7nDH5QBDNgMgKj+XNgw2qmEm0R89acZtr/UbAN+h98sxsQNw LA6tyqOuy/em28MYsqEADa5UdxKM9CjI6+XT6PZJnpETTDb+ls7ecfUa05poqS/TNk MXPG8hP9PVZONtIdOsUMQBt8Pvfekhhe1SpXA+jI=
Message-Id: <6.2.5.6.2.20130913211154.0c82ead8@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Fri, 13 Sep 2013 22:31:42 -0700
To: Douglas Otis <doug.mtview@gmail.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com> <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com> <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: Benoit Claise <bclaise@cisco.com>, spfbis@ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>, spfbis-chairs@tools.ietf.org
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Sat, 14 Sep 2013 05:32:35 -0000

Hi Doug,
At 17:25 13-09-2013, Douglas Otis wrote:
>I would like to respond to this suggestion.

Andrew already commented on the response ( 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04180.html ).

I read the two messages from Benoit Claise, as Area Director, (see 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04156.html and 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04160.html 
).  The Area Director  asked about changes and provided an example of 
what he means.  I thought that what I suggested was clear.

The matter is about how RFCs are written.  I read the message at 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04178.html and 
I don't see anything relating to how RFCs are written.

Regards,
S. Moonesamy (as document shepherd) 


From d3e3e3@gmail.com  Fri Sep 13 22:06:15 2013
Return-Path: <d3e3e3@gmail.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 9AA2711E80E8; Fri, 13 Sep 2013 22:06:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.6
X-Spam-Level: 
X-Spam-Status: No, score=-102.6 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, NO_RELAYS=-0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3G44pvOVyVY7; Fri, 13 Sep 2013 22:06:15 -0700 (PDT)
Received: from mail-pa0-x22a.google.com (mail-pa0-x22a.google.com [IPv6:2607:f8b0:400e:c03::22a]) by ietfa.amsl.com (Postfix) with ESMTP id 7D46411E80E0; Fri, 13 Sep 2013 22:06:14 -0700 (PDT)
Received: by mail-pa0-f42.google.com with SMTP id lj1so3337315pab.15 for <multiple recipients>; Fri, 13 Sep 2013 22:06:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=1fGFvAiCKyxqfGNJLZGMEKTk/bYfRkaQdIyHCCmdzHw=; b=KswIloL63gNhnd3vuXdcHycnN/Vjz7zGLfRzg282jWadOgum7AmIKwMI31VepZnBAx ZoQrWrnEMUe0z/7XLh3rXBC9cISvVTSO6zP4MuKiAhw2M0aLkBOAnqTpfDMiawdNhVAV qNSLbLCSigSEGMMvDePrSkvfzHH1u4LcITwcHKgxThjmFFSbfFnLpN4li2vx3+2y224p 04YIRKlzBVb3prYXeOtfaXNCVF5leWnujek6fGdudZv41gdKWiNUhKmIdxzmcaCY7CiF 2R2yO/VpgUa0YVdcPIGcYtcTcbXYn/U9/UuhLvCNABRwyMZ3ohlRvp26oJncFnS+g7og kTdQ==
X-Received: by 10.68.196.234 with SMTP id ip10mr17301002pbc.18.1379135174072;  Fri, 13 Sep 2013 22:06:14 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.70.91.143 with HTTP; Fri, 13 Sep 2013 22:05:54 -0700 (PDT)
In-Reply-To: <CAL0qLwYtmmFpU9RnJYvL-pgA5e2Styxs-fpbsYG0YJW4ZHTFMg@mail.gmail.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <6.2.5.6.2.20130911060419.0ddb37c8@elandnews.com> <CAL0qLwZ1HXEfTzvL9KtRmLRvfsgEB4Fy5x7EMV7qjekG7oTwLA@mail.gmail.com> <CAMm+LwhtmjBXQ1ZQRhKW-2FvPG2AkW5fyRN7ihMOT9UJdPgkkQ@mail.gmail.com> <CAL0qLwYtmmFpU9RnJYvL-pgA5e2Styxs-fpbsYG0YJW4ZHTFMg@mail.gmail.com>
From: Donald Eastlake <d3e3e3@gmail.com>
Date: Sat, 14 Sep 2013 01:05:54 -0400
Message-ID: <CAF4+nEEs1YZTkD=37zrHfaMLLzMRQeuQk3r3CGHmxmCowwu-hg@mail.gmail.com>
To: "Murray S. Kucherawy" <superuser@gmail.com>
Content-Type: text/plain; charset=ISO-8859-1
X-Mailman-Approved-At: Fri, 13 Sep 2013 22:32:42 -0700
Cc: "secdir@ietf.org" <secdir@ietf.org>, S Moonesamy <sm+ietf@elandsys.com>, "spfbis@ietf.org" <spfbis@ietf.org>, The IESG <iesg@ietf.org>, draft-ietf-spfbis-4408bis.all@tools.ietf.org, Phillip Hallam-Baker <hallam@gmail.com>
Subject: Re: [spfbis] [secdir] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Sat, 14 Sep 2013 05:06:15 -0000

On Wed, Sep 11, 2013 at 12:35 PM, Murray S. Kucherawy
<superuser@gmail.com> wrote:
> On Wed, Sep 11, 2013 at 7:33 AM, Phillip Hallam-Baker <hallam@gmail.com>
> wrote:
>>
>> On Wed, Sep 11, 2013 at 9:43 AM, Murray S. Kucherawy <superuser@gmail.com>
>> wrote:
>>>
>>> On Wed, Sep 11, 2013 at 6:22 AM, S Moonesamy <sm+ietf@elandsys.com>
>>> wrote:
>>>>
>>>> I am responding to the comment about DKIM only and wait for the SPFBIS
>>>> WG to address the other issues.
>>>
>>>
>>> Was the SecDir review for this draft posted to the spfbis list?  I
>>> haven't seen it.
>>
>>
>> The draft-ietf-spfbis-4408bis.all@tools.ietf.org doesn't cover it? I
>> thought that was the point.
>
>
> I'm pretty sure it's authors, shepherds, and co-chairs only, not the whole
> WG.

It also includes the sponsoring AD.

Thanks,
Donald
=============================
 Donald E. Eastlake 3rd   +1-508-333-2270 (cell)
 155 Beaver Street, Milford, MA 01757 USA
 d3e3e3@gmail.com

From sm@elandsys.com  Fri Sep 13 23:04:32 2013
Return-Path: <sm@elandsys.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 CC62211E80D1 for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 23:04:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.582
X-Spam-Level: 
X-Spam-Status: No, score=-102.582 tagged_above=-999 required=5 tests=[AWL=0.017, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pd2sWX4kP9Ai for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 23:04:32 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 1F17B21F9EC8 for <spfbis@ietf.org>; Fri, 13 Sep 2013 23:04:32 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.152.219]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8E64DgM006849 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 13 Sep 2013 23:04:23 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379138666; bh=/4hIAUPq/wM+mISTXSJ1X4p+fqvgFxfmLG5Wj/p4SMI=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=qN/p6hF8LHZAVUBhXYOrai78HbhG0yCaafEM/Jv+TETXKivuyvsLUv1dflR9s0QjK rH6sesBv+L35kOVzGZnaTiiDPJJYhauswAmxyINm+grKkuhplh98lD+rAyWOMOe08m gwLAU2Vzpz5uXhJ/zFq0Dad0TYNCxiORukhsgT3w=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379138666; i=@elandsys.com; bh=/4hIAUPq/wM+mISTXSJ1X4p+fqvgFxfmLG5Wj/p4SMI=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=UreCXqHIqoTXUcKkHbPP2uEf+8hcAHR6Skbx/F8XQGO4Nc/qCmWneXWedcibusa03 mHPtXaZLP4KlLagvE9Hmz773UhHDV71DhEmFJl1D8ZdI6N3DTt13piphkfhpHnPujs yfle11xc00wAiU/4zt3jDJlNMxzIembNZGt/xYn4=
Message-Id: <6.2.5.6.2.20130913224030.0cacb170@resistor.net>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Fri, 13 Sep 2013 23:01:37 -0700
To: Scott Kitterman <spf2@kitterman.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <38312086.HKzMeyOO04@scott-latitude-e6320>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <BA4D9B3E-F9A6-46AF-BBA7-D6AD463020CA@gmail.com> <6.2.5.6.2.20130913165239.0be3fed0@elandnews.com> <38312086.HKzMeyOO04@scott-latitude-e6320>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>, Joe Abley <jabley@hopcount.ca>
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review (response  size)
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: Sat, 14 Sep 2013 06:04:32 -0000

Hi Scott,
At 21:25 13-09-2013, Scott Kitterman wrote:
>No.
>
>The point is you can't use the entire 512 [insert term here] for the SPF
>record due to potentially other TXT records and DNS message 
>overhead.  The 450
>number is a rule of thumb that was developed to provide a ~safe SPF record
>size in the absence of other TXT records.  The propose language uses the term
>"DNS message" both for the UDP packet size and for the part of that packet
>that can be used for an SPF record.
>
>I strongly object to dropping the 450 recommendation based on no data that
>says it's bad (it is in RFC 4408 and no case to remove it has been
>recommended).
>
>All the rambling about IPv6, EDNS0, etc is irrelevant.  The point is to keep
>the record small enough to make it reliable.
>
>Even if there was a point in the the change, the language is definitely a
>regression from what was there before because it uses the same term for two
>different things.

There is a message of Joe Abley at 
http://www.ietf.org/mail-archive/web/ietf/current/msg81862.html  Joe 
was correct in saying that my usage of "UDP message" is incorrect.

I did not suggest dropping the "450 recommendation".  The text 
suggested by Douglas Otis was for the second paragraph of Section 
3.4.  This is not related to IPv6 or EDNS0.

The language that was there before is incorrect (see message from Joe Abley).

Could you please propose text to address the terminology issue in Section 3.4?

Regards,
S. Moonesamy (as document shepherd)  


From spf2@kitterman.com  Fri Sep 13 23:20:55 2013
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 9F7CB11E80D1 for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 23:20:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.055
X-Spam-Level: 
X-Spam-Status: No, score=-2.055 tagged_above=-999 required=5 tests=[AWL=-0.056, BAYES_00=-2.599, J_CHICKENPOX_33=0.6]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sYmNnas03jqj for <spfbis@ietfa.amsl.com>; Fri, 13 Sep 2013 23:20:51 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id BFB6921E804B for <spfbis@ietf.org>; Fri, 13 Sep 2013 23:20:42 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 9226920E40F6; Sat, 14 Sep 2013 02:20:40 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1379139640; bh=7eXpG5p7o68UW4qyuhmtBNSm4PLBq9vIajVf5vpJMq0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ba+IhV8bZNtg6gHpyLMt6GyzwqqbtJKU9uA4sZcOEfgNDYOZgFmn88izdggI8yMa0 B4hsHq65c0a4wulQYY2wBy5bKiRyOZkAKT/UOUk/Yg+wrqNSZ43k855zij3kH6SrLf 5rjmQEnYGRPxM5KAOyB8rystwZqWcCoS8l4RIuiE=
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 73C6B20E40CB;  Sat, 14 Sep 2013 02:20:40 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Sat, 14 Sep 2013 02:20:39 -0400
Message-ID: <2137735.9LNiMWPY5V@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <6.2.5.6.2.20130913224030.0cacb170@resistor.net>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <38312086.HKzMeyOO04@scott-latitude-e6320> <6.2.5.6.2.20130913224030.0cacb170@resistor.net>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-AV-Checked: ClamAV using ClamSMTP
Cc: Joe Abley <jabley@hopcount.ca>, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>, S Moonesamy <sm+ietf@elandsys.com>, Scott Kitterman <spf2@kitterman.com>
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review (response  size)
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: Sat, 14 Sep 2013 06:20:55 -0000

On Friday, September 13, 2013 23:01:37 S Moonesamy wrote:
> Hi Scott,
> 
> At 21:25 13-09-2013, Scott Kitterman wrote:
> >No.
> >
> >The point is you can't use the entire 512 [insert term here] for the SPF
> >record due to potentially other TXT records and DNS message
> >overhead.  The 450
> >number is a rule of thumb that was developed to provide a ~safe SPF record
> >size in the absence of other TXT records.  The propose language uses the
> >term "DNS message" both for the UDP packet size and for the part of that
> >packet that can be used for an SPF record.
> >
> >I strongly object to dropping the 450 recommendation based on no data that
> >says it's bad (it is in RFC 4408 and no case to remove it has been
> >recommended).
> >
> >All the rambling about IPv6, EDNS0, etc is irrelevant.  The point is to
> >keep the record small enough to make it reliable.
> >
> >Even if there was a point in the the change, the language is definitely a
> >regression from what was there before because it uses the same term for two
> >different things.
> 
> There is a message of Joe Abley at
> http://www.ietf.org/mail-archive/web/ietf/current/msg81862.html  Joe
> was correct in saying that my usage of "UDP message" is incorrect.
> 
> I did not suggest dropping the "450 recommendation".  The text
> suggested by Douglas Otis was for the second paragraph of Section
> 3.4.  This is not related to IPv6 or EDNS0.
> 
> The language that was there before is incorrect (see message from Joe
> Abley).
> 
> Could you please propose text to address the terminology issue in Section
> 3.4?

OK.

OLD:

3.4.  Record Size

   The published SPF record for a given domain name SHOULD remain small
   enough that the results of a query for it will fit within 512 octets.
   This UDP limit is defined in [RFC1035] section 2.3.4, although it was
   raised by [RFC2671].  Staying below 512 octets ought to prevent older
   DNS implementations from failing over to TCP,and will work with UDP
   in the absence of EDNS0 [RFC6891] support.  Since the answer size is
   dependent on many things outside the scope of this document, it is
   only possible to give this guideline: If the size of the DNS message,
   the combined length of the DNS name and the text of all the records
   of a given type is under 450 octets, then DNS answers ought to fit in
   UDP packets.  Records that are too long to fit in a single UDP packet
   could be silently ignored by SPF verifiers due to firewall and other
   issues that interfere with the operation of DNS over TCP or using
   ENDS0.

   Note that when computing the sizes for replies to queries of the TXT
   format, one has to take into account any other TXT records published
   at the domain name.  Similarly, the sizes for replies to all queries
   related to SPF have to be evaluated to fit in a single 512 octet UDP
   packet (i.e.  DNS message size limited to 450 octects).

NEW:

3.4.  Record Size

   The published SPF record for a given domain name SHOULD remain small
   enough that the results of a query for it will fit within 512 octets.
   This will keep even older DNS implementations from falling over to
   TCP.  Since the answer size is dependent on many things outside the
   scope of this document, it is only possible to give this guideline:
   If the combined length of the DNS name and the text of all the
   TXT records is under 450 characters, then DNS answers should fit in UDP
   packets.

   Note that when computing the sizes for queries of the TXT format, one must
   take into account any other TXT records published at the domain name. 
   Records that are too long to fit in a single UDP packet MAY be silently
   ignored by SPF clients.

Note: The proposed "NEW" text is largely a reversion to what was in RFC 4408.  
I think it's shorter, clearer, and resolves the question at hand.

Scott K

From sm@elandsys.com  Sat Sep 14 00:19:19 2013
Return-Path: <sm@elandsys.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 6CE9B21F9F31 for <spfbis@ietfa.amsl.com>; Sat, 14 Sep 2013 00:19:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.282
X-Spam-Level: 
X-Spam-Status: No, score=-102.282 tagged_above=-999 required=5 tests=[AWL=-0.283, BAYES_00=-2.599, J_CHICKENPOX_33=0.6, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QPGDZfhQdxqN for <spfbis@ietfa.amsl.com>; Sat, 14 Sep 2013 00:19:18 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id AC7D521F9F2D for <spfbis@ietf.org>; Sat, 14 Sep 2013 00:19:17 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.152.219]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8E7J0PE010179 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 14 Sep 2013 00:19:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379143155; bh=nAVeNuxoZCqF4fzaH1Y72tSBSogVppFNKHmcASIPA0Y=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=E9M8LB3r1C8uXDqPlbtMGmED0uMFWW5bOmxGZwlfrywGAiN8WTCeGK/7H2uE29T4E e2wZfEDbycJleWo5bPUQZ10wzS7YEloykUi1w7TDwQpZ9CEe9YzpKJK4x+Ui8JvN77 qY0sy7Oc0HY0xYU2R4QV2Yb2F+ncAPcXeeztXWCE=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379143155; i=@elandsys.com; bh=nAVeNuxoZCqF4fzaH1Y72tSBSogVppFNKHmcASIPA0Y=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=aI+UkYG9jD8Fpqfxxuzjy25Nwnll7+ROE33vLD0OTgu6j3ZlSql+VyIMizrjzhA1W ct8fJXf60/dh8EYyYQtsdkMWMC86Uy2pzOHS+amgJOTcGXV0EapxaeoVOx+8m3Syz/ l7oXmNdUk00QLLPWwVhJLFN3NE8/RdcC6HPb1Urw=
Message-Id: <6.2.5.6.2.20130913234837.0beb6178@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Sat, 14 Sep 2013 00:18:42 -0700
To: Scott Kitterman <spf2@kitterman.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <2137735.9LNiMWPY5V@scott-latitude-e6320>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <38312086.HKzMeyOO04@scott-latitude-e6320> <6.2.5.6.2.20130913224030.0cacb170@resistor.net> <2137735.9LNiMWPY5V@scott-latitude-e6320>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review (response   size)
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: Sat, 14 Sep 2013 07:19:19 -0000

Hi Scott,
At 23:20 13-09-2013, Scott Kitterman wrote:
>OLD:
>
>3.4.  Record Size
>
>    The published SPF record for a given domain name SHOULD remain small
>    enough that the results of a query for it will fit within 512 octets.
>    This UDP limit is defined in [RFC1035] section 2.3.4, although it was
>    raised by [RFC2671].  Staying below 512 octets ought to prevent older
>    DNS implementations from failing over to TCP,and will work with UDP
>    in the absence of EDNS0 [RFC6891] support.  Since the answer size is
>    dependent on many things outside the scope of this document, it is
>    only possible to give this guideline: If the size of the DNS message,
>    the combined length of the DNS name and the text of all the records
>    of a given type is under 450 octets, then DNS answers ought to fit in
>    UDP packets.  Records that are too long to fit in a single UDP packet
>    could be silently ignored by SPF verifiers due to firewall and other
>    issues that interfere with the operation of DNS over TCP or using
>    ENDS0.
>
>    Note that when computing the sizes for replies to queries of the TXT
>    format, one has to take into account any other TXT records published
>    at the domain name.  Similarly, the sizes for replies to all queries
>    related to SPF have to be evaluated to fit in a single 512 octet UDP
>    packet (i.e.  DNS message size limited to 450 octects).
>
>NEW:
>
>3.4.  Record Size
>
>    The published SPF record for a given domain name SHOULD remain small
>    enough that the results of a query for it will fit within 512 octets.
>    This will keep even older DNS implementations from falling over to
>    TCP.  Since the answer size is dependent on many things outside the
>    scope of this document, it is only possible to give this guideline:
>    If the combined length of the DNS name and the text of all the
>    TXT records is under 450 characters, then DNS answers should fit in UDP
>    packets.
>
>    Note that when computing the sizes for queries of the TXT format, one must
>    take into account any other TXT records published at the domain name.
>    Records that are too long to fit in a single UDP packet MAY be silently
>    ignored by SPF clients.
>
>Note: The proposed "NEW" text is largely a reversion to what was in 
>RFC 4408.
>I think it's shorter, clearer, and resolves the question at hand.

My recollection of the working group discussion about the RFC 4408 
text is that the usage of "characters" in the text is 
incorrect.  There was also a discussion (if I recall correctly) about 
RFC 2119 key words which led to the "MAY" being dropped.  The 
discussion which led to EDNS0 being included is related to issue #24.

The reversion might be a substantive change.  I would prefer to avoid 
that as it can raise process questions.  The issue is about the 
incorrect usage of technical terms.  I suggest addressing that 
instead of having a substantive change.  What I have taken into 
consideration is not to revisit issues which have been resolved and 
not to open the way for new issues at this stage when it is likely 
that the work is nearly complete.

Regards,
S. Moonesamy (as document shepherd) 


From sm@elandsys.com  Sat Sep 14 13:27:38 2013
Return-Path: <sm@elandsys.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 5ADAC21E80E8 for <spfbis@ietfa.amsl.com>; Sat, 14 Sep 2013 13:27:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.573
X-Spam-Level: 
X-Spam-Status: No, score=-102.573 tagged_above=-999 required=5 tests=[AWL=0.026, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1jyue4zUTXgf for <spfbis@ietfa.amsl.com>; Sat, 14 Sep 2013 13:27:37 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id AFA5621E80C8 for <spfbis@ietf.org>; Sat, 14 Sep 2013 13:27:36 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.134.26]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8EKRNsP007279 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 14 Sep 2013 13:27:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379190455; bh=NoMdvwDZwsWMuba7kI+3Un0G0imI7yhrQlEi9jWH6hg=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=A89c+zMOavBN9CliChG4QYaQ3VSsnR5lrns8JFSckbwhSkgeycuedn8jbhpS4B/du nv6Qmq65RDbWnCiQamwJ3jVb20PtIMssDEgBjll5Fj5IMJwtLk7zG6Vz1dkT4eJ6Nk yRoqQUgIYcThgq6/SPru8fI3WdiuFrTcMPufGW1Q=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379190455; i=@elandsys.com; bh=NoMdvwDZwsWMuba7kI+3Un0G0imI7yhrQlEi9jWH6hg=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=Fnxqgezn2PNhgkgeoDTnVMb/q8eUeMFXiX/B0BfHSN2kdTLT5oziHh/8K9iPB3ccu RLMlDNIp5FtXS8rIlDeY1Qi+IRsTma13KTAwaTffsppism1yxsxlhVXupEFFGgw4FD 2bvILPI3m2hI5iQlrLmDijye05XSWbUufDO9v4K0=
Message-Id: <6.2.5.6.2.20130914130938.0b9416f8@resistor.net>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Sat, 14 Sep 2013 13:20:53 -0700
To: R.E.Sonneveld@sonnection.nl
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <523179E7.6090207@sonnection.nl>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <5230A523.20504@isdg.net> <6.2.5.6.2.20130911134838.0c217ca8@resistor.net> <2297109.DlIYn73fZN@scott-latitude-e6320> <523179E7.6090207@sonnection.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Sat, 14 Sep 2013 20:27:38 -0000

Hi Rolf,
At 01:23 12-09-2013, Rolf E. Sonneveld wrote:
>To avoid confusion it's better not to mention a whole list of 
>possible names/aliases in this Definition paragraph.
>
>May I suggest the following text:

Thanks for suggesting text.  I'll comment below.

>1.1.3.  MAIL FROM Definition
>
>    This document is concerned with the identity of the sender of a
>    mail message, as referred to in [RFC5321]:
>
>        "The transaction starts with a MAIL command that gives the
>        sender identification."
>
>.  Since there are many other names for this identity, it is
>    important to choose a name that is:
>
>    1. commonly used
>    2. well defined
>
>    As such, throughout this document the term "MAIL FROM" will be used,
>    which is defined as the RFC5321.MailFrom identity described in [RFC5598].

The issue raised in the SecDir review [1] is "the referenced specs do 
not give an explicit definition for the term as used and the 
references point to the whole spec rather than a particular 
section".  The suggested text (see above) does not address that in my 
opinion.  The question being asked is what is the definition for 
"MAIL FROM".  The first sentence in your comment explains what can 
cause confusion.

Regards,
S. Moonesamy (as document shepherd)

1. http://www.ietf.org/mail-archive/web/spfbis/current/msg04110.html 


From sm@elandsys.com  Sat Sep 14 13:27:42 2013
Return-Path: <sm@elandsys.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 2A0AA21E8116 for <spfbis@ietfa.amsl.com>; Sat, 14 Sep 2013 13:27:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.574
X-Spam-Level: 
X-Spam-Status: No, score=-102.574 tagged_above=-999 required=5 tests=[AWL=0.025, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id n4bqBqjFxYf8 for <spfbis@ietfa.amsl.com>; Sat, 14 Sep 2013 13:27:41 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id BB1BD21E80F1 for <spfbis@ietf.org>; Sat, 14 Sep 2013 13:27:41 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.134.26]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8EKRNsR007279 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 14 Sep 2013 13:27:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379190460; bh=KZ8jmSGGo+sjqi/Vf5/AgN5lyKJzTh5kVBuwafMyGMk=; h=Date:To:From:Subject:Cc; b=1mxEmNxQDQXHkLCoQala8AjQZbjkmHevF7TyqxHMUvowaGfEnFFU47nDohLJl1cTY d/D4Uyr/NC+WB8oev1LvXGevLbOoAqufAtG/647eN4IZFRRqdu4kHLIhnFgrXdR81z Y66l7iMxdkrRD+FpDTVUJTyVS85+VO7YZyz0g8jQ=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379190460; i=@elandsys.com; bh=KZ8jmSGGo+sjqi/Vf5/AgN5lyKJzTh5kVBuwafMyGMk=; h=Date:To:From:Subject:Cc; b=MnTCLlm3ZxkBU2AmG39Mb7CwtsgHK0WfvtyZmKwUup6BQNnRNz4szAZEWZl1w1WEy Rrsuay9tDBRKHOsy4wkPih6JOZVcYCCdMRsDth0DblSu7rQNDjAebRfsSK6rK+JIiP sojGey+jkC3w9qutjDD8NMf6uCzoHKGHoiQzz2NI=
Message-Id: <6.2.5.6.2.20130914132134.0de8f490@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Sat, 14 Sep 2013 13:26:11 -0700
To: Scott Kitterman <spf2@kitterman.com>
From: S Moonesamy <sm+ietf@elandsys.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>
Subject: [spfbis] Addressing IESG comments
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: Sat, 14 Sep 2013 20:27:42 -0000

Hi Scott,

There were several comments from the IESG Evaluation:

Sean Turner commented in Section 11.3 (see 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04159.html 
).  Are you okay with the change?

There wasn't any response to the comment from Stephen Farrell (see 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04158.html 
).  Could you please provide a reply?

I'll discuss the comment from Benoit Claise with Pete Resnick.

Thanks,
S. Moonesamy (as document shepherd)




From spf2@kitterman.com  Sat Sep 14 14:04:48 2013
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 3940A21E80FA for <spfbis@ietfa.amsl.com>; Sat, 14 Sep 2013 14:04:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.352
X-Spam-Level: 
X-Spam-Status: No, score=-2.352 tagged_above=-999 required=5 tests=[AWL=0.247,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sHMWzZlPGHFo for <spfbis@ietfa.amsl.com>; Sat, 14 Sep 2013 14:04:43 -0700 (PDT)
Received: from mailout03.controlledmail.com (mailout03.controlledmail.com [208.43.65.50]) by ietfa.amsl.com (Postfix) with ESMTP id C092121E81C5 for <spfbis@ietf.org>; Sat, 14 Sep 2013 14:04:43 -0700 (PDT)
Received: from mailout03.controlledmail.com (localhost [127.0.0.1]) by mailout03.controlledmail.com (Postfix) with ESMTP id ECC7BD04089; Sat, 14 Sep 2013 17:04:42 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1379192683; bh=U2oLaS803kjzVSRFEh/jbjyZ3CJIvyzCyhplGrNOCfw=; h=In-Reply-To:References:Subject:From:Date:To:CC:From; b=NtQgQEha980NdGth/+7fKnprsSl1M43rQG0Co2yq57CbcTZr+gPJjNh8f2pt9HODA zzb3Drc4q9NmDXhG/0TZMUqmmjNURhUImBOg6HAT94jROcTrsUlIOHbjOQ/QLZxCX1 yeygOwLgXyp8UQEYbXH4l1zM0Alidf1D19jEhgIM=
Received: from [192.168.111.3] (static-72-81-252-22.bltmmd.fios.verizon.net [72.81.252.22]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mailout03.controlledmail.com (Postfix) with ESMTPSA id 9032CD0401E;  Sat, 14 Sep 2013 17:04:42 -0400 (EDT)
User-Agent: K-9 Mail for Android
In-Reply-To: <6.2.5.6.2.20130914132134.0de8f490@elandnews.com>
References: <6.2.5.6.2.20130914132134.0de8f490@elandnews.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Scott Kitterman <spf2@kitterman.com>
Date: Sat, 14 Sep 2013 17:05:05 -0400
To: S Moonesamy <sm+ietf@elandsys.com>
Message-ID: <b1f4f3c1-380d-4768-99aa-64ff5486cdc9@email.android.com>
X-AV-Checked: ClamAV using ClamSMTP
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>
Subject: Re: [spfbis] Addressing IESG comments
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: Sat, 14 Sep 2013 21:04:48 -0000

S Moonesamy <sm+ietf@elandsys.com> wrote:
>Hi Scott,
>
>There were several comments from the IESG Evaluation:
>
>Sean Turner commented in Section 11.3 (see 
>http://www.ietf.org/mail-archive/web/spfbis/current/msg04159.html 
>).  Are you okay with the change?
>
>There wasn't any response to the comment from Stephen Farrell (see 
>http://www.ietf.org/mail-archive/web/spfbis/current/msg04158.html 
>).  Could you please provide a reply?
>
>I'll discuss the comment from Benoit Claise with Pete Resnick.

There are several sets of comments to review. I've had almost no time for this since I pushed out -20.  I'll review them all by Monday at the latest. 

Scott K

From R.E.Sonneveld@sonnection.nl  Sat Sep 14 15:05:05 2013
Return-Path: <R.E.Sonneveld@sonnection.nl>
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 393F311E810F for <spfbis@ietfa.amsl.com>; Sat, 14 Sep 2013 15:05:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.598
X-Spam-Level: 
X-Spam-Status: No, score=-3.598 tagged_above=-999 required=5 tests=[AWL=-0.000, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NtUUrZXZeUTZ for <spfbis@ietfa.amsl.com>; Sat, 14 Sep 2013 15:04:59 -0700 (PDT)
Received: from mx20.mailtransaction.com (mx20.mailtransaction.com [78.46.16.213]) by ietfa.amsl.com (Postfix) with ESMTP id 7251321E804C for <spfbis@ietf.org>; Sat, 14 Sep 2013 15:04:57 -0700 (PDT)
Received: from mx24.mailtransaction.com (mx21.mailtransaction.com [78.46.16.236]) by mx20.mailtransaction.com (Postfix) with ESMTP id 3ccnnc64Knz1L8fb; Sun, 15 Sep 2013 00:04:52 +0200 (CEST)
Received: from jaguar.sonnection.nl (D57E1702.static.ziggozakelijk.nl [213.126.23.2]) by mx24.mailtransaction.com (Postfix) with ESMTP id 3ccnnc4Zxvz1L8fV; Sun, 15 Sep 2013 00:04:52 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by jaguar.sonnection.nl (Postfix) with ESMTP id 8CDE812315A; Sun, 15 Sep 2013 00:04:50 +0200 (CEST)
X-Virus-Scanned: amavisd-new at sonnection.nl
Received: from jaguar.sonnection.nl ([127.0.0.1]) by localhost (jaguar.sonnection.nl [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Mms8Zy05IMzn; Sun, 15 Sep 2013 00:04:42 +0200 (CEST)
Received: from [192.168.1.49] (unknown [192.168.1.49]) by jaguar.sonnection.nl (Postfix) with ESMTPSA id 0B8401230A0; Sun, 15 Sep 2013 00:04:42 +0200 (CEST)
Message-ID: <5234DD79.4010407@sonnection.nl>
Date: Sun, 15 Sep 2013 00:04:41 +0200
From: "Rolf E. Sonneveld" <R.E.Sonneveld@sonnection.nl>
Organization: Sonnection B.V.
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130804 Thunderbird/17.0.8
MIME-Version: 1.0
To: S Moonesamy <sm+ietf@elandsys.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <5230A523.20504@isdg.net> <6.2.5.6.2.20130911134838.0c217ca8@resistor.net> <2297109.DlIYn73fZN@scott-latitude-e6320> <523179E7.6090207@sonnection.nl> <6.2.5.6.2.20130914130938.0b9416f8@resistor.net>
In-Reply-To: <6.2.5.6.2.20130914130938.0b9416f8@resistor.net>
Content-Type: multipart/alternative; boundary="------------040601060400000809080905"
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=sonnection.nl; s=2009; t=1379196292; bh=M1+7ZKZTyObvium7OIsa/Egj/XoXF70fztKIzGyDpZo=; h=Message-ID:Date:From:To:Subject:From; b=O89sB7io3hSrZ3IOqVye3B8BaFh1cceRnhAllP4NW38YTtpB83iCbkPgLLgHGApjd dxjFhwNtjyisEM91Tx/RQJ/0QlX9XhrDAtU3rj8yp8NXkxZrsSvKvhqDRuhXuZ5YdD DYgsl1JtqdNBpEp29KnwmFIYzKx1HucYXlKAyqgQ=
DKIM-Filter: OpenDKIM Filter v2.8.2 mx20.mailtransaction.com 3ccnnc64Knz1L8fb
Cc: spfbis@ietf.org
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
X-BeenThere: spfbis@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: R.E.Sonneveld@sonnection.nl
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: Sat, 14 Sep 2013 22:05:06 -0000

This is a multi-part message in MIME format.
--------------040601060400000809080905
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi, SM,

On 09/14/2013 10:20 PM, S Moonesamy wrote:
> Hi Rolf,
> At 01:23 12-09-2013, Rolf E. Sonneveld wrote:
>> To avoid confusion it's better not to mention a whole list of 
>> possible names/aliases in this Definition paragraph.
>>
>> May I suggest the following text:
>
> Thanks for suggesting text.  I'll comment below.
>
>> 1.1.3.  MAIL FROM Definition
>>
>>    This document is concerned with the identity of the sender of a
>>    mail message, as referred to in [RFC5321]:
>>
>>        "The transaction starts with a MAIL command that gives the
>>        sender identification."
>>
>> .  Since there are many other names for this identity, it is
>>    important to choose a name that is:
>>
>>    1. commonly used
>>    2. well defined
>>
>>    As such, throughout this document the term "MAIL FROM" will be used,
>>    which is defined as the RFC5321.MailFrom identity described in 
>> [RFC5598].
>
> The issue raised in the SecDir review [1] is "the referenced specs do 
> not give an explicit definition for the term as used and the 
> references point to the whole spec rather than a particular section".  
> The suggested text (see above) does not address that in my opinion.  
> The question being asked is what is the definition for "MAIL FROM".  
> The first sentence in your comment explains what can cause confusion.

I intentionally did not refer to a specific paragraph within the 
referenced specs, as new versions of those referenced specs might 
invalidate the references in this spfbis document. Granted, chances that 
RFC5321 and/or RFC5598 will become obsoleted by newer versions are 
small, so here's an attempt to address part of the raised issue:

1.1.3.  MAIL FROM Definition

    This document is concerned with the identity of the sender of a
    mail message, as referred to in par. 3.3 of [RFC5321]:

        "The transaction starts with a MAIL command that gives the
        sender identification."

.  Since there are many other names for this identity, it is
    important to choose a name that is:

    1. commonly used
    2. well defined

    As such, throughout this document the term "MAIL FROM" will be used,
    which is defined as the RFC5321.MailFrom identity, described in par. 
4.1.4 of [RFC5598].

I'm not sure I agree with the SecDir review re. "the referenced specs do 
not give an explicit definition for the term as used [...]', as RFC5598 
par. 4.1.4 describes the RFC5321.MailFrom identity quite well:

    RFC5321  <http://tools.ietf.org/html/rfc5321>.MailFrom:  Set by - Originator

       This field is an end-to-end string that specifies an email address
       for receiving return control information, such as returned
       messages. [...]


Regards,
/rolf

--------------040601060400000809080905
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hi, SM,<br>
      <br>
      On 09/14/2013 10:20 PM, S Moonesamy wrote:<br>
    </div>
    <blockquote
      cite="mid:6.2.5.6.2.20130914130938.0b9416f8@resistor.net"
      type="cite">Hi Rolf,
      <br>
      At 01:23 12-09-2013, Rolf E. Sonneveld wrote:
      <br>
      <blockquote type="cite">To avoid confusion it's better not to
        mention a whole list of possible names/aliases in this
        Definition paragraph.
        <br>
        <br>
        May I suggest the following text:
        <br>
      </blockquote>
      <br>
      Thanks for suggesting text.&nbsp; I'll comment below.
      <br>
      <br>
      <blockquote type="cite">1.1.3.&nbsp; MAIL FROM Definition
        <br>
        <br>
        &nbsp;&nbsp; This document is concerned with the identity of the sender of
        a
        <br>
        &nbsp;&nbsp; mail message, as referred to in [RFC5321]:
        <br>
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "The transaction starts with a MAIL command that gives
        the
        <br>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sender identification."
        <br>
        <br>
        .&nbsp; Since there are many other names for this identity, it is
        <br>
        &nbsp;&nbsp; important to choose a name that is:
        <br>
        <br>
        &nbsp;&nbsp; 1. commonly used
        <br>
        &nbsp;&nbsp; 2. well defined
        <br>
        <br>
        &nbsp;&nbsp; As such, throughout this document the term "MAIL FROM" will
        be used,
        <br>
        &nbsp;&nbsp; which is defined as the RFC5321.MailFrom identity described
        in [RFC5598].
        <br>
      </blockquote>
      <br>
      The issue raised in the SecDir review [1] is "the referenced specs
      do not give an explicit definition for the term as used and the
      references point to the whole spec rather than a particular
      section".&nbsp; The suggested text (see above) does not address that in
      my opinion.&nbsp; The question being asked is what is the definition
      for "MAIL FROM".&nbsp; The first sentence in your comment explains what
      can cause confusion.
      <br>
    </blockquote>
    <br>
    I intentionally did not refer to a specific paragraph within the
    referenced specs, as new versions of those referenced specs might
    invalidate the references in this spfbis document. Granted, chances
    that RFC5321 and/or RFC5598 will become obsoleted by newer versions
    are small, so here's an attempt to address part of the raised issue:<br>
    <br>
    1.1.3.&nbsp; MAIL FROM Definition
    <br>
    <br>
    &nbsp;&nbsp; This document is concerned with the identity of the sender of a
    <br>
    &nbsp;&nbsp; mail message, as referred to in par. 3.3 of [RFC5321]:
    <br>
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "The transaction starts with a MAIL command that gives the
    <br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sender identification."
    <br>
    <br>
    .&nbsp; Since there are many other names for this identity, it is
    <br>
    &nbsp;&nbsp; important to choose a name that is:
    <br>
    <br>
    &nbsp;&nbsp; 1. commonly used
    <br>
    &nbsp;&nbsp; 2. well defined
    <br>
    <br>
    &nbsp;&nbsp; As such, throughout this document the term "MAIL FROM" will be
    used,
    <br>
    &nbsp;&nbsp; which is defined as the RFC5321.MailFrom identity, described in
    par. 4.1.4 of [RFC5598].
    <br>
    <br>
    I'm not sure I agree with the SecDir review re. "the referenced
    specs do not give an explicit definition for the term as used
    [...]', as RFC5598 par. 4.1.4 describes the RFC5321.MailFrom
    identity quite well:<br>
    <br>
    <pre class="newpage">   <a href="http://tools.ietf.org/html/rfc5321">RFC5321</a>.MailFrom:  Set by - Originator

      This field is an end-to-end string that specifies an email address
      for receiving return control information, such as returned
      messages. [...]  </pre>
    <br>
    Regards,<br>
    /rolf<br>
  </body>
</html>

--------------040601060400000809080905--

From sm@elandsys.com  Sat Sep 14 23:37:36 2013
Return-Path: <sm@elandsys.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 AB7CD21F9E76 for <spfbis@ietfa.amsl.com>; Sat, 14 Sep 2013 23:37:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.555
X-Spam-Level: 
X-Spam-Status: No, score=-102.555 tagged_above=-999 required=5 tests=[AWL=0.044, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0cwdkBPsfHPE for <spfbis@ietfa.amsl.com>; Sat, 14 Sep 2013 23:37:35 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 0C14B21E80A3 for <spfbis@ietf.org>; Sat, 14 Sep 2013 23:37:30 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.134.26]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8F6b8OA001278 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 14 Sep 2013 23:37:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379227042; bh=NnVLuOufjUbN3qJuCB3VNAZA9XjNGCSxxnePI+/A00o=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=nyYZ/oD/t0O0X/VT+JVCnAI5NuYku7ry40BZHac2h01s4kdQUDFNwzVD4zNe11/Ol 1MXrxjJbZeEiqQAoWBFBI2UyOmClXv5S0HvztRjMJNgXB2VnUbCz7l6KYdTQnJJG8V iJ4JUsfu88CJoQFTCHg28l6lKgSmd5S7C2TKVCKo=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379227042; i=@elandsys.com; bh=NnVLuOufjUbN3qJuCB3VNAZA9XjNGCSxxnePI+/A00o=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=xi4jpbHjGfmJvzI4hioIIPhUzgEwp/vonxKCsDAVKoMfDTZsXX9jRAb9+vYcReoVR L6Acp1aKwaVON/0GXSj2vQwH8tWUBfHKQTs3EzP/b2M49q9mUxN/R/JO4hcOk/JPLU hjVA3s1IGPONnQU6/e+qz0mU8Klwnuhl6dwcgVso=
Message-Id: <6.2.5.6.2.20130914224708.0c8d4af0@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Sat, 14 Sep 2013 23:21:35 -0700
To: R.E.Sonneveld@sonnection.nl
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <5234DD79.4010407@sonnection.nl>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <5230A523.20504@isdg.net> <6.2.5.6.2.20130911134838.0c217ca8@resistor.net> <2297109.DlIYn73fZN@scott-latitude-e6320> <523179E7.6090207@sonnection.nl> <6.2.5.6.2.20130914130938.0b9416f8@resistor.net> <5234DD79.4010407@sonnection.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Sun, 15 Sep 2013 06:37:36 -0000

Hi Rolf,
At 15:04 14-09-2013, Rolf E. Sonneveld wrote:
>I intentionally did not refer to a specific paragraph within the 
>referenced specs, as new versions of those referenced specs might 
>invalidate the references in this spfbis document. Granted, chances 
>that RFC5321 and/or RFC5598 will become obsoleted by newer versions 
>are small, so here's an attempt to address part of the raised issue:

Ok.

>1.1.3.  MAIL FROM Definition
>
>    This document is concerned with the identity of the sender of a
>    mail message, as referred to in par. 3.3 of [RFC5321]:
>
>        "The transaction starts with a MAIL command that gives the
>        sender identification."
>
>.  Since there are many other names for this identity, it is
>    important to choose a name that is:
>
>    1. commonly used
>    2. well defined
>
>    As such, throughout this document the term "MAIL FROM" will be used,
>    which is defined as the RFC5321.MailFrom identity, described in 
> par. 4.1.4 of [RFC5598].
>
>I'm not sure I agree with the SecDir review re. "the referenced 
>specs do not give an explicit definition for the term as used 
>[...]', as RFC5598 par. 4.1.4 describes the RFC5321.MailFrom 
>identity quite well:
>
>
>    RFC5321.MailFrom:  Set by - Originator
>
>       This field is an end-to-end string that specifies an email address
>       for receiving return control information, such as returned
>       messages. [...]

I'll adapt your proposed text as follows:

1.1.3.  MAIL FROM Definition

    This document uses "MAIL FROM" to refer to RFC5321.MailFrom (reverse-path).
    The RFC5321.MailFrom is defined in Section 4.4 of RFC 5598 as an end-to-end
    string that specifies an email address for receiving return control
    information, such as returned messages.

I inserted the word "reverse-path" because of Section 2.4.

If you are okay with the above I'll use it to respond to the SecDir review.

Regards,
S. Moonesamy  


From ajs@anvilwalrusden.com  Sun Sep 15 14:36:02 2013
Return-Path: <ajs@anvilwalrusden.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 C16F111E81FD for <spfbis@ietfa.amsl.com>; Sun, 15 Sep 2013 14:36:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.84
X-Spam-Level: 
X-Spam-Status: No, score=-0.84 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_MISMATCH_INFO=1.448, HOST_MISMATCH_NET=0.311]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aGdtBE556o0G for <spfbis@ietfa.amsl.com>; Sun, 15 Sep 2013 14:35:57 -0700 (PDT)
Received: from mx1.yitter.info (ow5p.x.rootbsd.net [208.79.81.114]) by ietfa.amsl.com (Postfix) with ESMTP id F313E11E81F8 for <spfbis@ietf.org>; Sun, 15 Sep 2013 14:35:56 -0700 (PDT)
Received: from mx1.yitter.info (d-173-44-101-71.cpe.metrocast.net [173.44.101.71]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.yitter.info (Postfix) with ESMTPSA id 5E9498A031 for <spfbis@ietf.org>; Sun, 15 Sep 2013 21:35:55 +0000 (UTC)
Date: Sun, 15 Sep 2013 17:36:04 -0400
From: Andrew Sullivan <ajs@anvilwalrusden.com>
To: spfbis@ietf.org
Message-ID: <20130915213604.GB78902@mx1.yitter.info>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <6.2.5.6.2.20130913152347.0c874cb8@elandnews.com> <BA4D9B3E-F9A6-46AF-BBA7-D6AD463020CA@gmail.com> <20130914001204.GB78680@mx1.yitter.info> <72C262F1-0715-499D-948F-989A9A007824@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <72C262F1-0715-499D-948F-989A9A007824@gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review (response size)
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: Sun, 15 Sep 2013 21:36:02 -0000

No hat.

On Fri, Sep 13, 2013 at 05:34:41PM -0700, Douglas Otis wrote:
> 
> I did not recommend this value, but I did say it sounded like reasonable advice. 

There is exactly one historic built-in limit to the DNS for UDP
packets, and that is 512 octets.  Lots of middleboxes drop UDP packets
on port 53 larger than 512 octets.  Many equipment manufacturers have
shipped equipment that, by default, drops packets over 512 octets on
port 53.  The 512 octets does not apply to TCP.  If it did, zone
transfers would be impossible.

Everything else -- all the noise about MTUs and so on -- is rank
speculation.  There's _all kinds_ of breakage out there with large MTU
sizes.  Heck, some of the CGNs appear to end up with real MTUs across
the network way below any threshold we're discussing.  But this
document should not be a general purpose document about all the
possible ways this protocol could interact with everything else
everywhere on the Internet.  This is a protocol document.

As I have said several times, if someone wants to write an operational
guidance document, I have no objection.  But the protocol document
shouldn't be providing that, at least in detail.  It is arguably
already too heavy in that direction.

Best regards,

A

-- 
Andrew Sullivan
ajs@anvilwalrusden.com

From ajs@anvilwalrusden.com  Sun Sep 15 14:38:40 2013
Return-Path: <ajs@anvilwalrusden.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 7F59D21F9EE9 for <spfbis@ietfa.amsl.com>; Sun, 15 Sep 2013 14:38:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.84
X-Spam-Level: 
X-Spam-Status: No, score=-0.84 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_MISMATCH_INFO=1.448, HOST_MISMATCH_NET=0.311]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZGB06YlirhGP for <spfbis@ietfa.amsl.com>; Sun, 15 Sep 2013 14:38:34 -0700 (PDT)
Received: from mx1.yitter.info (ow5p.x.rootbsd.net [208.79.81.114]) by ietfa.amsl.com (Postfix) with ESMTP id ADA1211E81F9 for <spfbis@ietf.org>; Sun, 15 Sep 2013 14:38:31 -0700 (PDT)
Received: from mx1.yitter.info (d-173-44-101-71.cpe.metrocast.net [173.44.101.71]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.yitter.info (Postfix) with ESMTPSA id 425C78A031; Sun, 15 Sep 2013 21:38:11 +0000 (UTC)
Date: Sun, 15 Sep 2013 17:38:20 -0400
From: Andrew Sullivan <ajs@anvilwalrusden.com>
To: Scott Kitterman <spf2@kitterman.com>
Message-ID: <20130915213820.GC78902@mx1.yitter.info>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <38312086.HKzMeyOO04@scott-latitude-e6320> <6.2.5.6.2.20130913224030.0cacb170@resistor.net> <2137735.9LNiMWPY5V@scott-latitude-e6320>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <2137735.9LNiMWPY5V@scott-latitude-e6320>
User-Agent: Mutt/1.5.21 (2010-09-15)
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>, S Moonesamy <sm+ietf@elandsys.com>, Joe Abley <jabley@hopcount.ca>
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review (response  size)
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: Sun, 15 Sep 2013 21:38:40 -0000

On Sat, Sep 14, 2013 at 02:20:39AM -0400, Scott Kitterman wrote:
> 
> NEW:

>    TXT records is under 450 characters, then DNS answers should fit in UDP

s/characters/octets, or even "ASCII characters" if you must.
"Characters" in the UTF-8 era is just too loaded a word.

Otherwise, no objection here.

A

-- 
Andrew Sullivan
ajs@anvilwalrusden.com

From ajs@anvilwalrusden.com  Mon Sep 16 07:41:34 2013
Return-Path: <ajs@anvilwalrusden.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 CF30C21F9983 for <spfbis@ietfa.amsl.com>; Mon, 16 Sep 2013 07:41:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.84
X-Spam-Level: 
X-Spam-Status: No, score=-0.84 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_MISMATCH_INFO=1.448, HOST_MISMATCH_NET=0.311]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GPTIej4+V1r7 for <spfbis@ietfa.amsl.com>; Mon, 16 Sep 2013 07:41:29 -0700 (PDT)
Received: from mx1.yitter.info (ow5p.x.rootbsd.net [208.79.81.114]) by ietfa.amsl.com (Postfix) with ESMTP id F2B7021F9A5F for <spfbis@ietf.org>; Mon, 16 Sep 2013 07:41:24 -0700 (PDT)
Received: from mx1.yitter.info (nat-01-mht.dyndns.com [216.146.45.240]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.yitter.info (Postfix) with ESMTPSA id 0704E8A031 for <spfbis@ietf.org>; Mon, 16 Sep 2013 14:41:24 +0000 (UTC)
Date: Mon, 16 Sep 2013 10:41:35 -0400
From: Andrew Sullivan <ajs@anvilwalrusden.com>
To: spfbis@ietf.org
Message-ID: <20130916144135.GC79031@mx1.yitter.info>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com> <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com> <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com> <20130914003652.GF78680@mx1.yitter.info> <BD926F72-A6C3-4F0B-BBFB-A18668C9E4AF@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <BD926F72-A6C3-4F0B-BBFB-A18668C9E4AF@gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Mon, 16 Sep 2013 14:41:34 -0000

I've trimmed the ccs.  This is clearly right back to fodder for the
spfbis list.  If I have a hat on below, I'll note it.

On Fri, Sep 13, 2013 at 08:56:55PM -0700, Douglas Otis wrote: 

> In my defense, may I ask whether the draft
> http://tools.ietf.org/html/draft-otis-spfbis-macros-nixed-01 been
> reviewed?

By me?  Yes.  Widely?  Apparently not.
 
> It contains a reference to a survey by the SPF website
> http://spf-all.com/stats.html which indicates of all domains
> publishing SPF records 99.947% contain no macros.  It seems a
> reasonable person would wonder why.

Yes, and it is entirely reasonable that anyone might.  But it doesn't
matter, because there's half a percent that _do_ have macros, and SM
and I (as chairs) already determined earlier in the WG's life that
"unused" meant "not used at all".  Therefore, macros cannot be
deprecated by the WG.  That's a consequence of our charter.
  
> I hope you can imagine what this might mean from the perspective of
> network amplifications 

I am somewhat conversant with network amplifications via DNS.  It is
interesting to me that, despite the attractive nuisance that DNS
provides in terms of amplifications, for reasons totally mysterious to
me I have never once, in any log I have reviewed, seen evidence of an
SPF-based attack of the sort you keep talking about.  That is not to
say that your observations are wrong: SPF clearly provides an
extremely useful attack vector.  But I find it interesting that SPF
does not appear to be central.  This is quite possibly because
mounting the SPF based attack you're talking about requires
considerably more co-ordination among the moving parts than
straightforward amplification via plain DNS spoofing.  (I could come
up with some other explanations, of equivalent degree of rank
speculation if you'd like, but I think one such speculation is enough
for these purposes.)

> At the same time, it seems irresponsible to completely deprecate use
> of the dedicated RR record type that had a much higher level of use
> while not deprecating a far more dangerous macro option used by far
> fewer domains.  Such an oversight can not be excused by blaming the
> charter.

With my chair hat on: the reason RRTYPE 99 is deprecated is _not_
because it's unused, but because there is an interoperability problem
in RFC 4408.  We _had to_ do something, in order to move the protocol
to the standards track, because a standards track document needs to
have no such known and unaddressed flaws.  The same is _not_ true of
the options you're talking about: they may have some negative
consequences, but those consequences are called out in the document.
The WG was chartered on the condition, in effect, that it not change
SPF unless something was totally broken or actually unused.  Since you
note, in your message, that macros and so on _are_ in fact used, and
since there is no analagous problem with the specification _per se_ as
there was in the case of the DNS RRTYPEs, we are not free to deprecate
as you appear to want.

I am pretty sure that has been explained on list more than once.  If
it is even remotely unclear to you, I suggest you contact me off
list so that I can explain it in a way you can understand it.

Best,

A


-- 
Andrew Sullivan
ajs@anvilwalrusden.com

From sm@elandsys.com  Mon Sep 16 09:05:11 2013
Return-Path: <sm@elandsys.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 2724311E82E5; Mon, 16 Sep 2013 09:05:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.552
X-Spam-Level: 
X-Spam-Status: No, score=-102.552 tagged_above=-999 required=5 tests=[AWL=0.047, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 52E8og5o+lKI; Mon, 16 Sep 2013 09:04:56 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 0BCF111E8127; Mon, 16 Sep 2013 09:02:53 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.146.145]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8GG2G85011670 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 16 Sep 2013 09:02:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379347355; bh=TUgWM+on/TxAY26GEe5jZtR1nxfw9oWUIGRm13KK3X0=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=iUD6fKc1cMSGSGnLutJBTApaC/nVUVDbg6XPC5UUOBNXOFvdPCKLkBs8emzi30ZWk IZU3KPreJ091i3SrGHnSP+fSy5rvw0jE6Dl5rpkyFfJkApCsHVO+MBBUCcHCH8LJwx 0IMK+2JP+0XXA1YeNgelTLIyNnI8ddcuwJQMGa7c=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379347355; i=@elandsys.com; bh=TUgWM+on/TxAY26GEe5jZtR1nxfw9oWUIGRm13KK3X0=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=Yd7DiYssq1aQR9C+dsSZPyW2wuQNnC4AX8UDPaLoE2RPQwIZjIwalLgmdcYXdWZZZ UyGOd0l3G9kU07I850kUhwUeD98kFxeX6YaLPwYO1JAUlednUkwt74mhL3Yez9BdUS utnTmB64rBSPyTxLkJWycGPAJ+3xMIFbG/81MXH8=
Message-Id: <6.2.5.6.2.20130916014542.0b496658@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Mon, 16 Sep 2013 09:00:22 -0700
To: Douglas Otis <doug.mtview@gmail.com>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <6FC7A544-0AB5-4BC0-A0BF-D0D8D740D3B8@gmail.com>
References: <6FC7A544-0AB5-4BC0-A0BF-D0D8D740D3B8@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>, ietf@ietf.org, Scott Kitterman <spf2@kitterman.com>
Subject: [spfbis] Macro Expansion (was: Last Call: <draft-ietf-spfbis-4408bis-19.txt> (Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1) to Proposed Standard)
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: Mon, 16 Sep 2013 16:05:13 -0000

Hi Doug,
At 21:55 11-09-2013, Douglas Otis wrote:
>Add to:
>11.5.3.  Macro Expansion
>,---
>It is not within SPF's purview whether IPv6 or DNSSEC is being 
>used.  IPv6 (RFC2460) increased the minimum MTU size to 1280 
>octets.  DNSSEC is deployed with EDNS0 (RFC6891) to avoid TCP 
>fallback.  EDNS0 suggests an MTU increase between 1280 and 1410 
>octets offers a reasonable result starting from a request of 4096 
>octets.  A 1410 MTU offers a 2.4 times payload increase over the 
>assumed MTU of 576 octets and is widely supported by Customer 
>Premise Equipment.  With increased MTUs being used with DNS over 
>UDP, network amplification concerns increase accordingly.
>
>SPF macros can utilize SPF parameters derived from email messages 
>that can modulate the names being queried in several ways without 
>publishing additional DNS resources.  The SPF macro feature permits 
>malefactors a means to covertly orchestrate directed DDoS attacks 
>from an array of compromised systems while expending little of their 
>own resources.
>
>Since SPF does not make use of a dedicated resource record type or 
>naming convention, this leaves few solutions available to DNS 
>operations in offering a means to mitigate possible abuse.  This 
>type of abuse becomes rather pernicious when used in conjunction 
>with synthetic domains now popular for tracking users without using 
>web cookies.
>
>However, email providers can mitigate this type of abuse by ignoring 
>SPF records containing macros.  Very few domains make use of macros, 
>and ignoring these records result in neutral handling.  Some large 
>providers have admitted they make use of this strategy without 
>experiencing any notable problem.  AOL began their support of SPF by 
>saying they would use SPF to construct whitelists prior to receipt 
>of email.  Clearly, such whitelisting practices tends to preclude 
>benefits derived from macro use.
>'---

As background information I read 
draft-otis-spfbis-macros-nixed-01.  I read the messages where EDNS0 
was mentioned [1].  I read the messages on the thread starting with 
msg-id: 9884B9CD-0ED3-4D89-A100-58D05EA4BC98@gmail.com.  I have 
followed the discussions about macros ever since the SPFBIS WG was chartered.

The above suggestion is to add text in the Security Considerations 
section of the draft.  The problem being pointed out is, in simple 
terms, DNS amplification.  The first (quoted) paragraph argues that 
there can be an acute problem because of EDNS0 as specified in the 
Internet Standard.

The second paragraph starts with SPF macros can utilize SPF 
parameters derived from email messages".  I do not understand 
that.  From what I understand the rest of the second (quoted) 
paragraph argues that the SPF macro feature permits evildoers to use 
it as an attack vector.

The argument in the third (quoted) paragraph is that it is not 
possible to mitigate possible (DNS) abuse due to the SPF as it does 
not have a dedicated resource record type.

The fourth (quoted) paragraph argues that macros should be 
ignored.  That paragraph also mentions that some large providers 
admitted to using that strategy.  I am not aware of any public 
reports about that.

I read draft-otis-spfbis-macros-nixed-01 again to try and understand 
the problem.  It seems to be the:

   '{%l}._spf.{%d} or exists:{%i}_spf.{%d} can  be used in "specialized"
    DNS servers able to understand encrypted local-parts'

which is discussed in Appendix E of draft-ietf-spfbis-4408bis-20.

Arthur Thisell commented about the "specialized DNS server".  He 
mentioned that at the time that text was written two people came 
forward to say that they were doing that.  During the SPFBIS 
discussions nobody stated that he or she has implemented or is using 
a "specialized" DNS server.

I'll ask the person editing draft-ietf-spfbis-4408bis or the SPFBIS 
WG to provide some publicly verifiable cases where these examples are used.

I assume that the SPFBIS WG and the Responsible Area Director have 
understood the mathematics relating to EDNS0 and DNS 
amplification.  Anyone who has not understood that part is welcome to 
raise the issue on the SPFBIS mailing list.

The discussion about the "dedicated resource record type" has led to 
agreement.  I'll describe the agreement as something people can live 
with.  In my opinion it is better not to start another discussion about that.

I hope that what I wrote above clearly explains what I have 
understood and what I have not understood.

Regards,
S. Moonesamy (as document shepherd)

1. message-id of messages:

4EF10B1F.5050406@mail-abuse.org
4F0E7154.4080208@isdg.net
29fba028-5881-4a04-95d4-227582a3801e@email.android.com
Pine.GSO.4.62.1201121350550.3388@spaz.oit.wmich.edu
20120425152326.GE60024@mail.yitter.info
1545953.Y9VaoKsXxF@scott-latitude-e6320
20120704015156.GB12452@crankycanuck.ca
1977893.MDoye0cYQa@scott-latitude-e6320
20130122231357.GA6921@mx1.yitter.info
3896517.k8tBVMT4Fi@scott-latitude-e6320
CD246081.BBD2F%fmartin@linkedin.com
20130123010120.GC7073@crankycanuck.ca
271785100.KEZggNLeh1@scott-latitude-e6320
CAL0qLwaW1-dQg-NhwBNWAppXjfsoacO1Q8gHdPPvEGDssEpJQA@mail.gmail.com
20130125143603.GA11573@mx1.yitter.info
7ab574aa-d13c-44e2-968e-4946bd05808c@email.android.com
20130430103940.GB32695@besserwisser.org
517FBBCD.3010001@tana.it
20130624212511.GB44803@crankycanuck.ca
686233851.4iQopu4Yll@scott-latitude-e6320
24624534.FuUVENZpXd@scott-latitude-e6320
24624534.FuUVENZpXd@scott-latitude-e6320
B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com
BA4D9B3E-F9A6-46AF-BBA7-D6AD463020CA@gmail.com
5129719.PDZTiHcDZ6@scott-latitude-e6320
BD926F72-A6C3-4F0B-BBFB-A18668C9E4AF@gmail.com
38312086.HKzMeyOO04@scott-latitude-e6320
2137735.9LNiMWPY5V@scott-latitude-e6320 


From superuser@gmail.com  Mon Sep 16 12:05:27 2013
Return-Path: <superuser@gmail.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 8EDEC11E834A for <spfbis@ietfa.amsl.com>; Mon, 16 Sep 2013 12:05:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.482
X-Spam-Level: 
X-Spam-Status: No, score=-2.482 tagged_above=-999 required=5 tests=[AWL=0.117,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NLQDvUlSMrwi for <spfbis@ietfa.amsl.com>; Mon, 16 Sep 2013 12:05:26 -0700 (PDT)
Received: from mail-we0-x229.google.com (mail-we0-x229.google.com [IPv6:2a00:1450:400c:c03::229]) by ietfa.amsl.com (Postfix) with ESMTP id 98F6611E8305 for <spfbis@ietf.org>; Mon, 16 Sep 2013 12:03:48 -0700 (PDT)
Received: by mail-we0-f169.google.com with SMTP id t60so4141500wes.28 for <spfbis@ietf.org>; Mon, 16 Sep 2013 12:03:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Y3cXCNpzM/JZMwfKXaMX3KFJRlgsEPV4c7Zt4AmAwGs=; b=B/Hs6u9M5qIfVogHyOLVVFbVVKfC6gGnT+e/mLA/oCRc93hgkX3X9JHKQVY62Rjqmv q2R+16miHG1dNa1bLwT/Nae56H9irER/TLGgyq2LNph+Fdnsmo2dam9b63W933k/glHu HZD3F744lIuBrIdh6avbvZCn5wJvMveY8phF0ok1qWQlAg0Czqs9lD7I36SaYi3e3XzH q3Af+gc481Y8xnOyFFjo7+vjaGE6Bcz/D5gsoUoS/U4U6Q2N2cHt4yCJnwqn82y02RvG gO3/s/4ZC8WXqO0qIoSq22RZygzvU6k3cCzztXmzWdUro9PkMzzTKZgpouXMhuFad0q3 isSw==
MIME-Version: 1.0
X-Received: by 10.180.184.107 with SMTP id et11mr14740134wic.60.1379358224640;  Mon, 16 Sep 2013 12:03:44 -0700 (PDT)
Received: by 10.180.106.169 with HTTP; Mon, 16 Sep 2013 12:03:44 -0700 (PDT)
In-Reply-To: <20130916144135.GC79031@mx1.yitter.info>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com> <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com> <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com> <20130914003652.GF78680@mx1.yitter.info> <BD926F72-A6C3-4F0B-BBFB-A18668C9E4AF@gmail.com> <20130916144135.GC79031@mx1.yitter.info>
Date: Mon, 16 Sep 2013 12:03:44 -0700
Message-ID: <CAL0qLwbW0d8j-vqqxM=d=kWroonE9SkhwZ2S6CDtTcZY7WrJwg@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: Andrew Sullivan <ajs@anvilwalrusden.com>
Content-Type: multipart/alternative; boundary=001a11c227eeff737604e684dcf4
Cc: "spfbis@ietf.org" <spfbis@ietf.org>
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Mon, 16 Sep 2013 19:05:27 -0000

--001a11c227eeff737604e684dcf4
Content-Type: text/plain; charset=ISO-8859-1

On Mon, Sep 16, 2013 at 7:41 AM, Andrew Sullivan <ajs@anvilwalrusden.com>wrote:

> > In my defense, may I ask whether the draft
> > http://tools.ietf.org/html/draft-otis-spfbis-macros-nixed-01 been
> > reviewed?
>
> By me?  Yes.  Widely?  Apparently not.
>

I reviewed it, though it was admittedly some time ago.  I remember thinking
these things:

1) The draft doesn't identify a single instance of a site that has chosen
not implement macros.  This is in contrast to the numerous applications
that use libspf2 to build their SPF checking applications, and to the two
commercial solutions with which I'm familiar, none of which permit one to
selectively disable macros.  I understand the need to keep client details
confidential, but it leaves me wondering why your client base is so
different than everything else I've observed.  In contrast, RFC6648
revealed numerous details about its survey sources, and its methods could
be repeated today, likely with similar results since they are so clearly
described, so I would argue that it's far more credible work.

2) As Andrew observed, there has also not been a document case of the
amplification attack in the wild.  It seems to me that if this were an
interesting or worthwhile exploit, we'd have seen one happen by now.

3) As Andrew also observed, we are unable to remove it even with the slim
use that's been documented.  People (including me) made a pretty hard push
for it, but we are, at least right now, procedurally constrained against
doing so.

4) Your co-author on this draft (and on the DKIM one, and on the recent
IESG appeal about DKIM) is an awfully quiet person for such a passionate
and potentially serious topic.  Does he not care to help you defend the
position you're taking?

-MSK

--001a11c227eeff737604e684dcf4
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Mon, Sep 16, 2013 at 7:41 AM, Andrew Sullivan <span dir=
=3D"ltr">&lt;<a href=3D"mailto:ajs@anvilwalrusden.com" target=3D"_blank">aj=
s@anvilwalrusden.com</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><d=
iv class=3D"gmail_quote">


<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">&gt; In my defense, may I ask whether the dr=
aft<br><div>
&gt; <a href=3D"http://tools.ietf.org/html/draft-otis-spfbis-macros-nixed-0=
1" target=3D"_blank">http://tools.ietf.org/html/draft-otis-spfbis-macros-ni=
xed-01</a> been<br>
&gt; reviewed?<br>
<br>
</div>By me? =A0Yes. =A0Widely? =A0Apparently not.<br></blockquote><div><br=
></div><div>I reviewed it, though it was admittedly some time ago.=A0 I rem=
ember thinking these things:<br><br></div><div>1) The draft doesn&#39;t ide=
ntify a single instance of a site that has chosen not implement macros.=A0 =
This is in contrast to the numerous applications that use libspf2 to build =
their SPF checking applications, and to the two commercial solutions with w=
hich I&#39;m familiar, none of which permit one to selectively disable macr=
os.=A0 I understand the need to keep client details confidential, but it le=
aves me wondering why your client base is so different than everything else=
 I&#39;ve observed.=A0 In contrast, RFC6648 revealed numerous details about=
 its survey sources, and its methods could be repeated today, likely with s=
imilar results since they are so clearly described, so I would argue that i=
t&#39;s far more credible work.<br>


<br></div><div>2) As Andrew observed, there has also not been a document ca=
se of the amplification attack in the wild.=A0 It seems to me that if this =
were an interesting or worthwhile exploit, we&#39;d have seen one happen by=
 now.<br>

<br></div><div>3) As Andrew also observed, we are unable to remove it even =
with the slim use that&#39;s been documented.=A0 People (including me) made=
 a pretty hard push for it, but we are, at least right now, procedurally co=
nstrained against doing so.<br>

</div><div><br></div><div>4) Your co-author on this draft (and on the DKIM =
one, and on the recent IESG appeal about DKIM) is an awfully quiet person f=
or such a passionate and potentially serious topic.=A0 Does he not care to =
help you defend the position you&#39;re taking?<br>

<br>-MSK<br></div></div></div></div>

--001a11c227eeff737604e684dcf4--

From marka@isc.org  Mon Sep 16 15:04:25 2013
Return-Path: <marka@isc.org>
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 CE35911E81C6 for <spfbis@ietfa.amsl.com>; Mon, 16 Sep 2013 15:04:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id FSn6LxGV1b8r for <spfbis@ietfa.amsl.com>; Mon, 16 Sep 2013 15:04:21 -0700 (PDT)
Received: from mx.pao1.isc.org (mx.pao1.isc.org [IPv6:2001:4f8:0:2::2b]) by ietfa.amsl.com (Postfix) with ESMTP id 7EC3411E819C for <spfbis@ietf.org>; Mon, 16 Sep 2013 15:04:21 -0700 (PDT)
Received: from mx.pao1.isc.org (localhost [127.0.0.1]) by mx.pao1.isc.org (Postfix) with ESMTP id B779DC94C2; Mon, 16 Sep 2013 22:04:05 +0000 (UTC) (envelope-from marka@isc.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=isc.org; s=dkim2012; t=1379369061; bh=7+PW5s7zlOP+fD2wmGSFztmX/osEbaxVUL1IoE8P0z4=; h=To:Cc:From:References:Subject:In-reply-to:Date; b=BxcFjdIqWi49+1LckRVEjgFUfFTpzvCWGXAd/A3xOMofl0HXJ98qI5OLzkdb+WckP XPIQ+SzY3RwQW621abdTHmjFhsXkfZp2vDmNwQlY4XmElw6OvwIC2CIa+Dk8nWyaHe bIdgTtWRsenC+soRylgxNEntj9hdk7FVN6u8GOqs=
Received: from zmx1.isc.org (zmx1.isc.org [149.20.0.20]) by mx.pao1.isc.org (Postfix) with ESMTP; Mon, 16 Sep 2013 22:04:05 +0000 (UTC) (envelope-from marka@isc.org)
Received: from zmx1.isc.org (localhost [127.0.0.1]) by zmx1.isc.org (Postfix) with ESMTP id 12A0A160446; Mon, 16 Sep 2013 22:06:11 +0000 (UTC)
Received: from rock.dv.isc.org (c211-30-183-50.carlnfd1.nsw.optusnet.com.au [211.30.183.50]) by zmx1.isc.org (Postfix) with ESMTPSA id D2F1E16034F; Mon, 16 Sep 2013 22:06:10 +0000 (UTC)
Received: from rock.dv.isc.org (localhost [IPv6:::1]) by rock.dv.isc.org (Postfix) with ESMTP id 7108E68DF84; Tue, 17 Sep 2013 08:04:03 +1000 (EST)
To: "Murray S. Kucherawy" <superuser@gmail.com>
From: Mark Andrews <marka@isc.org>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com> <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com> <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com> <20130914003652.GF78680@mx1.yitter.info> <BD926F72-A6C3-4F0B-BBFB-A18668C9E4AF@gmail.com> <20130916144135.GC79031@mx1.yitter.info> <CAL0qLwbW0d8j-vqqxM=d=kWroonE9SkhwZ2S6CDtTcZY7WrJwg@mail.gmail.com>
In-reply-to: Your message of "Mon, 16 Sep 2013 12:03:44 -0700." <CAL0qLwbW0d8j-vqqxM=d=kWroonE9SkhwZ2S6CDtTcZY7WrJwg@mail.gmail.com>
Date: Tue, 17 Sep 2013 08:04:03 +1000
Message-Id: <20130916220403.7108E68DF84@rock.dv.isc.org>
X-DCC--Metrics: post.isc.org; whitelist
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, Andrew Sullivan <ajs@anvilwalrusden.com>
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Mon, 16 Sep 2013 22:04:25 -0000

In message <CAL0qLwbW0d8j-vqqxM=d=kWroonE9SkhwZ2S6CDtTcZY7WrJwg@mail.gmail.com>
, "Murray S. Kucherawy" writes:
> 
> On Mon, Sep 16, 2013 at 7:41 AM, Andrew Sullivan <ajs@anvilwalrusden.com>wrot
> e:
> 
> > > In my defense, may I ask whether the draft
> > > http://tools.ietf.org/html/draft-otis-spfbis-macros-nixed-01 been
> > > reviewed?
> >
> > By me?  Yes.  Widely?  Apparently not.
> >
> 
> I reviewed it, though it was admittedly some time ago.  I remember thinking
> these things:
> 
> 1) The draft doesn't identify a single instance of a site that has chosen
> not implement macros.  This is in contrast to the numerous applications
> that use libspf2 to build their SPF checking applications, and to the two
> commercial solutions with which I'm familiar, none of which permit one to
> selectively disable macros.  I understand the need to keep client details
> confidential, but it leaves me wondering why your client base is so
> different than everything else I've observed.  In contrast, RFC6648
> revealed numerous details about its survey sources, and its methods could
> be repeated today, likely with similar results since they are so clearly
> described, so I would argue that it's far more credible work.
> 
> 2) As Andrew observed, there has also not been a document case of the
> amplification attack in the wild.  It seems to me that if this were an
> interesting or worthwhile exploit, we'd have seen one happen by now.

No.  This is bad reasoning.  There have been lots of theoretical
attacks that have taken a long time to before we see them used in anger.

> 3) As Andrew also observed, we are unable to remove it even with the slim
> use that's been documented.  People (including me) made a pretty hard push
> for it, but we are, at least right now, procedurally constrained against
> doing so.
> 
> 4) Your co-author on this draft (and on the DKIM one, and on the recent
> IESG appeal about DKIM) is an awfully quiet person for such a passionate
> and potentially serious topic.  Does he not care to help you defend the
> position you're taking?
> 
> -MSK
> 
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka@isc.org

From ajs@anvilwalrusden.com  Mon Sep 16 15:59:51 2013
Return-Path: <ajs@anvilwalrusden.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 6041811E812F for <spfbis@ietfa.amsl.com>; Mon, 16 Sep 2013 15:59:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.84
X-Spam-Level: 
X-Spam-Status: No, score=-0.84 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_MISMATCH_INFO=1.448, HOST_MISMATCH_NET=0.311]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id dHvLaVEqxj1j for <spfbis@ietfa.amsl.com>; Mon, 16 Sep 2013 15:59:45 -0700 (PDT)
Received: from mx1.yitter.info (ow5p.x.rootbsd.net [208.79.81.114]) by ietfa.amsl.com (Postfix) with ESMTP id CB34511E81CC for <spfbis@ietf.org>; Mon, 16 Sep 2013 15:59:44 -0700 (PDT)
Received: from mx1.yitter.info (c-75-69-155-67.hsd1.nh.comcast.net [75.69.155.67]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.yitter.info (Postfix) with ESMTPSA id B37A68A031 for <spfbis@ietf.org>; Mon, 16 Sep 2013 22:59:43 +0000 (UTC)
Date: Mon, 16 Sep 2013 18:59:39 -0400
From: Andrew Sullivan <ajs@anvilwalrusden.com>
To: spfbis@ietf.org
Message-ID: <20130916225939.GA33519@mx1.yitter.info>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com> <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com> <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com> <20130914003652.GF78680@mx1.yitter.info> <BD926F72-A6C3-4F0B-BBFB-A18668C9E4AF@gmail.com> <20130916144135.GC79031@mx1.yitter.info> <CAL0qLwbW0d8j-vqqxM=d=kWroonE9SkhwZ2S6CDtTcZY7WrJwg@mail.gmail.com> <20130916220403.7108E68DF84@rock.dv.isc.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20130916220403.7108E68DF84@rock.dv.isc.org>
User-Agent: Mutt/1.5.21 (2010-09-15)
Subject: [spfbis] value of attack path (was: Benoit Claise's No Objection ...)
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: Mon, 16 Sep 2013 22:59:51 -0000

No hat.

On Tue, Sep 17, 2013 at 08:04:03AM +1000, Mark Andrews wrote:
> No.  This is bad reasoning.  There have been lots of theoretical
> attacks that have taken a long time to before we see them used in anger.

Yes.  That is why I asked about the liklihood of the attack in
question being deployed.  It seems to me that it is quite a lot more
complicated than the attacks that are quite straightforwardly
available to DNS as it stands, and which while individually less
severe are much more easily delivered at large scale.  So, in my
opinion, the concern about SPF-based attacks using vast volumes of SPF
processing triggering events due to macros and so on is misplaced.

Supposing that I'm wrong, however, it seems to me that sites could
trivially protect themselves from this by refusing to process macros
anyway.

So I just don't get what the excitement is about.  It's a
theoretically devastating attack, just like a full-on siege of the
Maginot line with overwhelming force might have been.  As we actually
saw, there was a considerably less taxing path for attack.

Unless there is some new evidence introduced, I'm not interested in
this topic any more.  It doesn't appear to be yielding any new
evidence.

Best,

A

-- 
Andrew Sullivan
ajs@anvilwalrusden.com

From john@jlc.net  Mon Sep 16 16:49:35 2013
Return-Path: <john@jlc.net>
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 359CA11E8156 for <spfbis@ietfa.amsl.com>; Mon, 16 Sep 2013 16:49:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -104.769
X-Spam-Level: 
X-Spam-Status: No, score=-104.769 tagged_above=-999 required=5 tests=[AWL=1.830, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2P9n8OWx+DBO for <spfbis@ietfa.amsl.com>; Mon, 16 Sep 2013 16:49:31 -0700 (PDT)
Received: from mailhost.jlc.net (mailhost.jlc.net [199.201.159.4]) by ietfa.amsl.com (Postfix) with ESMTP id DBBC411E815A for <spfbis@ietf.org>; Mon, 16 Sep 2013 16:49:30 -0700 (PDT)
Received: by mailhost.jlc.net (Postfix, from userid 104) id 3D4ACC94C7; Mon, 16 Sep 2013 19:49:27 -0400 (EDT)
Date: Mon, 16 Sep 2013 19:49:27 -0400
From: John Leslie <john@jlc.net>
To: Andrew Sullivan <ajs@anvilwalrusden.com>
Message-ID: <20130916234927.GD59497@verdi>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com> <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com> <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com> <20130914003652.GF78680@mx1.yitter.info> <BD926F72-A6C3-4F0B-BBFB-A18668C9E4AF@gmail.com> <20130916144135.GC79031@mx1.yitter.info>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20130916144135.GC79031@mx1.yitter.info>
User-Agent: Mutt/1.4.1i
Cc: spfbis@ietf.org
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Mon, 16 Sep 2013 23:49:35 -0000

Andrew Sullivan <ajs@anvilwalrusden.com> wrote:
> On Fri, Sep 13, 2013 at 08:56:55PM -0700, Douglas Otis wrote: 
> 
>> It contains a reference to a survey by the SPF website
>> http://spf-all.com/stats.html which indicates of all domains
>> publishing SPF records 99.947% contain no macros.  It seems a
>> reasonable person would wonder why.
> 
> Yes, and it is entirely reasonable that anyone might.  But it doesn't
> matter, because there's half a percent that _do_ have macros, and SM
> and I (as chairs) already determined earlier in the WG's life that
> "unused" meant "not used at all".  Therefore, macros cannot be
> deprecated by the WG.  That's a consequence of our charter.

   I chose not to question that interpretation -- it's not worth flamewars
for an issue like this one.

>> I hope you can imagine what this might mean from the perspective of
>> network amplifications 
> 
> I am somewhat conversant with network amplifications via DNS.  It is
> interesting to me that, despite the attractive nuisance that DNS
> provides in terms of amplifications, for reasons totally mysterious to
> me I have never once, in any log I have reviewed, seen evidence of an
> SPF-based attack of the sort you keep talking about.

   My preference would be to note the issue; and comment that such an
occurance has never been observed. (I don't propose to deprecate macros
at this time; but there may be reason to partially or fully deprecate
them at some later time.)

> The WG was chartered on the condition, in effect, that it not change
> SPF unless something was totally broken or actually unused.  Since you
> note, in your message, that macros and so on _are_ in fact used, and
> since there is no analagous problem with the specification _per se_ as
> there was in the case of the DNS RRTYPEs, we are not free to deprecate
> as you appear to want.

   I accept that. Nonetheless, The possible amplification is real, and
IMHO deserves a mention in Security Considerations.

> I am pretty sure that has been explained on list more than once.  If
> it is even remotely unclear to you, I suggest you contact me off
> list so that I can explain it in a way you can understand it.

   Doug is an engineer at heart. He likes to _fix_ problems.

   There is a middle ground, where one documents problems, and leaves
fixing them to some future action.

--
John Leslie <john@jlc.net>

From spf2@kitterman.com  Mon Sep 16 17:09:46 2013
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 8D9A011E8156 for <spfbis@ietfa.amsl.com>; Mon, 16 Sep 2013 17:09:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.367
X-Spam-Level: 
X-Spam-Status: No, score=-2.367 tagged_above=-999 required=5 tests=[AWL=0.232,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6msRPAXbAsyL for <spfbis@ietfa.amsl.com>; Mon, 16 Sep 2013 17:09:42 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id E36E111E80D5 for <spfbis@ietf.org>; Mon, 16 Sep 2013 17:09:41 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 20E2320E40EF; Mon, 16 Sep 2013 20:09:37 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1379376577; bh=yI3QgZd1M6VYJ7NiVe+AzdVMii105Ps5ST+fWGbp0dA=; h=From:To:Subject:Date:In-Reply-To:References:From; b=XGtQwm8u17oG8fSNzQaizIHBvT22DaLcwjAFNxuw4VKcQntXnjlFc6ZaMO5JyVpMJ y8LSUakuYdwQtvXC878tJIQf3aTTdIe8OFTICuFImPcjGuvOcZ0So+1HtxM/vVzCL/ WGuVKEvokHZQ2O3GT4LRF6Dv/q90ik2X9H6XIFyE=
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 0683720E40C4;  Mon, 16 Sep 2013 20:09:36 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Mon, 16 Sep 2013 20:09:36 -0400
Message-ID: <2034326.NFNlXHdOCs@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <20130916234927.GD59497@verdi>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <20130916144135.GC79031@mx1.yitter.info> <20130916234927.GD59497@verdi>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Tue, 17 Sep 2013 00:09:46 -0000

On Monday, September 16, 2013 19:49:27 John Leslie wrote:
> Andrew Sullivan <ajs@anvilwalrusden.com> wrote:
> > On Fri, Sep 13, 2013 at 08:56:55PM -0700, Douglas Otis wrote:
> >> It contains a reference to a survey by the SPF website
> >> http://spf-all.com/stats.html which indicates of all domains
> >> publishing SPF records 99.947% contain no macros.  It seems a
> >> reasonable person would wonder why.
> > 
> > Yes, and it is entirely reasonable that anyone might.  But it doesn't
> > matter, because there's half a percent that _do_ have macros, and SM
> > and I (as chairs) already determined earlier in the WG's life that
> > "unused" meant "not used at all".  Therefore, macros cannot be
> > deprecated by the WG.  That's a consequence of our charter.
> 
>    I chose not to question that interpretation -- it's not worth flamewars
> for an issue like this one.
> 
> >> I hope you can imagine what this might mean from the perspective of
> >> network amplifications
> > 
> > I am somewhat conversant with network amplifications via DNS.  It is
> > interesting to me that, despite the attractive nuisance that DNS
> > provides in terms of amplifications, for reasons totally mysterious to
> > me I have never once, in any log I have reviewed, seen evidence of an
> > SPF-based attack of the sort you keep talking about.
> 
>    My preference would be to note the issue; and comment that such an
> occurance has never been observed. (I don't propose to deprecate macros
> at this time; but there may be reason to partially or fully deprecate
> them at some later time.)
> 
> > The WG was chartered on the condition, in effect, that it not change
> > SPF unless something was totally broken or actually unused.  Since you
> > note, in your message, that macros and so on _are_ in fact used, and
> > since there is no analagous problem with the specification _per se_ as
> > there was in the case of the DNS RRTYPEs, we are not free to deprecate
> > as you appear to want.
> 
>    I accept that. Nonetheless, The possible amplification is real, and
> IMHO deserves a mention in Security Considerations.
> 
> > I am pretty sure that has been explained on list more than once.  If
> > it is even remotely unclear to you, I suggest you contact me off
> > list so that I can explain it in a way you can understand it.
> 
>    Doug is an engineer at heart. He likes to _fix_ problems.
> 
>    There is a middle ground, where one documents problems, and leaves
> fixing them to some future action.

There is a claimed problem.  To the extent there is an actual problem, it's a 
DNS problem.  There are many ways to get DNS amplification.  This is (maybe) 
one example of a larger issue.  SPF, by definition, inherits all of DNS' 
weaknesses.  We don't document them all and I don't see any benefit in treating 
this one specially.

Scott K

From doug.mtview@gmail.com  Tue Sep 17 00:34:29 2013
Return-Path: <doug.mtview@gmail.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 7BE8B11E8392 for <spfbis@ietfa.amsl.com>; Tue, 17 Sep 2013 00:34:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=-0.000, BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Lz7v7oQYLGHT for <spfbis@ietfa.amsl.com>; Tue, 17 Sep 2013 00:34:27 -0700 (PDT)
Received: from mail-pb0-x232.google.com (mail-pb0-x232.google.com [IPv6:2607:f8b0:400e:c01::232]) by ietfa.amsl.com (Postfix) with ESMTP id 0790C11E8230 for <spfbis@ietf.org>; Tue, 17 Sep 2013 00:34:27 -0700 (PDT)
Received: by mail-pb0-f50.google.com with SMTP id uo5so5183214pbc.9 for <spfbis@ietf.org>; Tue, 17 Sep 2013 00:34:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=SVaJSKcfJeJSeCmeYXiTXtdBWVwWVx1+lcqoQHYDuk8=; b=lwTTReiMpsH5ZJbpW3QbrzHOs300aaEHU+ZuP2kgek9BNc58lBqzArnVLCXdjmLrRI HXrrb/Lvjgp2rvyxZ0kVGffQNDQd+R6sJJstMlqz+RjbF6icxvDNJd+OdA5zwHeAZwfe N0JtbyKpa1TQygQCaaJs2cjjyDtHpExKUtkkL945rYZmhGt7QAAzGL/8G/Xmt23ou+L3 MBE9cqsqYYTZWmTNW3dTSkI7NuTgofHnDWKPdul3QeheTC9ZGz8X5kGBqbl+m+kJPuAE grP3spaWEPPMEMaRuNifm6EpTruFlHO7tlfQgW5vfyPsG3Al7VpPNMbiKkJyTKQhkEZv PvxQ==
X-Received: by 10.68.223.161 with SMTP id qv1mr33472827pbc.79.1379403266689; Tue, 17 Sep 2013 00:34:26 -0700 (PDT)
Received: from [192.168.2.201] (c-24-6-103-174.hsd1.ca.comcast.net. [24.6.103.174]) by mx.google.com with ESMTPSA id j9sm43945895paj.18.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 17 Sep 2013 00:34:25 -0700 (PDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
From: Douglas Otis <doug.mtview@gmail.com>
In-Reply-To: <20130916144135.GC79031@mx1.yitter.info>
Date: Tue, 17 Sep 2013 00:34:22 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <76AD9C0E-62DC-4E55-94ED-59665D731532@gmail.com>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com> <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com> <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com> <20130914003652.GF78680@mx1.yitter.info> <BD926F72-A6C3-4F0B-BBFB-A18668C9E4AF@gmail.com> <20130916144135.GC79031@mx1.yitter.info>
To: Andrew Sullivan <ajs@anvilwalrusden.com>
X-Mailer: Apple Mail (2.1508)
Cc: spfbis@ietf.org
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Tue, 17 Sep 2013 07:34:29 -0000

Dear Andrew,

See comments inline.

On Sep 16, 2013, at 7:41 AM, Andrew Sullivan <ajs@anvilwalrusden.com> =
wrote:

> I've trimmed the ccs.  This is clearly right back to fodder for the
> spfbis list.  If I have a hat on below, I'll note it.
>=20
> On Fri, Sep 13, 2013 at 08:56:55PM -0700, Douglas Otis wrote:=20
>=20
>> In my defense, may I ask whether the draft
>> http://tools.ietf.org/html/draft-otis-spfbis-macros-nixed-01 been
>> reviewed?
>=20
> By me?  Yes.  Widely?  Apparently not.
>=20
>> It contains a reference to a survey by the SPF website
>> http://spf-all.com/stats.html which indicates of all domains
>> publishing SPF records 99.947% contain no macros.  It seems a
>> reasonable person would wonder why.
>=20
> Yes, and it is entirely reasonable that anyone might.  But it doesn't
> matter, because there's half a percent that _do_ have macros, and SM
> and I (as chairs) already determined earlier in the WG's life that
> "unused" meant "not used at all".  Therefore, macros cannot be
> deprecated by the WG.  That's a consequence of our charter.

May I make minor corrections to your comments?

The number of domains publishing macros is not 0.5 percent but 0.05%.  =
There are 20 times this number of domains publish erroneous SPF records. =
 Does it really make sense to place DNSSEC at risk to support such a =
vanishingly small minority?  Removing a seldom used, highly complex, and =
risky feature should be well within the charter.  =20

>> I hope you can imagine what this might mean from the perspective of
>> network amplifications=20
>=20
> I am somewhat conversant with network amplifications via DNS.  It is
> interesting to me that, despite the attractive nuisance that DNS
> provides in terms of amplifications, for reasons totally mysterious to
> me I have never once, in any log I have reviewed, seen evidence of an
> SPF-based attack of the sort you keep talking about.

This macro feature is not supported by major providers, where its use =
threatens interchange and places DNS at risk.

> That is not to
> say that your observations are wrong: SPF clearly provides an
> extremely useful attack vector.  But I find it interesting that SPF
> does not appear to be central.  This is quite possibly because
> mounting the SPF based attack you're talking about requires
> considerably more co-ordination among the moving parts than
> straightforward amplification via plain DNS spoofing.  (I could come
> up with some other explanations, of equivalent degree of rank
> speculation if you'd like, but I think one such speculation is enough
> for these purposes.)
>=20
>> At the same time, it seems irresponsible to completely deprecate use
>> of the dedicated RR record type that had a much higher level of use
>> while not deprecating a far more dangerous macro option used by far
>> fewer domains.  Such an oversight can not be excused by blaming the
>> charter.
>=20
> With my chair hat on: the reason RRTYPE 99 is deprecated is _not_
> because it's unused, but because there is an interoperability problem
> in RFC 4408.  We _had to_ do something, in order to move the protocol
> to the standards track, because a standards track document needs to
> have no such known and unaddressed flaws.

Having a completely indefensible macro feature dumping queries into DNS =
is not a serious flaw?

Purporting a feature that lacks negotiation in fact not widely supported =
is not a serious flaw?

If this document gets published, it should be as informational.=20

> The same is _not_ true of
> the options you're talking about: they may have some negative
> consequences, but those consequences are called out in the document.

"Some negative" is a massive understatement.  The potential, as I =
understand the situation, is actively being suppressed.  Enabling DNS =
logging could confirm the level of support.=20

Ignoring SPF records that contain macros explains why erroneous SPF =
records are present in much greater numbers.  It seems everyone knows =
publishing macros is clearly a mistake.

> The WG was chartered on the condition, in effect, that it not change
> SPF unless something was totally broken or actually unused.

If the goal is to support interchange, remove macros.  Assume macros was =
a bad idea that never found traction or that were actively suppressed.

> Since you
> note, in your message, that macros and so on _are_ in fact used, and
> since there is no analagous problem with the specification _per se_ as
> there was in the case of the DNS RRTYPEs, we are not free to deprecate
> as you appear to want.

You are comparing an extra query to greatly increased gain enabled =
through use of macros?  I am at a loss to understand this line of =
reasoning.   A statement that some future version will remove use of TXT =
records offers a clear incentive and solution.  Those that don't change =
receive neutral handling.  Not a major issue.  The same should be true =
for the 0.053% of domains publishing macros.

> I am pretty sure that has been explained on list more than once.  If
> it is even remotely unclear to you, I suggest you contact me off
> list so that I can explain it in a way you can understand it.

Clearly we see this issue much differently.  Perhaps facing the brunt of =
DDoS changes one's perspective.  It is not right to suggest the risk =
being created by this protocol offering automation of a massive sequence =
of random queries from cached records by unknown entities is somehow up =
to DNS to solve?  Please describe how DNS can be defended when SPF =
macros are being abused.=20

Regards,
Douglas Otis




From sm@elandsys.com  Tue Sep 17 01:21:51 2013
Return-Path: <sm@elandsys.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 C222411E83A5; Tue, 17 Sep 2013 01:21:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.554
X-Spam-Level: 
X-Spam-Status: No, score=-102.554 tagged_above=-999 required=5 tests=[AWL=0.045, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nubGhtYEGKDO; Tue, 17 Sep 2013 01:21:51 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 016B011E83A4; Tue, 17 Sep 2013 01:21:50 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.146.145]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8H8LRBK006285 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 17 Sep 2013 01:21:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1379406101; bh=zq64VaMlu23G0SBrguiNJfHihcBMLsDmh2linByo9yo=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=AzydwO0Zfc4tMf+cTmsdTD+UVflUllImPxZIyrIvrFAfhVhsmYd1MLBMA+8VwyLwY CaGJvkgS59WXRFO07pqVsOWeR9g3IlHly9GxDFFf3weFlCXkWUM+OV1n0rCu38piRj eYSR2vY5klaqi3lWqjHSqaUINwNTu44uktbCyPQM=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1379406101; i=@elandsys.com; bh=zq64VaMlu23G0SBrguiNJfHihcBMLsDmh2linByo9yo=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=S7n9YJtgxv29q0ILom4JYHJ72ggg3hBOPZgQp0tL9QXSwexIXa7Et3w1iVuOiTedz NrG+rPg0JvAy7MRVAjPgk58CB367yGOOS0uiknTeWZjED8vIVZykXnSdUYZZJozLss rRvxzIfYAR05uvT/KEXsWIWuXjNn2oJXjYCV6Mzs=
Message-Id: <6.2.5.6.2.20130917010720.06302bf8@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Tue, 17 Sep 2013 01:19:44 -0700
To: Phillip Hallam-Baker <hallam@gmail.com>, draft-ietf-spfbis-4408bis.all@tools.ietf.org, iesg@ietf.org, secdir@ietf.org
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.g mail.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Tue, 17 Sep 2013 08:21:52 -0000

Hi Phillip,
At 05:07 11-09-2013, Phillip Hallam-Baker wrote:
>Minor issues.
>
>1.1.3.  MAIL FROM Definition
>
>I found this section completely opaque and very confusing. It should 
>not be necessary to hunt through other specs to find a definition. 
>Particularly since the referenced specs do not give an explicit 
>definition for the term as used and the references point to the 
>whole spec rather than a particular section.

The text below is to address the comment about Section 1.1.3 (credits 
to Rolf E. Sonneveld):

1.1.3.  MAIL FROM Definition

    This document uses "MAIL FROM" to refer to RFC5321.MailFrom (reverse-path).
    The RFC5321.MailFrom is defined in Section 4.4 of RFC 5598 as an end-to-end
    string that specifies an email address for receiving return control
    information, such as returned messages.

>The Security Considerations section is adequate for the purpose 
>except that no mention is made anywhere in the specification about 
>DKIM and how a mail receiver should interpret presence of DKIM and 
>SPF policy at the same time. This is a legitimate concern since DKIM 
>is already a standards track proposal and SPF is only now being 
>promoted to Standards Track. Thus the SPF document should address 
>the question of dual use.

I commented about the above in my previous reply.

>8.7.  Permerror
>"This signals an error condition that definitely requires operator 
>intervention to be resolved."
>
>I cannot imagine a circumstance which definitely requires a human to 
>be involved in mail delivery.

These are permanent DNS errors or SPF record errors.  For example, if 
an SPF record requires too many DNS lookups, someone has to change 
the record to make the error go away.

The definitely was intended to distinguish from cases such as a DNS 
SERVFAIL that may or may not be permanent, but are temperrors in 
SPF.  In the case of ambiguity about if an error is temporary or 
permanent, it's treated in the design as assumed to be temporary.

>11.2.  SPF-Authorized Email May Contain Other False Identities
>
>    Do not construe the "MAIL FROM" and "HELO" identity authorizations to
>    provide more assurance than they do.
>
>Document has quasi normative language that should be worded as 
>statements of fact rather than as direction.

The following change is proposed is response to the above:

    The "MAIL FROM" and "HELO" identity authorizations do not provide assurance
    about the authorization/authenticity of other identities used in the
    message.

Regards,
S. Moonesamy (as document shepherd)  


From doug.mtview@gmail.com  Wed Sep 18 09:08:07 2013
Return-Path: <doug.mtview@gmail.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 0233411E8285 for <spfbis@ietfa.amsl.com>; Wed, 18 Sep 2013 09:08:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=-0.001, BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OAN3OQN3u2zY for <spfbis@ietfa.amsl.com>; Wed, 18 Sep 2013 09:08:06 -0700 (PDT)
Received: from mail-pa0-x22e.google.com (mail-pa0-x22e.google.com [IPv6:2607:f8b0:400e:c03::22e]) by ietfa.amsl.com (Postfix) with ESMTP id A2B0F11E8256 for <spfbis@ietf.org>; Wed, 18 Sep 2013 09:07:32 -0700 (PDT)
Received: by mail-pa0-f46.google.com with SMTP id fa1so8409276pad.5 for <spfbis@ietf.org>; Wed, 18 Sep 2013 09:07:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=2QpXdSMgnd7aUUvwB+3lZUf/OJ/6h2HcZ4CxbLEaq60=; b=NAWW4ZniK0ve+D+QoDDgsYlQevIuonP30ZtNeD2Sl9Y6et+ipXNuI8J1K4P1r4dW/7 +0KmTD5kCxoHEcvvnEWbn6jKXLnIBYwTTgs/cU2KuxlaCQZ22W+0G1LjtrBOBAgtvVTc Fcf/jufweJGJkt51XnW1s3oA/Q+A2Ui1MmXz1YmEKJGS4GTpUoz3LMSsfOuF/z9IVuJH n+7NMqh1Swl9k0N06dzA+CY89LTIUUKNc7rkC4RW2nXzdgXGz2hIfxX8K3Bnaz2P5kPl phZerZ5cfeZUaZm3YJBMAtrZ3YNBc4bp2fZgyVfzRmbgBooCQjDjVNSNUpSVaCWoB1IT 1OEg==
X-Received: by 10.68.255.229 with SMTP id at5mr15821308pbd.130.1379520446083;  Wed, 18 Sep 2013 09:07:26 -0700 (PDT)
Received: from [192.168.2.232] (c-24-6-103-174.hsd1.ca.comcast.net. [24.6.103.174]) by mx.google.com with ESMTPSA id tx5sm2297304pbc.29.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 18 Sep 2013 09:07:24 -0700 (PDT)
Content-Type: multipart/alternative; boundary="Apple-Mail=_6DFAEF46-564B-42C5-922B-3D0EC934993F"
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
From: Douglas Otis <doug.mtview@gmail.com>
In-Reply-To: <CAL0qLwbW0d8j-vqqxM=d=kWroonE9SkhwZ2S6CDtTcZY7WrJwg@mail.gmail.com>
Date: Wed, 18 Sep 2013 09:07:27 -0700
Message-Id: <E8CF3F85-17AC-4576-91C7-095C96319AF8@gmail.com>
References: <20130912104701.7259.79919.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912065558.0b960550@elandnews.com> <5231D5E5.5070407@cisco.com> <6.2.5.6.2.20130912080503.0c90f9d0@elandnews.com> <18A91BEE-6360-4E1F-9B08-5E45C5217694@gmail.com> <20130914003652.GF78680@mx1.yitter.info> <BD926F72-A6C3-4F0B-BBFB-A18668C9E4AF@gmail.com> <20130916144135.GC79031@mx1.yitter.info> <CAL0qLwbW0d8j-vqqxM=d=kWroonE9SkhwZ2S6CDtTcZY7WrJwg@mail.gmail.com>
To: Murray S. Kucherawy <superuser@gmail.com>
X-Mailer: Apple Mail (2.1508)
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, Andrew Sullivan <ajs@anvilwalrusden.com>
Subject: Re: [spfbis] Benoit Claise's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Wed, 18 Sep 2013 16:08:07 -0000

--Apple-Mail=_6DFAEF46-564B-42C5-922B-3D0EC934993F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=iso-8859-1


On Sep 16, 2013, at 12:03 PM, Murray S. Kucherawy <superuser@gmail.com> =
wrote:

> On Mon, Sep 16, 2013 at 7:41 AM, Andrew Sullivan =
<ajs@anvilwalrusden.com> wrote:
> > In my defense, may I ask whether the draft
> > http://tools.ietf.org/html/draft-otis-spfbis-macros-nixed-01 been
> > reviewed?
>=20
> By me?  Yes.  Widely?  Apparently not.
>=20
> I reviewed it, though it was admittedly some time ago.  I remember =
thinking these things:
>=20
> 1) The draft doesn't identify a single instance of a site that has =
chosen not implement macros.  This is in contrast to the numerous =
applications that use libspf2 to build their SPF checking applications, =
and to the two commercial solutions with which I'm familiar, none of =
which permit one to selectively disable macros.  I understand the need =
to keep client details confidential, but it leaves me wondering why your =
client base is so different than everything else I've observed.  In =
contrast, RFC6648 revealed numerous details about its survey sources, =
and its methods could be repeated today, likely with similar results =
since they are so clearly described, so I would argue that it's far more =
credible work.

You meant RFC6686.  Several assumptions are being made about the use of =
macros in these conversations, but this survey ignored SPF macro =
publication or SPF macro processing.   As such there is no support =
regarding the use or the problems such use should been expected to =
cause.  Lack of information does not offer any credible information =
regarding this aspect of SPF.

> 2) As Andrew observed, there has also not been a document case of the =
amplification attack in the wild.  It seems to me that if this were an =
interesting or worthwhile exploit, we'd have seen one happen by now.

Problems with making these assumptions:

1) SPF does not use dedicated resource records or naming conventions to =
easily identify underlying sources of possible SPF driven queries.
2) DDoS attacks that exploit SPF can make a large number of "normal" =
queries without identifying their use.
3) Not all DDoS attacks are being reported.  Many are not.
4) Major providers will permit exploitation of their resources via SPF.
     Rather than enduring the massive code size and associated high DNS =
overhead,=20
     major providers are more likely to use SPF to weigh IP addresses =
beforehand.=20

There have been recent massive DDoS attacks so extreme care must be =
taken in this regard.

> 3) As Andrew also observed, we are unable to remove it even with the =
slim use that's been documented.  People (including me) made a pretty =
hard push for it, but we are, at least right now, procedurally =
constrained against doing so.

An argument can be made that when a very very small number of domains =
publish a resource record, minimalistic publication should not be =
considered evidence of use or to represent consensus about a feature =
becoming part of a standard.  This would suggest instead the document =
should be considered informational on that basis.  When 0.00053 of =
domains publishing SPF records publish records containing macro expanded =
terms this should not be considered evidence of use.  Just the opposite =
is more likely true.  Secondly, there has not been any interchange =
testing (even by way of DNS logging of macro derived targets) to confirm =
whether such publication offers reasonably assured interchange.  =
Instead, this issue has been ignored by the survey and the WG in terms =
of use and security considerations.=20

> 4) Your co-author on this draft (and on the DKIM one, and on the =
recent IESG appeal about DKIM) is an awfully quiet person for such a =
passionate and potentially serious topic.  Does he not care to help you =
defend the position you're taking?

Does a low rate of emails equate to non-support?

Regards,
Douglas Otis







--Apple-Mail=_6DFAEF46-564B-42C5-922B-3D0EC934993F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=iso-8859-1

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Diso-8859-1"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space; =
"><br><div><div>On Sep 16, 2013, at 12:03 PM, Murray S. Kucherawy &lt;<a =
href=3D"mailto:superuser@gmail.com">superuser@gmail.com</a>&gt; =
wrote:</div><br class=3D"Apple-interchange-newline"><blockquote =
type=3D"cite"><div dir=3D"ltr">On Mon, Sep 16, 2013 at 7:41 AM, Andrew =
Sullivan <span dir=3D"ltr">&lt;<a href=3D"mailto:ajs@anvilwalrusden.com" =
target=3D"_blank">ajs@anvilwalrusden.com</a>&gt;</span> wrote:<br><div =
class=3D"gmail_extra"><div class=3D"gmail_quote">


<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 =
.8ex;border-left:1px #ccc solid;padding-left:1ex">&gt; In my defense, =
may I ask whether the draft<br><div>
&gt; <a =
href=3D"http://tools.ietf.org/html/draft-otis-spfbis-macros-nixed-01" =
target=3D"_blank">http://tools.ietf.org/html/draft-otis-spfbis-macros-nixe=
d-01</a> been<br>
&gt; reviewed?<br>
<br>
</div>By me? &nbsp;Yes. &nbsp;Widely? &nbsp;Apparently =
not.<br></blockquote><div><br></div><div>I reviewed it, though it was =
admittedly some time ago.&nbsp; I remember thinking these =
things:<br><br></div><div>1) The draft doesn't identify a single =
instance of a site that has chosen not implement macros.&nbsp; This is =
in contrast to the numerous applications that use libspf2 to build their =
SPF checking applications, and to the two commercial solutions with =
which I'm familiar, none of which permit one to selectively disable =
macros.&nbsp; I understand the need to keep client details confidential, =
but it leaves me wondering why your client base is so different than =
everything else I've observed.&nbsp; In contrast, RFC6648 revealed =
numerous details about its survey sources, and its methods could be =
repeated today, likely with similar results since they are so clearly =
described, so I would argue that it's far more credible =
work.<br></div></div></div></div></blockquote><div><br></div>You meant =
RFC6686. &nbsp;Several assumptions are being made about the use of =
macros in these conversations, but this survey ignored SPF macro =
publication or SPF macro processing. &nbsp; As such there is no support =
regarding the use or the problems such use should been expected to =
cause. &nbsp;Lack of information does not offer any credible information =
regarding this aspect of SPF.<br><div><br></div><blockquote =
type=3D"cite"><div dir=3D"ltr"><div class=3D"gmail_extra"><div =
class=3D"gmail_quote"><div>2) As Andrew observed, there has also not =
been a document case of the amplification attack in the wild.&nbsp; It =
seems to me that if this were an interesting or worthwhile exploit, we'd =
have seen one happen by =
now.<br></div></div></div></div></blockquote><div><br></div><div>Problems =
with making these assumptions:</div><div><br></div><div>1) SPF does not =
use dedicated resource records or naming conventions to easily identify =
underlying sources of possible SPF driven queries.</div><div>2) DDoS =
attacks that exploit SPF can make a large number of "normal" queries =
without identifying their use.</div><div>3) Not all DDoS attacks are =
being reported. &nbsp;Many are not.</div><div>4) Major providers will =
permit exploitation of their resources via SPF.</div><div>&nbsp; &nbsp; =
&nbsp;Rather than enduring the massive code size and associated high DNS =
overhead,&nbsp;</div><div>&nbsp; &nbsp; &nbsp;major providers are more =
likely to use SPF to weigh IP addresses =
beforehand.&nbsp;</div><div><br></div><div>There have been recent =
massive DDoS attacks so extreme care must be taken in this =
regard.</div><div><br></div><blockquote type=3D"cite"><div =
dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote"><div>3) =
As Andrew also observed, we are unable to remove it even with the slim =
use that's been documented.&nbsp; People (including me) made a pretty =
hard push for it, but we are, at least right now, procedurally =
constrained against doing =
so.<br></div></div></div></div></blockquote><div><br></div>An argument =
can be made that when a very very small number of domains publish a =
resource record, minimalistic publication should not be considered =
evidence of use or to represent consensus about a feature becoming part =
of a standard. &nbsp;This would suggest instead the document should be =
considered informational on that basis. &nbsp;When 0.00053 of domains =
publishing SPF records publish records containing macro expanded terms =
this should not be considered evidence of use. &nbsp;Just the opposite =
is more likely true. &nbsp;Secondly, there has not been any interchange =
testing (even by way of DNS logging of macro derived targets) to confirm =
whether such publication offers reasonably assured interchange. =
&nbsp;Instead, this issue has been ignored by the survey and the WG in =
terms of use and security =
considerations.&nbsp;<br><div><br></div><blockquote type=3D"cite"><div =
dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote"><div>

</div><div>4) Your co-author on this draft (and on the DKIM one, and on =
the recent IESG appeal about DKIM) is an awfully quiet person for such a =
passionate and potentially serious topic.&nbsp; Does he not care to help =
you defend the position you're =
taking?<br></div></div></div></div></blockquote><br></div><div>Does a =
low rate of emails equate to =
non-support?</div><div><br></div><div>Regards,</div><div>Douglas =
Otis</div><div><br></div><div><br></div><div><br></div><div><br></div><div=
><br></div><br></body></html>=

--Apple-Mail=_6DFAEF46-564B-42C5-922B-3D0EC934993F--

From doug.mtview@gmail.com  Wed Sep 18 09:33:51 2013
Return-Path: <doug.mtview@gmail.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 1FA9721F9935 for <spfbis@ietfa.amsl.com>; Wed, 18 Sep 2013 09:33:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[AWL=0.000,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JKckFDLGjNZM for <spfbis@ietfa.amsl.com>; Wed, 18 Sep 2013 09:33:50 -0700 (PDT)
Received: from mail-pb0-x22f.google.com (mail-pb0-x22f.google.com [IPv6:2607:f8b0:400e:c01::22f]) by ietfa.amsl.com (Postfix) with ESMTP id 8D0AD21F98AC for <spfbis@ietf.org>; Wed, 18 Sep 2013 09:33:50 -0700 (PDT)
Received: by mail-pb0-f47.google.com with SMTP id rr4so7187597pbb.6 for <spfbis@ietf.org>; Wed, 18 Sep 2013 09:33:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=m2ojY1Ift7t2YyFLUP8jctsqZbt4VWZr/dP1MRjyGxk=; b=AEewS7ENfXY+JZye8B8FS1ScwLyjqYUh4fNfA9/EE1frGZeCSEp2cY50glvNms1+ee z6ARsT/bGUOA+DADgnNvhAsbxYJVsClnNd1kOUwo0hnVdRnrR89eXeBKKi8NK8I0qyM8 88htMbIA9fEF6YjtcT/yx6kLdtaUQATBekr76UDFZx4ePJsJd0/oNFBwVGFUOg6ioPjM BZcPZOhfRONCzx3OPoV7uGP7qEdjV+q6ceZrH5zJqFbwJesgIaegpoQR8PZC8oG5w42e AQz46E/7E77T69v6A7WdjXBrYbiIZpObZvdvY6y6cZNVX6OEeMWhn6xOnlQMCCe0/K5W WZQw==
X-Received: by 10.66.249.134 with SMTP id yu6mr44336242pac.37.1379522030279; Wed, 18 Sep 2013 09:33:50 -0700 (PDT)
Received: from [192.168.2.232] (c-24-6-103-174.hsd1.ca.comcast.net. [24.6.103.174]) by mx.google.com with ESMTPSA id fy4sm3571931pbb.1.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 18 Sep 2013 09:33:49 -0700 (PDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
From: Douglas Otis <doug.mtview@gmail.com>
In-Reply-To: <20130915213604.GB78902@mx1.yitter.info>
Date: Wed, 18 Sep 2013 09:33:51 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <74A0E850-9240-4EB4-8497-16DA31FB2B5E@gmail.com>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <6.2.5.6.2.20130913152347.0c874cb8@elandnews.com> <BA4D9B3E-F9A6-46AF-BBA7-D6AD463020CA@gmail.com> <20130914001204.GB78680@mx1.yitter.info> <72C262F1-0715-499D-948F-989A9A007824@gmail.com> <20130915213604.GB78902@mx1.yitter.info>
To: Andrew Sullivan <ajs@anvilwalrusden.com>
X-Mailer: Apple Mail (2.1508)
Cc: spfbis@ietf.org
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review (response size)
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: Wed, 18 Sep 2013 16:33:51 -0000

On Sep 15, 2013, at 2:36 PM, Andrew Sullivan <ajs@anvilwalrusden.com> =
wrote:

> No hat.
>=20
> On Fri, Sep 13, 2013 at 05:34:41PM -0700, Douglas Otis wrote:
>>=20
>> I did not recommend this value, but I did say it sounded like =
reasonable advice.=20
>=20
> There is exactly one historic built-in limit to the DNS for UDP
> packets, and that is 512 octets.

Dear Andrew,

You have made the same mistake made in SPFbis.  There has never been a =
UDP limit imposed by DNS.  There is however a DNS Message limit imposed =
at 512 octets.  In addition to the DNS Message, is the UDP and IP =
header.  The size of the IP and UDP header depends upon IP version.=20

>  Lots of middleboxes drop UDP packets
> on port 53 larger than 512 octets.

They are likely dropping DNS Messages larger than 512 octets.  They =
might be dropping packets larger than 576 octets, but that seems =
unlikely.=20

> Many equipment manufacturers have
> shipped equipment that, by default, drops packets over 512 octets on
> port 53.  The 512 octets does not apply to TCP.  If it did, zone
> transfers would be impossible.

This would be a correct statement only in regard to that of the DNS =
Message size.

> Everything else -- all the noise about MTUs and so on -- is rank
> speculation.  There's _all kinds_ of breakage out there with large MTU
> sizes.  Heck, some of the CGNs appear to end up with real MTUs across
> the network way below any threshold we're discussing.  But this
> document should not be a general purpose document about all the
> possible ways this protocol could interact with everything else
> everywhere on the Internet.  This is a protocol document.

The MTU size MUST be increased to support DNSSEC.  IPv6 also changes the =
minimum MTU.  Since SPFbis does not have purview over whether IPv6 or =
DNSSEC is used, these environments MUST be considered with SPFbis's =
incredibly complex macro expanded protocol able to emit hundreds of UDP =
packet into DNS all on behalf of unknown entities where targets can be =
modulated by message elements rather than DNS content.   What might seem =
like a subtle difference can lead to significant increase in network =
amplification.

> As I have said several times, if someone wants to write an operational
> guidance document, I have no objection.  But the protocol document
> shouldn't be providing that, at least in detail.  It is arguably
> already too heavy in that direction.

What type of operational guide? There is no operational defense able to =
mitigate SPFbis macro use that I am aware of except for email providers =
ignoring SPF records containing macros.  What did you have in mind?=20

Regards,
Douglas Otis=

From doug.mtview@gmail.com  Wed Sep 18 11:20:26 2013
Return-Path: <doug.mtview@gmail.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 952AF11E80DE; Wed, 18 Sep 2013 11:20:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.855
X-Spam-Level: 
X-Spam-Status: No, score=-1.855 tagged_above=-999 required=5 tests=[AWL=-0.745, BAYES_05=-1.11]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Rs3vF4jP+Udz; Wed, 18 Sep 2013 11:20:25 -0700 (PDT)
Received: from mail-pb0-x235.google.com (mail-pb0-x235.google.com [IPv6:2607:f8b0:400e:c01::235]) by ietfa.amsl.com (Postfix) with ESMTP id 790FB21F9C9A; Wed, 18 Sep 2013 11:20:25 -0700 (PDT)
Received: by mail-pb0-f53.google.com with SMTP id up15so7293976pbc.40 for <multiple recipients>; Wed, 18 Sep 2013 11:20:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=6eFDg1BrMZy/NwQT1e4r/AkJlDx6kmWtkzB3ui6+W/M=; b=ITpgBUoVcTA0XKcSSSCDcGYerJ3pcT1p/zKzE+fY0NueF5WtxONqgW0WJTU6O/9xbj gz6m82EUgWpz0AiLGQPY+7D+/5LmX9UQWGJQpG/rW9J4oWkdQ7gOS3bsZy0kanZsFeHk gkRfe/vU7PygIMZqX/BGWOaP3a+vO/w7atpxkW10w4AiUTcCZEyRMiDKTFUSBpUE4lPZ eRUJJRQktMn7GiTB1UZbcfcELf5SwPmpfJRw3kX7XTrhCi6ByF773qlGElaXzY7T8DBX gov/BvM2A6+NFpDM7lLWHF4DvYUdNaQwmw5w69iKH2MREjnvRlSzxnf8Ft36hGPY8DlQ geHA==
X-Received: by 10.66.163.164 with SMTP id yj4mr44971994pab.91.1379528420222; Wed, 18 Sep 2013 11:20:20 -0700 (PDT)
Received: from [192.168.2.232] (c-24-6-103-174.hsd1.ca.comcast.net. [24.6.103.174]) by mx.google.com with ESMTPSA id yh1sm4030453pbc.21.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 18 Sep 2013 11:20:19 -0700 (PDT)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
From: Douglas Otis <doug.mtview@gmail.com>
In-Reply-To: <6.2.5.6.2.20130916014542.0b496658@elandnews.com>
Date: Wed, 18 Sep 2013 11:20:17 -0700
Content-Transfer-Encoding: quoted-printable
Message-Id: <6F17786D-77A9-4B15-BA6B-FFA40E1E02D6@gmail.com>
References: <6FC7A544-0AB5-4BC0-A0BF-D0D8D740D3B8@gmail.com> <6.2.5.6.2.20130916014542.0b496658@elandnews.com>
To: S Moonesamy <sm+ietf@elandsys.com>
X-Mailer: Apple Mail (2.1508)
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Pete Resnick <presnick@qti.qualcomm.com>, ietf@ietf.org, Scott Kitterman <spf2@kitterman.com>
Subject: Re: [spfbis] Macro Expansion (was: Last Call: <draft-ietf-spfbis-4408bis-19.txt> (Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1) to Proposed Standard)
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: Wed, 18 Sep 2013 18:20:26 -0000

Dear SM,

See comments inline.

On Sep 16, 2013, at 9:00 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:

> Hi Doug,
> At 21:55 11-09-2013, Douglas Otis wrote:
>> Add to:
>> 11.5.3.  Macro Expansion
>> ,---
>> It is not within SPF's purview whether IPv6 or DNSSEC is being used.  =
IPv6 (RFC2460) increased the minimum MTU size to 1280 octets.  DNSSEC is =
deployed with EDNS0 (RFC6891) to avoid TCP fallback.  EDNS0 suggests an =
MTU increase between 1280 and 1410 octets offers a reasonable result =
starting from a request of 4096 octets.  A 1410 MTU offers a 2.4 times =
payload increase over the assumed MTU of 576 octets and is widely =
supported by Customer Premise Equipment.  With increased MTUs being used =
with DNS over UDP, network amplification concerns increase accordingly.
>>=20
>> SPF macros can utilize SPF parameters derived from email messages =
that can modulate the names being queried in several ways without =
publishing additional DNS resources.  The SPF macro feature permits =
malefactors a means to covertly orchestrate directed DDoS attacks from =
an array of compromised systems while expending little of their own =
resources.
>>=20
>> Since SPF does not make use of a dedicated resource record type or =
naming convention, this leaves few solutions available to DNS operations =
in offering a means to mitigate possible abuse.  This type of abuse =
becomes rather pernicious when used in conjunction with synthetic =
domains now popular for tracking users without using web cookies.
>>=20
>> However, email providers can mitigate this type of abuse by ignoring =
SPF records containing macros.  Very few domains make use of macros, and =
ignoring these records result in neutral handling.  Some large providers =
have admitted they make use of this strategy without experiencing any =
notable problem.  AOL began their support of SPF by saying they would =
use SPF to construct whitelists prior to receipt of email.  Clearly, =
such whitelisting practices tends to preclude benefits derived from =
macro use.
>> '---
>=20
> As background information I read draft-otis-spfbis-macros-nixed-01.  I =
read the messages where EDNS0 was mentioned [1].  I read the messages on =
the thread starting with msg-id: =
9884B9CD-0ED3-4D89-A100-58D05EA4BC98@gmail.com.  I have followed the =
discussions about macros ever since the SPFBIS WG was chartered.
>=20
> The above suggestion is to add text in the Security Considerations =
section of the draft.  The problem being pointed out is, in simple =
terms, DNS amplification.  The first (quoted) paragraph argues that =
there can be an acute problem because of EDNS0 as specified in the =
Internet Standard.
>=20
> The second paragraph starts with SPF macros can utilize SPF parameters =
derived from email messages".  I do not understand that.  =46rom what I =
understand the rest of the second (quoted) paragraph argues that the SPF =
macro feature permits evildoers to use it as an attack vector.

Since this was not understood, I'll attempt to clarify.  An effort to =
keep these conversations fairly concise seems to lead to a level of =
confusion with those not familiar with DNS.

DNS UDP traffic lacks congestion avoidance when used to covertly direct =
attacks.  Residential systems represent a large component of compromised =
systems involved with email although data centers measured by overall =
traffic is increasing.  Network amplification is measured by gains =
beyond exchanges initiating a higher volume of exchanges.  DNS caching =
tends to reduce subsequent exchanges.  SPFbis macros inhibit normal =
caching protections by imposing mechanisms not directly supported by DNS =
and having targets constructed from email message components.  SPFbis =
mechanism names can be misleading since they are given a related =
manipulated DNS resource name.  One SPFbis mechanism can represent more =
than 100 subsequent DNS transactions where normally resolving the =
resource would represent a single transaction.  Publishing new targets =
within DNS resources to circumvent caching would normally be expensive =
and unlikely to provide remarkable gain.  SPFbis macros change this =
equation significantly.  SPFbis offers macros to translate code points, =
restructure host labels, build labels from the client IP address, make =
use of the local-part of the message return path or some label in the =
EHLO hostname, etc.

In other words, SPFbis macros permit malefactors a means to modulate the =
target of their queries while still leveraging their own cached DNS =
records.  This means a malefactors' DNS resources can be highly =
leveraged as a result of recipient SPFbis macro processing.  Secondly, =
SPFbis also ignores the overall size of the resources being queried in =
many cases.   The most egregious is perhaps that of the unlimited PTR =
RRsets which then results in a series of address RRset resolutions =
cascading down the hostname labels that happens for a maximum of 10 PTRs =
that might be offered on either a random or round robin basis.  It would =
be extremely difficult to determine the number of transactions and =
overall traffic volume any single PTR mechanism might impose, for =
example.=20

> The argument in the third (quoted) paragraph is that it is not =
possible to mitigate possible (DNS) abuse due to the SPF as it does not =
have a dedicated resource record type.

Or a naming convention that might support mitigation efforts.

> The fourth (quoted) paragraph argues that macros should be ignored.  =
That paragraph also mentions that some large providers admitted to using =
that strategy.  I am not aware of any public reports about that.

As was said, AOL made their use of prefetching of SPF public at the =
beginning which precluded use of macros.  Others have also adopted this =
practice but have not made their use public.

> I read draft-otis-spfbis-macros-nixed-01 again to try and understand =
the problem.  It seems to be the:
>=20
>  '{%l}._spf.{%d} or exists:{%i}_spf.{%d} can  be used in "specialized"
>   DNS servers able to understand encrypted local-parts'

There is nothing in SPFbis that limits the structured use of DNS =
resources.  In this example, it shows the expansion of the return path =
local-part, which represents a non-suspicious variable not derived from =
DNS, that can increase the leverage obtained in DNS related attacks.  A =
similar attack might manipulate HELO hostname or  MAIL FROM domain =
labels as well.=20

> which is discussed in Appendix E of draft-ietf-spfbis-4408bis-20.
>=20
> Arthur Thisell commented about the "specialized DNS server".  He =
mentioned that at the time that text was written two people came forward =
to say that they were doing that.  During the SPFBIS discussions nobody =
stated that he or she has implemented or is using a "specialized" DNS =
server.
>=20
> I'll ask the person editing draft-ietf-spfbis-4408bis or the SPFBIS WG =
to provide some publicly verifiable cases where these examples are used.
>=20
> I assume that the SPFBIS WG and the Responsible Area Director have =
understood the mathematics relating to EDNS0 and DNS amplification.  =
Anyone who has not understood that part is welcome to raise the issue on =
the SPFBIS mailing list.
>=20
> The discussion about the "dedicated resource record type" has led to =
agreement.  I'll describe the agreement as something people can live =
with.  In my opinion it is better not to start another discussion about =
that.
>=20
> I hope that what I wrote above clearly explains what I have understood =
and what I have not understood.
>=20
> Regards,
> S. Moonesamy (as document shepherd)

Regards,
Douglas Otis



From presnick@qti.qualcomm.com  Wed Sep 18 11:49:59 2013
Return-Path: <presnick@qti.qualcomm.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 D279611E810B; Wed, 18 Sep 2013 11:49:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.407
X-Spam-Level: 
X-Spam-Status: No, score=-106.407 tagged_above=-999 required=5 tests=[AWL=0.192, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Rw1uvUhl9-Et; Wed, 18 Sep 2013 11:49:55 -0700 (PDT)
Received: from wolverine02.qualcomm.com (wolverine02.qualcomm.com [199.106.114.251]) by ietfa.amsl.com (Postfix) with ESMTP id 9DEE511E8108; Wed, 18 Sep 2013 11:49:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qti.qualcomm.com; i=@qti.qualcomm.com; q=dns/txt; s=qcdkim; t=1379530195; x=1411066195; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=Ta580HfYO2qfxSmiK6AodmwdJozZpBRb7NGINPGSCFo=; b=FSaFTpz6BBvcIbAyhY27wShnSCEy1FKsBRkBiBnd1olE/kig72+TUptM kqJ0QGh5VpuKtalL03eTezC6/pGjHYB6tLKMMCOUyh1phq8WnTuQyTk8J etrriZIDzPUMI9QSLpTdagKHXp5x4EKTBfIR3Bu2tATQ0SBYHXcLTQAQn s=;
X-IronPort-AV: E=McAfee;i="5400,1158,7202"; a="75363869"
Received: from ironmsg03-l.qualcomm.com ([172.30.48.18]) by wolverine02.qualcomm.com with ESMTP; 18 Sep 2013 11:49:55 -0700
X-IronPort-AV: E=McAfee;i="5400,1158,7202"; a="539263502"
Received: from nasanexhc12.na.qualcomm.com ([172.30.39.187]) by Ironmsg03-L.qualcomm.com with ESMTP/TLS/RC4-SHA; 18 Sep 2013 11:49:55 -0700
Received: from nasanexhc05.na.qualcomm.com (172.30.48.2) by nasanexhc12.na.qualcomm.com (172.30.39.187) with Microsoft SMTP Server (TLS) id 14.3.146.2; Wed, 18 Sep 2013 11:49:54 -0700
Received: from resnick2.qualcomm.com (172.30.48.1) by qcmail1.qualcomm.com (172.30.48.2) with Microsoft SMTP Server (TLS) id 14.3.146.2; Wed, 18 Sep 2013 11:49:54 -0700
Message-ID: <5239F5D0.50600@qti.qualcomm.com>
Date: Wed, 18 Sep 2013 13:49:52 -0500
From: Pete Resnick <presnick@qti.qualcomm.com>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.7; en-US; rv:1.9.1.9) Gecko/20100630 Eudora/3.0.4
MIME-Version: 1.0
To: Douglas Otis <doug.mtview@gmail.com>
X-Priority: 2 (High)
References: <6FC7A544-0AB5-4BC0-A0BF-D0D8D740D3B8@gmail.com>	<6.2.5.6.2.20130916014542.0b496658@elandnews.com> <6F17786D-77A9-4B15-BA6B-FFA40E1E02D6@gmail.com>
In-Reply-To: <6F17786D-77A9-4B15-BA6B-FFA40E1E02D6@gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [172.30.48.1]
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, Scott Kitterman <spf2@kitterman.com>, S Moonesamy <sm+ietf@elandsys.com>, ietf@ietf.org
Subject: Re: [spfbis] Macro Expansion
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: Wed, 18 Sep 2013 18:50:00 -0000

Posting as the responsible AD for the document in question.

On 9/18/13 1:20 PM, Douglas Otis wrote:
> Since this was not understood, I'll attempt to clarify.  An effort to keep these conversations fairly concise seems to lead to a level of confusion with those not familiar with DNS.
>    

I'm afraid I'm going to have to end this thread here and now. The 
problem is not that Doug has tried to keep his explanations concise, or 
that people are not familiar with the DNS and therefore confused. The 
latter may or may not be true, but the problem here is precisely that 
Doug has failed to keep things concise and on point. This is not meant 
as an insult to Doug, and I apologize to him publicly just in case he 
feels offended. It is simply the fact that he is unable to clearly and 
concisely explain to others the security problem he believes exists in 
this protocol. For example:

> SPFbis macros inhibit normal caching protections by imposing mechanisms not directly supported by DNS and having targets constructed from email message components.

Doug never explains in this sentence *what* the mechanisms are the 
SPFbis macros are using, he never explains *in what way* those 
mechanisms are not supported by the DNS, he never explains *how* use of 
these mechanisms inhibits caching, and never gives an example of *how* 
the targets (I presume attack targets) are constructed.

After a long conversation with Doug, I *think* I may understand what 
he's raising. I *suspect* the issue could be addressed by a sentence or 
two added to 11.5.3 or, more likely, to the third and fourth bullet of 
11.1. But I'm not sure, and even after that long conversation, I was 
unable to get a clean explanation of the problem or reasonable text for 
a solution.

So, barring further information, I am simply forced to say that Doug is 
going to be in the rough part of the consensus. If someone else thinks 
they will be able to clearly and concisely characterize the problem and 
propose some text, I welcome such suggestions, though I ask that you 
communicate first with the SPFBIS chairs and/or myself to make sure that 
we all understand the specifics. We are far past the point of 
diminishing returns now, and I do not wish further disruption to either 
the IETF list or the SPFBIS list on this topic.

Again, I intend no insult to Doug, and I again apologize to him for 
having to take this step publicly. I hope, if there is a problem here 
that needs to be noted, that Doug can work with someone else so that we 
can improve the document.

Thanks.

pr

-- 
Pete Resnick<http://www.qualcomm.com/~presnick/>
Qualcomm Technologies, Inc. - +1 (858)651-4478


From SRS0=Kz+Z0=S6==stuart@gathman.org  Wed Sep 18 13:36:49 2013
Return-Path: <SRS0=Kz+Z0=S6==stuart@gathman.org>
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 DA9BE11E8111 for <spfbis@ietfa.amsl.com>; Wed, 18 Sep 2013 13:36:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ty-7Um-bzjC2 for <spfbis@ietfa.amsl.com>; Wed, 18 Sep 2013 13:36:36 -0700 (PDT)
Received: from mail.gathman.org (gathman.marcomm.net [IPv6:2001:470:8:688::10]) by ietfa.amsl.com (Postfix) with ESMTP id B26ED11E8138 for <spfbis@ietf.org>; Wed, 18 Sep 2013 13:36:20 -0700 (PDT)
Authentication-Results: mail.gathman.org; auth=pass (PLAIN sslbits=256) smtp.auth=stuart
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gathman.org; i=@gathman.org;  q=dns/txt; s=default; t=1379536585; h=Message-ID : Date : From :  MIME-Version : To : Subject : References : In-Reply-To : Content-Type : Content-Transfer-Encoding : Date : From : Subject;  bh=lqFTjrm5gWvKyIQkBVEr1VgCSbuKlR1A49Q7PfXrWD8=;  b=gqWmBO69/qMfVPqu76QVI7BaHQo6TOZhQk7pdJib0fTEGD5c1wNEtJP9d5aWkVGoLhP9J/ XvUGnYYsuQUSkhLqZT3KbnL0kkQCDB6NTiK8tbVACLJLLq0Z6P/oVrGiA4xo7fc11PXdKf8y sCM12YkzlOchB+ASewgCC6GMjuaBY=
Received: from silver.gathman.org ([IPv6:2001:470:8:809:11::1015]) (authenticated bits=0) by mail.gathman.org (8.14.4/8.14.4) with ESMTP id r8IKaIs5027492 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO) for <spfbis@ietf.org>; Wed, 18 Sep 2013 16:36:24 -0400
Message-ID: <523A0EBA.6040104@gathman.org>
Date: Wed, 18 Sep 2013 16:36:10 -0400
From: Stuart Gathman <stuart@gathman.org>
Organization: BWI Corporation
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130805 Thunderbird/17.0.8
MIME-Version: 1.0
To: spfbis@ietf.org
References: <6FC7A544-0AB5-4BC0-A0BF-D0D8D740D3B8@gmail.com>	<6.2.5.6.2.20130916014542.0b496658@elandnews.com> <6F17786D-77A9-4B15-BA6B-FFA40E1E02D6@gmail.com> <5239F5D0.50600@qti.qualcomm.com>
In-Reply-To: <5239F5D0.50600@qti.qualcomm.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Subject: Re: [spfbis] Macro Expansion
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: Wed, 18 Sep 2013 20:47:29 -0000

On 09/18/2013 02:49 PM, Pete Resnick wrote:
>
> I'm afraid I'm going to have to end this thread here and now. The 
> problem is not that Doug has tried to keep his explanations concise, 
> or that people are not familiar with the DNS and therefore confused. 
> The latter may or may not be true, but the problem here is precisely 
> that Doug has failed to keep things concise and on point. This is not 
> meant as an insult to Doug, and I apologize to him publicly just in 
> case he feels offended. It is simply the fact that he is unable to 
> clearly and concisely explain to others the security problem he 
> believes exists in this protocol. For example:
>
>> SPFbis macros inhibit normal caching protections by imposing 
>> mechanisms not directly supported by DNS and having targets 
>> constructed from email message components.
>
> Doug never explains in this sentence *what* the mechanisms are the 
> SPFbis macros are using, he never explains *in what way* those 
> mechanisms are not supported by the DNS, he never explains *how* use 
> of these mechanisms inhibits caching, and never gives an example of 
> *how* the targets (I presume attack targets) are constructed.
>
Most macros are harmless, but the localpart macro is "constructed from 
email components" as is the helo macro.  In particular, a malicious 
sender can vary the localpart with every MAIL FROM on the same 
connection, causing a unique set of DNS lookups when SPF is checked.  
(The HELO can only be varied every connection.)

Of course, in real life, unless the malicious sender manages to actually 
send some mail (in which case the "amplification" aspect is moot), the 
IP is banned after a handful of attempts at such nonsense.

From johnl@iecc.com  Wed Sep 18 15:39:59 2013
Return-Path: <johnl@iecc.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 3394C11E81C6 for <spfbis@ietfa.amsl.com>; Wed, 18 Sep 2013 15:39:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.609
X-Spam-Level: 
X-Spam-Status: No, score=-102.609 tagged_above=-999 required=5 tests=[AWL=-0.010, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id XX-rP3YxicWH for <spfbis@ietfa.amsl.com>; Wed, 18 Sep 2013 15:39:54 -0700 (PDT)
Received: from leila.iecc.com (leila6.iecc.com [IPv6:2001:470:1f07:1126:0:4c:6569:6c61]) by ietfa.amsl.com (Postfix) with ESMTP id 0377F11E81A1 for <spfbis@ietf.org>; Wed, 18 Sep 2013 15:39:53 -0700 (PDT)
Received: (qmail 1680 invoked from network); 18 Sep 2013 22:39:48 -0000
Received: from leila.iecc.com (64.57.183.34) by mail1.iecc.com with QMQP; 18 Sep 2013 22:39:48 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=iecc.com; h=date:message-id:from:to:cc:subject:in-reply-to:mime-version:content-type:content-transfer-encoding; s=523a2bb4.xn--btvx9d.k1309; i=johnl@user.iecc.com; bh=7tSHvsYVoM9/lZbbF+9HDxEqhuUZofGUiV7Ge2SzyfI=; b=KTLoJnggfQCB5YaZa0+4NSGK2/TyNQ2m0UYt4rctJ2m4HKcmHFjP/k+qeto5qQ5TrGcP6g2O/mNF8qcjEVKdOWipxAxmfNs8iiPvKZbabFa3fIgySsUn6wvhcFq5TzRySI77abcaHdlQrMFyuX3mNCvpN/62dSx245JZOOnfiIeHq2IXUrXikppVEwwc5PjZ1hY9QkArjazLgN5a6COvwPw92+wJxaAKWF46PGhB9FxD52ZP69s7zmfb4FjhMOUR
DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=taugh.com; h=date:message-id:from:to:cc:subject:in-reply-to:mime-version:content-type:content-transfer-encoding; s=523a2bb4.xn--btvx9d.k1309; olt=johnl@user.iecc.com; bh=7tSHvsYVoM9/lZbbF+9HDxEqhuUZofGUiV7Ge2SzyfI=; b=YREesJJ2GRqh+XmFyZiPHqHAiZlPOjqqMQo0if3tXGEuHavCEVNXCANx5PXYRE3Sada7pys84RH+V+Sok/9xRHRdKrmupuM603BdUilRMUsNH3fZ6M4v35Q37xEQ8QtkEHvnE/1GjmuRy/urVmb5DpmqDu96bE/uvh24GnpjpS2y+gyvH4aEVHbPnh4jy6qZaQ5imdkSnG2jX3CWnL46EB0gIl5Bu2U8jSZmGmwgKu/i6jlPYMZND1v4yOvhMHOB
Date: 18 Sep 2013 22:39:25 -0000
Message-ID: <20130918223925.10877.qmail@joyce.lan>
From: "John Levine" <johnl@taugh.com>
To: spfbis@ietf.org
In-Reply-To: <523A0EBA.6040104@gathman.org>
Organization: 
X-Headerized: yes
Mime-Version: 1.0
Content-type: text/plain; charset=utf-8
Content-transfer-encoding: 8bit
Cc: stuart@gathman.org
Subject: Re: [spfbis] Macro Expansion
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: Wed, 18 Sep 2013 22:39:59 -0000

>Most macros are harmless, but the localpart macro is "constructed from 
>email components" as is the helo macro.  In particular, a malicious 
>sender can vary the localpart with every MAIL FROM on the same 
>connection, causing a unique set of DNS lookups when SPF is checked.  
>(The HELO can only be varied every connection.)

Sheesh.  That's on a par with putting fake DKIM signatures with random
selectors on your spam.  Yes, it causes some DNS traffic, but there are
much easier ways to provoke DNS floods if that's what you want to do.

Enough, already.


From spf2@kitterman.com  Sun Sep 22 21:27:03 2013
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 C191211E816F for <spfbis@ietfa.amsl.com>; Sun, 22 Sep 2013 21:27:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.07
X-Spam-Level: 
X-Spam-Status: No, score=0.07 tagged_above=-999 required=5 tests=[AWL=-2.232,  BAYES_50=0.001, HTML_MESSAGE=0.001, MANGLED_SAVELE=2.3]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id V5aiitDZw0qW for <spfbis@ietfa.amsl.com>; Sun, 22 Sep 2013 21:26:58 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 8C95711E80D7 for <spfbis@ietf.org>; Sun, 22 Sep 2013 21:26:57 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id B558E20E4124; Mon, 23 Sep 2013 00:26:54 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1379910414; bh=vfbEqKqIHfOeggArvWnwVXLAMhc1caGYnT6XOrxvCeg=; h=From:To:Subject:Date:In-Reply-To:References:From; b=kdiKMQ9VYud2u2D4MY5aWrUbvrhxpczE1HWXzDxts6nKXHn7WHSK+vChp7Lu3ughf RPZP6ca9QdBTqkUYbbNjFnm++EL1NxcEmq/PAfi5CJNYdI+Zbvu7UM+mdGuZT4gAG0 LECzHZwBpgB7xMu95ICpotG5cipPmQlBkPkXCBEE=
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 9154820E4099;  Mon, 23 Sep 2013 00:26:54 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Mon, 23 Sep 2013 00:26:53 -0400
Message-ID: <5681464.EQGBnZhqiI@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <1409783.xNJeGdWPul@scott-latitude-e6320>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.gmail.com> <1409783.xNJeGdWPul@scott-latitude-e6320>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="nextPart2989640.dMaItEDoA5"
Content-Transfer-Encoding: 7Bit
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Mon, 23 Sep 2013 04:27:03 -0000

This is a multi-part message in MIME format.

--nextPart2989640.dMaItEDoA5
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"

Finally getting back to addressing additional comments.  I have it in my notes 
that we hadn't addressed the comment part of this in -20.  Based on the 
comments I previously sent to the list, I'm attaching my proposed changes (so 
far - there are more messages needing processing) for -21.  Additional 
comments embedded below.

Scott K

On Wednesday, September 11, 2013 17:38:27 Scott Kitterman wrote:
> On Wednesday, September 11, 2013 10:23:57 Murray S. Kucherawy wrote:
> > On Wed, Sep 11, 2013 at 5:04 AM, S Moonesamy <sm+ietf@elandsys.com> wrote:
> > >> ------------------------------**------------------------------**
> > >> ----------
> > >> COMMENT:
> > >> ------------------------------**------------------------------**
> > >> ----------
> > >> 
> > >> I have a bunch of editorial comments that I'd like you to consider.
> > >> They're all non-blocking, but I think they'll improve the document, and
> > >> I'll be happy to chat about them if you like.
> > >> 
> > >> -- Section 2.5 --
> > >> 
> > >>    Performing the authorization check other than using the MAIL FROM
> > >>    and
> > >>    client address at the time of the MAIL command during the SMTP
> > >>    transaction can cause problems, such as the following: (1) It might
> > >>    be difficult to accurately extract the required information from
> > >>    potentially deceptive headers; (2) legitimate email might fail
> > >>    because the sender's policy had since changed.
> > >> 
> > >> I found that to be awkwardly worded and hard to understand.  Please
> > >> consider this rewrite:
> > >> 
> > >> NEW
> > >> 
> > >>    The authorization check is performed during the SMTP transaction
> > >>    at the time of the MAIL command, and uses the MAIL FROM value and
> > >>    the client IP address.  Performing the check at later times or
> > >>    with other input can cause problems such as the following:
> > >>    
> > >>    *  It might be difficult to accurately extract the required
> > >>    
> > >>       information from potentially deceptive headers.
> > >>    
> > >>    *  Legitimate email might fail the authorization check because
> > >>    
> > >>       the sender's policy has since changed.
> > >> 
> > >> END
> > 
> > Seems reasonable.
> 
> Agreed.

Done.

> > >> -- Section 2.6 --
> > >> 
> > >> It would really read best if the subsections were worded to be
> > >> parallel.
> > >> As it stands, subsections 1, 3, 4, 6, and 7 are worded as "result X
> > >> means
> > >> Y", and subsections 2 and 5 are not.  Can you re-word 2 and 5 to be
> > >> parallel to the others?
> > 
> > Seems reasonable.
> 
> Agreed.

Done.

> > >> Also, why are "neutral" and "fail" called "explicit statements", but
> > >> "pass", for example, is not?
> > 
> > I agree, "pass" should be.
> 
> Yep.

Done.

> > >> -- Section 3 --
> > >> 
> > >>    Each SPF record is placed in the DNS tree at the owner name it
> > >>    pertains to, not a subdomain under it, such as is done with SRV
> > >>    records [RFC2782].
> > >> 
> > >> This looks like it's saying that SRV records are placed in subdomains,
> > >> and I don't think that's what you mean.  Or is it?  In any case, it's
> > >> not
> > >> clear (and I know this text is from the original).
> > >> 
> > >> Maybe this (which also avoids the two different "it"s)?:
> > >> 
> > >> NEW
> > >> 
> > >>    Each SPF record is placed in the DNS tree at the owner name it
> > >>    pertains to, not in a subdomain under the owner name.  This is
> > >>    similar to how SRV records [RFC2782] are done.
> > >> 
> > >> END
> > 
> > Seems reasonable.
> 
> Agreed.

Done.

> > >>    The example in this section might be published via these lines in a
> > >>    
> > >>    domain zone file:
> > >>       example.com. TXT "v=spf1 +mx a:colo.example.com/28 -all"
> > >>       smtp-out.example.com. TXT "v=spf1 a -all"
> > >> 
> > >> What does "smtp-out" have to do with anything?  It's not otherwise
> > >> used,
> > >> and it seems to contradict what you say about subdomains in the
> > >> previous
> > >> paragraph.
> > 
> > Hmm.  Someone else will have to comment on this one.
> 
> Those are just two examples, but the preceding text is poorly worded (I
> checked and it's no better in RFC 4408).  How about this instead, to
> clarify:
> 
>    The example in this section (plus an additional SPF record for
>    smtp-out.example.com) might be published via these lines in a
>    domain zone file:
> 
>       example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"
>       smtp-out.example.com. TXT "v=spf1 a -all"

Already fixed in -20.

> > >> -- Section 4 --
> > >> 
> > >>    This description is not an API (Application Program Interface)
> > >>    definition,
> > >> 
> > >> Two total nits on this:
> > >> 1. You never use "API" other than here, so there's no need to define
> > >> it,
> > >> and
> > >> 2. the usual expansion of "API" is application programMING interface.
> > >> I suggest, "This description is not an application programming
> > >> interface
> > >> definition, [etc]."
> > 
> > Seems reasonable.
> 
> Agreed.

Done.

> > >> -- 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 is discarded.
> > >> 
> > >> Sure, and "v=spf1.0" doesn't match, and "v=spf11" doesn't match,
> > >> and....
> > >> Why is it necessary or desirable to single out "v=spf10" here?
> > 
> > I think "v=spf1.0" is actually the better (and perhaps intended) example,
> > meaning "don't just stuff the part after 'spf' through a number parser and
> > make sure 1 comes out".
> 
> The intent here is to show that you have to look at least one character past
> "v=spf1" to know if it's an SPF record or not.  It's an example.  As such,
> it doesn't matter much wrt the point if it's "v=spf10", "v=spf1.0", or or
> "v=spf1hatespf".  None of those start SPF records.  What's there is
> unchanged from RFC 4408.  I don't seem much of a point in changing it, but
> if others think 1.0 is better than 10, I don't mind.

There was already a change for this in -20.

> > >> -- Section 4.6.4 --
> > >> 
> > >>    SPF implementations MUST limit the total number of mechanisms and
> > >>    modifiers ("terms") that cause any DNS query to 10 during SPF
> > >>    evaluation.  Specifically, the "include", "a", "mx", "ptr", and
> > >>    "exists" mechanisms as well as the "redirect" modifier count against
> > >>    this collective limit.  The "all", "ip4", and "ip6" mechanisms do
> > >>    not
> > >>    count against this limit.  If this number is exceeded during a
> > >>    check,
> > >>    a "permerror" MUST be returned.  The "exp" modifier does not count
> > >>    against this limit because the DNS lookup to fetch the explanation
> > >>    string occurs after the SPF record evaluation has been completed.
> > >> 
> > >> When I read this, I start feeling like I'm being read the rules for
> > >> Fizzbin
> > >> <http://en.wikipedia.org/wiki/**Fizzbin#Fizzbin<http://en.wikipedia.org
> > >> /
> > >> wiki/Fizzbin#Fizzbin>>.>>
> > >> 
> > >>  I would
> > >> appreciate it if this was re-worded so that there are two clear lists
> > >> here: the terms that are included in the "limit of 10", and the terms
> > >> that are not (and are, presumably, unlimited).  Perhaps something like
> > >> this:
> > >> 
> > >> NEW
> > >> 
> > >>    Some mechanisms and modifiers (collectively, "terms") cause DNS
> > >>    queries at the time of evaluation, and some do not.  The following
> > >>    terms cause DNS queries: <list goes here>.  SPF implementations
> > >>    MUST limit the total number of those terms to 10 during SPF
> > >>    evaluation, to avoid unreasonable load on the DNS.  If this limit
> > >>    is exceeded, the implementation MUST return "permerror".  The other
> > >>    terms (<list goes here>) do not cause DNS queries at the time of
> > >>    SPF evaluation, and their use is not subject to this limit.
> > >> 
> > >> END
> > >> 
> > >> If you think it's necessary (I don't):
> > >> 
> > >> NEW+
> > >> 
> > >>    The other
> > >>    terms (<list goes here>) do not cause DNS queries at the time of
> > >>    SPF evaluation (the "exp" modifier causes a lookup at a later time),
> > >>    and their use is not subject to this limit.
> > >> 
> > >> END
> > 
> > I like the new text, and prefer the second bit be included.
> 
> If we change, and I think that's reasonable, the second bit should
> definitely be included.  "exp" not counting in the 10 has confused people
> and we should be explicit about it.

Done.

> > >> Then in the next two paragraphs, I think it would improve clarity to
> > >> make
> > >> a change such as this:
> > >> 
> > >> OLD
> > >> 
> > >>    When evaluating the "mx" mechanism, the number of "MX" resource
> > >>    records queried is included in the overall limit of 10 mechanisms/
> > >>    modifiers that cause DNS lookups described above.  The evaluation of
> > >>    each "MX" record MUST NOT result in querying more than 10 address
> > >>    records,
> > >> 
> > >> NEW
> > >> 
> > >>    When evaluating the "mx" mechanism, the number of "MX" resource
> > >>    records queried is included in the overall limit of 10 mechanisms/
> > >>    modifiers that cause DNS lookups described above.  In addition to
> > >>    that limit, the evaluation of each "MX" record MUST NOT result in
> > >>    querying more than 10 address records,
> > >> 
> > >> END
> > >> 
> > >> (And similarly for the "ptr" paragraph.)  I know you say this in a
> > >> paragraph of its own ("These limits are per mechanism..."), but it's
> > >> helpful if people can understand things as they read them, and then to
> > >> emphasize it later... rather than having them scratch their heads for a
> > >> few paragraphs until they get to it.
> > 
> > +1 to that part too.
> 
> Seems reasonable.

Done.

> > > -- Section 4.7 --
> > > 
> > >>    It is better to use either a "redirect" modifier or an "all"
> > >>    mechanism to explicitly terminate processing.  Although the latter
> > >>    has a default (specifically "?all"), it aids debugging efforts if it
> > >>    is explicitly provided.
> > >> 
> > >> I'm not sure what "the latter has a default" is trying to say.  Do you
> > >> mean that "?all" is the default if you fall off the end, but you
> > >> shouldn't rely on that?  Or do you mean that if you say "all", then
> > >> "?all" is taken as the default (I would think "all" would mean "+all")?
> > >> Will you try re-wording this, please?
> > 
> > The former ("?all" is implicit if you fall off the end).  Suggest:
> > 
> > It is better to use either a "redirect" modifier or an "all" mechanism to
> > explicitly terminate processing.  Although there is in effect a "?all"
> > implicit at the end of every record, it ads debigging efforts when it is
> > explicitly provided.
> 
> How about:
> 
>    It is better to use either a "redirect" modifier or an "all" mechanism to
> explicitly terminate processing.  Although there is an implicit "?all" at
> the end of every record that is not explicitly terminated, it aids
> debugging efforts when it is explicitly provided.

This was changed in -20.

> > >> -- Section 5 --
> > >> 
> > >> What does "(do not publish)" mean next to "ptr" in the sender
> > >> mechanisms
> > >> list?  Ah; I see; it matches the "do not use" in Section 5.5.  You
> > >> should
> > >> probably change this to "(do not use; see the note in Section 5.5)".
> > 
> > Seems reasonable.
> 
> OK.

Done.

> > >> It would help, I think, to add to the end of the second paragraph, "The
> > >> basic mechanisms are as follows:", and to the end of the third
> > >> paragraph,
> > >> "The designated sender mechanisms are as follows:".  Otherwise, there
> > >> are
> > >> just these disembodied lists, and the reader has to infer those
> > >> introductions.
> > 
> > Sure.
> 
> Agreed.

Done.

> > >> -- Section 5.1 --
> > >> 
> > >>    Mechanisms after "all" will never be tested.  Mechanisms listed
> > >>    after
> > >>    "all" MUST be ignored.  Any "redirect" modifier (Section 6.1) MUST
> > >>    be
> > >>    ignored when there is an "all" mechanism in the record.
> > >> 
> > >> This says that the redirect in the following record will be ignored:
> > >>    v=spf1 redirect=_spf.example.com +all
> > >> 
> > >> That's sufficiently odd that it should be called out explicitly,
> > >> perhaps
> > >> by adding "regardless of the relative ordering of the terms" to the
> > >> last
> > >> sentence in the quote.
> > 
> > Yep.
> 
> OK.

Done.

> > >> -- Section 5.2 --
> > >> 
> > >>    3.  The recursive evaluation returns either match, not match, or an
> > >>    
> > >>        error.  If it matches, then the appropriate result for the
> > >>        include: mechanism is used (e.g. include or +include produces a
> > >>        "pass" result and -include produces "fail").
> > >>    
> > >>    4.  If there is no match, the parent check_host() resumes processing
> > >>    
> > >>        as per the table below, with the previous value of <domain>
> > >>        restored.
> > >> 
> > >> A few things here:
> > >> 
> > >> 1. Nit: "either" is for two things; for more than two, please remove
> > >> the
> > >> word "either" (or replace it with "one of", but that seems awkward
> > >> here).
> > >> 
> > >> 2. "If it matches" is not parallel to "returns match", and similarly
> > >> for
> > >> "if there is no match".
> > >> 
> > >> 3. You don't say what happens if the recursive evaluation returns an
> > >> error.  Unfortuately, "no match" and "not match" are sufficiently
> > >> similar
> > >> to be confused.
> > >> 
> > >> I suggest this:
> > >> 
> > >> NEW
> > >> 
> > >>    3.  The recursive evaluation returns match, not match, or an
> > >>    
> > >>        error.
> > >>    
> > >>    4.  If it returns match, then the appropriate result for the
> > >>    
> > >>        include: mechanism is used (e.g., include or +include produces
> > >>        a "pass" result and -include produces "fail").
> > >>    
> > >>    5.  If it returns not match or an error, the parent check_host()
> > >>    
> > >>        resumes processing as per the table below, with the previous
> > >>        value of <domain> restored.
> > >> 
> > >> END
> > 
> > +1.
> 
> I think this is fine.

Done.

> > >>    The "include" mechanism is intended for crossing administrative
> > >>    boundaries.  For example, if example.com and example.org were
> > >>    managed
> > >>    by the same entity, and if the permitted set of hosts for both
> > >>    domains was "mx:example.com", it would be possible for example.org
> > >>    to
> > >>    specify "include:example.com", but it would be preferable to specify
> > >>    "redirect=example.com" or even "mx:example.com".
> > >> 
> > >> The text you eliminated here provided a buffer that's no longer there,
> > >> making the "For example," very odd.  You talk about crossing admin
> > >> boundaries and immediately follow it with an example that does NOT.  I
> > >> think it would be better to put a sentence in to restore that buffer --
> > >> perhaps, "When remaining within one administrative authority, "include"
> > >> is usually not the best choice."
> > 
> > Sure.
> 
> Agreed.

Done.

> > >> -- Section 5.5 --
> > >> 
> > >>    This mechanism SHOULD NOT be published.  See below for discussion.
> > >> 
> > >> It's quite a bit below.  I suggest "See the note at the end of this
> > >> section for more information."  It might even be worth putting that
> > >> note
> > >> into a Section 5.5.1, so it's highlighted and more easily cited.
> > 
> > +1.
> 
> OK.  Someone let me know which way I should do it.  I'm OK with either.

The first option was done in -20.

> > >> -- Section 6 --
> > >> 
> > >>    Unrecognized modifiers MUST be ignored no matter where in a record,
> > >>    or how often.
> > >> 
> > >> This is missing a couple of words:
> > >> 
> > >> NEW
> > >> 
> > >>    Unrecognized modifiers MUST be ignored no matter where in a record
> > >>    they appear, or how often.
> > >> 
> > >> END
> > 
> > +1.
> 
> OK.

Done.

> > >>    For clarity, any "redirect" modifier SHOULD appear as the very last
> > >>    term in a record.
> > >> 
> > >> I don't usually recommend repeating things, but one thing from earlier
> > >> probably does bear repeating here:
> > >> 
> > >> NEW
> > >> 
> > >>    For clarity, any "redirect" modifier SHOULD appear as the very last
> > >>    term in a record.  Any "redirect" modifier MUST be ignored if there
> > >>    is an "all" mechanism anywhere in the record.
> > >> 
> > >> END
> > 
> > Seems reasonable.
> 
> OK.
> 
> Thanks for the detailed review and msk's comments on the comments.
> 
> Scott K
> _______________________________________________
> spfbis mailing list
> spfbis@ietf.org
> https://www.ietf.org/mailman/listinfo/spfbis
--nextPart2989640.dMaItEDoA5
Content-Disposition: attachment; filename="draft-ietf-spfbis-4408bis-21-from-20.diff.html"
Content-Transfer-Encoding: 7Bit
Content-Type: text/html; charset="UTF-8"; name="draft-ietf-spfbis-4408bis-21-from-20.diff.html"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!-- Generated by rfcdiff 1.41: rfcdiff  --> 
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional" > -->
<!-- System: Linux Scott-Latitude-E6320 3.8.0-30-generic #44-Ubuntu SMP Thu Aug 22 20:54:42 UTC 2013 i686 i686 i686 GNU/Linux --> 
<!-- Using awk: /usr/bin/gawk: GNU Awk 4.0.1 --> 
<!-- Using diff: /usr/bin/diff: diff (GNU diffutils) 3.2 --> 
<!-- Using wdiff: /usr/bin/wdiff: wdiff (GNU wdiff) 1.1.2 --> 
<html> 
<head> 
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
  <meta http-equiv="Content-Style-Type" content="text/css" /> 
  <title>Diff: draft-ietf-spfbis-4408bis-20.txt - draft-ietf-spfbis-4408bis-21.txt</title> 
  <style type="text/css"> 
    body    { margin: 0.4ex; margin-right: auto; } 
    tr      { } 
    td      { white-space: pre; font-family: monospace; vertical-align: top; font-size: 0.86em;} 
    th      { font-size: 0.86em; } 
    .small  { font-size: 0.6em; font-style: italic; font-family: Verdana, Helvetica, sans-serif; } 
    .left   { background-color: #EEE; } 
    .right  { background-color: #FFF; } 
    .diff   { background-color: #CCF; } 
    .lblock { background-color: #BFB; } 
    .rblock { background-color: #FF8; } 
    .insert { background-color: #8FF; } 
    .delete { background-color: #ACF; } 
    .void   { background-color: #FFB; } 
    .cont   { background-color: #EEE; } 
    .linebr { background-color: #AAA; } 
    .lineno { color: red; background-color: #FFF; font-size: 0.7em; text-align: right; padding: 0 2px; } 
    .elipsis{ background-color: #AAA; } 
    .left .cont { background-color: #DDD; } 
    .right .cont { background-color: #EEE; } 
    .lblock .cont { background-color: #9D9; } 
    .rblock .cont { background-color: #DD6; } 
    .insert .cont { background-color: #0DD; } 
    .delete .cont { background-color: #8AD; } 
    .stats, .stats td, .stats th { background-color: #EEE; padding: 2px 0; } 
  </style> 
</head> 
<body > 
  <table border="0" cellpadding="0" cellspacing="0"> 
  <tr bgcolor="orange"><th></th><th>&nbsp;draft-ietf-spfbis-4408bis-20.txt&nbsp;</th><th> </th><th>&nbsp;draft-ietf-spfbis-4408bis-21.txt&nbsp;</th><th></th></tr> 
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Network Working Group                                       S. Kitterman</td><td> </td><td class="right">Network Working Group                                       S. Kitterman</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Internet-Draft                              Kitterman Technical Services</td><td> </td><td class="right">Internet-Draft                              Kitterman Technical Services</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0001" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Obsoletes: 4408 (if approved)                         September <span class="delete">12</span>, 2013</td><td> </td><td class="rblock">Obsoletes: 4408 (if approved)                         September <span class="insert">23</span>, 2013</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Intended status: Standards Track</td><td> </td><td class="right">Intended status: Standards Track</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0002" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Expires: March <span class="delete">16</span>, 2014</td><td> </td><td class="rblock">Expires: March <span class="insert">27</span>, 2014</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"> Sender Policy Framework (SPF) for Authorizing Use of Domains in Email,</td><td> </td><td class="right"> Sender Policy Framework (SPF) for Authorizing Use of Domains in Email,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                               Version 1</td><td> </td><td class="right">                               Version 1</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0003" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">                      draft-ietf-spfbis-4408bis-2<span class="delete">0</span></td><td> </td><td class="rblock">                      draft-ietf-spfbis-4408bis-2<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Abstract</td><td> </td><td class="right">Abstract</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Email on the Internet can be forged in a number of ways.  In</td><td> </td><td class="right">   Email on the Internet can be forged in a number of ways.  In</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   particular, existing protocols place no restriction on what a sending</td><td> </td><td class="right">   particular, existing protocols place no restriction on what a sending</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   host can use as the "MAIL FROM" of a message or the domain given on</td><td> </td><td class="right">   host can use as the "MAIL FROM" of a message or the domain given on</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the SMTP HELO/EHLO commands.  This document describes version 1 of</td><td> </td><td class="right">   the SMTP HELO/EHLO commands.  This document describes version 1 of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the Sender Policy Framework (SPF) protocol, whereby ADministrative</td><td> </td><td class="right">   the Sender Policy Framework (SPF) protocol, whereby ADministrative</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Management Domains (ADMDs) can explicitly authorize the hosts that</td><td> </td><td class="right">   Management Domains (ADMDs) can explicitly authorize the hosts that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   are allowed to use its domain names, and a receiving host can check</td><td> </td><td class="right">   are allowed to use its domain names, and a receiving host can check</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 1, line 41</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 1, line 41</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are working documents of the Internet Engineering</td><td> </td><td class="right">   Internet-Drafts are working documents of the Internet Engineering</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Task Force (IETF).  Note that other groups may also distribute</td><td> </td><td class="right">   Task Force (IETF).  Note that other groups may also distribute</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   working documents as Internet-Drafts.  The list of current Internet-</td><td> </td><td class="right">   working documents as Internet-Drafts.  The list of current Internet-</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td> </td><td class="right">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are draft documents valid for a maximum of six months</td><td> </td><td class="right">   Internet-Drafts are draft documents valid for a maximum of six months</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and may be updated, replaced, or obsoleted by other documents at any</td><td> </td><td class="right">   and may be updated, replaced, or obsoleted by other documents at any</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   time.  It is inappropriate to use Internet-Drafts as reference</td><td> </td><td class="right">   time.  It is inappropriate to use Internet-Drafts as reference</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   material or to cite them other than as "work in progress."</td><td> </td><td class="right">   material or to cite them other than as "work in progress."</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0004" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This Internet-Draft will expire on March <span class="delete">16</span>, 2014.</td><td> </td><td class="rblock">   This Internet-Draft will expire on March <span class="insert">27</span>, 2014.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Copyright Notice</td><td> </td><td class="right">Copyright Notice</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Copyright (c) 2013 IETF Trust and the persons identified as the</td><td> </td><td class="right">   Copyright (c) 2013 IETF Trust and the persons identified as the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   document authors.  All rights reserved.</td><td> </td><td class="right">   document authors.  All rights reserved.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td> </td><td class="right">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Provisions Relating to IETF Documents</td><td> </td><td class="right">   Provisions Relating to IETF Documents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td> </td><td class="right">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   publication of this document.  Please review these documents</td><td> </td><td class="right">   publication of this document.  Please review these documents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> page 3, line 20</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> page 3, line 20</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       1.1.2.  Imported Definitions . . . . . . . . . . . . . . . . .  6</td><td> </td><td class="right">       1.1.2.  Imported Definitions . . . . . . . . . . . . . . . . .  6</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       1.1.3.  MAIL FROM Definition . . . . . . . . . . . . . . . . .  7</td><td> </td><td class="right">       1.1.3.  MAIL FROM Definition . . . . . . . . . . . . . . . . .  7</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       1.1.4.  HELO Definition  . . . . . . . . . . . . . . . . . . .  7</td><td> </td><td class="right">       1.1.4.  HELO Definition  . . . . . . . . . . . . . . . . . . .  7</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     1.2.  check_host() . . . . . . . . . . . . . . . . . . . . . . .  7</td><td> </td><td class="right">     1.2.  check_host() . . . . . . . . . . . . . . . . . . . . . . .  7</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   2.  Operational Overview . . . . . . . . . . . . . . . . . . . . .  8</td><td> </td><td class="right">   2.  Operational Overview . . . . . . . . . . . . . . . . . . . . .  8</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     2.1.  Publishing Authorization . . . . . . . . . . . . . . . . .  8</td><td> </td><td class="right">     2.1.  Publishing Authorization . . . . . . . . . . . . . . . . .  8</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     2.2.  Checking Authorization . . . . . . . . . . . . . . . . . .  8</td><td> </td><td class="right">     2.2.  Checking Authorization . . . . . . . . . . . . . . . . . .  8</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     2.3.  The "HELO" Identity  . . . . . . . . . . . . . . . . . . .  9</td><td> </td><td class="right">     2.3.  The "HELO" Identity  . . . . . . . . . . . . . . . . . . .  9</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     2.4.  The "MAIL FROM" Identity . . . . . . . . . . . . . . . . . 10</td><td> </td><td class="right">     2.4.  The "MAIL FROM" Identity . . . . . . . . . . . . . . . . . 10</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     2.5.  Location of Checks . . . . . . . . . . . . . . . . . . . . 10</td><td> </td><td class="right">     2.5.  Location of Checks . . . . . . . . . . . . . . . . . . . . 10</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0005" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     2.6.  Results of Evaluation  . . . . . . . . . . . . . . . . . . 1<span class="delete">0</span></td><td> </td><td class="rblock">     2.6.  Results of Evaluation  . . . . . . . . . . . . . . . . . . 1<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.1.  None . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.1.  None . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0006" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       2.6.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . <span class="delete">11</span></td><td> </td><td class="rblock">       2.6.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . <span class="insert">12</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   3.  SPF Records  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">12</span></td><td> </td><td class="rblock">   3.  SPF Records  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">13</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.1.  DNS Resource Records . . . . . . . . . . . . . . . . . . . <span class="delete">12</span></td><td> </td><td class="rblock">     3.1.  DNS Resource Records . . . . . . . . . . . . . . . . . . . <span class="insert">13</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.2.  Multiple DNS Records . . . . . . . . . . . . . . . . . . . <span class="delete">13</span></td><td> </td><td class="rblock">     3.2.  Multiple DNS Records . . . . . . . . . . . . . . . . . . . <span class="insert">14</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.3.  Multiple Strings in a Single DNS record  . . . . . . . . . <span class="delete">13</span></td><td> </td><td class="rblock">     3.3.  Multiple Strings in a Single DNS record  . . . . . . . . . <span class="insert">14</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.4.  Record Size  . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">14</span></td><td> </td><td class="rblock">     3.4.  Record Size  . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">15</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.5.  Wildcard Records . . . . . . . . . . . . . . . . . . . . . <span class="delete">14</span></td><td> </td><td class="rblock">     3.5.  Wildcard Records . . . . . . . . . . . . . . . . . . . . . <span class="insert">15</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   4.  The check_host() Function  . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">   4.  The check_host() Function  . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.1.  Arguments  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">     4.1.  Arguments  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.2.  Results  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">     4.2.  Results  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.3.  Initial Processing . . . . . . . . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock">     4.3.  Initial Processing . . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.4.  Record Lookup  . . . . . . . . . . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock">     4.4.  Record Lookup  . . . . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.5.  Selecting Records  . . . . . . . . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock">     4.5.  Selecting Records  . . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.6.  Record Evaluation  . . . . . . . . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock">     4.6.  Record Evaluation  . . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.1.  Term Evaluation  . . . . . . . . . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock">       4.6.1.  Term Evaluation  . . . . . . . . . . . . . . . . . . . <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.2.  Mechanisms . . . . . . . . . . . . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock">       4.6.2.  Mechanisms . . . . . . . . . . . . . . . . . . . . . . <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.3.  Modifiers  . . . . . . . . . . . . . . . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock">       4.6.3.  Modifiers  . . . . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.4.  DNS Lookup Limits  . . . . . . . . . . . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock">       4.6.4.  DNS Lookup Limits  . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.7.  Default Result . . . . . . . . . . . . . . . . . . . . . . <span class="delete">20</span></td><td> </td><td class="rblock">     4.7.  Default Result . . . . . . . . . . . . . . . . . . . . . . <span class="insert">21</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.8.  Domain Specification . . . . . . . . . . . . . . . . . . . <span class="delete">20</span></td><td> </td><td class="rblock">     4.8.  Domain Specification . . . . . . . . . . . . . . . . . . . <span class="insert">21</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   5.  Mechanism Definitions  . . . . . . . . . . . . . . . . . . . . <span class="delete">22</span></td><td> </td><td class="rblock">   5.  Mechanism Definitions  . . . . . . . . . . . . . . . . . . . . <span class="insert">23</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.1.  "all"  . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">23</span></td><td> </td><td class="rblock">     5.1.  "all"  . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">24</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.2.  "include"  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">23</span></td><td> </td><td class="rblock">     5.2.  "include"  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">24</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.3.  "a"  . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">25</span></td><td> </td><td class="rblock">     5.3.  "a"  . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">26</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.4.  "mx" . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">25</span></td><td> </td><td class="rblock">     5.4.  "mx" . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">26</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.5.  "ptr" (do not use) . . . . . . . . . . . . . . . . . . . . <span class="delete">25</span></td><td> </td><td class="rblock">     5.5.  "ptr" (do not use) . . . . . . . . . . . . . . . . . . . . <span class="insert">26</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.6.  "ip4" and "ip6"  . . . . . . . . . . . . . . . . . . . . . <span class="delete">27</span></td><td> </td><td class="rblock">     5.6.  "ip4" and "ip6"  . . . . . . . . . . . . . . . . . . . . . <span class="insert">28</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.7.  "exists" . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">27</span></td><td> </td><td class="rblock">     5.7.  "exists" . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">28</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   6.  Modifier Definitions . . . . . . . . . . . . . . . . . . . . . <span class="delete">29</span></td><td> </td><td class="rblock">   6.  Modifier Definitions . . . . . . . . . . . . . . . . . . . . . <span class="insert">30</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     6.1.  redirect: Redirected Query . . . . . . . . . . . . . . . . <span class="delete">29</span></td><td> </td><td class="rblock">     6.1.  redirect: Redirected Query . . . . . . . . . . . . . . . . <span class="insert">30</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     6.2.  exp: Explanation . . . . . . . . . . . . . . . . . . . . . <span class="delete">30</span></td><td> </td><td class="rblock">     6.2.  exp: Explanation . . . . . . . . . . . . . . . . . . . . . <span class="insert">31</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   7.  Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">32</span></td><td> </td><td class="rblock">   7.  Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">33</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.1.  Formal Specification . . . . . . . . . . . . . . . . . . . <span class="delete">32</span></td><td> </td><td class="rblock">     7.1.  Formal Specification . . . . . . . . . . . . . . . . . . . <span class="insert">33</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.2.  Macro Definitions  . . . . . . . . . . . . . . . . . . . . <span class="delete">32</span></td><td> </td><td class="rblock">     7.2.  Macro Definitions  . . . . . . . . . . . . . . . . . . . . <span class="insert">33</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.3.  Macro Processing Details . . . . . . . . . . . . . . . . . <span class="delete">33</span></td><td> </td><td class="rblock">     7.3.  Macro Processing Details . . . . . . . . . . . . . . . . . <span class="insert">34</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.4.  Expansion Examples . . . . . . . . . . . . . . . . . . . . <span class="delete">35</span></td><td> </td><td class="rblock">     7.4.  Expansion Examples . . . . . . . . . . . . . . . . . . . . <span class="insert">36</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   8.  Result Handling  . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock">   8.  Result Handling  . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.1.  None . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock">     8.1.  None . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock">     8.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">38</span></td><td> </td><td class="rblock">     8.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">39</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">38</span></td><td> </td><td class="rblock">     8.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">39</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">38</span></td><td> </td><td class="rblock">     8.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">39</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">39</span></td><td> </td><td class="rblock">     8.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">40</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">39</span></td><td> </td><td class="rblock">     8.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">40</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   9.  Recording the Result . . . . . . . . . . . . . . . . . . . . . <span class="delete">40</span></td><td> </td><td class="rblock">   9.  Recording the Result . . . . . . . . . . . . . . . . . . . . . <span class="insert">41</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.1.  The Received-SPF Header Field  . . . . . . . . . . . . . . <span class="delete">40</span></td><td> </td><td class="rblock">     9.1.  The Received-SPF Header Field  . . . . . . . . . . . . . . <span class="insert">41</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.2.  SPF Results in the Authentication-Results Header Field . . <span class="delete">42</span></td><td> </td><td class="rblock">     9.2.  SPF Results in the Authentication-Results Header Field . . <span class="insert">43</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   10. Effects on Infrastructure  . . . . . . . . . . . . . . . . . . <span class="delete">44</span></td><td> </td><td class="rblock">   10. Effects on Infrastructure  . . . . . . . . . . . . . . . . . . <span class="insert">45</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     10.1. Sending Domains  . . . . . . . . . . . . . . . . . . . . . <span class="delete">44</span></td><td> </td><td class="rblock">     10.1. Sending Domains  . . . . . . . . . . . . . . . . . . . . . <span class="insert">45</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       10.1.1. DNS Resource Considerations  . . . . . . . . . . . . . <span class="delete">44</span></td><td> </td><td class="rblock">       10.1.1. DNS Resource Considerations  . . . . . . . . . . . . . <span class="insert">45</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       10.1.2. Administrator's Considerations . . . . . . . . . . . . <span class="delete">45</span></td><td> </td><td class="rblock">       10.1.2. Administrator's Considerations . . . . . . . . . . . . <span class="insert">46</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       10.1.3. Bounces  . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">46</span></td><td> </td><td class="rblock">       10.1.3. Bounces  . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">47</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     10.2. Receivers  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">46</span></td><td> </td><td class="rblock">     10.2. Receivers  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">47</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     10.3. Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">46</span></td><td> </td><td class="rblock">     10.3. Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">47</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   11. Security Considerations  . . . . . . . . . . . . . . . . . . . <span class="delete">48</span></td><td> </td><td class="rblock">   11. Security Considerations  . . . . . . . . . . . . . . . . . . . <span class="insert">49</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.1. Processing Limits  . . . . . . . . . . . . . . . . . . . . <span class="delete">48</span></td><td> </td><td class="rblock">     11.1. Processing Limits  . . . . . . . . . . . . . . . . . . . . <span class="insert">49</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.2. SPF-Authorized Email May Contain Other False Identities  . <span class="delete">49</span></td><td> </td><td class="rblock">     11.2. SPF-Authorized Email May Contain Other False Identities  . <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.3. Spoofed DNS and IP Data  . . . . . . . . . . . . . . . . . <span class="delete">49</span></td><td> </td><td class="rblock">     11.3. Spoofed DNS and IP Data  . . . . . . . . . . . . . . . . . <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.4. Cross-User Forgery . . . . . . . . . . . . . . . . . . . . <span class="delete">49</span></td><td> </td><td class="rblock">     11.4. Cross-User Forgery . . . . . . . . . . . . . . . . . . . . <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.5. Untrusted Information Sources  . . . . . . . . . . . . . . <span class="delete">50</span></td><td> </td><td class="rblock">     11.5. Untrusted Information Sources  . . . . . . . . . . . . . . <span class="insert">51</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       11.5.1. Recorded Results . . . . . . . . . . . . . . . . . . . <span class="delete">50</span></td><td> </td><td class="rblock">       11.5.1. Recorded Results . . . . . . . . . . . . . . . . . . . <span class="insert">51</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       11.5.2. External Explanations  . . . . . . . . . . . . . . . . <span class="delete">50</span></td><td> </td><td class="rblock">       11.5.2. External Explanations  . . . . . . . . . . . . . . . . <span class="insert">51</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       11.5.3. Macro Expansion  . . . . . . . . . . . . . . . . . . . <span class="delete">51</span></td><td> </td><td class="rblock">       11.5.3. Macro Expansion  . . . . . . . . . . . . . . . . . . . <span class="insert">52</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.6. Privacy Exposure . . . . . . . . . . . . . . . . . . . . . <span class="delete">51</span></td><td> </td><td class="rblock">     11.6. Privacy Exposure . . . . . . . . . . . . . . . . . . . . . <span class="insert">52</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.7. Delivering Mail Producing a 'Fail' Result  . . . . . . . . <span class="delete">51</span></td><td> </td><td class="rblock">     11.7. Delivering Mail Producing a 'Fail' Result  . . . . . . . . <span class="insert">52</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   12. Contributors and Acknowledgements  . . . . . . . . . . . . . . <span class="delete">52</span></td><td> </td><td class="rblock">   12. Contributors and Acknowledgements  . . . . . . . . . . . . . . <span class="insert">53</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   13. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock">   13. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . <span class="insert">54</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     13.1. The SPF DNS Record Type  . . . . . . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock">     13.1. The SPF DNS Record Type  . . . . . . . . . . . . . . . . . <span class="insert">54</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     13.2. The Received-SPF Mail Header Field . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock">     13.2. The Received-SPF Mail Header Field . . . . . . . . . . . . <span class="insert">54</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     13.3. SPF Modifier Registry  . . . . . . . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock">     13.3. SPF Modifier Registry  . . . . . . . . . . . . . . . . . . <span class="insert">54</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   14. References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">54</span></td><td> </td><td class="rblock">   14. References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">55</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     14.1. Normative References . . . . . . . . . . . . . . . . . . . <span class="delete">54</span></td><td> </td><td class="rblock">     14.1. Normative References . . . . . . . . . . . . . . . . . . . <span class="insert">55</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     14.2. Informative References . . . . . . . . . . . . . . . . . . <span class="delete">55</span></td><td> </td><td class="rblock">     14.2. Informative References . . . . . . . . . . . . . . . . . . <span class="insert">56</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix A.  Collected ABNF  . . . . . . . . . . . . . . . . . . . <span class="delete">57</span></td><td> </td><td class="rblock">   Appendix A.  Collected ABNF  . . . . . . . . . . . . . . . . . . . <span class="insert">58</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix B.  Extended Examples . . . . . . . . . . . . . . . . . . <span class="delete">60</span></td><td> </td><td class="rblock">   Appendix B.  Extended Examples . . . . . . . . . . . . . . . . . . <span class="insert">61</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     B.1.  Simple Examples  . . . . . . . . . . . . . . . . . . . . . <span class="delete">60</span></td><td> </td><td class="rblock">     B.1.  Simple Examples  . . . . . . . . . . . . . . . . . . . . . <span class="insert">61</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     B.2.  Multiple Domain Example  . . . . . . . . . . . . . . . . . <span class="delete">61</span></td><td> </td><td class="rblock">     B.2.  Multiple Domain Example  . . . . . . . . . . . . . . . . . <span class="insert">62</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     B.3.  DNSBL Style Example  . . . . . . . . . . . . . . . . . . . <span class="delete">62</span></td><td> </td><td class="rblock">     B.3.  DNSBL Style Example  . . . . . . . . . . . . . . . . . . . <span class="insert">63</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     B.4.  Multiple Requirements Example  . . . . . . . . . . . . . . <span class="delete">62</span></td><td> </td><td class="rblock">     B.4.  Multiple Requirements Example  . . . . . . . . . . . . . . <span class="insert">63</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Appendix C.  Changes in implementation requirements from RFC</td><td> </td><td class="right">   Appendix C.  Changes in implementation requirements from RFC</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0007" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">                4408  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">63</span></td><td> </td><td class="rblock">                4408  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">64</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix D.  Further Testing Advice  . . . . . . . . . . . . . . . <span class="delete">64</span></td><td> </td><td class="rblock">   Appendix D.  Further Testing Advice  . . . . . . . . . . . . . . . <span class="insert">65</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix E.  SPF/Mediator Interactions . . . . . . . . . . . . . . <span class="delete">65</span></td><td> </td><td class="rblock">   Appendix E.  SPF/Mediator Interactions . . . . . . . . . . . . . . <span class="insert">66</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     E.1.  Originating ADMDs  . . . . . . . . . . . . . . . . . . . . <span class="delete">65</span></td><td> </td><td class="rblock">     E.1.  Originating ADMDs  . . . . . . . . . . . . . . . . . . . . <span class="insert">66</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     E.2.  Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">66</span></td><td> </td><td class="rblock">     E.2.  Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">67</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     E.3.  Receving ADMDs . . . . . . . . . . . . . . . . . . . . . . <span class="delete">66</span></td><td> </td><td class="rblock">     E.3.  Receving ADMDs . . . . . . . . . . . . . . . . . . . . . . <span class="insert">67</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix F.  Mail Services . . . . . . . . . . . . . . . . . . . . <span class="delete">67</span></td><td> </td><td class="rblock">   Appendix F.  Mail Services . . . . . . . . . . . . . . . . . . . . <span class="insert">68</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix G.  MTA Relays  . . . . . . . . . . . . . . . . . . . . . <span class="delete">68</span></td><td> </td><td class="rblock">   Appendix G.  MTA Relays  . . . . . . . . . . . . . . . . . . . . . <span class="insert">69</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix H.  Local Policy Considerations . . . . . . . . . . . . . <span class="delete">69</span></td><td> </td><td class="rblock">   Appendix H.  Local Policy Considerations . . . . . . . . . . . . . <span class="insert">70</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     H.1.  Policy For SPF Pass  . . . . . . . . . . . . . . . . . . . <span class="delete">69</span></td><td> </td><td class="rblock">     H.1.  Policy For SPF Pass  . . . . . . . . . . . . . . . . . . . <span class="insert">70</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     H.2.  Policy For SPF Fail  . . . . . . . . . . . . . . . . . . . <span class="delete">69</span></td><td> </td><td class="rblock">     H.2.  Policy For SPF Fail  . . . . . . . . . . . . . . . . . . . <span class="insert">70</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     H.3.  Policy For SPF Permerror . . . . . . . . . . . . . . . . . <span class="delete">70</span></td><td> </td><td class="rblock">     H.3.  Policy For SPF Permerror . . . . . . . . . . . . . . . . . <span class="insert">71</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     H.4.  Policy For SPF Temperror . . . . . . . . . . . . . . . . . <span class="delete">70</span></td><td> </td><td class="rblock">     H.4.  Policy For SPF Temperror . . . . . . . . . . . . . . . . . <span class="insert">71</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix I.  Protocol Status . . . . . . . . . . . . . . . . . . . <span class="delete">72</span></td><td> </td><td class="rblock">   Appendix I.  Protocol Status . . . . . . . . . . . . . . . . . . . <span class="insert">73</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix J.  Change History  . . . . . . . . . . . . . . . . . . . <span class="delete">73</span></td><td> </td><td class="rblock">   Appendix J.  Change History  . . . . . . . . . . . . . . . . . . . <span class="insert">74</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">76</span></td><td> </td><td class="rblock">   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">77</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">1.  Introduction</td><td> </td><td class="right">1.  Introduction</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The current email infrastructure has the property that any host</td><td> </td><td class="right">   The current email infrastructure has the property that any host</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   injecting mail into the system can use any DNS domain name it wants</td><td> </td><td class="right">   injecting mail into the system can use any DNS domain name it wants</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   in each of the various identifiers specified by [RFC5321] and</td><td> </td><td class="right">   in each of the various identifiers specified by [RFC5321] and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5322].  Although this feature is desirable in some circumstances,</td><td> </td><td class="right">   [RFC5322].  Although this feature is desirable in some circumstances,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   it is a major obstacle to reducing Unsolicited Bulk Email (UBE, aka</td><td> </td><td class="right">   it is a major obstacle to reducing Unsolicited Bulk Email (UBE, aka</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   spam).  Furthermore, many domain owning ADMDs (as described in</td><td> </td><td class="right">   spam).  Furthermore, many domain owning ADMDs (as described in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5598]) are understandably concerned about the ease with which</td><td> </td><td class="right">   [RFC5598]) are understandably concerned about the ease with which</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> page 10, line 34</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> page 10, line 34</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.5.  Location of Checks</td><td> </td><td class="right">2.5.  Location of Checks</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The authorization check SHOULD be performed during the processing of</td><td> </td><td class="right">   The authorization check SHOULD be performed during the processing of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the SMTP transaction that receives the mail.  This reduces the</td><td> </td><td class="right">   the SMTP transaction that receives the mail.  This reduces the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   complexity of determining the correct IP address to use as an input</td><td> </td><td class="right">   complexity of determining the correct IP address to use as an input</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   to check_host() and allows errors to be returned directly to the</td><td> </td><td class="right">   to check_host() and allows errors to be returned directly to the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   sending MTA by way of SMTP replies.  Appendix C of [RFC5451] provides</td><td> </td><td class="right">   sending MTA by way of SMTP replies.  Appendix C of [RFC5451] provides</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a more thorough discussion of this topic.</td><td> </td><td class="right">   a more thorough discussion of this topic.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0008" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">Performing the</span> authorization check <span class="delete">other than using</span> the <span class="delete">MAIL FROM and</span></td><td> </td><td class="rblock">   <span class="insert">The</span> authorization check <span class="insert">is performed during</span> the <span class="insert">SMTP transaction</span> at</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   client address</span> at the time of the MAIL <span class="delete">command during</span> the <span class="delete">SMTP</span></td><td> </td><td class="rblock">   the time of the MAIL <span class="insert">command, and uses</span> the <span class="insert">MAIL FROM value and the</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   transaction</span> can cause <span class="delete">problems,</span> such as the following: <span class="delete">(1)</span> It might</td><td> </td><td class="rblock"><span class="insert">   client IP address.  Performing the check at later times or with other</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   be difficult to accurately extract the required information from</td><td> </td><td class="rblock"><span class="insert">   input</span> can cause <span class="insert">problems</span> such as the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   potentially deceptive <span class="delete">headers; (2) legitimate</span> email might fail</td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   because the sender's policy <span class="delete">had</span> since changed.</td><td> </td><td class="rblock">   <span class="insert">o</span>  It might be difficult to accurately extract the required</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">      information from potentially deceptive <span class="insert">headers.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   o  Legitimate</span> email might fail <span class="insert">the authorization check</span> because the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">      sender's policy <span class="insert">has</span> since changed.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Generating non-delivery notifications to forged identities that have</td><td> </td><td class="right">   Generating non-delivery notifications to forged identities that have</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   failed the authorization check often constitutes backscatter, i.e.,</td><td> </td><td class="right">   failed the authorization check often constitutes backscatter, i.e.,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   inactionable, nuisance rejection notices.  Operators are strongly</td><td> </td><td class="right">   inactionable, nuisance rejection notices.  Operators are strongly</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   advised to avoid such practices.  Section 2 of [RFC3834] describes</td><td> </td><td class="right">   advised to avoid such practices.  Section 2 of [RFC3834] describes</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   backscatter and the problems it causes.</td><td> </td><td class="right">   backscatter and the problems it causes.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.  Results of Evaluation</td><td> </td><td class="right">2.6.  Results of Evaluation</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Section 4 defines check_host(), a model function definition that uses</td><td> </td><td class="right">   Section 4 defines check_host(), a model function definition that uses</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l5" /><small>skipping to change at</small><em> page 11, line 22</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> page 11, line 28</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.1.  None</td><td> </td><td class="right">2.6.1.  None</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A result of "none" means either (a) no syntactically valid DNS domain</td><td> </td><td class="right">   A result of "none" means either (a) no syntactically valid DNS domain</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   name was extracted from the SMTP session that could be used as the</td><td> </td><td class="right">   name was extracted from the SMTP session that could be used as the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   one to be authorized, or (b) no SPF records were retrieved from the</td><td> </td><td class="right">   one to be authorized, or (b) no SPF records were retrieved from the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   DNS.</td><td> </td><td class="right">   DNS.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.2.  Neutral</td><td> </td><td class="right">2.6.2.  Neutral</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0009" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">The</span> ADMD has explicitly stated that it is not asserting whether the</td><td> </td><td class="rblock">   <span class="insert">A "neutral" result means that the</span> ADMD has explicitly stated that it</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   IP address is authorized.</td><td> </td><td class="rblock">   is not asserting whether the IP address is authorized.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.3.  Pass</td><td> </td><td class="right">2.6.3.  Pass</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0010" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   A "pass" result <span class="delete">means</span> that the client is authorized to inject mail</td><td> </td><td class="rblock">   A "pass" result <span class="insert">is an explicit statement</span> that the client is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   with the given identity.</td><td> </td><td class="rblock">   authorized to inject mail with the given identity.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.4.  Fail</td><td> </td><td class="right">2.6.4.  Fail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "fail" result is an explicit statement that the client is not</td><td> </td><td class="right">   A "fail" result is an explicit statement that the client is not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorized to use the domain in the given identity.</td><td> </td><td class="right">   authorized to use the domain in the given identity.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.5.  Softfail</td><td> </td><td class="right">2.6.5.  Softfail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0011" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">The ADMD has published</span> a weak statement that the host is probably not</td><td> </td><td class="rblock">   <span class="insert">A "softfail" result is</span> a weak statement <span class="insert">by the publishing ADMD</span> that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   authorized.  It has not published a stronger, more definitive policy</td><td> </td><td class="rblock">   the host is probably not authorized.  It has not published a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   that results in a "fail".</td><td> </td><td class="rblock">   stronger, more definitive policy that results in a "fail".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.6.  Temperror</td><td> </td><td class="right">2.6.6.  Temperror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "temperror" result means the SPF verifier encountered a transient</td><td> </td><td class="right">   A "temperror" result means the SPF verifier encountered a transient</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (generally DNS) error while performing the check.  A later retry may</td><td> </td><td class="right">   (generally DNS) error while performing the check.  A later retry may</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   succeed without further DNS operator action.</td><td> </td><td class="right">   succeed without further DNS operator action.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.7.  Permerror</td><td> </td><td class="right">2.6.7.  Permerror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "permerror" result means the domain's published records could not</td><td> </td><td class="right">   A "permerror" result means the domain's published records could not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l6" /><small>skipping to change at</small><em> page 12, line 25</em></th><th> </th><th><a name="part-r6" /><small>skipping to change at</small><em> page 13, line 25</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   not permitted for the same owner name.  The record format and the</td><td> </td><td class="right">   not permitted for the same owner name.  The record format and the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   process for selecting records is described below in Section 4.  An</td><td> </td><td class="right">   process for selecting records is described below in Section 4.  An</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   example record is the following:</td><td> </td><td class="right">   example record is the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      v=spf1 +mx a:colo.example.com/28 -all</td><td> </td><td class="right">      v=spf1 +mx a:colo.example.com/28 -all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This record has a version of "spf1" and three directives: "+mx",</td><td> </td><td class="right">   This record has a version of "spf1" and three directives: "+mx",</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "a:colo.example.com/28" (the + is implied), and "-all".</td><td> </td><td class="right">   "a:colo.example.com/28" (the + is implied), and "-all".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Each SPF record is placed in the DNS tree at the owner name it</td><td> </td><td class="right">   Each SPF record is placed in the DNS tree at the owner name it</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0012" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   pertains to, not a subdomain under <span class="delete">it, such as</span> is <span class="delete">done with</span> SRV</td><td> </td><td class="rblock">   pertains to, not <span class="insert">in</span> a subdomain under <span class="insert">the owner name.  This</span> is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   records <span class="delete">[RFC2782].</span></td><td> </td><td class="rblock">   <span class="insert">similar to how</span> SRV records <span class="insert">[RFC2782] are done.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The example in this section might be published via these lines in a</td><td> </td><td class="right">   The example in this section might be published via these lines in a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   domain zone file:</td><td> </td><td class="right">   domain zone file:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"</td><td> </td><td class="right">      example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Since TXT records have multiple uses, beware of other TXT records</td><td> </td><td class="right">   Since TXT records have multiple uses, beware of other TXT records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   published there for other purposes.  They might cause problems with</td><td> </td><td class="right">   published there for other purposes.  They might cause problems with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   size limits (see Section 3.4) and care has to be taken to ensure only</td><td> </td><td class="right">   size limits (see Section 3.4) and care has to be taken to ensure only</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF records are used for SPF processing.</td><td> </td><td class="right">   SPF records are used for SPF processing.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l7" /><small>skipping to change at</small><em> page 13, line 13</em></th><th> </th><th><a name="part-r7" /><small>skipping to change at</small><em> page 14, line 13</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   they are now.  Additionally, support for easy deployment of new DNS</td><td> </td><td class="right">   they are now.  Additionally, support for easy deployment of new DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   RR types was not widely deployed in DNS servers and provisioning</td><td> </td><td class="right">   RR types was not widely deployed in DNS servers and provisioning</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   systems.  As a result, developers of SPF found it easier and more</td><td> </td><td class="right">   systems.  As a result, developers of SPF found it easier and more</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   practical to use the TXT RR type for SPF records.</td><td> </td><td class="right">   practical to use the TXT RR type for SPF records.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   In its review of [RFC4408] the SPFbis working group concluded that</td><td> </td><td class="right">   In its review of [RFC4408] the SPFbis working group concluded that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   its dual RR type transition model was fundamentally flawed since it</td><td> </td><td class="right">   its dual RR type transition model was fundamentally flawed since it</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   contained no common RR type that implementers were required to serve</td><td> </td><td class="right">   contained no common RR type that implementers were required to serve</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and required to check.  Many alternatives were considered to resolve</td><td> </td><td class="right">   and required to check.  Many alternatives were considered to resolve</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   this issue, but ultimately the working group concluded that</td><td> </td><td class="right">   this issue, but ultimately the working group concluded that</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0013" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   significant migration to the SPF RR type in the for<span class="delete">e</span>seeable future was</td><td> </td><td class="rblock">   significant migration to the SPF RR type in the forseeable future was</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   very unlikely and that the best solution for resolving this</td><td> </td><td class="right">   very unlikely and that the best solution for resolving this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   interoperability issue was to drop support for the SPF RR type from</td><td> </td><td class="right">   interoperability issue was to drop support for the SPF RR type from</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF version 1.  See Appendix A of [RFC6686] for further information.</td><td> </td><td class="right">   SPF version 1.  See Appendix A of [RFC6686] for further information.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The circumstances surrounding SPF's initial deployment a decade ago</td><td> </td><td class="right">   The circumstances surrounding SPF's initial deployment a decade ago</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   are unique.  If a future update to SPF were developed that did not</td><td> </td><td class="right">   are unique.  If a future update to SPF were developed that did not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   reuse existing SPF records, it could use the SPF RR type.  SPF's use</td><td> </td><td class="right">   reuse existing SPF records, it could use the SPF RR type.  SPF's use</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of the TXT RR type for structured data should in no way be taken as</td><td> </td><td class="right">   of the TXT RR type for structured data should in no way be taken as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   precedent for future protocol designers.  Further discussion of</td><td> </td><td class="right">   precedent for future protocol designers.  Further discussion of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   design considerations when using new DNS RR types can be found in</td><td> </td><td class="right">   design considerations when using new DNS RR types can be found in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l8" /><small>skipping to change at</small><em> page 16, line 7</em></th><th> </th><th><a name="part-r8" /><small>skipping to change at</small><em> page 17, line 7</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       *.A.EXAMPLE.COM.      MX      10      A.EXAMPLE.COM</td><td> </td><td class="right">       *.A.EXAMPLE.COM.      MX      10      A.EXAMPLE.COM</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       *.A.EXAMPLE.COM.      TXT     "v=spf1 a:A.EXAMPLE.COM -all"</td><td> </td><td class="right">       *.A.EXAMPLE.COM.      TXT     "v=spf1 a:A.EXAMPLE.COM -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF records have to be listed twice for every name within the zone:</td><td> </td><td class="right">   SPF records have to be listed twice for every name within the zone:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   once for the name, and once with a wildcard to cover the tree under</td><td> </td><td class="right">   once for the name, and once with a wildcard to cover the tree under</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the name, in order to cover all domains in use in outgoing mail.</td><td> </td><td class="right">   the name, in order to cover all domains in use in outgoing mail.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">4.  The check_host() Function</td><td> </td><td class="right">4.  The check_host() Function</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0014" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This description is not an <span class="delete">API (Application Program Interface)</span></td><td> </td><td class="rblock">   This description is not an <span class="insert">application programming interface</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   definition, but rather a function description used to illustrate the</td><td> </td><td class="right">   definition, but rather a function description used to illustrate the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   algorithm.  A compliant SPF implementation MUST produce results</td><td> </td><td class="right">   algorithm.  A compliant SPF implementation MUST produce results</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   semantically equivalent to this description.</td><td> </td><td class="right">   semantically equivalent to this description.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The check_host() function fetches SPF records, parses them, and</td><td> </td><td class="right">   The check_host() function fetches SPF records, parses them, and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   evaluates them to determine whether a particular host is or is not</td><td> </td><td class="right">   evaluates them to determine whether a particular host is or is not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   permitted to send mail with a given identity.  Receiving ADMDs that</td><td> </td><td class="right">   permitted to send mail with a given identity.  Receiving ADMDs that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   perform this check MUST correctly evaluate the check_host() function</td><td> </td><td class="right">   perform this check MUST correctly evaluate the check_host() function</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   as described here.</td><td> </td><td class="right">   as described here.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l9" /><small>skipping to change at</small><em> page 19, line 34</em></th><th> </th><th><a name="part-r9" /><small>skipping to change at</small><em> page 20, line 34</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">4.6.4.  DNS Lookup Limits</td><td> </td><td class="right">4.6.4.  DNS Lookup Limits</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Some mechanisms and modifiers (collectively, "terms") cause DNS</td><td> </td><td class="right">   Some mechanisms and modifiers (collectively, "terms") cause DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   queries at the time of evaluation, and some do not.  The following</td><td> </td><td class="right">   queries at the time of evaluation, and some do not.  The following</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   terms cause DNS queries: the "include", "a", "mx", "ptr", and</td><td> </td><td class="right">   terms cause DNS queries: the "include", "a", "mx", "ptr", and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "exists" mechanisms and the "redirect" modifier.  SPF implementations</td><td> </td><td class="right">   "exists" mechanisms and the "redirect" modifier.  SPF implementations</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MUST limit the total number of those terms to 10 during SPF</td><td> </td><td class="right">   MUST limit the total number of those terms to 10 during SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   evaluation, to avoid unreasonable load on the DNS.  If this limit is</td><td> </td><td class="right">   evaluation, to avoid unreasonable load on the DNS.  If this limit is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   exceeded, the implementation MUST return "permerror".  The other</td><td> </td><td class="right">   exceeded, the implementation MUST return "permerror".  The other</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0015" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   terms: the "all", "ip4", and "ip6" mechanisms do not cause DNS</td><td> </td><td class="rblock">   terms: the "all", "ip4", and "ip6" mechanisms <span class="insert">and the "exp" modifier</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   queries at the time of SPF evaluation (the "exp" modifier causes a</td><td> </td><td class="rblock">   do not cause DNS queries at the time of SPF evaluation (the "exp"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   lookup at a later time), and their <span class="delete">use, including "exp",</span> is not</td><td> </td><td class="rblock">   modifier <span class="insert">only</span> causes a lookup at a later time), and their <span class="insert">use</span> is not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   subject to this limit.</td><td> </td><td class="right">   subject to this limit.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   When evaluating the "mx" mechanism, the number of "MX" resource</td><td> </td><td class="right">   When evaluating the "mx" mechanism, the number of "MX" resource</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   records queried is included in the overall limit of 10 mechanisms/</td><td> </td><td class="right">   records queried is included in the overall limit of 10 mechanisms/</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0016" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   modifiers that cause DNS lookups described above.  <span class="delete">The</span> evaluation of</td><td> </td><td class="rblock">   modifiers that cause DNS lookups described above.  <span class="insert">In addition to</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   each "MX" record MUST NOT result in querying more than 10 address</td><td> </td><td class="rblock"><span class="insert">   that limit, the</span> evaluation of each "MX" record MUST NOT result in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   records, either "A" or "AAAA" resource records.  If this limit is</td><td> </td><td class="rblock">   querying more than 10 address records, either "A" or "AAAA" resource</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   exceeded, the "mx" mechanism MUST produce a "permerror" result.</td><td> </td><td class="rblock">   records.  If this limit is exceeded, the "mx" mechanism MUST produce</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   a "permerror" result.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   When evaluating the "ptr" mechanism or the %{p} macro, the number of</td><td> </td><td class="right">   When evaluating the "ptr" mechanism or the %{p} macro, the number of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "PTR" resource records queried is included in the overall limit of 10</td><td> </td><td class="right">   "PTR" resource records queried is included in the overall limit of 10</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0017" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   mechanisms/modifiers that cause DNS lookups described above.  <span class="delete">The</span></td><td> </td><td class="rblock">   mechanisms/modifiers that cause DNS lookups described above.  <span class="insert">In</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   evaluation of each "PTR" record MUST NOT result in querying more than</td><td> </td><td class="rblock"><span class="insert">   addition to that limit, the</span> evaluation of each "PTR" record MUST NOT</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   10 address records, either "A" or "AAAA" resource records.  If this</td><td> </td><td class="rblock">   result in querying more than 10 address records, either "A" or "AAAA"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   limit is exceeded, all records other than the first 10 MUST be</td><td> </td><td class="rblock">   resource records.  If this limit is exceeded, all records other than</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ignored.</td><td> </td><td class="rblock">   the first 10 MUST be ignored.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The reason for the disparity is that the set of and contents of the</td><td> </td><td class="right">   The reason for the disparity is that the set of and contents of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MX record are under control of the publishing ADMD, while the set of</td><td> </td><td class="right">   MX record are under control of the publishing ADMD, while the set of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and contents of PTR records are under control of the owner of the IP</td><td> </td><td class="right">   and contents of PTR records are under control of the owner of the IP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   address actually making the connection.</td><td> </td><td class="right">   address actually making the connection.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These limits are per mechanism or macro in the record, and are in</td><td> </td><td class="right">   These limits are per mechanism or macro in the record, and are in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   addition to the lookup limits specified above.</td><td> </td><td class="right">   addition to the lookup limits specified above.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MTAs or other processors SHOULD impose a limit on the maximum amount</td><td> </td><td class="right">   MTAs or other processors SHOULD impose a limit on the maximum amount</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l10" /><small>skipping to change at</small><em> page 22, line 11</em></th><th> </th><th><a name="part-r10" /><small>skipping to change at</small><em> page 23, line 11</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The result of evaluating check_host() with a syntactically invalid</td><td> </td><td class="right">   The result of evaluating check_host() with a syntactically invalid</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   domain is undefined.</td><td> </td><td class="right">   domain is undefined.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">5.  Mechanism Definitions</td><td> </td><td class="right">5.  Mechanism Definitions</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This section defines two types of mechanisms: basic language</td><td> </td><td class="right">   This section defines two types of mechanisms: basic language</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   framework mechanisms and designated sender mechanisms.</td><td> </td><td class="right">   framework mechanisms and designated sender mechanisms.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Basic mechanisms contribute to the language framework.  They do not</td><td> </td><td class="right">   Basic mechanisms contribute to the language framework.  They do not</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0018" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   specify a particular type of authorization scheme.</td><td> </td><td class="rblock">   specify a particular type of authorization scheme.  <span class="insert">The basic</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   mechanisms are as follows:</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      all</td><td> </td><td class="right">      all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      include</td><td> </td><td class="right">      include</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Designated sender mechanisms are used to identify a set of &lt;ip&gt;</td><td> </td><td class="right">   Designated sender mechanisms are used to identify a set of &lt;ip&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   addresses as being permitted or not permitted to use the &lt;domain&gt; for</td><td> </td><td class="right">   addresses as being permitted or not permitted to use the &lt;domain&gt; for</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0019" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   sending mail.</td><td> </td><td class="rblock">   sending mail.<span class="insert">  The designated sender mechanisms are as follows:</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      a</td><td> </td><td class="right">      a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      mx</td><td> </td><td class="right">      mx</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0020" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      ptr (do not <span class="delete">publish</span>)</td><td> </td><td class="rblock">      ptr (do not <span class="insert">use</span>)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      ip4</td><td> </td><td class="right">      ip4</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      ip6</td><td> </td><td class="right">      ip6</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      exists</td><td> </td><td class="right">      exists</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The following conventions apply to all mechanisms that perform a</td><td> </td><td class="right">   The following conventions apply to all mechanisms that perform a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   comparison between &lt;ip&gt; and an IP address at any point:</td><td> </td><td class="right">   comparison between &lt;ip&gt; and an IP address at any point:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If no CIDR prefix length is given in the directive, then &lt;ip&gt; and the</td><td> </td><td class="right">   If no CIDR prefix length is given in the directive, then &lt;ip&gt; and the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   IP address are compared for equality.  (Here, CIDR is Classless</td><td> </td><td class="right">   IP address are compared for equality.  (Here, CIDR is Classless</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Inter-Domain Routing, described in [RFC4632].)</td><td> </td><td class="right">   Inter-Domain Routing, described in [RFC4632].)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l11" /><small>skipping to change at</small><em> page 23, line 18</em></th><th> </th><th><a name="part-r11" /><small>skipping to change at</small><em> page 24, line 18</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "all" mechanism is a test that always matches.  It is used as the</td><td> </td><td class="right">   The "all" mechanism is a test that always matches.  It is used as the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   rightmost mechanism in a record to provide an explicit default.</td><td> </td><td class="right">   rightmost mechanism in a record to provide an explicit default.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   For example:</td><td> </td><td class="right">   For example:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      v=spf1 a mx -all</td><td> </td><td class="right">      v=spf1 a mx -all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Mechanisms after "all" will never be tested.  Mechanisms listed after</td><td> </td><td class="right">   Mechanisms after "all" will never be tested.  Mechanisms listed after</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "all" MUST be ignored.  Any "redirect" modifier (Section 6.1) MUST be</td><td> </td><td class="right">   "all" MUST be ignored.  Any "redirect" modifier (Section 6.1) MUST be</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0021" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ignored when there is an "all" mechanism in the <span class="delete">record.</span></td><td> </td><td class="rblock">   ignored when there is an "all" mechanism in the <span class="insert">record regardless of</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   the relative ordering of the terms.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">5.2.  "include"</td><td> </td><td class="right">5.2.  "include"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   include          = "include"  ":" domain-spec</td><td> </td><td class="right">   include          = "include"  ":" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "include" mechanism triggers a recursive evaluation of</td><td> </td><td class="right">   The "include" mechanism triggers a recursive evaluation of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   check_host().</td><td> </td><td class="right">   check_host().</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   1.  The domain-spec is expanded as per Section 7.</td><td> </td><td class="right">   1.  The domain-spec is expanded as per Section 7.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   2.  check_host() is evaluated with the resulting string as the</td><td> </td><td class="right">   2.  check_host() is evaluated with the resulting string as the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       &lt;domain&gt;.  The &lt;ip&gt; and &lt;sender&gt; arguments remain the same as in</td><td> </td><td class="right">       &lt;domain&gt;.  The &lt;ip&gt; and &lt;sender&gt; arguments remain the same as in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       the current evaluation of check_host().</td><td> </td><td class="right">       the current evaluation of check_host().</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0022" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   3.  The recursive evaluation returns <span class="delete">either</span> match, not match, or an</td><td> </td><td class="rblock">   3.  The recursive evaluation returns match, not match, or an error.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       error.  <span class="delete">If it matches, then the appropriate result for the</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">       include: mechanism is used (e.g. include or +include produces a</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">       "pass" result and -include produces "fail").</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0023" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   4.  If <span class="delete">there</span> is no <span class="delete">match,</span> the parent check_host() resumes processing</td><td> </td><td class="rblock">   4.  If <span class="insert">it returns match, then the appropriate result for the include:</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       as per the table below, with the previous value of &lt;domain&gt;</td><td> </td><td class="rblock"><span class="insert">       mechanism</span> is <span class="insert">used (e.g. include or +include produces a "pass"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       restored.</td><td> </td><td class="rblock"><span class="insert">       result and -include produces "fail").</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   5.  If it returns</span> no <span class="insert">match or an error,</span> the parent check_host()</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">       resumes processing as per the table below, with the previous</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">       value of &lt;domain&gt; restored.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   In hindsight, the name "include" was poorly chosen.  Only the</td><td> </td><td class="right">   In hindsight, the name "include" was poorly chosen.  Only the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   evaluated result of the referenced SPF record is used, rather than</td><td> </td><td class="right">   evaluated result of the referenced SPF record is used, rather than</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   literally including the mechanisms of the referenced record in the</td><td> </td><td class="right">   literally including the mechanisms of the referenced record in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   first.  For example, evaluating a "-all" directive in the referenced</td><td> </td><td class="right">   first.  For example, evaluating a "-all" directive in the referenced</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   record does not terminate the overall processing and does not</td><td> </td><td class="right">   record does not terminate the overall processing and does not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   necessarily result in an overall "fail".  (Better names for this</td><td> </td><td class="right">   necessarily result in an overall "fail".  (Better names for this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mechanism would have been "if-match", "on-match", etc.)</td><td> </td><td class="right">   mechanism would have been "if-match", "on-match", etc.)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "include" mechanism makes it possible for one domain to designate</td><td> </td><td class="right">   The "include" mechanism makes it possible for one domain to designate</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l12" /><small>skipping to change at</small><em> page 24, line 39</em></th><th> </th><th><a name="part-r12" /><small>skipping to change at</small><em> page 25, line 41</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   | neutral                         | not match                       |</td><td> </td><td class="right">   | neutral                         | not match                       |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   |                                 |                                 |</td><td> </td><td class="right">   |                                 |                                 |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   | temperror                       | return temperror                |</td><td> </td><td class="right">   | temperror                       | return temperror                |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   |                                 |                                 |</td><td> </td><td class="right">   |                                 |                                 |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   | permerror                       | return permerror                |</td><td> </td><td class="right">   | permerror                       | return permerror                |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   |                                 |                                 |</td><td> </td><td class="right">   |                                 |                                 |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   | none                            | return permerror                |</td><td> </td><td class="right">   | none                            | return permerror                |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   +---------------------------------+---------------------------------+</td><td> </td><td class="right">   +---------------------------------+---------------------------------+</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "include" mechanism is intended for crossing administrative</td><td> </td><td class="right">   The "include" mechanism is intended for crossing administrative</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0024" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   boundaries.  For example, if example.com and example.org were managed</td><td> </td><td class="rblock">   boundaries.  <span class="insert">When remaining within one administrative authority,</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   by the same entity, and if the permitted set of hosts for both</td><td> </td><td class="rblock"><span class="insert">   "include" is usually not the best choice.</span>  For example, if</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   domains was "mx:example.com", it would be possible for example.org to</td><td> </td><td class="rblock">   example.com and example.org were managed by the same entity, and if</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   specify "include:example.com", but it would be preferable to specify</td><td> </td><td class="rblock">   the permitted set of hosts for both domains was "mx:example.com", it</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   "redirect=example.com" or even "mx:example.com".</td><td> </td><td class="rblock">   would be possible for example.org to specify "include:example.com",</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   but it would be preferable to specify "redirect=example.com" or even</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   "mx:example.com".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   With the "include" mechanism an administratively external set of</td><td> </td><td class="right">   With the "include" mechanism an administratively external set of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   hosts can be authorized, but determination of sender policy is still</td><td> </td><td class="right">   hosts can be authorized, but determination of sender policy is still</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a function of the original domain's SPF record (as determined by the</td><td> </td><td class="right">   a function of the original domain's SPF record (as determined by the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "all" mechanism in that record).  The redirect modifier is more</td><td> </td><td class="right">   "all" mechanism in that record).  The redirect modifier is more</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   suitable for consolidating both authorizations and policy into a</td><td> </td><td class="right">   suitable for consolidating both authorizations and policy into a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   common set to be shared within an ADMD.  Redirect is much more like a</td><td> </td><td class="right">   common set to be shared within an ADMD.  Redirect is much more like a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   common code element to be shared among records in a single ADMD.  It</td><td> </td><td class="right">   common code element to be shared among records in a single ADMD.  It</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   is possible to control both authorized hosts and policy for an</td><td> </td><td class="right">   is possible to control both authorized hosts and policy for an</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   arbitrary number of domains from a single record.</td><td> </td><td class="right">   arbitrary number of domains from a single record.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l13" /><small>skipping to change at</small><em> page 29, line 18</em></th><th> </th><th><a name="part-r13" /><small>skipping to change at</small><em> page 30, line 18</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Modifiers always have an "=" separating the name and the value.</td><td> </td><td class="right">   Modifiers always have an "=" separating the name and the value.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The modifiers defined in this document ("redirect" and "exp") SHOULD</td><td> </td><td class="right">   The modifiers defined in this document ("redirect" and "exp") SHOULD</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   appear at the end of the record, after all mechanisms, though</td><td> </td><td class="right">   appear at the end of the record, after all mechanisms, though</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   syntactically they can appear anywhere in the record.  Ordering of</td><td> </td><td class="right">   syntactically they can appear anywhere in the record.  Ordering of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   these two modifiers does not matter.  These two modifiers MUST NOT</td><td> </td><td class="right">   these two modifiers does not matter.  These two modifiers MUST NOT</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   appear in a record more than once each.  If they do, then</td><td> </td><td class="right">   appear in a record more than once each.  If they do, then</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   check_host() exits with a result of "permerror".</td><td> </td><td class="right">   check_host() exits with a result of "permerror".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Unrecognized modifiers MUST be ignored no matter where in a record,</td><td> </td><td class="right">   Unrecognized modifiers MUST be ignored no matter where in a record,</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0025" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   or how often.  This allows implementations of this document to</td><td> </td><td class="rblock">   <span class="insert">they appear</span> or how often.  This allows implementations of this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   gracefully handle records with modifiers that are defined in other</td><td> </td><td class="rblock">   document to gracefully handle records with modifiers that are defined</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   specifications.</td><td> </td><td class="rblock">   in other specifications.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">6.1.  redirect: Redirected Query</td><td> </td><td class="right">6.1.  redirect: Redirected Query</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The redirect modifier is intended for consolidating both</td><td> </td><td class="right">   The redirect modifier is intended for consolidating both</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorizations and policy into a common set to be shared within a</td><td> </td><td class="right">   authorizations and policy into a common set to be shared within a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   single ADMD.  It is possible to control both authorized hosts and</td><td> </td><td class="right">   single ADMD.  It is possible to control both authorized hosts and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   policy for an arbitrary number of domains from a single record.</td><td> </td><td class="right">   policy for an arbitrary number of domains from a single record.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   redirect         = "redirect" "=" domain-spec</td><td> </td><td class="right">   redirect         = "redirect" "=" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l14" /><small>skipping to change at</small><em> page 30, line 21</em></th><th> </th><th><a name="part-r14" /><small>skipping to change at</small><em> page 31, line 21</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the same record.  This can be an administrative advantage.</td><td> </td><td class="right">   the same record.  This can be an administrative advantage.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Note: In general, the domain "A" cannot reliably use a redirect to</td><td> </td><td class="right">   Note: In general, the domain "A" cannot reliably use a redirect to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   another domain "B" not under the same administrative control.  Since</td><td> </td><td class="right">   another domain "B" not under the same administrative control.  Since</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the &lt;sender&gt; stays the same, there is no guarantee that the record at</td><td> </td><td class="right">   the &lt;sender&gt; stays the same, there is no guarantee that the record at</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   domain "B" will correctly work for mailboxes in domain "A",</td><td> </td><td class="right">   domain "B" will correctly work for mailboxes in domain "A",</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   especially if domain "B" uses mechanisms involving local-parts.  An</td><td> </td><td class="right">   especially if domain "B" uses mechanisms involving local-parts.  An</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "include" directive will generally be more appropriate.</td><td> </td><td class="right">   "include" directive will generally be more appropriate.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   For clarity, any "redirect" modifier SHOULD appear as the very last</td><td> </td><td class="right">   For clarity, any "redirect" modifier SHOULD appear as the very last</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0026" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   term in a record.</td><td> </td><td class="rblock">   term in a record.  <span class="insert">Any "redirect" modifier MUST be ignored if there</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   is an "all" mechanism anywhere in the record.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">6.2.  exp: Explanation</td><td> </td><td class="right">6.2.  exp: Explanation</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   explanation      = "exp" "=" domain-spec</td><td> </td><td class="right">   explanation      = "exp" "=" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If check_host() results in a "fail" due to a mechanism match (such as</td><td> </td><td class="right">   If check_host() results in a "fail" due to a mechanism match (such as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "-all"), and the "exp" modifier is present, then the explanation</td><td> </td><td class="right">   "-all"), and the "exp" modifier is present, then the explanation</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   string returned is computed as described below.  If no "exp" modifier</td><td> </td><td class="right">   string returned is computed as described below.  If no "exp" modifier</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   is present, then either a default explanation string or an empty</td><td> </td><td class="right">   is present, then either a default explanation string or an empty</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   explanation string MUST be returned to the calling application.</td><td> </td><td class="right">   explanation string MUST be returned to the calling application.</td><td class="lineno" valign="top"></td></tr>

     <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
     <tr bgcolor="gray"><th colspan="5" align="center"><a name="end">&nbsp;End of changes. 26 change blocks.&nbsp;</a></th></tr>
     <tr class="stats"><td></td><th><i>149 lines changed or deleted</i></th><th><i> </i></th><th><i>160 lines changed or added</i></th><td></td></tr>
     <tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.41. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/" >http://tools.ietf.org/tools/rfcdiff/</a> </td></tr>
   </table>
   </body>
   </html>

--nextPart2989640.dMaItEDoA5--


From sm@elandsys.com  Tue Sep 24 09:03:58 2013
Return-Path: <sm@elandsys.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 3021D21F967F; Tue, 24 Sep 2013 09:03:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.558
X-Spam-Level: 
X-Spam-Status: No, score=-102.558 tagged_above=-999 required=5 tests=[AWL=0.041, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id kzcE5fhbG1M6; Tue, 24 Sep 2013 09:03:56 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 94A4A11E8171; Tue, 24 Sep 2013 09:03:00 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.142.228]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8OG2SbL027602 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 24 Sep 2013 09:02:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1380038565; bh=u3rBf+lSW2OAvBucDuIBxDM/obyRpxS0wjcD6f8SkT8=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=dF0aOL6nZ9752wOMmI++RmUXJ6iYRFwsTr8tg+gbeyZ1nBED3nrsZMFuYa3hjBwrt SgwNTjPnCv34a997XT93rIq9TtTbhh7xDTqxmhstIRDmimmoJtvqxK0axxvtyB/NDg 3fuvPZeVF340+1vOK3MzOPOICz3M485RW6k3ZiEI=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1380038565; i=@elandsys.com; bh=u3rBf+lSW2OAvBucDuIBxDM/obyRpxS0wjcD6f8SkT8=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=EMiIlkEw4Kv4HGdDNhldF4m6ows/q59tEEdsBXkciRpc5MHOW/giefr6VCDOyBXj4 jejrFlZX046qonjnfUlwADI6sNs4TH7p/SzKtIU8R/v+tWZO6VQrzq+KNvS6+OU0fi +B5Vh3RpwtmXTE1bnMM52pj7cGZuKdN5npGEqFX8=
Message-Id: <6.2.5.6.2.20130924085503.0c765350@resistor.net>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Tue, 24 Sep 2013 09:00:24 -0700
To: Barry Leiba <barryleiba@computer.org>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <5681464.EQGBnZhqiI@scott-latitude-e6320>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.gmail.com> <1409783.xNJeGdWPul@scott-latitude-e6320> <5681464.EQGBnZhqiI@scott-latitude-e6320>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Tue, 24 Sep 2013 16:03:58 -0000

Hi Barry,
At 21:26 22-09-2013, Scott Kitterman wrote:
>Finally getting back to addressing additional comments.  I have it 
>in my notes
>that we hadn't addressed the comment part of this in -20.  Based on the
>comments I previously sent to the list, I'm attaching my proposed changes (so
>far - there are more messages needing processing) for -21.  Additional
>comments embedded below.

Please see the comments from Scott Kitterman below (Thanks, 
Scott).  The attachment which I am not forwarding can be found at 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04212.html

Regards,
S. Moonesamy (as document shepherd)


>On Wednesday, September 11, 2013 17:38:27 Scott Kitterman wrote:
> > On Wednesday, September 11, 2013 10:23:57 Murray S. Kucherawy wrote:
> > > On Wed, Sep 11, 2013 at 5:04 AM, S Moonesamy 
> <sm+ietf@elandsys.com> wrote:
> > > >> ------------------------------**------------------------------**
> > > >> ----------
> > > >> COMMENT:
> > > >> ------------------------------**------------------------------**
> > > >> ----------
> > > >>
> > > >> I have a bunch of editorial comments that I'd like you to consider.
> > > >> They're all non-blocking, but I think they'll improve the 
> document, and
> > > >> I'll be happy to chat about them if you like.
> > > >>
> > > >> -- Section 2.5 --
> > > >>
> > > >>    Performing the authorization check other than using the MAIL FROM
> > > >>    and
> > > >>    client address at the time of the MAIL command during the SMTP
> > > >>    transaction can cause problems, such as the following: (1) It might
> > > >>    be difficult to accurately extract the required information from
> > > >>    potentially deceptive headers; (2) legitimate email might fail
> > > >>    because the sender's policy had since changed.
> > > >>
> > > >> I found that to be awkwardly worded and hard to understand.  Please
> > > >> consider this rewrite:
> > > >>
> > > >> NEW
> > > >>
> > > >>    The authorization check is performed during the SMTP transaction
> > > >>    at the time of the MAIL command, and uses the MAIL FROM value and
> > > >>    the client IP address.  Performing the check at later times or
> > > >>    with other input can cause problems such as the following:
> > > >>
> > > >>    *  It might be difficult to accurately extract the required
> > > >>
> > > >>       information from potentially deceptive headers.
> > > >>
> > > >>    *  Legitimate email might fail the authorization check because
> > > >>
> > > >>       the sender's policy has since changed.
> > > >>
> > > >> END
> > >
> > > Seems reasonable.
> >
> > Agreed.
>
>Done.
>
> > > >> -- Section 2.6 --
> > > >>
> > > >> It would really read best if the subsections were worded to be
> > > >> parallel.
> > > >> As it stands, subsections 1, 3, 4, 6, and 7 are worded as "result X
> > > >> means
> > > >> Y", and subsections 2 and 5 are not.  Can you re-word 2 and 5 to be
> > > >> parallel to the others?
> > >
> > > Seems reasonable.
> >
> > Agreed.
>
>Done.
>
> > > >> Also, why are "neutral" and "fail" called "explicit statements", but
> > > >> "pass", for example, is not?
> > >
> > > I agree, "pass" should be.
> >
> > Yep.
>
>Done.
>
> > > >> -- Section 3 --
> > > >>
> > > >>    Each SPF record is placed in the DNS tree at the owner name it
> > > >>    pertains to, not a subdomain under it, such as is done with SRV
> > > >>    records [RFC2782].
> > > >>
> > > >> This looks like it's saying that SRV records are placed in subdomains,
> > > >> and I don't think that's what you mean.  Or is it?  In any case, it's
> > > >> not
> > > >> clear (and I know this text is from the original).
> > > >>
> > > >> Maybe this (which also avoids the two different "it"s)?:
> > > >>
> > > >> NEW
> > > >>
> > > >>    Each SPF record is placed in the DNS tree at the owner name it
> > > >>    pertains to, not in a subdomain under the owner name.  This is
> > > >>    similar to how SRV records [RFC2782] are done.
> > > >>
> > > >> END
> > >
> > > Seems reasonable.
> >
> > Agreed.
>
>Done.
>
> > > >>    The example in this section might be published via these lines in a
> > > >>
> > > >>    domain zone file:
> > > >>       example.com. TXT "v=spf1 +mx a:colo.example.com/28 -all"
> > > >>       smtp-out.example.com. TXT "v=spf1 a -all"
> > > >>
> > > >> What does "smtp-out" have to do with anything?  It's not otherwise
> > > >> used,
> > > >> and it seems to contradict what you say about subdomains in the
> > > >> previous
> > > >> paragraph.
> > >
> > > Hmm.  Someone else will have to comment on this one.
> >
> > Those are just two examples, but the preceding text is poorly worded (I
> > checked and it's no better in RFC 4408).  How about this instead, to
> > clarify:
> >
> >    The example in this section (plus an additional SPF record for
> >    smtp-out.example.com) might be published via these lines in a
> >    domain zone file:
> >
> >       example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"
> >       smtp-out.example.com. TXT "v=spf1 a -all"
>
>Already fixed in -20.
>
> > > >> -- Section 4 --
> > > >>
> > > >>    This description is not an API (Application Program Interface)
> > > >>    definition,
> > > >>
> > > >> Two total nits on this:
> > > >> 1. You never use "API" other than here, so there's no need to define
> > > >> it,
> > > >> and
> > > >> 2. the usual expansion of "API" is application programMING interface.
> > > >> I suggest, "This description is not an application programming
> > > >> interface
> > > >> definition, [etc]."
> > >
> > > Seems reasonable.
> >
> > Agreed.
>
>Done.
>
> > > >> -- 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 is discarded.
> > > >>
> > > >> Sure, and "v=spf1.0" doesn't match, and "v=spf11" doesn't match,
> > > >> and....
> > > >> Why is it necessary or desirable to single out "v=spf10" here?
> > >
> > > I think "v=spf1.0" is actually the better (and perhaps intended) example,
> > > meaning "don't just stuff the part after 'spf' through a number 
> parser and
> > > make sure 1 comes out".
> >
> > The intent here is to show that you have to look at least one 
> character past
> > "v=spf1" to know if it's an SPF record or not.  It's an example.  As such,
> > it doesn't matter much wrt the point if it's "v=spf10", "v=spf1.0", or or
> > "v=spf1hatespf".  None of those start SPF records.  What's there is
> > unchanged from RFC 4408.  I don't seem much of a point in changing it, but
> > if others think 1.0 is better than 10, I don't mind.
>
>There was already a change for this in -20.
>
> > > >> -- Section 4.6.4 --
> > > >>
> > > >>    SPF implementations MUST limit the total number of mechanisms and
> > > >>    modifiers ("terms") that cause any DNS query to 10 during SPF
> > > >>    evaluation.  Specifically, the "include", "a", "mx", "ptr", and
> > > >>    "exists" mechanisms as well as the "redirect" modifier 
> count against
> > > >>    this collective limit.  The "all", "ip4", and "ip6" mechanisms do
> > > >>    not
> > > >>    count against this limit.  If this number is exceeded during a
> > > >>    check,
> > > >>    a "permerror" MUST be returned.  The "exp" modifier does not count
> > > >>    against this limit because the DNS lookup to fetch the explanation
> > > >>    string occurs after the SPF record evaluation has been completed.
> > > >>
> > > >> When I read this, I start feeling like I'm being read the rules for
> > > >> Fizzbin
> > > >> 
> <http://en.wikipedia.org/wiki/**Fizzbin#Fizzbin<http://en.wikipedia.org> > >> /
> > > >> wiki/Fizzbin#Fizzbin>>.>>
> > > >>
> > > >>  I would
> > > >> appreciate it if this was re-worded so that there are two clear lists
> > > >> here: the terms that are included in the "limit of 10", and the terms
> > > >> that are not (and are, presumably, unlimited).  Perhaps something like
> > > >> this:
> > > >>
> > > >> NEW
> > > >>
> > > >>    Some mechanisms and modifiers (collectively, "terms") cause DNS
> > > >>    queries at the time of evaluation, and some do not.  The following
> > > >>    terms cause DNS queries: <list goes here>.  SPF implementations
> > > >>    MUST limit the total number of those terms to 10 during SPF
> > > >>    evaluation, to avoid unreasonable load on the DNS.  If this limit
> > > >>    is exceeded, the implementation MUST return "permerror".  The other
> > > >>    terms (<list goes here>) do not cause DNS queries at the time of
> > > >>    SPF evaluation, and their use is not subject to this limit.
> > > >>
> > > >> END
> > > >>
> > > >> If you think it's necessary (I don't):
> > > >>
> > > >> NEW+
> > > >>
> > > >>    The other
> > > >>    terms (<list goes here>) do not cause DNS queries at the time of
> > > >>    SPF evaluation (the "exp" modifier causes a lookup at a 
> later time),
> > > >>    and their use is not subject to this limit.
> > > >>
> > > >> END
> > >
> > > I like the new text, and prefer the second bit be included.
> >
> > If we change, and I think that's reasonable, the second bit should
> > definitely be included.  "exp" not counting in the 10 has confused people
> > and we should be explicit about it.
>
>Done.
>
> > > >> Then in the next two paragraphs, I think it would improve clarity to
> > > >> make
> > > >> a change such as this:
> > > >>
> > > >> OLD
> > > >>
> > > >>    When evaluating the "mx" mechanism, the number of "MX" resource
> > > >>    records queried is included in the overall limit of 10 mechanisms/
> > > >>    modifiers that cause DNS lookups described above.  The 
> evaluation of
> > > >>    each "MX" record MUST NOT result in querying more than 10 address
> > > >>    records,
> > > >>
> > > >> NEW
> > > >>
> > > >>    When evaluating the "mx" mechanism, the number of "MX" resource
> > > >>    records queried is included in the overall limit of 10 mechanisms/
> > > >>    modifiers that cause DNS lookups described above.  In addition to
> > > >>    that limit, the evaluation of each "MX" record MUST NOT result in
> > > >>    querying more than 10 address records,
> > > >>
> > > >> END
> > > >>
> > > >> (And similarly for the "ptr" paragraph.)  I know you say this in a
> > > >> paragraph of its own ("These limits are per mechanism..."), but it's
> > > >> helpful if people can understand things as they read them, and then to
> > > >> emphasize it later... rather than having them scratch their 
> heads for a
> > > >> few paragraphs until they get to it.
> > >
> > > +1 to that part too.
> >
> > Seems reasonable.
>
>Done.
>
> > > > -- Section 4.7 --
> > > >
> > > >>    It is better to use either a "redirect" modifier or an "all"
> > > >>    mechanism to explicitly terminate processing.  Although the latter
> > > >>    has a default (specifically "?all"), it aids debugging 
> efforts if it
> > > >>    is explicitly provided.
> > > >>
> > > >> I'm not sure what "the latter has a default" is trying to say.  Do you
> > > >> mean that "?all" is the default if you fall off the end, but you
> > > >> shouldn't rely on that?  Or do you mean that if you say "all", then
> > > >> "?all" is taken as the default (I would think "all" would 
> mean "+all")?
> > > >> Will you try re-wording this, please?
> > >
> > > The former ("?all" is implicit if you fall off the end).  Suggest:
> > >
> > > It is better to use either a "redirect" modifier or an "all" mechanism to
> > > explicitly terminate processing.  Although there is in effect a "?all"
> > > implicit at the end of every record, it ads debigging efforts when it is
> > > explicitly provided.
> >
> > How about:
> >
> >    It is better to use either a "redirect" modifier or an "all" 
> mechanism to
> > explicitly terminate processing.  Although there is an implicit "?all" at
> > the end of every record that is not explicitly terminated, it aids
> > debugging efforts when it is explicitly provided.
>
>This was changed in -20.
>
> > > >> -- Section 5 --
> > > >>
> > > >> What does "(do not publish)" mean next to "ptr" in the sender
> > > >> mechanisms
> > > >> list?  Ah; I see; it matches the "do not use" in Section 5.5.  You
> > > >> should
> > > >> probably change this to "(do not use; see the note in Section 5.5)".
> > >
> > > Seems reasonable.
> >
> > OK.
>
>Done.
>
> > > >> It would help, I think, to add to the end of the second 
> paragraph, "The
> > > >> basic mechanisms are as follows:", and to the end of the third
> > > >> paragraph,
> > > >> "The designated sender mechanisms are as follows:".  Otherwise, there
> > > >> are
> > > >> just these disembodied lists, and the reader has to infer those
> > > >> introductions.
> > >
> > > Sure.
> >
> > Agreed.
>
>Done.
>
> > > >> -- Section 5.1 --
> > > >>
> > > >>    Mechanisms after "all" will never be tested.  Mechanisms listed
> > > >>    after
> > > >>    "all" MUST be ignored.  Any "redirect" modifier (Section 6.1) MUST
> > > >>    be
> > > >>    ignored when there is an "all" mechanism in the record.
> > > >>
> > > >> This says that the redirect in the following record will be ignored:
> > > >>    v=spf1 redirect=_spf.example.com +all
> > > >>
> > > >> That's sufficiently odd that it should be called out explicitly,
> > > >> perhaps
> > > >> by adding "regardless of the relative ordering of the terms" to the
> > > >> last
> > > >> sentence in the quote.
> > >
> > > Yep.
> >
> > OK.
>
>Done.
>
> > > >> -- Section 5.2 --
> > > >>
> > > >>    3.  The recursive evaluation returns either match, not match, or an
> > > >>
> > > >>        error.  If it matches, then the appropriate result for the
> > > >>        include: mechanism is used (e.g. include or +include produces a
> > > >>        "pass" result and -include produces "fail").
> > > >>
> > > >>    4.  If there is no match, the parent check_host() resumes 
> processing
> > > >>
> > > >>        as per the table below, with the previous value of <domain>
> > > >>        restored.
> > > >>
> > > >> A few things here:
> > > >>
> > > >> 1. Nit: "either" is for two things; for more than two, please remove
> > > >> the
> > > >> word "either" (or replace it with "one of", but that seems awkward
> > > >> here).
> > > >>
> > > >> 2. "If it matches" is not parallel to "returns match", and similarly
> > > >> for
> > > >> "if there is no match".
> > > >>
> > > >> 3. You don't say what happens if the recursive evaluation returns an
> > > >> error.  Unfortuately, "no match" and "not match" are sufficiently
> > > >> similar
> > > >> to be confused.
> > > >>
> > > >> I suggest this:
> > > >>
> > > >> NEW
> > > >>
> > > >>    3.  The recursive evaluation returns match, not match, or an
> > > >>
> > > >>        error.
> > > >>
> > > >>    4.  If it returns match, then the appropriate result for the
> > > >>
> > > >>        include: mechanism is used (e.g., include or +include produces
> > > >>        a "pass" result and -include produces "fail").
> > > >>
> > > >>    5.  If it returns not match or an error, the parent check_host()
> > > >>
> > > >>        resumes processing as per the table below, with the previous
> > > >>        value of <domain> restored.
> > > >>
> > > >> END
> > >
> > > +1.
> >
> > I think this is fine.
>
>Done.
>
> > > >>    The "include" mechanism is intended for crossing administrative
> > > >>    boundaries.  For example, if example.com and example.org were
> > > >>    managed
> > > >>    by the same entity, and if the permitted set of hosts for both
> > > >>    domains was "mx:example.com", it would be possible for example.org
> > > >>    to
> > > >>    specify "include:example.com", but it would be preferable 
> to specify
> > > >>    "redirect=example.com" or even "mx:example.com".
> > > >>
> > > >> The text you eliminated here provided a buffer that's no longer there,
> > > >> making the "For example," very odd.  You talk about crossing admin
> > > >> boundaries and immediately follow it with an example that does NOT.  I
> > > >> think it would be better to put a sentence in to restore 
> that buffer --
> > > >> perhaps, "When remaining within one administrative 
> authority, "include"
> > > >> is usually not the best choice."
> > >
> > > Sure.
> >
> > Agreed.
>
>Done.
>
> > > >> -- Section 5.5 --
> > > >>
> > > >>    This mechanism SHOULD NOT be published.  See below for discussion.
> > > >>
> > > >> It's quite a bit below.  I suggest "See the note at the end of this
> > > >> section for more information."  It might even be worth putting that
> > > >> note
> > > >> into a Section 5.5.1, so it's highlighted and more easily cited.
> > >
> > > +1.
> >
> > OK.  Someone let me know which way I should do it.  I'm OK with either.
>
>The first option was done in -20.
>
> > > >> -- Section 6 --
> > > >>
> > > >>    Unrecognized modifiers MUST be ignored no matter where in a record,
> > > >>    or how often.
> > > >>
> > > >> This is missing a couple of words:
> > > >>
> > > >> NEW
> > > >>
> > > >>    Unrecognized modifiers MUST be ignored no matter where in a record
> > > >>    they appear, or how often.
> > > >>
> > > >> END
> > >
> > > +1.
> >
> > OK.
>
>Done.
>
> > > >>    For clarity, any "redirect" modifier SHOULD appear as the very last
> > > >>    term in a record.
> > > >>
> > > >> I don't usually recommend repeating things, but one thing from earlier
> > > >> probably does bear repeating here:
> > > >>
> > > >> NEW
> > > >>
> > > >>    For clarity, any "redirect" modifier SHOULD appear as the very last
> > > >>    term in a record.  Any "redirect" modifier MUST be ignored if there
> > > >>    is an "all" mechanism anywhere in the record.
> > > >>
> > > >> END
> > >
> > > Seems reasonable.
> >
> > OK.
> >
> > Thanks for the detailed review and msk's comments on the comments.
> >
> > Scott K


From barryleiba@gmail.com  Tue Sep 24 10:58:04 2013
Return-Path: <barryleiba@gmail.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 0DA2511E813A; Tue, 24 Sep 2013 10:58:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.981
X-Spam-Level: 
X-Spam-Status: No, score=-101.981 tagged_above=-999 required=5 tests=[AWL=-0.003, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, NO_RELAYS=-0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KNAm5Ot68sLK; Tue, 24 Sep 2013 10:58:01 -0700 (PDT)
Received: from mail-qc0-x22b.google.com (mail-qc0-x22b.google.com [IPv6:2607:f8b0:400d:c01::22b]) by ietfa.amsl.com (Postfix) with ESMTP id 5852121F8E70; Tue, 24 Sep 2013 10:57:42 -0700 (PDT)
Received: by mail-qc0-f171.google.com with SMTP id x19so3340918qcw.30 for <multiple recipients>; Tue, 24 Sep 2013 10:57:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=I3hRakzt0MuVzXy5OFE0liDy2m7XH4XHav+hzGMREWA=; b=kdmhghiH6gndwO8eN5NX4f9cxrl+ADvW0Ekxalb3ePghKGdG+CZ+0bHNwuHrJABVaK wGXrroLMfO4H1f4LlWtHO+bmshJHy2j+v43ZRWxQNw+bFfggJGa+Vk30kiQEWdwHhuW0 60iDkeC7keqKXkY+IftUwcREZL7OEud+4VFmtKt+aMve80HuNAMTIvfcIHIGMdZ/NExf 5xDDHUeKmsggM5zh+IOSizskTxNz1gl5iUH4TQJcnakfLzPS1O7oreEXfTaw7JEII6dI 8JZL65aJFrOD66k9dKj24Y3Bp5tRgl4oxZd50lVadiJRtqnMMNggRBgPxoiGgLe0kggb 0OEw==
MIME-Version: 1.0
X-Received: by 10.49.50.42 with SMTP id z10mr27645232qen.40.1380045460648; Tue, 24 Sep 2013 10:57:40 -0700 (PDT)
Sender: barryleiba@gmail.com
Received: by 10.224.67.130 with HTTP; Tue, 24 Sep 2013 10:57:40 -0700 (PDT)
In-Reply-To: <6.2.5.6.2.20130924085503.0c765350@resistor.net>
References: <20130911015837.30196.11175.idtracker@ietfa.amsl.com> <CAL0qLwa=nXmYv8Npf+zKqPkWmVLewkrgfofD0+yAw6_MoXinCA@mail.gmail.com> <1409783.xNJeGdWPul@scott-latitude-e6320> <5681464.EQGBnZhqiI@scott-latitude-e6320> <6.2.5.6.2.20130924085503.0c765350@resistor.net>
Date: Tue, 24 Sep 2013 13:57:40 -0400
X-Google-Sender-Auth: DDnQn4GgCfyhmj06Q2-4cR48fEg
Message-ID: <CALaySJKK3Tx+UH+RR+QVA8F4y4PYbM5nojNAWOGNA1o=zsahaw@mail.gmail.com>
From: Barry Leiba <barryleiba@computer.org>
To: S Moonesamy <sm+ietf@elandsys.com>
Content-Type: text/plain; charset=ISO-8859-1
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, "spfbis-chairs@tools.ietf.org" <spfbis-chairs@tools.ietf.org>, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-19: (with DISCUSS and COMMENT)
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: Tue, 24 Sep 2013 17:58:04 -0000

>> Finally getting back to addressing additional comments.  I have it in
>> my notes that we hadn't addressed the comment part of this in -20.
>> Based on the comments I previously sent to the list, I'm attaching my
>> proposed changes (so far - there are more messages needing
>> processing) for -21.  Additional comments embedded below.
>
> Please see the comments from Scott Kitterman below (Thanks, Scott).  The
> attachment which I am not forwarding can be found at
> http://www.ietf.org/mail-archive/web/spfbis/current/msg04212.html

Yes, thanks for addressing this stuff.  When -21's posted, after all
the changes are in, I'll review it and see where we are.  I'm sure
it'll have everything important taken care of.

Barry

From sm@elandsys.com  Wed Sep 25 13:32:47 2013
Return-Path: <sm@elandsys.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 53AAD21E8055; Wed, 25 Sep 2013 13:32:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.563
X-Spam-Level: 
X-Spam-Status: No, score=-102.563 tagged_above=-999 required=5 tests=[AWL=0.036, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id B4wcGRGzoDQb; Wed, 25 Sep 2013 13:32:46 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id AA55821F9B86; Wed, 25 Sep 2013 13:32:42 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.132.253]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8PKV5IQ017898 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 25 Sep 2013 13:31:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1380141080; bh=0cCPa20U6Lrm2EG1vrwFmOQqL10ayePg/r8cub78ihE=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=DYU9vwnGyUDy9urhQk+uOqr+3qniHMn+VY+PUm8C3u8cfAu47CVjfaN2GxiKiZ6hU W7V3dF84AqjNBbCugGFsiIMMpjKXpwZ9Au+pHQYryxVK0XPEq/Ya3ZlLgK8eBQsgkY Xa27MYiFK5c+t5j6iUr40C7CvwKWfr1D1mlA8qCA=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1380141080; i=@elandsys.com; bh=0cCPa20U6Lrm2EG1vrwFmOQqL10ayePg/r8cub78ihE=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=ZKDDVr3hjpY1RKT+207Uuk1rUHYjoo+9t8dsR+UM5r9UNmcVa6VytJScbEWnJDzJA QEWwiX9sn/Ko8m4wejEbLG326MH8GVc7fI/QYXWL3xjtdJKQNdAmdOpfx2fGmm1LD9 tJLaILa8gCbMIo0kxX+9Iw6N4oJ1IDp6bGzyZaJ0=
Message-Id: <6.2.5.6.2.20130925131612.0d8d3800@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Wed, 25 Sep 2013 13:30:47 -0700
To: spfbis@ietf.org
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <20130912101511.20829.6656.idtracker@ietfa.amsl.com>
References: <20130912101511.20829.6656.idtracker@ietfa.amsl.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>, Stephen Farrell <stephen.farrell@cs.tcd.ie>
Subject: Re: [spfbis] Stephen Farrell's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Wed, 25 Sep 2013 20:32:47 -0000

Hello,

I would like to bring the message below to the attention of the 
working group.  There has not been any response to it.  Can a SPFBIS 
WG participant please respond to the message?

Thanks,
S. Moonesamy (as document shepherd)

At 03:15 12-09-2013, Stephen Farrell wrote:
>Stephen Farrell has entered the following ballot position for
>draft-ietf-spfbis-4408bis-19: No Objection
>
>When responding, please keep the subject line intact and reply to all
>email addresses included in the To and CC lines. (Feel free to cut this
>introductory paragraph, however.)
>
>
>Please refer to http://www.ietf.org/iesg/statement/discuss-criteria.html
>for more information about IESG DISCUSS and COMMENT positions.
>
>
>The document, along with other ballot positions, can be found here:
>http://datatracker.ietf.org/doc/draft-ietf-spfbis-4408bis/
>
>
>
>----------------------------------------------------------------------
>COMMENT:
>----------------------------------------------------------------------
>
>
>- 4.1: given that recursion is allowed and that you have
>overall limits on how many DNS transactions can be done,
>is the "transactions-remaining" value also an implicit
>parameter of a check_host() call? This is only a comment
>since check_host is not a formal API but it'd seem to make
>it easier to get right if you make that implicit parameter
>explicit. Or do the limits apply to each call as you
>recurse?  That wasn't entirely clear to me.
>
>- I didn't get appendix D at all - what's that do?
>
>- Appendix E.1, 2nd bullet: what's that? I think it needs
>a reference if you want it to be understood.


From superuser@gmail.com  Wed Sep 25 14:23:47 2013
Return-Path: <superuser@gmail.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 C62B521F922A; Wed, 25 Sep 2013 14:23:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.501
X-Spam-Level: 
X-Spam-Status: No, score=-2.501 tagged_above=-999 required=5 tests=[AWL=0.098,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id O5+bk9ySoGHA; Wed, 25 Sep 2013 14:23:44 -0700 (PDT)
Received: from mail-wi0-x231.google.com (mail-wi0-x231.google.com [IPv6:2a00:1450:400c:c05::231]) by ietfa.amsl.com (Postfix) with ESMTP id 4D5B511E80DF; Wed, 25 Sep 2013 14:23:43 -0700 (PDT)
Received: by mail-wi0-f177.google.com with SMTP id cb5so283171wib.16 for <multiple recipients>; Wed, 25 Sep 2013 14:23:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=dXl42LgFJxn/ft1aKYhf+bUoL9cZocOxo6lrG9xxPVM=; b=hbNVc8CRCQ2Jz60iiHvve6fF7h8K49lGwLbCBvJS5pqw1WkSkm/aPTOyZw6cszWFl2 o+4/S5Nipe7rcAR5ALBX8LhZBq4xaxtWgYzLUOGCg0mkA5bFuKVNqQDxbXqFQjyjNeMv I5/VvfgtwdaZ1v1nCZ8ScBS4JjSTJCqfk7dNQLJKhi18KBEnbfwOBEM6po49Q/zX79Q2 zMBdfbuNR5zkoONJWibS9AVtXvhfTG5FdjUAZNx121s+agQSbA2EsyXxuhF9WOZL8QZ8 1n/0iRL1o8oT5HOQWPElGtypi2MLNcmoEOxGWeHdTvusjFu8lms04xaU2rwQAvCZklKT lY6Q==
MIME-Version: 1.0
X-Received: by 10.194.174.36 with SMTP id bp4mr28431859wjc.7.1380144222373; Wed, 25 Sep 2013 14:23:42 -0700 (PDT)
Received: by 10.180.18.202 with HTTP; Wed, 25 Sep 2013 14:23:42 -0700 (PDT)
In-Reply-To: <6.2.5.6.2.20130925131612.0d8d3800@elandnews.com>
References: <20130912101511.20829.6656.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130925131612.0d8d3800@elandnews.com>
Date: Wed, 25 Sep 2013 14:23:42 -0700
Message-ID: <CAL0qLwZqmReNcT3n4HBdd8ZkMN0P=J42nZREUcSXYAS2h1Eiug@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: S Moonesamy <sm+ietf@elandsys.com>
Content-Type: multipart/alternative; boundary=089e0141a0ae1d0c7304e73bdeb2
Cc: "spfbis@ietf.org" <spfbis@ietf.org>, "spfbis-chairs@tools.ietf.org" <spfbis-chairs@tools.ietf.org>, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>, Stephen Farrell <stephen.farrell@cs.tcd.ie>
Subject: Re: [spfbis] Stephen Farrell's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Wed, 25 Sep 2013 21:23:47 -0000

--089e0141a0ae1d0c7304e73bdeb2
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Sep 25, 2013 at 1:30 PM, S Moonesamy <sm+ietf@elandsys.com> wrote:

> Hello,
>
> I would like to bring the message below to the attention of the working
> group.  There has not been any response to it.  Can a SPFBIS WG participant
> please respond to the message?
>
>
> Thanks,
> S. Moonesamy (as document shepherd)
>
> At 03:15 12-09-2013, Stephen Farrell wrote:
>
>> Stephen Farrell has entered the following ballot position for
>> draft-ietf-spfbis-4408bis-19: No Objection
>>
>> When responding, please keep the subject line intact and reply to all
>> email addresses included in the To and CC lines. (Feel free to cut this
>> introductory paragraph, however.)
>>
>>
>> Please refer to http://www.ietf.org/iesg/**statement/discuss-criteria.**
>> html <http://www.ietf.org/iesg/statement/discuss-criteria.html>
>> for more information about IESG DISCUSS and COMMENT positions.
>>
>>
>> The document, along with other ballot positions, can be found here:
>> http://datatracker.ietf.org/**doc/draft-ietf-spfbis-4408bis/<http://datatracker.ietf.org/doc/draft-ietf-spfbis-4408bis/>
>>
>>
>>
>> ------------------------------**------------------------------**
>> ----------
>> COMMENT:
>> ------------------------------**------------------------------**
>> ----------
>>
>>
>> - 4.1: given that recursion is allowed and that you have
>> overall limits on how many DNS transactions can be done,
>> is the "transactions-remaining" value also an implicit
>> parameter of a check_host() call? This is only a comment
>> since check_host is not a formal API but it'd seem to make
>> it easier to get right if you make that implicit parameter
>> explicit. Or do the limits apply to each call as you
>> recurse?  That wasn't entirely clear to me.
>>
>
I suggest that it would be sufficient to add some prose that says the
"transactions-remaining" count (or whatever we call it) has to apply
through the recursions.  We shouldn't make this look any more like an API
definition than it already does.


- I didn't get appendix D at all - what's that do?
>>
>
I agree, we should explain it and include an example, or drop it.  Someone
closer to the implementation and the original material than I am is almost
certainly able to come up with an appropriate example versus what I would
invent.



>
>> - Appendix E.1, 2nd bullet: what's that? I think it needs
>> a reference if you want it to be understood.
>>
>
Same here; examples would probably be useful for all three sections.

-MSK

--089e0141a0ae1d0c7304e73bdeb2
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wed, Sep 25, 2013 at 1:30 PM, S Moonesamy <span dir=3D"=
ltr">&lt;<a href=3D"mailto:sm+ietf@elandsys.com" target=3D"_blank">sm+ietf@=
elandsys.com</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div class=
=3D"gmail_quote">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Hello,<br>
<br>
I would like to bring the message below to the attention of the working gro=
up. =A0There has not been any response to it. =A0Can a SPFBIS WG participan=
t please respond to the message?<div class=3D"HOEnZb"><div class=3D"h5"><br=
>
<br>
Thanks,<br>
S. Moonesamy (as document shepherd)<br>
<br>
At 03:15 12-09-2013, Stephen Farrell wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
Stephen Farrell has entered the following ballot position for<br>
draft-ietf-spfbis-4408bis-19: No Objection<br>
<br>
When responding, please keep the subject line intact and reply to all<br>
email addresses included in the To and CC lines. (Feel free to cut this<br>
introductory paragraph, however.)<br>
<br>
<br>
Please refer to <a href=3D"http://www.ietf.org/iesg/statement/discuss-crite=
ria.html" target=3D"_blank">http://www.ietf.org/iesg/<u></u>statement/discu=
ss-criteria.<u></u>html</a><br>
for more information about IESG DISCUSS and COMMENT positions.<br>
<br>
<br>
The document, along with other ballot positions, can be found here:<br>
<a href=3D"http://datatracker.ietf.org/doc/draft-ietf-spfbis-4408bis/" targ=
et=3D"_blank">http://datatracker.ietf.org/<u></u>doc/draft-ietf-spfbis-4408=
bis/</a><br>
<br>
<br>
<br>
------------------------------<u></u>------------------------------<u></u>-=
---------<br>
COMMENT:<br>
------------------------------<u></u>------------------------------<u></u>-=
---------<br>
<br>
<br>
- 4.1: given that recursion is allowed and that you have<br>
overall limits on how many DNS transactions can be done,<br>
is the &quot;transactions-remaining&quot; value also an implicit<br>
parameter of a check_host() call? This is only a comment<br>
since check_host is not a formal API but it&#39;d seem to make<br>
it easier to get right if you make that implicit parameter<br>
explicit. Or do the limits apply to each call as you<br>
recurse? =A0That wasn&#39;t entirely clear to me.<br></blockquote></div></d=
iv></blockquote><div><br></div>I suggest that it would be sufficient to add=
 some prose that says the &quot;transactions-remaining&quot; count (or what=
ever we call it) has to apply through the recursions.=A0 We shouldn&#39;t m=
ake this look any more like an API definition than it already does.<br>
<br><br></div><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" =
style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><di=
v class=3D"HOEnZb"><div class=3D"h5"><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

- I didn&#39;t get appendix D at all - what&#39;s that do?<br></blockquote>=
</div></div></blockquote><div><br></div><div>I agree, we should explain it =
and include an example, or drop it.=A0 Someone closer to the implementation=
 and the original material than I am is almost certainly able to come up wi=
th an appropriate example versus what I would invent.<br>
<br>=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8=
ex;border-left:1px #ccc solid;padding-left:1ex"><div class=3D"HOEnZb"><div =
class=3D"h5"><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;b=
order-left:1px #ccc solid;padding-left:1ex">

<br>
- Appendix E.1, 2nd bullet: what&#39;s that? I think it needs<br>
a reference if you want it to be understood.<br></blockquote></div></div></=
blockquote><div><br></div><div>Same here; examples would probably be useful=
 for all three sections.<br><br></div><div>-MSK<br></div></div></div></div>

--089e0141a0ae1d0c7304e73bdeb2--

From hsantos@isdg.net  Wed Sep 25 18:24:07 2013
Return-Path: <hsantos@isdg.net>
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 D07CC21F9EE1 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 18:24:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.649
X-Spam-Level: 
X-Spam-Status: No, score=-102.649 tagged_above=-999 required=5 tests=[AWL=-0.050, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5RizXQ-NDVX5 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 18:24:02 -0700 (PDT)
Received: from winserver.com (dkim.winserver.com [208.247.131.9]) by ietfa.amsl.com (Postfix) with ESMTP id 56AAB21F9ECA for <spfbis@ietf.org>; Wed, 25 Sep 2013 18:24:01 -0700 (PDT)
DKIM-Signature: v=1; d=isdg.net; s=tms1; a=rsa-sha1; c=simple/relaxed; l=2213; t=1380158638; h=Received:Received: Received:Received:Message-ID:Date:From:Organization:To:Subject: List-ID; bh=gzDLAIaLg7sHGxYwmUZnTpcYdA4=; b=PZQpn2keEW3Ge4FwWvna 1IbNJ5AJT6cxuUK264MUBGnCzj8ZYKxm0lJHFG99W+a5qOR2LMx6JhCfjQM11bhA f5tez6FUkN/vGdqY4HdNnghqC2bfjMj/i5j+BZBalVCfFXYloFVmMHApAH09XeIl l+K3Pxw2oBfsJKfRZXWmyk0=
Received: by winserver.com (Wildcat! SMTP Router v7.0.454.4) for spfbis@ietf.org; Wed, 25 Sep 2013 21:23:58 -0400
Authentication-Results: dkim.winserver.com; dkim=pass header.d=beta.winserver.com header.s=tms1 header.i=beta.winserver.com;  adsp=pass policy=all author.d=isdg.net asl.d=beta.winserver.com;
Received: from hector.wildcatblog.com ([208.247.131.23]) by winserver.com (Wildcat! SMTP v7.0.454.4) with ESMTP id 2326151675.15876.4568; Wed, 25 Sep 2013 21:23:57 -0400
DKIM-Signature: v=1; d=beta.winserver.com; s=tms1; a=rsa-sha256; c=simple/relaxed; l=2213; t=1380158267; h=Received:Received: Message-ID:Date:From:Organization:To:Subject:List-ID; bh=HnX2r7l /JHXw31glLGx1rwGBd0AZ6x4nJAIpvn4xFeU=; b=0p7wJ2aZOoPydZb8smr4jq7 Pf6BCkiuNSknT0iuKS5AZt8heBexpKl3SILIIHv9XgF8zt7hnd/uLLSwjANxXLMx dv8zH6r3VwOCfpMaM32DohZTYcxUT866bduaEixfpCegP+XjG0NUx4Kw1eraek6r Qac+am2VUWZ7BBxPDOOo=
Received: by beta.winserver.com (Wildcat! SMTP Router v7.0.454.4) for spfbis@ietf.org; Wed, 25 Sep 2013 21:17:47 -0400
Received: from [192.168.1.2] ([99.121.4.27]) by beta.winserver.com (Wildcat! SMTP v7.0.454.4) with ESMTP id 1772547722.9.9148; Wed, 25 Sep 2013 21:17:46 -0400
Message-ID: <52438CAC.8060302@isdg.net>
Date: Wed, 25 Sep 2013 21:23:56 -0400
From: Hector Santos <hsantos@isdg.net>
Organization: Santronics Software, Inc.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: S Moonesamy <sm+ietf@elandsys.com>
References: <20130912101511.20829.6656.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130925131612.0d8d3800@elandnews.com>
In-Reply-To: <6.2.5.6.2.20130925131612.0d8d3800@elandnews.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>, Stephen Farrell <stephen.farrell@cs.tcd.ie>
Subject: Re: [spfbis] Stephen Farrell's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 26 Sep 2013 01:24:08 -0000

On 9/25/2013 4:30 PM, S Moonesamy wrote:
> Hello,
>
> I would like to bring the message below to the attention of the
> working group.  There has not been any response to it.  Can a SPFBIS
> WG participant please respond to the message?
>
> Thanks,
> S. Moonesamy (as document shepherd)
>
> At 03:15 12-09-2013, Stephen Farrell wrote:
>> ----------------------------------------------------------------------
>> COMMENT:
>> ----------------------------------------------------------------------
>>
>>
>> - 4.1: given that recursion is allowed and that you have
>> overall limits on how many DNS transactions can be done,
>> is the "transactions-remaining" value also an implicit
>> parameter of a check_host() call? This is only a comment
>> since check_host is not a formal API but it'd seem to make
>> it easier to get right if you make that implicit parameter
>> explicit. Or do the limits apply to each call as you
>> recurse?  That wasn't entirely clear to me.

For our implementation, it was a plug and play update and hence a 
global limit per check_host instance call.  So its not done on a per 
domain basis although it is possible to load a per domain 
configuration. I don't know of anyone on our end (nor it is 
interesting for anyone to tell us what they are using) doing a per 
domain limit.

BTW, for us CHECK_HOST() is an API and it takes submitter (RFC4405) 
MAIL FROM values:

    spf_result = CHECK_HOST(MAILFROM [,HELO] [,SUBMITTER])

Thats an integrator POV this SPFBIS draft refused to acknowledge.  I 
don't get it, but I accept it.

>> - I didn't get appendix D at all - what's that do?

Same here.  You have to guess what its talking about with the starting 
sentence. I guess its about a method to track/log calls.

>> - Appendix E.1, 2nd bullet: what's that? I think it needs
>> a reference if you want it to be understood.

Overall, this Appendix E should be an BCP, i.e., what is a 
"specialized DNS server" but.... Personally, these sections intro can 
be written better. They need some sort of intros into what they are 
about.  Probably restate what are the problems, deployment or SPF 
"applied" issues the outlined items are addressing.

-- 
HLS



From spf2@kitterman.com  Wed Sep 25 20:48:04 2013
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 3928E21F967F for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 20:48:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.256
X-Spam-Level: 
X-Spam-Status: No, score=-2.256 tagged_above=-999 required=5 tests=[AWL=0.342,  BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id erccq0fUB5mH for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 20:47:59 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 3E38221F999C for <spfbis@ietf.org>; Wed, 25 Sep 2013 20:47:45 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 25CAD20E40D3; Wed, 25 Sep 2013 23:47:44 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1380167264; bh=HojFAPBaXb/eQ3jmm9rAn0aBzgk5dYqgHKTOtLJ1RQE=; h=From:To:Subject:Date:In-Reply-To:References:From; b=EWDlzoS9LWsYMGLyAKTgUzna7A15U+UPhQTuKGddDS2uac1eAJwhu1YgEaf1e/DKK zpHonJSeJk6rxOfMTYblk25O7z9Utt1W5HQtCHMNUsH5CBSOZDUNWTLLx7KcOf5Tpi DuoYmCMpEjEFB7xBj+0a7fAcGQXEkD7f8EkrUINs=
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 0720920E40C4;  Wed, 25 Sep 2013 23:47:43 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Wed, 25 Sep 2013 23:47:43 -0400
Message-ID: <1687976.ZmVcDHSKqt@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <523179E7.6090207@sonnection.nl>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <2297109.DlIYn73fZN@scott-latitude-e6320> <523179E7.6090207@sonnection.nl>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="nextPart1485247.zHcWRnKJ30"
Content-Transfer-Encoding: 7Bit
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Thu, 26 Sep 2013 03:48:04 -0000

This is a multi-part message in MIME format.

--nextPart1485247.zHcWRnKJ30
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"

On Thursday, September 12, 2013 10:23:03 Rolf E. Sonneveld wrote:
> Hi, Scott,
> 
> On 09/11/2013 11:53 PM, Scott Kitterman wrote:
> > On Wednesday, September 11, 2013 13:53:28 S Moonesamy wrote:
> >> Hi Scott,
> >> 
> >> I am copying the parts of the SECDIR review to which there hasn't
> >> been any response:
> >> 
> >> Issue 1:
> >>> 1.1.3.  MAIL FROM Definition
> >>> 
> >>> I found this section completely opaque and very confusing. It should
> >>> not be necessary to hunt through other specs to find a definition.
> >>> Particularly since the referenced specs do not give an explicit
> >>> definition for the term as used and the references point to the
> >>> whole spec rather than a particular section.
> > 
> > It's a challenge, but I think it's better than inventing a new definition
> > for SPF that may be different.  Would someone be willing to dive into the
> > relevant RFCs and see if they can make a recommendation about how better
> > to reference this?
> 
> To avoid confusion it's better not to mention a whole list of possible
> names/aliases in this Definition paragraph.
> 
> May I suggest the following text:
> 
> 
> 1.1.3.  MAIL FROM Definition
> 
>     This document is concerned with the identity of the sender of a
>     mail message, as referred to in [RFC5321]:
> 
>         "The transaction starts with a MAIL command that gives the
>         sender identification."
> 
> .  Since there are many other names for this identity, it is
>     important to choose a name that is:
> 
>     1. commonly used
>     2. well defined
> 
>     As such, throughout this document the term "MAIL FROM" will be used,
>     which is defined as the RFC5321.MailFrom identity described in
> [RFC5598].

Thanks.  After much delay, I've added this to my local copy.  Diff from the 
last changeset I posted attached.

Scott K
--nextPart1485247.zHcWRnKJ30
Content-Disposition: attachment; filename="draft-ietf-spfbis-4408bis-21-from-21~1.diff.html"
Content-Transfer-Encoding: 7Bit
Content-Type: text/html; charset="UTF-8"; name="draft-ietf-spfbis-4408bis-21-from-21~1.diff.html"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!-- Generated by rfcdiff 1.41: rfcdiff  --> 
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional" > -->
<!-- System: Linux Scott-Latitude-E6320 3.8.0-30-generic #44-Ubuntu SMP Thu Aug 22 20:54:42 UTC 2013 i686 i686 i686 GNU/Linux --> 
<!-- Using awk: /usr/bin/gawk: GNU Awk 4.0.1 --> 
<!-- Using diff: /usr/bin/diff: diff (GNU diffutils) 3.2 --> 
<!-- Using wdiff: /usr/bin/wdiff: wdiff (GNU wdiff) 1.1.2 --> 
<html> 
<head> 
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
  <meta http-equiv="Content-Style-Type" content="text/css" /> 
  <title>Diff: draft-ietf-spfbis-4408bis-21~1.txt - draft-ietf-spfbis-4408bis-21.txt</title> 
  <style type="text/css"> 
    body    { margin: 0.4ex; margin-right: auto; } 
    tr      { } 
    td      { white-space: pre; font-family: monospace; vertical-align: top; font-size: 0.86em;} 
    th      { font-size: 0.86em; } 
    .small  { font-size: 0.6em; font-style: italic; font-family: Verdana, Helvetica, sans-serif; } 
    .left   { background-color: #EEE; } 
    .right  { background-color: #FFF; } 
    .diff   { background-color: #CCF; } 
    .lblock { background-color: #BFB; } 
    .rblock { background-color: #FF8; } 
    .insert { background-color: #8FF; } 
    .delete { background-color: #ACF; } 
    .void   { background-color: #FFB; } 
    .cont   { background-color: #EEE; } 
    .linebr { background-color: #AAA; } 
    .lineno { color: red; background-color: #FFF; font-size: 0.7em; text-align: right; padding: 0 2px; } 
    .elipsis{ background-color: #AAA; } 
    .left .cont { background-color: #DDD; } 
    .right .cont { background-color: #EEE; } 
    .lblock .cont { background-color: #9D9; } 
    .rblock .cont { background-color: #DD6; } 
    .insert .cont { background-color: #0DD; } 
    .delete .cont { background-color: #8AD; } 
    .stats, .stats td, .stats th { background-color: #EEE; padding: 2px 0; } 
  </style> 
</head> 
<body > 
  <table border="0" cellpadding="0" cellspacing="0"> 
  <tr bgcolor="orange"><th></th><th>&nbsp;draft-ietf-spfbis-4408bis-21~1.txt&nbsp;</th><th> </th><th>&nbsp;draft-ietf-spfbis-4408bis-21.txt&nbsp;</th><th></th></tr> 
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Network Working Group                                       S. Kitterman</td><td> </td><td class="right">Network Working Group                                       S. Kitterman</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Internet-Draft                              Kitterman Technical Services</td><td> </td><td class="right">Internet-Draft                              Kitterman Technical Services</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0001" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Obsoletes: 4408 (if approved)                         September 2<span class="delete">3</span>, 2013</td><td> </td><td class="rblock">Obsoletes: 4408 (if approved)                         September 2<span class="insert">5</span>, 2013</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Intended status: Standards Track</td><td> </td><td class="right">Intended status: Standards Track</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0002" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Expires: March 2<span class="delete">7</span>, 2014</td><td> </td><td class="rblock">Expires: March 2<span class="insert">9</span>, 2014</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"> Sender Policy Framework (SPF) for Authorizing Use of Domains in Email,</td><td> </td><td class="right"> Sender Policy Framework (SPF) for Authorizing Use of Domains in Email,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                               Version 1</td><td> </td><td class="right">                               Version 1</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                      draft-ietf-spfbis-4408bis-21</td><td> </td><td class="right">                      draft-ietf-spfbis-4408bis-21</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Abstract</td><td> </td><td class="right">Abstract</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Email on the Internet can be forged in a number of ways.  In</td><td> </td><td class="right">   Email on the Internet can be forged in a number of ways.  In</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   particular, existing protocols place no restriction on what a sending</td><td> </td><td class="right">   particular, existing protocols place no restriction on what a sending</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   host can use as the "MAIL FROM" of a message or the domain given on</td><td> </td><td class="right">   host can use as the "MAIL FROM" of a message or the domain given on</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 1, line 41</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 1, line 41</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are working documents of the Internet Engineering</td><td> </td><td class="right">   Internet-Drafts are working documents of the Internet Engineering</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Task Force (IETF).  Note that other groups may also distribute</td><td> </td><td class="right">   Task Force (IETF).  Note that other groups may also distribute</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   working documents as Internet-Drafts.  The list of current Internet-</td><td> </td><td class="right">   working documents as Internet-Drafts.  The list of current Internet-</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td> </td><td class="right">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are draft documents valid for a maximum of six months</td><td> </td><td class="right">   Internet-Drafts are draft documents valid for a maximum of six months</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and may be updated, replaced, or obsoleted by other documents at any</td><td> </td><td class="right">   and may be updated, replaced, or obsoleted by other documents at any</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   time.  It is inappropriate to use Internet-Drafts as reference</td><td> </td><td class="right">   time.  It is inappropriate to use Internet-Drafts as reference</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   material or to cite them other than as "work in progress."</td><td> </td><td class="right">   material or to cite them other than as "work in progress."</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0003" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This Internet-Draft will expire on March 2<span class="delete">7</span>, 2014.</td><td> </td><td class="rblock">   This Internet-Draft will expire on March 2<span class="insert">9</span>, 2014.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Copyright Notice</td><td> </td><td class="right">Copyright Notice</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Copyright (c) 2013 IETF Trust and the persons identified as the</td><td> </td><td class="right">   Copyright (c) 2013 IETF Trust and the persons identified as the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   document authors.  All rights reserved.</td><td> </td><td class="right">   document authors.  All rights reserved.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td> </td><td class="right">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Provisions Relating to IETF Documents</td><td> </td><td class="right">   Provisions Relating to IETF Documents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td> </td><td class="right">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   publication of this document.  Please review these documents</td><td> </td><td class="right">   publication of this document.  Please review these documents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> page 7, line 8</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> page 7, line 8</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The tokens "Local-part", "Domain", and "Mailbox are defined in</td><td> </td><td class="right">   The tokens "Local-part", "Domain", and "Mailbox are defined in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5321].</td><td> </td><td class="right">   [RFC5321].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "dot-atom", "quoted-string", "comment", "CFWS" (comment folded white</td><td> </td><td class="right">   "dot-atom", "quoted-string", "comment", "CFWS" (comment folded white</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   space), "FWS" (folded white space), and "CRLF" (carriage-return/</td><td> </td><td class="right">   space), "FWS" (folded white space), and "CRLF" (carriage-return/</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   line-feed) are defined in [RFC5322].</td><td> </td><td class="right">   line-feed) are defined in [RFC5322].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">1.1.3.  MAIL FROM Definition</td><td> </td><td class="right">1.1.3.  MAIL FROM Definition</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0004" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This document is concerned with the <span class="delete">portion</span> of a mail <span class="delete">message</span></td><td> </td><td class="rblock">   This document is concerned with the <span class="insert">identity of the sender</span> of a mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   commonly called "envelope sender", "return path", "reverse path",</span></td><td> </td><td class="rblock">   <span class="insert">message, as referred to in [RFC5321]:</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   "bounce address", "5321 FROM", "MAIL FROM", or RFC5321.MailFrom.</span></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Since <span class="delete">these terms</span> are <span class="delete">either not</span> well defined <span class="delete">or often used casually,</span></td><td> </td><td class="rblock"><span class="insert">      "The transaction starts with a MAIL command that gives the sender</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   this document <span class="delete">uses</span> "MAIL FROM" <span class="delete">for consistency.  This means</span> the</td><td> </td><td class="rblock"><span class="insert">      identification."</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   RFC5321.MailFrom <span class="delete">as defined</span> in [RFC5598].  <span class="delete">Note that other terms that</span></td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   might superficially look like the common terms, such as 'reverse-</span></td><td> </td><td class="rblock">   Since <span class="insert">there</span> are <span class="insert">many other names for this identity, it is important</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   path', are used only as they are specified in their defining</span></td><td> </td><td class="rblock"><span class="insert">   to choose a name that is:</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   documents.</span></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   1.  commonly used</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   2.</span>  well defined</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   <span class="insert">As such, throughout</span> this document <span class="insert">the term</span> "MAIL FROM" <span class="insert">will be used,</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   which is defined as</span> the RFC5321.MailFrom <span class="insert">identity described</span> in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   [RFC5598].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">1.1.4.  HELO Definition</td><td> </td><td class="right">1.1.4.  HELO Definition</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This document also makes use of the HELO/EHLO identity.  The "HELO"</td><td> </td><td class="right">   This document also makes use of the HELO/EHLO identity.  The "HELO"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   identity derives from either the SMTP HELO or EHLO command (see</td><td> </td><td class="right">   identity derives from either the SMTP HELO or EHLO command (see</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5321]).  Since HELO and EHLO can, in many cases, be used</td><td> </td><td class="right">   [RFC5321]).  Since HELO and EHLO can, in many cases, be used</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   interchangeably, they are identified commonly as "HELO" in this</td><td> </td><td class="right">   interchangeably, they are identified commonly as "HELO" in this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   document.  This means RFC5321.HELO/.EHLO as defined in [RFC5598].</td><td> </td><td class="right">   document.  This means RFC5321.HELO/.EHLO as defined in [RFC5598].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These commands supply the identity of the SMTP client (sending host)</td><td> </td><td class="right">   These commands supply the identity of the SMTP client (sending host)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for the SMTP session.</td><td> </td><td class="right">   for the SMTP session.</td><td class="lineno" valign="top"></td></tr>

     <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
     <tr bgcolor="gray"><th colspan="5" align="center"><a name="end">&nbsp;End of changes. 4 change blocks.&nbsp;</a></th></tr>
     <tr class="stats"><td></td><th><i>12 lines changed or deleted</i></th><th><i> </i></th><th><i>19 lines changed or added</i></th><td></td></tr>
     <tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.41. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/" >http://tools.ietf.org/tools/rfcdiff/</a> </td></tr>
   </table>
   </body>
   </html>

--nextPart1485247.zHcWRnKJ30--


From spf2@kitterman.com  Wed Sep 25 20:53:49 2013
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 BB2F321F8467 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 20:53:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.824
X-Spam-Level: 
X-Spam-Status: No, score=-0.824 tagged_above=-999 required=5 tests=[AWL=-1.126, BAYES_50=0.001, GB_I_LETTER=-2, HTML_MESSAGE=0.001,  MANGLED_SAVELE=2.3]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gnj4NEn-TXyU for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 20:53:36 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id D71BB11E8135 for <spfbis@ietf.org>; Wed, 25 Sep 2013 20:53:28 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 76D7320E40D3; Wed, 25 Sep 2013 23:53:23 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1380167603; bh=1Xcxua4JJO09SgPLf7wQE3F472qXA2m6x29RlKhn+Hk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=pWwFwXJ5S9BXs7JsM5T+soo2UyKwm0+OQY0vOCKS1ZVgrgdDvDmd+e+KhTIbjQnvE o0oFOwTdYLROkUMa+Yj9rRyh9JiznWo2jJn7S5FD2nK623I5Wox5nZI2qizqoOBcVk UCWccQKdIEbA5MxlxywfHPoHAw95ib6TtLTndGqY=
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 492BC20E40C4;  Wed, 25 Sep 2013 23:53:22 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Wed, 25 Sep 2013 23:53:22 -0400
Message-ID: <2808009.mOvCxSAQtd@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <6.2.5.6.2.20130912184532.0c912bc8@resistor.net>
References: <6.2.5.6.2.20130912094525.0ca26c60@elandnews.com> <7883048.PMslXZEC8x@scott-latitude-e6320> <6.2.5.6.2.20130912184532.0c912bc8@resistor.net>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="nextPart2714318.S1THZF8FJm"
Content-Transfer-Encoding: 7Bit
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] Revised I-D of draft-ietf-spfbis-4408bis
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: Thu, 26 Sep 2013 03:53:49 -0000

This is a multi-part message in MIME format.

--nextPart2714318.S1THZF8FJm
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"

On Thursday, September 12, 2013 18:52:40 S Moonesamy wrote:
> Hi Scott,
> 
> At 18:28 12-09-2013, Scott Kitterman wrote:
> >In retrospect, it wasn't 100% clear if I'm supposed to post -20 as the last
> >interim diff I sent to the list or work on other outstanding
> >comments first.  In
> >the interest of being conservative, I'm posting -20 just as I last sent it
> >to the list.
> 
> It's okay.  Let's work from draft-ietf-spfbis-4408bis-20.
> 
> Before I forget Appendix A will have to be moved into a section (Pete
> Resnick commented about that previously).

Attached (diff from the last diff, not from -20).

Scott K
--nextPart2714318.S1THZF8FJm
Content-Disposition: attachment; filename="draft-ietf-spfbis-4408bis-21-from-21~2.diff.html"
Content-Transfer-Encoding: 7Bit
Content-Type: text/html; charset="UTF-8"; name="draft-ietf-spfbis-4408bis-21-from-21~2.diff.html"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!-- Generated by rfcdiff 1.41: rfcdiff  --> 
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional" > -->
<!-- System: Linux Scott-Latitude-E6320 3.8.0-30-generic #44-Ubuntu SMP Thu Aug 22 20:54:42 UTC 2013 i686 i686 i686 GNU/Linux --> 
<!-- Using awk: /usr/bin/gawk: GNU Awk 4.0.1 --> 
<!-- Using diff: /usr/bin/diff: diff (GNU diffutils) 3.2 --> 
<!-- Using wdiff: /usr/bin/wdiff: wdiff (GNU wdiff) 1.1.2 --> 
<html> 
<head> 
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
  <meta http-equiv="Content-Style-Type" content="text/css" /> 
  <title>Diff: draft-ietf-spfbis-4408bis-21~2.txt - draft-ietf-spfbis-4408bis-21.txt</title> 
  <style type="text/css"> 
    body    { margin: 0.4ex; margin-right: auto; } 
    tr      { } 
    td      { white-space: pre; font-family: monospace; vertical-align: top; font-size: 0.86em;} 
    th      { font-size: 0.86em; } 
    .small  { font-size: 0.6em; font-style: italic; font-family: Verdana, Helvetica, sans-serif; } 
    .left   { background-color: #EEE; } 
    .right  { background-color: #FFF; } 
    .diff   { background-color: #CCF; } 
    .lblock { background-color: #BFB; } 
    .rblock { background-color: #FF8; } 
    .insert { background-color: #8FF; } 
    .delete { background-color: #ACF; } 
    .void   { background-color: #FFB; } 
    .cont   { background-color: #EEE; } 
    .linebr { background-color: #AAA; } 
    .lineno { color: red; background-color: #FFF; font-size: 0.7em; text-align: right; padding: 0 2px; } 
    .elipsis{ background-color: #AAA; } 
    .left .cont { background-color: #DDD; } 
    .right .cont { background-color: #EEE; } 
    .lblock .cont { background-color: #9D9; } 
    .rblock .cont { background-color: #DD6; } 
    .insert .cont { background-color: #0DD; } 
    .delete .cont { background-color: #8AD; } 
    .stats, .stats td, .stats th { background-color: #EEE; padding: 2px 0; } 
  </style> 
</head> 
<body > 
  <table border="0" cellpadding="0" cellspacing="0"> 
  <tr bgcolor="orange"><th></th><th>&nbsp;draft-ietf-spfbis-4408bis-21~2.txt&nbsp;</th><th> </th><th>&nbsp;draft-ietf-spfbis-4408bis-21.txt&nbsp;</th><th></th></tr> 
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l1" /><small>skipping to change at</small><em> page 4, line 43</em></th><th> </th><th><a name="part-r1" /><small>skipping to change at</small><em> page 4, line 43</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     11.1. Processing Limits  . . . . . . . . . . . . . . . . . . . . 49</td><td> </td><td class="right">     11.1. Processing Limits  . . . . . . . . . . . . . . . . . . . . 49</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     11.2. SPF-Authorized Email May Contain Other False Identities  . 50</td><td> </td><td class="right">     11.2. SPF-Authorized Email May Contain Other False Identities  . 50</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     11.3. Spoofed DNS and IP Data  . . . . . . . . . . . . . . . . . 50</td><td> </td><td class="right">     11.3. Spoofed DNS and IP Data  . . . . . . . . . . . . . . . . . 50</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     11.4. Cross-User Forgery . . . . . . . . . . . . . . . . . . . . 50</td><td> </td><td class="right">     11.4. Cross-User Forgery . . . . . . . . . . . . . . . . . . . . 50</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     11.5. Untrusted Information Sources  . . . . . . . . . . . . . . 51</td><td> </td><td class="right">     11.5. Untrusted Information Sources  . . . . . . . . . . . . . . 51</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       11.5.1. Recorded Results . . . . . . . . . . . . . . . . . . . 51</td><td> </td><td class="right">       11.5.1. Recorded Results . . . . . . . . . . . . . . . . . . . 51</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       11.5.2. External Explanations  . . . . . . . . . . . . . . . . 51</td><td> </td><td class="right">       11.5.2. External Explanations  . . . . . . . . . . . . . . . . 51</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       11.5.3. Macro Expansion  . . . . . . . . . . . . . . . . . . . 52</td><td> </td><td class="right">       11.5.3. Macro Expansion  . . . . . . . . . . . . . . . . . . . 52</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     11.6. Privacy Exposure . . . . . . . . . . . . . . . . . . . . . 52</td><td> </td><td class="right">     11.6. Privacy Exposure . . . . . . . . . . . . . . . . . . . . . 52</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     11.7. Delivering Mail Producing a 'Fail' Result  . . . . . . . . 52</td><td> </td><td class="right">     11.7. Delivering Mail Producing a 'Fail' Result  . . . . . . . . 52</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0001" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   12. Contributors and Acknowledgements  . . . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock">   12. <span class="insert">Collected ABNF . . . . . . . . . . . . . . . . . . . . . . . . 53</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   13.</span> IANA Considerations  . . . . . . . . . . . . . . . . . . . . . <span class="delete">54</span></td><td> </td><td class="rblock"><span class="insert">   13.</span> Contributors and Acknowledgements  . . . . . . . . . . . . . . <span class="insert">56</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     13.1.</span> The SPF DNS Record Type  . . . . . . . . . . . . . . . . . <span class="delete">54</span></td><td> </td><td class="rblock"><span class="insert">   14.</span> IANA Considerations  . . . . . . . . . . . . . . . . . . . . . <span class="insert">57</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     13.2.</span> The Received-SPF Mail Header Field . . . . . . . . . . . . <span class="delete">54</span></td><td> </td><td class="rblock"><span class="insert">     14.1.</span> The SPF DNS Record Type  . . . . . . . . . . . . . . . . . <span class="insert">57</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     13.3.</span> SPF Modifier Registry  . . . . . . . . . . . . . . . . . . <span class="delete">54</span></td><td> </td><td class="rblock"><span class="insert">     14.2.</span> The Received-SPF Mail Header Field . . . . . . . . . . . . <span class="insert">57</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   14.</span> References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">55</span></td><td> </td><td class="rblock"><span class="insert">     14.3.</span> SPF Modifier Registry  . . . . . . . . . . . . . . . . . . <span class="insert">57</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     14.1.</span> Normative References . . . . . . . . . . . . . . . . . . . <span class="delete">55</span></td><td> </td><td class="rblock"><span class="insert">   15.</span> References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">58</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     14.2.</span> Informative References . . . . . . . . . . . . . . . . . . <span class="delete">56</span></td><td> </td><td class="rblock"><span class="insert">     15.1.</span> Normative References . . . . . . . . . . . . . . . . . . . <span class="insert">58</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix A.  <span class="delete">Collected ABNF  . . . . . . . . . . . . . . . . . . . 58</span></td><td> </td><td class="rblock"><span class="insert">     15.2.</span> Informative References . . . . . . . . . . . . . . . . . . <span class="insert">59</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   Appendix B.</span>  Extended Examples . . . . . . . . . . . . . . . . . . 61</td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     <span class="delete">B.1.</span>  Simple Examples  . . . . . . . . . . . . . . . . . . . . . 61</td><td> </td><td class="rblock">   Appendix A.  Extended Examples . . . . . . . . . . . . . . . . . . 61</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     <span class="delete">B.2.</span>  Multiple Domain Example  . . . . . . . . . . . . . . . . . 62</td><td> </td><td class="rblock">     <span class="insert">A.1.</span>  Simple Examples  . . . . . . . . . . . . . . . . . . . . . 61</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     <span class="delete">B.3.</span>  DNSBL Style Example  . . . . . . . . . . . . . . . . . . . 63</td><td> </td><td class="rblock">     <span class="insert">A.2.</span>  Multiple Domain Example  . . . . . . . . . . . . . . . . . 62</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     <span class="delete">B.4.</span>  Multiple Requirements Example  . . . . . . . . . . . . . . 63</td><td> </td><td class="rblock">     <span class="insert">A.3.</span>  DNSBL Style Example  . . . . . . . . . . . . . . . . . . . 63</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">C.</span>  Changes in implementation requirements from RFC</td><td> </td><td class="rblock">     <span class="insert">A.4.</span>  Multiple Requirements Example  . . . . . . . . . . . . . . 63</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   Appendix <span class="insert">B.</span>  Changes in implementation requirements from RFC</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                4408  . . . . . . . . . . . . . . . . . . . . . . . . 64</td><td> </td><td class="right">                4408  . . . . . . . . . . . . . . . . . . . . . . . . 64</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0002" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">D.</span>  Further Testing Advice  . . . . . . . . . . . . . . . 65</td><td> </td><td class="rblock">   Appendix <span class="insert">C.</span>  Further Testing Advice  . . . . . . . . . . . . . . . 65</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">E.</span>  SPF/Mediator Interactions . . . . . . . . . . . . . . 66</td><td> </td><td class="rblock">   Appendix <span class="insert">D.</span>  SPF/Mediator Interactions . . . . . . . . . . . . . . 66</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     <span class="delete">E.1.</span>  Originating ADMDs  . . . . . . . . . . . . . . . . . . . . 66</td><td> </td><td class="rblock">     <span class="insert">D.1.</span>  Originating ADMDs  . . . . . . . . . . . . . . . . . . . . 66</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     <span class="delete">E.2.</span>  Mediators  . . . . . . . . . . . . . . . . . . . . . . . . 67</td><td> </td><td class="rblock">     <span class="insert">D.2.</span>  Mediators  . . . . . . . . . . . . . . . . . . . . . . . . 67</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     <span class="delete">E.3.</span>  Receving ADMDs . . . . . . . . . . . . . . . . . . . . . . 67</td><td> </td><td class="rblock">     <span class="insert">D.3.</span>  Receving ADMDs . . . . . . . . . . . . . . . . . . . . . . 67</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">F.</span>  Mail Services . . . . . . . . . . . . . . . . . . . . 68</td><td> </td><td class="rblock">   Appendix <span class="insert">E.</span>  Mail Services . . . . . . . . . . . . . . . . . . . . 68</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">G.</span>  MTA Relays  . . . . . . . . . . . . . . . . . . . . . 69</td><td> </td><td class="rblock">   Appendix <span class="insert">F.</span>  MTA Relays  . . . . . . . . . . . . . . . . . . . . . 69</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">H.</span>  Local Policy Considerations . . . . . . . . . . . . . 70</td><td> </td><td class="rblock">   Appendix <span class="insert">G.</span>  Local Policy Considerations . . . . . . . . . . . . . 70</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     <span class="delete">H.1.</span>  Policy For SPF Pass  . . . . . . . . . . . . . . . . . . . 70</td><td> </td><td class="rblock">     <span class="insert">G.1.</span>  Policy For SPF Pass  . . . . . . . . . . . . . . . . . . . 70</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     <span class="delete">H.2.</span>  Policy For SPF Fail  . . . . . . . . . . . . . . . . . . . 70</td><td> </td><td class="rblock">     <span class="insert">G.2.</span>  Policy For SPF Fail  . . . . . . . . . . . . . . . . . . . 70</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     <span class="delete">H.3.</span>  Policy For SPF Permerror . . . . . . . . . . . . . . . . . 71</td><td> </td><td class="rblock">     <span class="insert">G.3.</span>  Policy For SPF Permerror . . . . . . . . . . . . . . . . . 71</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     <span class="delete">H.4.</span>  Policy For SPF Temperror . . . . . . . . . . . . . . . . . 71</td><td> </td><td class="rblock">     <span class="insert">G.4.</span>  Policy For SPF Temperror . . . . . . . . . . . . . . . . . 71</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">I.</span>  Protocol Status . . . . . . . . . . . . . . . . . . . 73</td><td> </td><td class="rblock">   Appendix <span class="insert">H.</span>  Protocol Status . . . . . . . . . . . . . . . . . . . 73</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">J.</span>  Change History  . . . . . . . . . . . . . . . . . . . 74</td><td> </td><td class="rblock">   Appendix <span class="insert">I.</span>  Change History  . . . . . . . . . . . . . . . . . . . 74</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 77</td><td> </td><td class="right">   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 77</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">1.  Introduction</td><td> </td><td class="right">1.  Introduction</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The current email infrastructure has the property that any host</td><td> </td><td class="right">   The current email infrastructure has the property that any host</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   injecting mail into the system can use any DNS domain name it wants</td><td> </td><td class="right">   injecting mail into the system can use any DNS domain name it wants</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   in each of the various identifiers specified by [RFC5321] and</td><td> </td><td class="right">   in each of the various identifiers specified by [RFC5321] and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5322].  Although this feature is desirable in some circumstances,</td><td> </td><td class="right">   [RFC5322].  Although this feature is desirable in some circumstances,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   it is a major obstacle to reducing Unsolicited Bulk Email (UBE, aka</td><td> </td><td class="right">   it is a major obstacle to reducing Unsolicited Bulk Email (UBE, aka</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   spam).  Furthermore, many domain owning ADMDs (as described in</td><td> </td><td class="right">   spam).  Furthermore, many domain owning ADMDs (as described in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 39, line 15</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 39, line 15</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "neutral" more harshly than "none" would discourage ADMDs from</td><td> </td><td class="right">   "neutral" more harshly than "none" would discourage ADMDs from</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   testing the use of SPF records (see Section 10.1).</td><td> </td><td class="right">   testing the use of SPF records (see Section 10.1).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.3.  Pass</td><td> </td><td class="right">8.3.  Pass</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "pass" result means that the client is authorized to inject mail</td><td> </td><td class="right">   A "pass" result means that the client is authorized to inject mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   with the given identity.  The domain can now, in the sense of</td><td> </td><td class="right">   with the given identity.  The domain can now, in the sense of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   reputation, be considered responsible for sending the message.</td><td> </td><td class="right">   reputation, be considered responsible for sending the message.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Further policy checks can now proceed with confidence in the</td><td> </td><td class="right">   Further policy checks can now proceed with confidence in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   legitimate use of the identity.  This is further discussed in</td><td> </td><td class="right">   legitimate use of the identity.  This is further discussed in</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0003" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">H</span>.1.</td><td> </td><td class="rblock">   Appendix <span class="insert">G</span>.1.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.4.  Fail</td><td> </td><td class="right">8.4.  Fail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "fail" result is an explicit statement that the client is not</td><td> </td><td class="right">   A "fail" result is an explicit statement that the client is not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorized to use the domain in the given identity.  Disposition of</td><td> </td><td class="right">   authorized to use the domain in the given identity.  Disposition of</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0004" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   SPF fail messages is a matter of local policy.  See Appendix <span class="delete">H</span>.2 for</td><td> </td><td class="rblock">   SPF fail messages is a matter of local policy.  See Appendix <span class="insert">G</span>.2 for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   considerations on developing local policy.</td><td> </td><td class="right">   considerations on developing local policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If the checking software chooses to reject the mail during the SMTP</td><td> </td><td class="right">   If the checking software chooses to reject the mail during the SMTP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   transaction, then it SHOULD use an SMTP reply code of 550 (see</td><td> </td><td class="right">   transaction, then it SHOULD use an SMTP reply code of 550 (see</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5321]) and, if supported, the 5.7.1 enhanced status code (see</td><td> </td><td class="right">   [RFC5321]) and, if supported, the 5.7.1 enhanced status code (see</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC3463], Section 3.8), in addition to an appropriate reply text.</td><td> </td><td class="right">   [RFC3463], Section 3.8), in addition to an appropriate reply text.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The check_host() function will return either a default explanation</td><td> </td><td class="right">   The check_host() function will return either a default explanation</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   string or one from the domain that published the SPF records (see</td><td> </td><td class="right">   string or one from the domain that published the SPF records (see</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Section 6.2).  If the information does not originate with the</td><td> </td><td class="right">   Section 6.2).  If the information does not originate with the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   checking software, it is good to make it clear that the text is</td><td> </td><td class="right">   checking software, it is good to make it clear that the text is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> page 40, line 21</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> page 40, line 21</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.6.  Temperror</td><td> </td><td class="right">8.6.  Temperror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "temperror" result means the SPF verifier encountered a transient</td><td> </td><td class="right">   A "temperror" result means the SPF verifier encountered a transient</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (generally DNS) error while performing the check.  Checking software</td><td> </td><td class="right">   (generally DNS) error while performing the check.  Checking software</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   can choose to accept or temporarily reject the message.  If the</td><td> </td><td class="right">   can choose to accept or temporarily reject the message.  If the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message is rejected during the SMTP transaction for this reason, the</td><td> </td><td class="right">   message is rejected during the SMTP transaction for this reason, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   software SHOULD use an SMTP reply code of 451 and, if supported, the</td><td> </td><td class="right">   software SHOULD use an SMTP reply code of 451 and, if supported, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   4.4.3 enhanced status code (see [RFC3463], Section 3.5).  These</td><td> </td><td class="right">   4.4.3 enhanced status code (see [RFC3463], Section 3.5).  These</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   errors can be caused by problems in either the sender's or receiver's</td><td> </td><td class="right">   errors can be caused by problems in either the sender's or receiver's</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0005" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   DNS software.  See Appendix <span class="delete">H</span>.4 for considerations on developing</td><td> </td><td class="rblock">   DNS software.  See Appendix <span class="insert">G</span>.4 for considerations on developing</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   local policy.</td><td> </td><td class="right">   local policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.7.  Permerror</td><td> </td><td class="right">8.7.  Permerror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "permerror" result means the domain's published records could not</td><td> </td><td class="right">   A "permerror" result means the domain's published records could not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be correctly interpreted.  This signals an error condition that</td><td> </td><td class="right">   be correctly interpreted.  This signals an error condition that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   definitely requires DNS operator intervention to be resolved.  If the</td><td> </td><td class="right">   definitely requires DNS operator intervention to be resolved.  If the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message is rejected during the SMTP transaction for this reason, the</td><td> </td><td class="right">   message is rejected during the SMTP transaction for this reason, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   software SHOULD use an SMTP reply code of 550 and, if supported, the</td><td> </td><td class="right">   software SHOULD use an SMTP reply code of 550 and, if supported, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   5.5.2 enhanced status code (see [RFC3463], Section 3.6).  Be aware</td><td> </td><td class="right">   5.5.2 enhanced status code (see [RFC3463], Section 3.6).  Be aware</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that if the ADMD uses macros (Section 7), it is possible that this</td><td> </td><td class="right">   that if the ADMD uses macros (Section 7), it is possible that this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result is due to the checked identities having an unexpected format.</td><td> </td><td class="right">   result is due to the checked identities having an unexpected format.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   It is also possible that this result is generated by certain SPF</td><td> </td><td class="right">   It is also possible that this result is generated by certain SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   verifiers due to the input arguments having an unexpected format; see</td><td> </td><td class="right">   verifiers due to the input arguments having an unexpected format; see</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0006" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Section 4.8.  See Appendix <span class="delete">H</span>.3 for considerations on developing local</td><td> </td><td class="rblock">   Section 4.8.  See Appendix <span class="insert">G</span>.3 for considerations on developing local</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   policy.</td><td> </td><td class="right">   policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">9.  Recording the Result</td><td> </td><td class="right">9.  Recording the Result</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   To provide downstream agents, such as MUAs, with the information they</td><td> </td><td class="right">   To provide downstream agents, such as MUAs, with the information they</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   might need in terms of evaluating or representing the apparent safety</td><td> </td><td class="right">   might need in terms of evaluating or representing the apparent safety</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of the message content, it is RECOMMENDED that SMTP receivers record</td><td> </td><td class="right">   of the message content, it is RECOMMENDED that SMTP receivers record</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the result of SPF processing in the message header.  For SPF verifier</td><td> </td><td class="right">   the result of SPF processing in the message header.  For SPF verifier</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   operators that choose to record SPF results in the header of the</td><td> </td><td class="right">   operators that choose to record SPF results in the header of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message for processing by internal filters or MUAs, two methods are</td><td> </td><td class="right">   message for processing by internal filters or MUAs, two methods are</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> page 46, line 47</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> page 46, line 47</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The hostname is generally the identity used in the 5321.HELO/.EHLO</td><td> </td><td class="right">   The hostname is generally the identity used in the 5321.HELO/.EHLO</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   command.  In the case of messages with a null 5321.MailFrom, this is</td><td> </td><td class="right">   command.  In the case of messages with a null 5321.MailFrom, this is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   used as the domain for 5321.MailFrom SPF checks, in addition to being</td><td> </td><td class="right">   used as the domain for 5321.MailFrom SPF checks, in addition to being</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   used in 5321.HELO/.EHLO based SPF checks.  The standard SPF record</td><td> </td><td class="right">   used in 5321.HELO/.EHLO based SPF checks.  The standard SPF record</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for an individual host that is involved in mail processing is:</td><td> </td><td class="right">   for an individual host that is involved in mail processing is:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      relay.example.com.   IN TXT  "v=spf1 a -all"</td><td> </td><td class="right">      relay.example.com.   IN TXT  "v=spf1 a -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Validating correct deployment is difficult.  [RFC6652] describes one</td><td> </td><td class="right">   Validating correct deployment is difficult.  [RFC6652] describes one</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mechanism for soliciting feedback on SPF failures.  Another</td><td> </td><td class="right">   mechanism for soliciting feedback on SPF failures.  Another</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0007" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   suggestion can be found in Appendix <span class="delete">D</span>.</td><td> </td><td class="rblock">   suggestion can be found in Appendix <span class="insert">C</span>.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Regardless of the method used, understanding the ADMD's outbound mail</td><td> </td><td class="right">   Regardless of the method used, understanding the ADMD's outbound mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   architecture is essential to effective deployment.</td><td> </td><td class="right">   architecture is essential to effective deployment.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">10.1.3.  Bounces</td><td> </td><td class="right">10.1.3.  Bounces</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As explained in Section 1.1.3, [RFC5321] allows the MAIL FROM to be</td><td> </td><td class="right">   As explained in Section 1.1.3, [RFC5321] allows the MAIL FROM to be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   null, which is typical of some Delivery Status Notification</td><td> </td><td class="right">   null, which is typical of some Delivery Status Notification</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC3464], commonly called email bounces.  In this case the only</td><td> </td><td class="right">   [RFC3464], commonly called email bounces.  In this case the only</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   entity available for performing an SPF check is the "HELO" identity</td><td> </td><td class="right">   entity available for performing an SPF check is the "HELO" identity</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l5" /><small>skipping to change at</small><em> page 47, line 31</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> page 47, line 31</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF results can be used in combination with other methods to</td><td> </td><td class="right">   SPF results can be used in combination with other methods to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   determine the final local disposition (either positive or negative)</td><td> </td><td class="right">   determine the final local disposition (either positive or negative)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of a message.  It can also be considered dispositive on its own.</td><td> </td><td class="right">   of a message.  It can also be considered dispositive on its own.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   An attempt to have one organization (sender) direct the email</td><td> </td><td class="right">   An attempt to have one organization (sender) direct the email</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   handling policies of another (receiver) is inherently challenging and</td><td> </td><td class="right">   handling policies of another (receiver) is inherently challenging and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   often controversial.  As stated elsewhere in this document, there is</td><td> </td><td class="right">   often controversial.  As stated elsewhere in this document, there is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   no comprehensive normative requirement for specific handling of a</td><td> </td><td class="right">   no comprehensive normative requirement for specific handling of a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message based on SPF results.  The information presented in Section 8</td><td> </td><td class="right">   message based on SPF results.  The information presented in Section 8</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0008" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   and in Appendix <span class="delete">H</span> is offered for receiver consideration when forming</td><td> </td><td class="rblock">   and in Appendix <span class="insert">G</span> is offered for receiver consideration when forming</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   local handling policies.</td><td> </td><td class="right">   local handling policies.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The primary considerations are that SPF might return "pass" for mail</td><td> </td><td class="right">   The primary considerations are that SPF might return "pass" for mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that is ultimately harmful (e.g., spammers that arrange for SPF to</td><td> </td><td class="right">   that is ultimately harmful (e.g., spammers that arrange for SPF to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   pass using disposable domain names, or virus or spam outbreaks from</td><td> </td><td class="right">   pass using disposable domain names, or virus or spam outbreaks from</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   within trusted sources), and might also return "fail" for mail that</td><td> </td><td class="right">   within trusted sources), and might also return "fail" for mail that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   is ultimately legitimate (e.g., legitimate mail that has traversed a</td><td> </td><td class="right">   is ultimately legitimate (e.g., legitimate mail that has traversed a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mail alias).  It is important take both of these cases under</td><td> </td><td class="right">   mail alias).  It is important take both of these cases under</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   consideration when establishing local handling policy.</td><td> </td><td class="right">   consideration when establishing local handling policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l6" /><small>skipping to change at</small><em> page 48, line 14</em></th><th> </th><th><a name="part-r6" /><small>skipping to change at</small><em> page 48, line 14</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Because SPF evaluation is based on the IP address of the "last"</td><td> </td><td class="right">   Because SPF evaluation is based on the IP address of the "last"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   sending SMTP server, the address of the mediator will be used, rather</td><td> </td><td class="right">   sending SMTP server, the address of the mediator will be used, rather</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   than the address of the SMTP server that sent the message to the</td><td> </td><td class="right">   than the address of the SMTP server that sent the message to the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mediator.  Some mediators retain the email address from the original</td><td> </td><td class="right">   mediator.  Some mediators retain the email address from the original</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message, while some use a new address.</td><td> </td><td class="right">   message, while some use a new address.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If the address is the same as for the original message, and the</td><td> </td><td class="right">   If the address is the same as for the original message, and the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   original message had an associated SPF record, then the SPF</td><td> </td><td class="right">   original message had an associated SPF record, then the SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   evaluation will fail unless mitigations such as those described in</td><td> </td><td class="right">   evaluation will fail unless mitigations such as those described in</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0009" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">E</span> are used.</td><td> </td><td class="rblock">   Appendix <span class="insert">D</span> are used.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">11.  Security Considerations</td><td> </td><td class="right">11.  Security Considerations</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">11.1.  Processing Limits</td><td> </td><td class="right">11.1.  Processing Limits</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As with most aspects of email, there are a number of ways that</td><td> </td><td class="right">   As with most aspects of email, there are a number of ways that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   malicious parties could use the protocol as an avenue for a</td><td> </td><td class="right">   malicious parties could use the protocol as an avenue for a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Denial-of-Service (DoS) attack.  The processing limits outlined in</td><td> </td><td class="right">   Denial-of-Service (DoS) attack.  The processing limits outlined in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Section 4.6.4 are designed to prevent attacks such as the following:</td><td> </td><td class="right">   Section 4.6.4 are designed to prevent attacks such as the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l7" /><small>skipping to change at</small><em> page 53, line 5</em></th><th> </th><th><a name="part-r7" /><small>skipping to change at</small><em> page 53, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   to likely harm.  This is especially true for domains belonging to</td><td> </td><td class="right">   to likely harm.  This is especially true for domains belonging to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   known good actors that are typically well-behaved; unauthorized mail</td><td> </td><td class="right">   known good actors that are typically well-behaved; unauthorized mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   from those sources might well be subjected to much higher skepticism</td><td> </td><td class="right">   from those sources might well be subjected to much higher skepticism</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and content analysis.</td><td> </td><td class="right">   and content analysis.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF does not, however, include the capacity for identifying good</td><td> </td><td class="right">   SPF does not, however, include the capacity for identifying good</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   actors from bad ones, nor does it handle the concept of known actors</td><td> </td><td class="right">   actors from bad ones, nor does it handle the concept of known actors</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   versus unknown ones.  Those notions are out of scope for this</td><td> </td><td class="right">   versus unknown ones.  Those notions are out of scope for this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   specification.</td><td> </td><td class="right">   specification.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0010" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">12.  Contributors and Acknowledgements</td><td> </td><td class="rblock">12.  <span class="insert">Collected ABNF</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   This section is normative and any discrepancies with the ABNF</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   fragments in the preceding text are to be resolved in favor of this</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   grammar.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   See [RFC5234] for ABNF notation.  Please note that as per this ABNF</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   definition, literal text strings (those in quotes) are case-</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   insensitive.  Hence, "mx" matches "mx", "MX", "mX", and "Mx".</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   record           = version terms *SP</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   version          = "v=spf1"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   terms            = *( 1*SP ( directive / modifier ) )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   directive        = [ qualifier ] mechanism</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   qualifier        = "+" / "-" / "?" / "~"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   mechanism        = ( all / include</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / a / mx / ptr / ip4 / ip6 / exists )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   all              = "all"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   include          = "include"  ":" domain-spec</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   a                = "a"      [ ":" domain-spec ] [ dual-cidr-length ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   mx               = "mx"     [ ":" domain-spec ] [ dual-cidr-length ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ptr              = "ptr"    [ ":" domain-spec ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   exists           = "exists"   ":" domain-spec</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   modifier         = redirect / explanation / unknown-modifier</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   redirect         = "redirect" "=" domain-spec</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   explanation      = "exp" "=" domain-spec</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   unknown-modifier = name "=" macro-string</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      ; where name is not any known modifier</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip4-cidr-length  = "/" ("0" |  %x31-39 0*1DIGIT) ; value range 0-32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip6-cidr-length  = "/" ("0" |  %x31-39 0*2DIGIT) ; value range 0-128</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip4-network      = qnum "." qnum "." qnum "." qnum</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   qnum             = DIGIT                 ; 0-9</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / %x31-39 DIGIT       ; 10-99</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / "1" 2DIGIT          ; 100-199</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / "2" %x30-34 DIGIT   ; 200-249</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / "25" %x30-35        ; 250-255</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">            ; conventional dotted quad notation.  e.g., 192.0.2.0</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">            ; e.g., 2001:DB8::CD30</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   domain-spec      = macro-string domain-end</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   domain-end       = ( "." toplabel [ "." ] ) / macro-expand</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   toplabel         = ( *alphanum ALPHA *alphanum ) /</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      ( 1*alphanum "-" *( alphanum / "-" ) alphanum )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      ; LDH rule plus additional TLD restrictions</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      ; (see [RFC3696], Section 2 for background)</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   alphanum         = ALPHA / DIGIT</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   explain-string   = *( macro-string / SP )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   macro-string     = *( macro-expand / macro-literal )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   macro-expand     = ( "%{" macro-letter transformers *delimiter "}" )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / "%%" / "%_" / "%-"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   macro-literal    = %x21-24 / %x26-7E</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      ; visible characters except "%"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   macro-letter     = "s" / "l" / "o" / "d" / "i" / "p" / "h" /</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      "c" / "r" / "t" / "v"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   transformers     = *DIGIT [ "r" ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   delimiter        = "." / "-" / "+" / "," / "/" / "_" / "="</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   name             = ALPHA *( ALPHA / DIGIT / "-" / "_" / "." )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   header-field     = "Received-SPF:" [CFWS] result FWS [comment FWS]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      [ key-value-list ] CRLF</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   result           = "pass" / "fail" / "softfail" / "neutral" /</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      "none" / "temperror" / "permerror"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   key-value-list   = key-value-pair *( ";" [CFWS] key-value-pair )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      [";"]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   key-value-pair   = key [CFWS] "=" ( dot-atom / quoted-string )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   key              = "client-ip" / "envelope-from" / "helo" /</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      "problem" / "receiver" / "identity" /</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                       "mechanism" / name</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   identity         = "mailfrom"   ; for the "MAIL FROM" identity</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / "helo"     ; for the "HELO" identity</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / name       ; other identities</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   sender           = Mailbox</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip               = ip4-network / ip6-network</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ALPHA            = &lt;A-Z / a-z as per [RFC5234]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   DIGIT            = &lt;0-9 as per [RFC5234]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   SP               = &lt;space character as per [RFC5234]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   dot-atom         = &lt;unquoted word as per [RFC5322]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   quoted-string    = &lt;quoted string as per [RFC5322]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   comment          = &lt;comment string as per [RFC5322]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   CFWS             = &lt;comment or folding white space as per [RFC5322]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   FWS              = &lt;folding white space as per [RFC5322]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   CRLF             = &lt;standard end-of-line token as per [RFC5322]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">13.</span>  Contributors and Acknowledgements</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This document is largely based on the work of Meng Weng Wong, Mark</td><td> </td><td class="right">   This document is largely based on the work of Meng Weng Wong, Mark</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Lentczner, and Wayne Schlitt.  Although, as this section</td><td> </td><td class="right">   Lentczner, and Wayne Schlitt.  Although, as this section</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   acknowledges, many people have contributed to this document, a very</td><td> </td><td class="right">   acknowledges, many people have contributed to this document, a very</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   large portion of the writing and editing are due to Meng, Mark, and</td><td> </td><td class="right">   large portion of the writing and editing are due to Meng, Mark, and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Wayne.</td><td> </td><td class="right">   Wayne.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This design owes a debt of parentage to [RMX] by Hadmut Danisch and</td><td> </td><td class="right">   This design owes a debt of parentage to [RMX] by Hadmut Danisch and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   to [DMP] by Gordon Fecyk.  The idea of using a DNS record to check</td><td> </td><td class="right">   to [DMP] by Gordon Fecyk.  The idea of using a DNS record to check</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the legitimacy of an email address traces its ancestry further back</td><td> </td><td class="right">   the legitimacy of an email address traces its ancestry further back</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l8" /><small>skipping to change at</small><em> page 54, line 5</em></th><th> </th><th><a name="part-r8" /><small>skipping to change at</small><em> page 57, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the development of this design.  They are far too numerous to name,</td><td> </td><td class="right">   the development of this design.  They are far too numerous to name,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   but they include the following:</td><td> </td><td class="right">   but they include the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The participants in the SPFbis working group.</td><td> </td><td class="right">      The participants in the SPFbis working group.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The folks on the spf-discuss mailing list.</td><td> </td><td class="right">      The folks on the spf-discuss mailing list.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The folks on the SPAM-L mailing list.</td><td> </td><td class="right">      The folks on the SPAM-L mailing list.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The folks on the IRTF ASRG mailing list.</td><td> </td><td class="right">      The folks on the IRTF ASRG mailing list.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The folks on the IETF MARID mailing list.</td><td> </td><td class="right">      The folks on the IETF MARID mailing list.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The folks on #perl.</td><td> </td><td class="right">      The folks on #perl.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0011" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">3</span>.  IANA Considerations</td><td> </td><td class="rblock">1<span class="insert">4</span>.  IANA Considerations</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0012" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">3</span>.1.  The SPF DNS Record Type</td><td> </td><td class="rblock">1<span class="insert">4</span>.1.  The SPF DNS Record Type</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Per [RFC4408], the IANA assigned the Resource Record Type and Qtype</td><td> </td><td class="right">   Per [RFC4408], the IANA assigned the Resource Record Type and Qtype</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   from the DNS Parameters Registry for the SPF RR type with code 99.</td><td> </td><td class="right">   from the DNS Parameters Registry for the SPF RR type with code 99.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The format of this type is identical to the TXT RR [RFC1035].  The</td><td> </td><td class="right">   The format of this type is identical to the TXT RR [RFC1035].  The</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   character content of the record is encoded as [US-ASCII].</td><td> </td><td class="right">   character content of the record is encoded as [US-ASCII].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Studies have shown that RRTYPE 99 has not seen any substantial use,</td><td> </td><td class="right">   Studies have shown that RRTYPE 99 has not seen any substantial use,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and in fact its existence and mechanism defined in [RFC4408] has led</td><td> </td><td class="right">   and in fact its existence and mechanism defined in [RFC4408] has led</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   to some interoperability issues.  Accordingly, its use is now</td><td> </td><td class="right">   to some interoperability issues.  Accordingly, its use is now</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   obsolete, and new implementations are not to use it.</td><td> </td><td class="right">   obsolete, and new implementations are not to use it.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   IANA is requested to update the Resource Record (RR) TYPEs registry</td><td> </td><td class="right">   IANA is requested to update the Resource Record (RR) TYPEs registry</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   to indicate that this document is the reference document for that</td><td> </td><td class="right">   to indicate that this document is the reference document for that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   RRTYPE.</td><td> </td><td class="right">   RRTYPE.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [NOTE TO RFC EDITOR: (to be changed to " ... has updated ..." upon</td><td> </td><td class="right">   [NOTE TO RFC EDITOR: (to be changed to " ... has updated ..." upon</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   publication)]</td><td> </td><td class="right">   publication)]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0013" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">3</span>.2.  The Received-SPF Mail Header Field</td><td> </td><td class="rblock">1<span class="insert">4</span>.2.  The Received-SPF Mail Header Field</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Per [RFC3864], the "Received-SPF:" header field is added to the IANA</td><td> </td><td class="right">   Per [RFC3864], the "Received-SPF:" header field is added to the IANA</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Permanent Message Header Field Registry.  The following is the</td><td> </td><td class="right">   Permanent Message Header Field Registry.  The following is the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   registration template:</td><td> </td><td class="right">   registration template:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Header field name: Received-SPF</td><td> </td><td class="right">      Header field name: Received-SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Applicable protocol: mail ([RFC5322])</td><td> </td><td class="right">      Applicable protocol: mail ([RFC5322])</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Status: standard</td><td> </td><td class="right">      Status: standard</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Author/Change controller: IETF</td><td> </td><td class="right">      Author/Change controller: IETF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Specification document(s): RFC XXXX</td><td> </td><td class="right">      Specification document(s): RFC XXXX</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      [NOTE TO RFC EDITOR: (this document)]</td><td> </td><td class="right">      [NOTE TO RFC EDITOR: (this document)]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0014" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">3</span>.3.  SPF Modifier Registry</td><td> </td><td class="rblock">1<span class="insert">4</span>.3.  SPF Modifier Registry</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   IANA is requested to change the reference for the exp and redirect</td><td> </td><td class="right">   IANA is requested to change the reference for the exp and redirect</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   modifiers in the Modifier Names registry, under Sender Policy</td><td> </td><td class="right">   modifiers in the Modifier Names registry, under Sender Policy</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Framework Parameters, from [RFC4408] to this document.  Their status</td><td> </td><td class="right">   Framework Parameters, from [RFC4408] to this document.  Their status</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   is unchanged.</td><td> </td><td class="right">   is unchanged.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0015" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">4</span>.  References</td><td> </td><td class="rblock">1<span class="insert">5</span>.  References</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0016" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">4</span>.1.  Normative References</td><td> </td><td class="rblock">1<span class="insert">5</span>.1.  Normative References</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC1035]  Mockapetris, P., "Domain names - implementation and</td><td> </td><td class="right">   [RFC1035]  Mockapetris, P., "Domain names - implementation and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              specification", STD 13, RFC 1035, November 1987.</td><td> </td><td class="right">              specification", STD 13, RFC 1035, November 1987.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC1123]  Braden, R., "Requirements for Internet Hosts - Application</td><td> </td><td class="right">   [RFC1123]  Braden, R., "Requirements for Internet Hosts - Application</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              and Support", STD 3, RFC 1123, October 1989.</td><td> </td><td class="right">              and Support", STD 3, RFC 1123, October 1989.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate</td><td> </td><td class="right">   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Requirement Levels", BCP 14, RFC 2119, March 1997.</td><td> </td><td class="right">              Requirement Levels", BCP 14, RFC 2119, March 1997.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l9" /><small>skipping to change at</small><em> page 56, line 11</em></th><th> </th><th><a name="part-r9" /><small>skipping to change at</small><em> page 59, line 11</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [US-ASCII]</td><td> </td><td class="right">   [US-ASCII]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              American National Standards Institute (formerly United</td><td> </td><td class="right">              American National Standards Institute (formerly United</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              States of America Standards Institute), "USA Code for</td><td> </td><td class="right">              States of America Standards Institute), "USA Code for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Information Interchange, X3.4", 1968.</td><td> </td><td class="right">              Information Interchange, X3.4", 1968.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              ANSI X3.4-1968 has been replaced by newer versions with</td><td> </td><td class="right">              ANSI X3.4-1968 has been replaced by newer versions with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              slight modifications, but the 1968 version remains</td><td> </td><td class="right">              slight modifications, but the 1968 version remains</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              definitive for the Internet.</td><td> </td><td class="right">              definitive for the Internet.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0017" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">4</span>.2.  Informative References</td><td> </td><td class="rblock">1<span class="insert">5</span>.2.  Informative References</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [DMP]      Fecyk, G., "Designated Mailers Protocol".</td><td> </td><td class="right">   [DMP]      Fecyk, G., "Designated Mailers Protocol".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Work In Progress</td><td> </td><td class="right">              Work In Progress</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [Green]    Green, D., "Domain-Authorized SMTP Mail", 2002.</td><td> </td><td class="right">   [Green]    Green, D., "Domain-Authorized SMTP Mail", 2002.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",</td><td> </td><td class="right">   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              STD 13, RFC 1034, November 1987.</td><td> </td><td class="right">              STD 13, RFC 1034, November 1987.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l10" /><small>skipping to change at</small><em> page 58, line 5</em></th><th> </th><th><a name="part-r10" /><small>skipping to change at</small><em> page 61, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC6891]  Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms</td><td> </td><td class="right">   [RFC6891]  Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              for DNS (EDNS(0))", STD 75, RFC 6891, April 2013.</td><td> </td><td class="right">              for DNS (EDNS(0))", STD 75, RFC 6891, April 2013.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RMX]      Danisch, H., "The RMX DNS RR Type for light weight sender</td><td> </td><td class="right">   [RMX]      Danisch, H., "The RMX DNS RR Type for light weight sender</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              authentication".</td><td> </td><td class="right">              authentication".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Work In Progress</td><td> </td><td class="right">              Work In Progress</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [Vixie]    Vixie, P., "Repudiating MAIL FROM", 2002.</td><td> </td><td class="right">   [Vixie]    Vixie, P., "Repudiating MAIL FROM", 2002.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0018" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix A.  <span class="delete">Collected ABNF</span></td><td> </td><td class="rblock">Appendix A.  Extended Examples</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   This section is normative and any discrepancies with the ABNF</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   fragments in the preceding text are to be resolved in favor of this</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   grammar.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   See [RFC5234] for ABNF notation.  Please note that as per this ABNF</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   definition, literal text strings (those in quotes) are case-</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   insensitive.  Hence, "mx" matches "mx", "MX", "mX", and "Mx".</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   record           = version terms *SP</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   version          = "v=spf1"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   terms            = *( 1*SP ( directive / modifier ) )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   directive        = [ qualifier ] mechanism</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   qualifier        = "+" / "-" / "?" / "~"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   mechanism        = ( all / include</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / a / mx / ptr / ip4 / ip6 / exists )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   all              = "all"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   include          = "include"  ":" domain-spec</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   a                = "a"      [ ":" domain-spec ] [ dual-cidr-length ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   mx               = "mx"     [ ":" domain-spec ] [ dual-cidr-length ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ptr              = "ptr"    [ ":" domain-spec ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   exists           = "exists"   ":" domain-spec</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   modifier         = redirect / explanation / unknown-modifier</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   redirect         = "redirect" "=" domain-spec</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   explanation      = "exp" "=" domain-spec</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   unknown-modifier = name "=" macro-string</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      ; where name is not any known modifier</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip4-cidr-length  = "/" ("0" |  %x31-39 0*1DIGIT) ; value range 0-32</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip6-cidr-length  = "/" ("0" |  %x31-39 0*2DIGIT) ; value range 0-128</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip4-network      = qnum "." qnum "." qnum "." qnum</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   qnum             = DIGIT                 ; 0-9</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / %x31-39 DIGIT       ; 10-99</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / "1" 2DIGIT          ; 100-199</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / "2" %x30-34 DIGIT   ; 200-249</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / "25" %x30-35        ; 250-255</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">            ; conventional dotted quad notation.  e.g., 192.0.2.0</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">            ; e.g., 2001:DB8::CD30</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   domain-spec      = macro-string domain-end</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   domain-end       = ( "." toplabel [ "." ] ) / macro-expand</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   toplabel         = ( *alphanum ALPHA *alphanum ) /</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      ( 1*alphanum "-" *( alphanum / "-" ) alphanum )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      ; LDH rule plus additional TLD restrictions</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      ; (see [RFC3696], Section 2 for background)</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   alphanum         = ALPHA / DIGIT</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   explain-string   = *( macro-string / SP )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   macro-string     = *( macro-expand / macro-literal )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   macro-expand     = ( "%{" macro-letter transformers *delimiter "}" )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / "%%" / "%_" / "%-"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   macro-literal    = %x21-24 / %x26-7E</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      ; visible characters except "%"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   macro-letter     = "s" / "l" / "o" / "d" / "i" / "p" / "h" /</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      "c" / "r" / "t" / "v"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   transformers     = *DIGIT [ "r" ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   delimiter        = "." / "-" / "+" / "," / "/" / "_" / "="</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   name             = ALPHA *( ALPHA / DIGIT / "-" / "_" / "." )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   header-field     = "Received-SPF:" [CFWS] result FWS [comment FWS]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      [ key-value-list ] CRLF</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   result           = "pass" / "fail" / "softfail" / "neutral" /</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      "none" / "temperror" / "permerror"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   key-value-list   = key-value-pair *( ";" [CFWS] key-value-pair )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      [";"]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   key-value-pair   = key [CFWS] "=" ( dot-atom / quoted-string )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   key              = "client-ip" / "envelope-from" / "helo" /</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      "problem" / "receiver" / "identity" /</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                       "mechanism" / name</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   identity         = "mailfrom"   ; for the "MAIL FROM" identity</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / "helo"     ; for the "HELO" identity</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / name       ; other identities</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   sender           = Mailbox</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip               = ip4-network / ip6-network</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ALPHA            = &lt;A-Z / a-z as per [RFC5234]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   DIGIT            = &lt;0-9 as per [RFC5234]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   SP               = &lt;space character as per [RFC5234]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   dot-atom         = &lt;unquoted word as per [RFC5322]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   quoted-string    = &lt;quoted string as per [RFC5322]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   comment          = &lt;comment string as per [RFC5322]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   CFWS             = &lt;comment or folding white space as per [RFC5322]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   FWS              = &lt;folding white space as per [RFC5322]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   CRLF             = &lt;standard end-of-line token as per [RFC5322]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">Appendix B.</span>  Extended Examples</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These examples are based on the following DNS setup:</td><td> </td><td class="right">   These examples are based on the following DNS setup:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ; A domain with two mail servers, two hosts</td><td> </td><td class="right">   ; A domain with two mail servers, two hosts</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ; and two servers at the domain name</td><td> </td><td class="right">   ; and two servers at the domain name</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   $ORIGIN example.com.</td><td> </td><td class="right">   $ORIGIN example.com.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   @           MX  10 mail-a</td><td> </td><td class="right">   @           MX  10 mail-a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">               MX  20 mail-b</td><td> </td><td class="right">               MX  20 mail-b</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">               A   192.0.2.10</td><td> </td><td class="right">               A   192.0.2.10</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">               A   192.0.2.11</td><td> </td><td class="right">               A   192.0.2.11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l11" /><small>skipping to change at</small><em> page 61, line 42</em></th><th> </th><th><a name="part-r11" /><small>skipping to change at</small><em> page 61, line 42</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   66          PTR bob.example.com.</td><td> </td><td class="right">   66          PTR bob.example.com.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   129         PTR mail-a.example.com.</td><td> </td><td class="right">   129         PTR mail-a.example.com.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   130         PTR mail-b.example.com.</td><td> </td><td class="right">   130         PTR mail-b.example.com.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   140         PTR mail-c.example.org.</td><td> </td><td class="right">   140         PTR mail-c.example.org.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ; A rogue reverse IP domain that claims to be</td><td> </td><td class="right">   ; A rogue reverse IP domain that claims to be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ; something it's not</td><td> </td><td class="right">   ; something it's not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   $ORIGIN 0.0.10.in-addr.arpa.</td><td> </td><td class="right">   $ORIGIN 0.0.10.in-addr.arpa.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   4           PTR bob.example.com.</td><td> </td><td class="right">   4           PTR bob.example.com.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0019" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">B</span>.1.  Simple Examples</td><td> </td><td class="rblock"><span class="insert">A</span>.1.  Simple Examples</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These examples show various possible published records for</td><td> </td><td class="right">   These examples show various possible published records for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   example.com and which values if &lt;ip&gt; would cause check_host() to</td><td> </td><td class="right">   example.com and which values if &lt;ip&gt; would cause check_host() to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   return "pass".  Note that &lt;domain&gt; is "example.com".</td><td> </td><td class="right">   return "pass".  Note that &lt;domain&gt; is "example.com".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   v=spf1 +all</td><td> </td><td class="right">   v=spf1 +all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  any &lt;ip&gt; passes</td><td> </td><td class="right">      --  any &lt;ip&gt; passes</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   v=spf1 a -all</td><td> </td><td class="right">   v=spf1 a -all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  hosts 192.0.2.10 and 192.0.2.11 pass</td><td> </td><td class="right">      --  hosts 192.0.2.10 and 192.0.2.11 pass</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l12" /><small>skipping to change at</small><em> page 62, line 35</em></th><th> </th><th><a name="part-r12" /><small>skipping to change at</small><em> page 62, line 35</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  sending host 192.0.2.65 passes (reverse DNS is valid and is in</td><td> </td><td class="right">      --  sending host 192.0.2.65 passes (reverse DNS is valid and is in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">          example.com)</td><td> </td><td class="right">          example.com)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  sending host 192.0.2.140 fails (reverse DNS is valid, but not</td><td> </td><td class="right">      --  sending host 192.0.2.140 fails (reverse DNS is valid, but not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">          in example.com)</td><td> </td><td class="right">          in example.com)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  sending host 10.0.0.4 fails (reverse IP is not valid)</td><td> </td><td class="right">      --  sending host 10.0.0.4 fails (reverse IP is not valid)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   v=spf1 ip4:192.0.2.128/28 -all</td><td> </td><td class="right">   v=spf1 ip4:192.0.2.128/28 -all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  sending host 192.0.2.65 fails</td><td> </td><td class="right">      --  sending host 192.0.2.65 fails</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  sending host 192.0.2.129 passes</td><td> </td><td class="right">      --  sending host 192.0.2.129 passes</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0020" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">B</span>.2.  Multiple Domain Example</td><td> </td><td class="rblock"><span class="insert">A</span>.2.  Multiple Domain Example</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These examples show the effect of related records:</td><td> </td><td class="right">   These examples show the effect of related records:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      example.org: "v=spf1 include:example.com include:example.net -all"</td><td> </td><td class="right">      example.org: "v=spf1 include:example.com include:example.net -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This record would be used if mail from example.org actually came</td><td> </td><td class="right">   This record would be used if mail from example.org actually came</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   through servers at example.com and example.net.  Example.org's</td><td> </td><td class="right">   through servers at example.com and example.net.  Example.org's</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   designated servers are the union of example.com's and example.net's</td><td> </td><td class="right">   designated servers are the union of example.com's and example.net's</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   designated servers.</td><td> </td><td class="right">   designated servers.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      la.example.org: "v=spf1 redirect=example.org"</td><td> </td><td class="right">      la.example.org: "v=spf1 redirect=example.org"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      ny.example.org: "v=spf1 redirect=example.org"</td><td> </td><td class="right">      ny.example.org: "v=spf1 redirect=example.org"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      sf.example.org: "v=spf1 redirect=example.org"</td><td> </td><td class="right">      sf.example.org: "v=spf1 redirect=example.org"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These records allow a set of domains that all use the same mail</td><td> </td><td class="right">   These records allow a set of domains that all use the same mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   system to make use of that mail system's record.  In this way, only</td><td> </td><td class="right">   system to make use of that mail system's record.  In this way, only</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the mail system's record needs to be updated when the mail setup</td><td> </td><td class="right">   the mail system's record needs to be updated when the mail setup</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   changes.  These domains' records never have to change.</td><td> </td><td class="right">   changes.  These domains' records never have to change.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0021" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">B</span>.3.  DNSBL Style Example</td><td> </td><td class="rblock"><span class="insert">A</span>.3.  DNSBL Style Example</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Imagine that, in addition to the domain records listed above, there</td><td> </td><td class="right">   Imagine that, in addition to the domain records listed above, there</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   are these (see [RFC5782]):</td><td> </td><td class="right">   are these (see [RFC5782]):</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   $ORIGIN _spf.example.com.</td><td> </td><td class="right">   $ORIGIN _spf.example.com.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mary.mobile-users                   A 127.0.0.2</td><td> </td><td class="right">   mary.mobile-users                   A 127.0.0.2</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   fred.mobile-users                   A 127.0.0.2</td><td> </td><td class="right">   fred.mobile-users                   A 127.0.0.2</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   15.15.168.192.joel.remote-users     A 127.0.0.2</td><td> </td><td class="right">   15.15.168.192.joel.remote-users     A 127.0.0.2</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   16.15.168.192.joel.remote-users     A 127.0.0.2</td><td> </td><td class="right">   16.15.168.192.joel.remote-users     A 127.0.0.2</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l13" /><small>skipping to change at</small><em> page 63, line 36</em></th><th> </th><th><a name="part-r13" /><small>skipping to change at</small><em> page 63, line 36</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">          -all</td><td> </td><td class="right">          -all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mobile-users._spf.example.com:</td><td> </td><td class="right">   mobile-users._spf.example.com:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   v=spf1 exists:%{l1r+}.%{d}</td><td> </td><td class="right">   v=spf1 exists:%{l1r+}.%{d}</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   remote-users._spf.example.com:</td><td> </td><td class="right">   remote-users._spf.example.com:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   v=spf1 exists:%{ir}.%{l1r+}.%{d}</td><td> </td><td class="right">   v=spf1 exists:%{ir}.%{l1r+}.%{d}</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0022" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">B</span>.4.  Multiple Requirements Example</td><td> </td><td class="rblock"><span class="insert">A</span>.4.  Multiple Requirements Example</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Say that your sender policy requires both that the IP address is</td><td> </td><td class="right">   Say that your sender policy requires both that the IP address is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   within a certain range and that the reverse DNS for the IP matches.</td><td> </td><td class="right">   within a certain range and that the reverse DNS for the IP matches.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This can be done several ways, including the following:</td><td> </td><td class="right">   This can be done several ways, including the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   example.com.           SPF  ( "v=spf1 "</td><td> </td><td class="right">   example.com.           SPF  ( "v=spf1 "</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                                 "-include:ip4._spf.%{d} "</td><td> </td><td class="right">                                 "-include:ip4._spf.%{d} "</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                                 "-include:ptr._spf.%{d} "</td><td> </td><td class="right">                                 "-include:ptr._spf.%{d} "</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                                 "+all" )</td><td> </td><td class="right">                                 "+all" )</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4._spf.example.com.  SPF  "v=spf1 -ip4:192.0.2.0/24 +all"</td><td> </td><td class="right">   ip4._spf.example.com.  SPF  "v=spf1 -ip4:192.0.2.0/24 +all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ptr._spf.example.com.  SPF  "v=spf1 -ptr +all"</td><td> </td><td class="right">   ptr._spf.example.com.  SPF  "v=spf1 -ptr +all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This example shows how the "-include" mechanism can be useful, how an</td><td> </td><td class="right">   This example shows how the "-include" mechanism can be useful, how an</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF record that ends in "+all" can be very restrictive, and the use</td><td> </td><td class="right">   SPF record that ends in "+all" can be very restrictive, and the use</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of De Morgan's Law.</td><td> </td><td class="right">   of De Morgan's Law.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0023" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">C</span>.  Changes in implementation requirements from RFC 4408</td><td> </td><td class="rblock">Appendix <span class="insert">B</span>.  Changes in implementation requirements from RFC 4408</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The modifications to implementation requirements from [RFC4408] are</td><td> </td><td class="right">   The modifications to implementation requirements from [RFC4408] are</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   all either (a) corrections to errors in [RFC4408], or (b) additional</td><td> </td><td class="right">   all either (a) corrections to errors in [RFC4408], or (b) additional</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   documentation based on consensus of operational experience acquired</td><td> </td><td class="right">   documentation based on consensus of operational experience acquired</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   since publication of [RFC4408].</td><td> </td><td class="right">   since publication of [RFC4408].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Use of DNS RR type SPF (99) has been removed from the protocol,</td><td> </td><td class="right">   o  Use of DNS RR type SPF (99) has been removed from the protocol,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      see [RFC6686] for background.</td><td> </td><td class="right">      see [RFC6686] for background.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  A new DNS related processing limit based on "void lookups" has</td><td> </td><td class="right">   o  A new DNS related processing limit based on "void lookups" has</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l14" /><small>skipping to change at</small><em> page 64, line 28</em></th><th> </th><th><a name="part-r14" /><small>skipping to change at</small><em> page 64, line 28</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Use of the ptr mechanism and the %p macro have been strongly</td><td> </td><td class="right">   o  Use of the ptr mechanism and the %p macro have been strongly</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      discouraged Section 5.5 and Section 7.2.  They remain part of the</td><td> </td><td class="right">      discouraged Section 5.5 and Section 7.2.  They remain part of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      protocol because they were found to be in use, but records ought</td><td> </td><td class="right">      protocol because they were found to be in use, but records ought</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      to be updated to avoid them.</td><td> </td><td class="right">      to be updated to avoid them.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Use of the "Authentication-Results" header field [RFC5451] as a</td><td> </td><td class="right">   o  Use of the "Authentication-Results" header field [RFC5451] as a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      possible alternative to use of the "Received-SPF" header field is</td><td> </td><td class="right">      possible alternative to use of the "Received-SPF" header field is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      discussed (Section 9.2).</td><td> </td><td class="right">      discussed (Section 9.2).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  There have been a number of minor corrections to the ABNF to make</td><td> </td><td class="right">   o  There have been a number of minor corrections to the ABNF to make</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0024" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      it more clear and correct <span class="delete">Appendix A</span>.  SPF library implementers</td><td> </td><td class="rblock">      it more clear and correct <span class="insert">Section 12</span>.  SPF library implementers</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      should give the revised ABNF a careful review to determine if</td><td> </td><td class="right">      should give the revised ABNF a careful review to determine if</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      implementation changes are needed.</td><td> </td><td class="right">      implementation changes are needed.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Use of X- fields in the ABNF has been removed see [RFC6648] for</td><td> </td><td class="right">   o  Use of X- fields in the ABNF has been removed see [RFC6648] for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      background.</td><td> </td><td class="right">      background.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Ambiguity about how to deal with invalid domain-spec after macro</td><td> </td><td class="right">   o  Ambiguity about how to deal with invalid domain-spec after macro</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      expansion has been documented.  Depending on one specific behavior</td><td> </td><td class="right">      expansion has been documented.  Depending on one specific behavior</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      has to be avoided (Section 4.8).</td><td> </td><td class="right">      has to be avoided (Section 4.8).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  General operational information has been updated and expanded</td><td> </td><td class="right">   o  General operational information has been updated and expanded</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      based on eight years of post [RFC4408] operations experience.  See</td><td> </td><td class="right">      based on eight years of post [RFC4408] operations experience.  See</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Section 10 and Appendices D - H below.</td><td> </td><td class="right">      Section 10 and Appendices D - H below.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Security considerations have been reviewed and updated</td><td> </td><td class="right">   o  Security considerations have been reviewed and updated</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      (Section 11).</td><td> </td><td class="right">      (Section 11).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0025" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">D</span>.  Further Testing Advice</td><td> </td><td class="rblock">Appendix <span class="insert">C</span>.  Further Testing Advice</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Another approach that can be helpful to publish records that include</td><td> </td><td class="right">   Another approach that can be helpful to publish records that include</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a "tracking exists:" mechanism.  By looking at the name server logs,</td><td> </td><td class="right">   a "tracking exists:" mechanism.  By looking at the name server logs,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a rough list can then be generated.  For example:</td><td> </td><td class="right">   a rough list can then be generated.  For example:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      v=spf1 exists:_h.%{h}._l.%{l}._o.%{o}._i.%{i}._spf.%{d} ?all</td><td> </td><td class="right">      v=spf1 exists:_h.%{h}._l.%{l}._o.%{o}._i.%{i}._spf.%{d} ?all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0026" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">E</span>.  SPF/Mediator Interactions</td><td> </td><td class="rblock">Appendix <span class="insert">D</span>.  SPF/Mediator Interactions</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There are three places that techniques can be used to ameliorate</td><td> </td><td class="right">   There are three places that techniques can be used to ameliorate</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   unintended SPF failures with mediators.</td><td> </td><td class="right">   unintended SPF failures with mediators.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0027" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">E</span>.1.  Originating ADMDs</td><td> </td><td class="rblock"><span class="insert">D</span>.1.  Originating ADMDs</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The beginning, when email is first sent:</td><td> </td><td class="right">   The beginning, when email is first sent:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  "Neutral" results could be given for IP addresses that might be</td><td> </td><td class="right">   o  "Neutral" results could be given for IP addresses that might be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      forwarders, instead of "fail" results based on a list of known</td><td> </td><td class="right">      forwarders, instead of "fail" results based on a list of known</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      reliable forwarders.  For example:</td><td> </td><td class="right">      reliable forwarders.  For example:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">         "v=spf1 mx ?exists:%{ir}.whitlist.example.org -all"</td><td> </td><td class="right">         "v=spf1 mx ?exists:%{ir}.whitlist.example.org -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      This would cause a lookup on an DNS white list (DNSWL) and cause a</td><td> </td><td class="right">      This would cause a lookup on an DNS white list (DNSWL) and cause a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l15" /><small>skipping to change at</small><em> page 67, line 7</em></th><th> </th><th><a name="part-r15" /><small>skipping to change at</small><em> page 67, line 7</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      rate-limit the email coming from unexpected IP addresses.</td><td> </td><td class="right">      rate-limit the email coming from unexpected IP addresses.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">         "v=spf1 mx exists:%{ir}._spf_rate.%{d} -all"</td><td> </td><td class="right">         "v=spf1 mx exists:%{ir}._spf_rate.%{d} -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  SPF allows the creation of per-user policies for special cases.</td><td> </td><td class="right">   o  SPF allows the creation of per-user policies for special cases.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      For example, the following SPF record and appropriate wildcard DNS</td><td> </td><td class="right">      For example, the following SPF record and appropriate wildcard DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      records can be used:</td><td> </td><td class="right">      records can be used:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">         "v=spf1 mx redirect=%{l1r+}._at_.%{o}._spf.%{d}"</td><td> </td><td class="right">         "v=spf1 mx redirect=%{l1r+}._at_.%{o}._spf.%{d}"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0028" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">E</span>.2.  Mediators</td><td> </td><td class="rblock"><span class="insert">D</span>.2.  Mediators</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The middle, when email is forwarded:.</td><td> </td><td class="right">   The middle, when email is forwarded:.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Mediators can solve the problem by rewriting the "MAIL FROM" to be</td><td> </td><td class="right">   o  Mediators can solve the problem by rewriting the "MAIL FROM" to be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      in their own domain.  This means mail rejected from the external</td><td> </td><td class="right">      in their own domain.  This means mail rejected from the external</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      mailbox will have to be forwarded back to the original sender by</td><td> </td><td class="right">      mailbox will have to be forwarded back to the original sender by</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      the forwarding service.  Various schemes to do this exist though</td><td> </td><td class="right">      the forwarding service.  Various schemes to do this exist though</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      they vary widely in complexity and resource requirements on the</td><td> </td><td class="right">      they vary widely in complexity and resource requirements on the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      part of the mediator.</td><td> </td><td class="right">      part of the mediator.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l16" /><small>skipping to change at</small><em> page 67, line 29</em></th><th> </th><th><a name="part-r16" /><small>skipping to change at</small><em> page 67, line 29</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      "mailing list" semantics by configuring an additional alias with</td><td> </td><td class="right">      "mailing list" semantics by configuring an additional alias with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      "owner-" prepended to the original alias name (e.g., an alias of</td><td> </td><td class="right">      "owner-" prepended to the original alias name (e.g., an alias of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      "friends: george@example.com, fred@example.org" would need another</td><td> </td><td class="right">      "friends: george@example.com, fred@example.org" would need another</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      alias of the form "owner-friends: localowner").</td><td> </td><td class="right">      alias of the form "owner-friends: localowner").</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Mediators could reject mail that would "fail" SPF if forwarded</td><td> </td><td class="right">   o  Mediators could reject mail that would "fail" SPF if forwarded</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      using an SMTP reply code of 551, User not local, (see [RFC5321]</td><td> </td><td class="right">      using an SMTP reply code of 551, User not local, (see [RFC5321]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      section 3.4) to communicate the correct target address to resend</td><td> </td><td class="right">      section 3.4) to communicate the correct target address to resend</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      the mail to.</td><td> </td><td class="right">      the mail to.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0029" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">E</span>.3.  Receving ADMDs</td><td> </td><td class="rblock"><span class="insert">D</span>.3.  Receving ADMDs</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The end, when email is received:</td><td> </td><td class="right">   The end, when email is received:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  If the owner of the external mailbox wishes to trust the mediator,</td><td> </td><td class="right">   o  If the owner of the external mailbox wishes to trust the mediator,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      he can direct the external mailbox's MTA to skip SPF tests when</td><td> </td><td class="right">      he can direct the external mailbox's MTA to skip SPF tests when</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      the client host belongs to the mediator.</td><td> </td><td class="right">      the client host belongs to the mediator.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Tests against other identities, such as the "HELO" identity, can</td><td> </td><td class="right">   o  Tests against other identities, such as the "HELO" identity, can</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      be used to override a failed test against the "MAIL FROM"</td><td> </td><td class="right">      be used to override a failed test against the "MAIL FROM"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      identity.</td><td> </td><td class="right">      identity.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  For larger domains, it might not be possible to have a complete or</td><td> </td><td class="right">   o  For larger domains, it might not be possible to have a complete or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      accurate list of forwarding services used by the owners of the</td><td> </td><td class="right">      accurate list of forwarding services used by the owners of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      domain's mailboxes.  In such cases, whitelists of generally-</td><td> </td><td class="right">      domain's mailboxes.  In such cases, whitelists of generally-</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      recognized forwarding services could be employed.</td><td> </td><td class="right">      recognized forwarding services could be employed.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0030" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">F</span>.  Mail Services</td><td> </td><td class="rblock">Appendix <span class="insert">E</span>.  Mail Services</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MSPs (Mail Service Providers - [RFC5598] Section 2.3) that offer mail</td><td> </td><td class="right">   MSPs (Mail Service Providers - [RFC5598] Section 2.3) that offer mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   services to third-party domains, such as sending of bulk mail, might</td><td> </td><td class="right">   services to third-party domains, such as sending of bulk mail, might</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   want to adjust their configurations in light of the authorization</td><td> </td><td class="right">   want to adjust their configurations in light of the authorization</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   check described in this document.  If the domain part of the "MAIL</td><td> </td><td class="right">   check described in this document.  If the domain part of the "MAIL</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   FROM" identity used for such email uses the domain of one of the MSPs</td><td> </td><td class="right">   FROM" identity used for such email uses the domain of one of the MSPs</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   domain, then the provider needs only to ensure that its sending host</td><td> </td><td class="right">   domain, then the provider needs only to ensure that its sending host</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   is authorized by its own SPF record, if any.</td><td> </td><td class="right">   is authorized by its own SPF record, if any.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If the "MAIL FROM" identity does not use the MSP's domain, then extra</td><td> </td><td class="right">   If the "MAIL FROM" identity does not use the MSP's domain, then extra</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   care has to be taken.  The SPF record format has several options for</td><td> </td><td class="right">   care has to be taken.  The SPF record format has several options for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the third-party domain to authorize the service provider's MTAs to</td><td> </td><td class="right">   the third-party domain to authorize the service provider's MTAs to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   send mail on its behalf.  For MSPs, such as ISPs, that have a wide</td><td> </td><td class="right">   send mail on its behalf.  For MSPs, such as ISPs, that have a wide</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   variety of customers using the same MTA, steps are required to</td><td> </td><td class="right">   variety of customers using the same MTA, steps are required to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mitigate the risk of cross-customer forgery (see Section 11.4).</td><td> </td><td class="right">   mitigate the risk of cross-customer forgery (see Section 11.4).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0031" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">G</span>.  MTA Relays</td><td> </td><td class="rblock">Appendix <span class="insert">F</span>.  MTA Relays</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Relays are described in [RFC5598] Section 2.2.2.  The authorization</td><td> </td><td class="right">   Relays are described in [RFC5598] Section 2.2.2.  The authorization</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   check generally precludes the use of arbitrary MTA relays between</td><td> </td><td class="right">   check generally precludes the use of arbitrary MTA relays between</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   sender and receiver of an email message.</td><td> </td><td class="right">   sender and receiver of an email message.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Within an organization, MTA relays can be effectively deployed.</td><td> </td><td class="right">   Within an organization, MTA relays can be effectively deployed.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   However, for purposes of this document, such relays are effectively</td><td> </td><td class="right">   However, for purposes of this document, such relays are effectively</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   transparent.  The SPF authorization check is a check between border</td><td> </td><td class="right">   transparent.  The SPF authorization check is a check between border</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MTAs of different ADMDs.</td><td> </td><td class="right">   MTAs of different ADMDs.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l17" /><small>skipping to change at</small><em> page 70, line 5</em></th><th> </th><th><a name="part-r17" /><small>skipping to change at</small><em> page 70, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   relayed mail stream) then do not perform the authorization test.  To</td><td> </td><td class="right">   relayed mail stream) then do not perform the authorization test.  To</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   perform the authorization test other than at the boundary, the host</td><td> </td><td class="right">   perform the authorization test other than at the boundary, the host</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that first transferred the message to the receiving ADMD have to be</td><td> </td><td class="right">   that first transferred the message to the receiving ADMD have to be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   determined, which can be difficult to extract from the message header</td><td> </td><td class="right">   determined, which can be difficult to extract from the message header</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   because (a) header fields can be forged or malformed, and (b) there's</td><td> </td><td class="right">   because (a) header fields can be forged or malformed, and (b) there's</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   no standard way to encode that information such that it can be</td><td> </td><td class="right">   no standard way to encode that information such that it can be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   reliably extracted.  Testing other than at the boundary is likely to</td><td> </td><td class="right">   reliably extracted.  Testing other than at the boundary is likely to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   produce unreliable results.  This is described further in Appendix C</td><td> </td><td class="right">   produce unreliable results.  This is described further in Appendix C</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of [RFC5451].</td><td> </td><td class="right">   of [RFC5451].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0032" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">H</span>.  Local Policy Considerations</td><td> </td><td class="rblock">Appendix <span class="insert">G</span>.  Local Policy Considerations</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF results can be used in combination with other methods to</td><td> </td><td class="right">   SPF results can be used in combination with other methods to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   determine the final local disposition (either positive or negative of</td><td> </td><td class="right">   determine the final local disposition (either positive or negative of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a message.  It can also be considered dispositive on its own.</td><td> </td><td class="right">   a message.  It can also be considered dispositive on its own.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0033" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">H</span>.1.  Policy For SPF Pass</td><td> </td><td class="rblock"><span class="insert">G</span>.1.  Policy For SPF Pass</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF pass results can be used in combination with "white lists" of</td><td> </td><td class="right">   SPF pass results can be used in combination with "white lists" of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   known "good" domains to bypass some or all additional pre-delivery</td><td> </td><td class="right">   known "good" domains to bypass some or all additional pre-delivery</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   email checks.  Exactly which checks and how to determine appropriate</td><td> </td><td class="right">   email checks.  Exactly which checks and how to determine appropriate</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   white list entries has to be based on local conditions and</td><td> </td><td class="right">   white list entries has to be based on local conditions and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   requirements.</td><td> </td><td class="right">   requirements.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0034" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">H</span>.2.  Policy For SPF Fail</td><td> </td><td class="rblock"><span class="insert">G</span>.2.  Policy For SPF Fail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF fail results can be used to reject messages during the SMTP</td><td> </td><td class="right">   SPF fail results can be used to reject messages during the SMTP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   transaction based on either "MAIL FROM" or "HELO" identity results.</td><td> </td><td class="right">   transaction based on either "MAIL FROM" or "HELO" identity results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This reduces resource requirements for various content filtering</td><td> </td><td class="right">   This reduces resource requirements for various content filtering</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   methods and conserves bandwidth since rejection can be done before</td><td> </td><td class="right">   methods and conserves bandwidth since rejection can be done before</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the SMTP content is transferred.  It also gives immediate feedback to</td><td> </td><td class="right">   the SMTP content is transferred.  It also gives immediate feedback to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the sender who might then be able to resolve the issue.  Due to some</td><td> </td><td class="right">   the sender who might then be able to resolve the issue.  Due to some</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of the issues described above in this section (Section 10), SPF based</td><td> </td><td class="right">   of the issues described above in this section (Section 10), SPF based</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   rejection does present some risk of rejecting legitimate email when</td><td> </td><td class="right">   rejection does present some risk of rejecting legitimate email when</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   rejecting based on "MAIL FROM" results.</td><td> </td><td class="right">   rejecting based on "MAIL FROM" results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l18" /><small>skipping to change at</small><em> page 71, line 5</em></th><th> </th><th><a name="part-r18" /><small>skipping to change at</small><em> page 71, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   might result in email that was not authorized by the sending ADMD</td><td> </td><td class="right">   might result in email that was not authorized by the sending ADMD</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   being unknowingly delivered to end users.</td><td> </td><td class="right">   being unknowingly delivered to end users.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Either general approach can be used as they both leave a clear</td><td> </td><td class="right">   Either general approach can be used as they both leave a clear</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   disposition of emails.  They are either delivered in some manner or</td><td> </td><td class="right">   disposition of emails.  They are either delivered in some manner or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the sender is notified of the failure.  Other dispositions such as</td><td> </td><td class="right">   the sender is notified of the failure.  Other dispositions such as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "dropping" or deleting email after acceptance are inappropriate</td><td> </td><td class="right">   "dropping" or deleting email after acceptance are inappropriate</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   because they leave uncertainty and reduce the overall reliability and</td><td> </td><td class="right">   because they leave uncertainty and reduce the overall reliability and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   utility of email across the Internet.</td><td> </td><td class="right">   utility of email across the Internet.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0035" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">H</span>.3.  Policy For SPF Permerror</td><td> </td><td class="rblock"><span class="insert">G</span>.3.  Policy For SPF Permerror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "permerror" result (see Section 2.6.7) indicates the SPF</td><td> </td><td class="right">   The "permerror" result (see Section 2.6.7) indicates the SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   processing module at the receiver determined that the retrieved SPF</td><td> </td><td class="right">   processing module at the receiver determined that the retrieved SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   policy record could not be interpreted.  This gives no true</td><td> </td><td class="right">   policy record could not be interpreted.  This gives no true</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   indication about the authorized use of the data found in the</td><td> </td><td class="right">   indication about the authorized use of the data found in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   envelope.</td><td> </td><td class="right">   envelope.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As with all results, implementers have a choice to make regarding</td><td> </td><td class="right">   As with all results, implementers have a choice to make regarding</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   what to do with a message that yields this result.  SMTP allows only</td><td> </td><td class="right">   what to do with a message that yields this result.  SMTP allows only</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a few basic options.</td><td> </td><td class="right">   a few basic options.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l19" /><small>skipping to change at</small><em> page 71, line 41</em></th><th> </th><th><a name="part-r19" /><small>skipping to change at</small><em> page 71, line 41</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There is of course the option placing this choice in the hands of the</td><td> </td><td class="right">   There is of course the option placing this choice in the hands of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF verifier operator rather than the implementer since this kind of</td><td> </td><td class="right">   SPF verifier operator rather than the implementer since this kind of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   choice is often a matter of local policy rather than a condition with</td><td> </td><td class="right">   choice is often a matter of local policy rather than a condition with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a universal solution, but this adds one more piece of complexity to</td><td> </td><td class="right">   a universal solution, but this adds one more piece of complexity to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   an already non-trivial environment.</td><td> </td><td class="right">   an already non-trivial environment.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Both implementers and SPF verfier operators need to be cautious of</td><td> </td><td class="right">   Both implementers and SPF verfier operators need to be cautious of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   all choices and outcomes when handling SPF results.</td><td> </td><td class="right">   all choices and outcomes when handling SPF results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0036" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">H</span>.4.  Policy For SPF Temperror</td><td> </td><td class="rblock"><span class="insert">G</span>.4.  Policy For SPF Temperror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "temperror" result (see Section 2.6.6) indicates the SPF</td><td> </td><td class="right">   The "temperror" result (see Section 2.6.6) indicates the SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   processing module at the receiver could not retrieve and SPF policy</td><td> </td><td class="right">   processing module at the receiver could not retrieve and SPF policy</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   record due to a (probably) transient condition.  This gives no true</td><td> </td><td class="right">   record due to a (probably) transient condition.  This gives no true</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   indication about the authorized use of the data found in the</td><td> </td><td class="right">   indication about the authorized use of the data found in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   envelope.</td><td> </td><td class="right">   envelope.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As with all results, implementers have a choice to make regarding</td><td> </td><td class="right">   As with all results, implementers have a choice to make regarding</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   what to do with a message that yields this result.  SMTP allows only</td><td> </td><td class="right">   what to do with a message that yields this result.  SMTP allows only</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a few basic options.</td><td> </td><td class="right">   a few basic options.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l20" /><small>skipping to change at</small><em> page 73, line 5</em></th><th> </th><th><a name="part-r20" /><small>skipping to change at</small><em> page 73, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There is of course the option placing this choice in the hands of the</td><td> </td><td class="right">   There is of course the option placing this choice in the hands of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF verifier operator rather than the implementer since this kind of</td><td> </td><td class="right">   SPF verifier operator rather than the implementer since this kind of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   choice is often a matter of local policy rather than a condition with</td><td> </td><td class="right">   choice is often a matter of local policy rather than a condition with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a universal solution, but this adds one more piece of complexity to</td><td> </td><td class="right">   a universal solution, but this adds one more piece of complexity to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   an already non-trivial environment.</td><td> </td><td class="right">   an already non-trivial environment.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Both implementers and SPF verifier operators need to be cautious of</td><td> </td><td class="right">   Both implementers and SPF verifier operators need to be cautious of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   all choices and outcomes when handling SPF results.</td><td> </td><td class="right">   all choices and outcomes when handling SPF results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0037" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">I</span>.  Protocol Status</td><td> </td><td class="rblock">Appendix <span class="insert">H</span>.  Protocol Status</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   NOTE TO RFC EDITOR: To be removed prior to publication.</td><td> </td><td class="right">   NOTE TO RFC EDITOR: To be removed prior to publication.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF has been in development since the summer of 2003 and has seen</td><td> </td><td class="right">   SPF has been in development since the summer of 2003 and has seen</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   deployment beyond the developers beginning in December 2003.  The</td><td> </td><td class="right">   deployment beyond the developers beginning in December 2003.  The</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   design of SPF slowly evolved until the spring of 2004 and has since</td><td> </td><td class="right">   design of SPF slowly evolved until the spring of 2004 and has since</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   stabilized.  There have been quite a number of forms of SPF, some</td><td> </td><td class="right">   stabilized.  There have been quite a number of forms of SPF, some</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   written up as documents, some submitted as Internet Drafts, and many</td><td> </td><td class="right">   written up as documents, some submitted as Internet Drafts, and many</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   discussed and debated in development forums.  The protocol was</td><td> </td><td class="right">   discussed and debated in development forums.  The protocol was</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   originally defined in [RFC4408], which this document replaces.</td><td> </td><td class="right">   originally defined in [RFC4408], which this document replaces.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l21" /><small>skipping to change at</small><em> page 74, line 5</em></th><th> </th><th><a name="part-r21" /><small>skipping to change at</small><em> page 74, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF is widely deployed by large and small email providers alike.</td><td> </td><td class="right">   SPF is widely deployed by large and small email providers alike.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There are multiple, interoperable implementations.</td><td> </td><td class="right">   There are multiple, interoperable implementations.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   For SPF (as documented in RFC 4408) a careful effort was made to</td><td> </td><td class="right">   For SPF (as documented in RFC 4408) a careful effort was made to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   collect and document lessons learned and errata during the two year</td><td> </td><td class="right">   collect and document lessons learned and errata during the two year</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   period.  The errata list has been stable (no new submissions) and</td><td> </td><td class="right">   period.  The errata list has been stable (no new submissions) and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   only minor protocol lessons learned were identified.  Resolution of</td><td> </td><td class="right">   only minor protocol lessons learned were identified.  Resolution of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the IESG's experiment is documented in [RFC6686].</td><td> </td><td class="right">   the IESG's experiment is documented in [RFC6686].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0038" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">J</span>.  Change History</td><td> </td><td class="rblock">Appendix <span class="insert">I</span>.  Change History</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   NOTE TO RFC EDITOR: Changes since RFC 4408 (to be removed prior to</td><td> </td><td class="right">   NOTE TO RFC EDITOR: Changes since RFC 4408 (to be removed prior to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   publication)</td><td> </td><td class="right">   publication)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Moved to standards track</td><td> </td><td class="right">      Moved to standards track</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Authors updated</td><td> </td><td class="right">      Authors updated</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      IESG Note regarding experimental use replaced with discussion of</td><td> </td><td class="right">      IESG Note regarding experimental use replaced with discussion of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      results</td><td> </td><td class="right">      results</td><td class="lineno" valign="top"></td></tr>

     <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
     <tr bgcolor="gray"><th colspan="5" align="center"><a name="end">&nbsp;End of changes. 38 change blocks.&nbsp;</a></th></tr>
     <tr class="stats"><td></td><th><i>168 lines changed or deleted</i></th><th><i> </i></th><th><i>169 lines changed or added</i></th><td></td></tr>
     <tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.41. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/" >http://tools.ietf.org/tools/rfcdiff/</a> </td></tr>
   </table>
   </body>
   </html>

--nextPart2714318.S1THZF8FJm--


From spf2@kitterman.com  Wed Sep 25 20:59:00 2013
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 324DD11E8106 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 20:59:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.218
X-Spam-Level: 
X-Spam-Status: No, score=-2.218 tagged_above=-999 required=5 tests=[AWL=0.381,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qaCQyGOtwt-2 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 20:58:55 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 14A3F21F98AC for <spfbis@ietf.org>; Wed, 25 Sep 2013 20:58:55 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 8669A20E40D3; Wed, 25 Sep 2013 23:58:54 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1380167934; bh=7+4BJGELtNvFY2xnAU3byG0VX+C+ynlzQX6TsElsbzY=; h=From:To:Subject:Date:In-Reply-To:References:From; b=m4h5FESAnG/cmmtefn/IBU1SZVIAz+D2VqmVkxYU6kqJiCI9X1Y3/Bj6pKUr7dWCA cQPwbToMqN/sVaE/DtE5AKNDdrs5HbPBOHslFJJTWF6ibfu3ZtPq21N67/KLt7jPX7 99E81KBVbSZKEd3/1204vIRB74gNphqG8CILjQB4=
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 6BEEA20E40C4;  Wed, 25 Sep 2013 23:58:54 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Wed, 25 Sep 2013 23:58:53 -0400
Message-ID: <1758729.IvYqRXB7R5@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <6.2.5.6.2.20130914224708.0c8d4af0@elandnews.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <5234DD79.4010407@sonnection.nl> <6.2.5.6.2.20130914224708.0c8d4af0@elandnews.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] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Thu, 26 Sep 2013 03:59:00 -0000

On Saturday, September 14, 2013 23:21:35 S Moonesamy wrote:
> Hi Rolf,
> 
> At 15:04 14-09-2013, Rolf E. Sonneveld wrote:
> >I intentionally did not refer to a specific paragraph within the
> >referenced specs, as new versions of those referenced specs might
> >invalidate the references in this spfbis document. Granted, chances
> >that RFC5321 and/or RFC5598 will become obsoleted by newer versions
> 
> >are small, so here's an attempt to address part of the raised issue:
> Ok.
> 
> >1.1.3.  MAIL FROM Definition
> >
> >    This document is concerned with the identity of the sender of a
> >    
> >    mail message, as referred to in par. 3.3 of [RFC5321]:
> >        "The transaction starts with a MAIL command that gives the
> >        sender identification."
> >
> >.  Since there are many other names for this identity, it is
> >
> >    important to choose a name that is:
> >    
> >    1. commonly used
> >    2. well defined
> >    
> >    As such, throughout this document the term "MAIL FROM" will be used,
> >    which is defined as the RFC5321.MailFrom identity, described in
> > 
> > par. 4.1.4 of [RFC5598].
> >
> >I'm not sure I agree with the SecDir review re. "the referenced
> >specs do not give an explicit definition for the term as used
> >[...]', as RFC5598 par. 4.1.4 describes the RFC5321.MailFrom
> >
> >identity quite well:
> >    RFC5321.MailFrom:  Set by - Originator
> >    
> >       This field is an end-to-end string that specifies an email address
> >       for receiving return control information, such as returned
> >       messages. [...]
> 
> I'll adapt your proposed text as follows:
> 
> 1.1.3.  MAIL FROM Definition
> 
>     This document uses "MAIL FROM" to refer to RFC5321.MailFrom
> (reverse-path). The RFC5321.MailFrom is defined in Section 4.4 of RFC 5598
> as an end-to-end string that specifies an email address for receiving
> return control information, such as returned messages.
> 
> I inserted the word "reverse-path" because of Section 2.4.
> 
> If you are okay with the above I'll use it to respond to the SecDir review.

I added reverse-path to what I just published on 1.1.3.  I'm not going to 
publish another diff just for that.

Scott K

From spf2@kitterman.com  Wed Sep 25 21:02:49 2013
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 CEDF311E80FA for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 21:02:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.237
X-Spam-Level: 
X-Spam-Status: No, score=-2.237 tagged_above=-999 required=5 tests=[AWL=0.362,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6D4AbrL81n6M for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 21:02:44 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 91F8721F941F for <spfbis@ietf.org>; Wed, 25 Sep 2013 21:02:44 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 28B3920E40D3; Thu, 26 Sep 2013 00:02:44 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1380168164; bh=os5UszdhocjvfeCYwY3NU8LZ0IhfHDzDloMxWnE09To=; h=From:To:Subject:Date:In-Reply-To:References:From; b=bNAhmkqWtZylmsQ5XFH0my73o50G+qSm7OGvPeHEj5hzO3iz10cte5vrufJuhPfRm wxxj7Qq/980Owg/rW9e3GJJENJg/BZnt8Uqrro+DEMq2lsa5jUIJNYWlvKXl/hEfE/ o2YVAu9Cuj58xCrt3Bf/k+5eTcpZnCc928LsvAiw=
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 0E67520E40C4;  Thu, 26 Sep 2013 00:02:43 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Thu, 26 Sep 2013 00:02:43 -0400
Message-ID: <3847270.QmjG8bX0Jj@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <6.2.5.6.2.20130917010720.06302bf8@elandnews.com>
References: <CAMm+Lwg4hcnk+uPQZizeRM++tic4utQ4P4mFFeKoq=Dx=0nvJw@mail.gmail.com> <6.2.5.6.2.20130917010720.06302bf8@elandnews.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] SECDIR Review of draft-ietf-spfbis-4408bis-19
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: Thu, 26 Sep 2013 04:02:49 -0000

On Tuesday, September 17, 2013 01:19:44 S Moonesamy wrote:
> Hi Phillip,
> 
> At 05:07 11-09-2013, Phillip Hallam-Baker wrote:
> >Minor issues.
> >
> >1.1.3.  MAIL FROM Definition
> >
> >I found this section completely opaque and very confusing. It should
> >not be necessary to hunt through other specs to find a definition.
> >Particularly since the referenced specs do not give an explicit
> >definition for the term as used and the references point to the
> >whole spec rather than a particular section.
> 
> The text below is to address the comment about Section 1.1.3 (credits
> to Rolf E. Sonneveld):
> 
> 1.1.3.  MAIL FROM Definition
> 
>     This document uses "MAIL FROM" to refer to RFC5321.MailFrom
> (reverse-path). The RFC5321.MailFrom is defined in Section 4.4 of RFC 5598
> as an end-to-end string that specifies an email address for receiving
> return control information, such as returned messages.

Incorporated as already mentioned.

> >The Security Considerations section is adequate for the purpose
> >except that no mention is made anywhere in the specification about
> >DKIM and how a mail receiver should interpret presence of DKIM and
> >SPF policy at the same time. This is a legitimate concern since DKIM
> >is already a standards track proposal and SPF is only now being
> >promoted to Standards Track. Thus the SPF document should address
> >the question of dual use.
> 
> I commented about the above in my previous reply.

I don't think there's anything that's actionable within the charter on this.

> >8.7.  Permerror
> >"This signals an error condition that definitely requires operator
> >intervention to be resolved."
> >
> >I cannot imagine a circumstance which definitely requires a human to
> >be involved in mail delivery.
> 
> These are permanent DNS errors or SPF record errors.  For example, if
> an SPF record requires too many DNS lookups, someone has to change
> the record to make the error go away.
> 
> The definitely was intended to distinguish from cases such as a DNS
> SERVFAIL that may or may not be permanent, but are temperrors in
> SPF.  In the case of ambiguity about if an error is temporary or
> permanent, it's treated in the design as assumed to be temporary.

I'm not making any changes for this.

> >11.2.  SPF-Authorized Email May Contain Other False Identities
> >
> >    Do not construe the "MAIL FROM" and "HELO" identity authorizations to
> >    provide more assurance than they do.
> >
> >Document has quasi normative language that should be worded as
> >statements of fact rather than as direction.
> 
> The following change is proposed is response to the above:
> 
>     The "MAIL FROM" and "HELO" identity authorizations do not provide
> assurance about the authorization/authenticity of other identities used in
> the message.

Incorporated locally.

Scott K

From spf2@kitterman.com  Wed Sep 25 21:07:57 2013
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 ED65511E8132 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 21:07:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.253
X-Spam-Level: 
X-Spam-Status: No, score=-2.253 tagged_above=-999 required=5 tests=[AWL=0.346,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iJeKSx4d52q0 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 21:07:51 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 8647A11E80FA for <spfbis@ietf.org>; Wed, 25 Sep 2013 21:07:51 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 142DB20E40D3; Thu, 26 Sep 2013 00:07:51 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1380168471; bh=a7ON+Nn7EUl4WEriGQQkS0uJwkcIB+etSqANTvGkbfU=; h=From:To:Subject:Date:In-Reply-To:References:From; b=LPc97TuzkrnxMfksJ5iQBREHfR2gFReCuMhXwyE/NkT8r+rF0Zzgl3km1whpWG/H5 v2HhyspYIK0fu75zl/GHMAAe8NFfSpU1QnbNS8bP/b1pByaFTJWwTa5fRC+HF2wB+m sR3PBJ8Rg/syBQjHGwTt/GzehlaMR7TBJKxLca4s=
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 EDCF020E40C4;  Thu, 26 Sep 2013 00:07:50 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Thu, 26 Sep 2013 00:07:50 -0400
Message-ID: <1598361.7dTHHD5BrU@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <20130915213820.GC78902@mx1.yitter.info>
References: <B8983E88-14A1-4741-99ED-F43962B2497A@gmail.com> <2137735.9LNiMWPY5V@scott-latitude-e6320> <20130915213820.GC78902@mx1.yitter.info>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] draft-ietf-spfbis-4408bis-20 review (response  size)
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: Thu, 26 Sep 2013 04:07:57 -0000

On Sunday, September 15, 2013 17:38:20 Andrew Sullivan wrote:
> On Sat, Sep 14, 2013 at 02:20:39AM -0400, Scott Kitterman wrote:
> > NEW:
> >    TXT records is under 450 characters, then DNS answers should fit in UDP
> 
> s/characters/octets, or even "ASCII characters" if you must.
> "Characters" in the UTF-8 era is just too loaded a word.
> 
> Otherwise, no objection here.

It looks like I had fixed this already.  It says octets.

Scott K

From spf2@kitterman.com  Wed Sep 25 21:14:27 2013
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 5810211E8135 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 21:14:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.268
X-Spam-Level: 
X-Spam-Status: No, score=-2.268 tagged_above=-999 required=5 tests=[AWL=0.331,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VRJs9eoOmhg6 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 21:14:22 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 6ECCE21F995B for <spfbis@ietf.org>; Wed, 25 Sep 2013 21:14:17 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 029A320E40D3; Thu, 26 Sep 2013 00:14:17 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1380168857; bh=BY6JG2MO2HFm0NtxiU7Lmq2Bq4X+ZaBAY1OPTdQlhmI=; h=From:To:Subject:Date:In-Reply-To:References:From; b=K3ir/dfzhvnGsTjLIoFsOQ0Z090otgqAzqzl3NX0csNOUaJwU9PBYUV0mB4goyfjl DBGS7eBPXU5JE0mm63pzxGaj2hri/2IRkd6eaVKbh95nL5gh2fMjoTk4PiQQFfVEEx mzxJfEpgmQyXd03HeTCNlcam1SpTKHdvaKJ/orfc=
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 DC43120E40C4;  Thu, 26 Sep 2013 00:14:16 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Thu, 26 Sep 2013 00:14:16 -0400
Message-ID: <4542820.U7qJIjvMcm@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <5231D25B.6040004@ieca.com>
References: <20130912114310.25787.59356.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130912072207.0b998388@elandnews.com> <5231D25B.6040004@ieca.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] Sean Turner's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 26 Sep 2013 04:14:27 -0000

On Thursday, September 12, 2013 10:40:27 you wrote:
> On 9/12/13 10:26 AM, S Moonesamy wrote:
> > Hi Sean,
> > 
> > At 04:43 12-09-2013, Sean Turner wrote:
> >> Sean Turner has entered the following ballot position for
> >> draft-ietf-spfbis-4408bis-19: No Objection
> > 
> > [snip]
> > 
> >> ----------------------------------------------------------------------
> >> COMMENT:
> >> ----------------------------------------------------------------------
> >> 
> >> Should s11.3 also provide a mitigation via a reference for the spoofed
> >> DNS?  Right now it just points to the DNS threats RFC.  I guess the
> >> reader can infer they should use DNSSEC if they're worried but adding a
> >> pointer to the right RFC would be better.  Something as simple as adding
> >> "... and see [RFCXYZ] for a countermeasure" or something like that.
> > 
> > I'll suggest:
> >    and see RFC 4033 for a countermeasure.
> > 
> > and leave it to the SPFBIS WG to comment on the above.
> 
> That would work for me.
> 
> spt

I don't think this went to the WG list before, but I don't imagine it being 
controversial.   Added as suggested.

Scott K

From spf2@kitterman.com  Wed Sep 25 21:15:50 2013
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 BD37511E8139 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 21:15:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.282
X-Spam-Level: 
X-Spam-Status: No, score=-2.282 tagged_above=-999 required=5 tests=[AWL=0.317,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id l0V4zHLREHhK for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 21:15:46 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 50BFD11E8106 for <spfbis@ietf.org>; Wed, 25 Sep 2013 21:15:46 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id DD2E820E40D3; Thu, 26 Sep 2013 00:15:45 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1380168945; bh=m/di3M6VahHrrecgBMn7e59R2GaccGPrGnHi2DcJjhE=; h=From:To:Subject:Date:In-Reply-To:References:From; b=E13mhSg2Ys41EPZdpGCNRxOmxcsBWVYA8z/2QhaJkY91KORZq1gPegKsO1lLqUcNr o34D2BhLYL5+bvVxkf/J80uRNI9Fu+y5buuOErC/7O8x8JJ4HmIe4hUzUmH9jcPV6c WrVzczFkAE+qOFE3y78UMGpYSwAHe0mQfOhiNXP4=
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 C62E120E40C4;  Thu, 26 Sep 2013 00:15:45 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Thu, 26 Sep 2013 00:15:45 -0400
Message-ID: <3693082.IWTNL7MlLQ@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <968D46D1-D7F1-4E23-9B59-1212AFA924B3@piuha.net>
References: <ABCAA4EF18F17B4FB619EA93DEF7939A63CF43@eusaamb107.ericsson.se> <968D46D1-D7F1-4E23-9B59-1212AFA924B3@piuha.net>
MIME-Version: 1.0
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] [Gen-art] Gen-ART Telechat Call review of draft-ietf-spfbis-4408bis-19
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: Thu, 26 Sep 2013 04:15:50 -0000

On Thursday, September 12, 2013 22:19:56 you wrote:
> Meral: Thank you for your review!
> 
> Jari
> 
> On Sep 5, 2013, at 5:40 AM, Meral Shirazipour 
<meral.shirazipour@ericsson.com> wrote:
> > I am the assigned Gen-ART reviewer for this draft. For background on
> > Gen-ART, please see the FAQ at <
> > http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq> .
> > 
> > Please wait for direction from your document shepherd or AD before posting
> > a new version of the draft.
> > 
> > Document: draft-ietf-spfbis-4408bis-19
> > Reviewer: Meral Shirazipour
> > Review Date: 2013-09-04
> > IETF LC End Date: 2013-09-02
> > IESG Telechat date: 2013-09-12
> > 
> > Summary: This draft is ready to be published as Proposed Standard.
> > 
> > 
> > Nits/editorial comments:
> > Section E.3., Title, "Receving ADMDs"  --typo-->   "Receiving ADMDs"

Fixed this.

Scott K

From spf2@kitterman.com  Wed Sep 25 22:10:05 2013
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 EE85D11E8135 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 22:10:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level: 
X-Spam-Status: No, score=x tagged_above=-999 required=5 tests=[]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Lc8Wauk8oMPo for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 22:10:04 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id C0F5721F9E95 for <spfbis@ietf.org>; Wed, 25 Sep 2013 22:10:03 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 50D3720E40D3; Thu, 26 Sep 2013 01:10:01 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1380172201; bh=codk5/F9ZV7nNi9bfTzZSeaIxm+BKL5Yt0H6xTAuT10=; h=From:To:Subject:Date:In-Reply-To:References:From; b=mMghP2VUf+A+CCFh3QEsWT6X9cAQ+yZ8MSJogygYYv1nF7O+unnxQDsoazXKv9kHO /QT6ZWRNZ8atSCoN3urkJOYPVD39ERVvo/61SFa6lOI2WPoOTugKPfoM3/Cqv9jamV axDEuvl/4YqwH6i3xQQ1GA2vvqndb1xdNs+N5Qek=
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 0A96220E40C4;  Thu, 26 Sep 2013 01:10:00 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Thu, 26 Sep 2013 01:09:59 -0400
Message-ID: <9521219.RXqIhQCEgb@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <CAL0qLwZqmReNcT3n4HBdd8ZkMN0P=J42nZREUcSXYAS2h1Eiug@mail.gmail.com>
References: <20130912101511.20829.6656.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130925131612.0d8d3800@elandnews.com> <CAL0qLwZqmReNcT3n4HBdd8ZkMN0P=J42nZREUcSXYAS2h1Eiug@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="nextPart2796661.iiajMldlZ8"
Content-Transfer-Encoding: 7Bit
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] Stephen Farrell's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 26 Sep 2013 05:10:05 -0000

This is a multi-part message in MIME format.

--nextPart2796661.iiajMldlZ8
Content-Transfer-Encoding: 7Bit
Content-Type: text/plain; charset="us-ascii"

On Wednesday, September 25, 2013 14:23:42 Murray S. Kucherawy wrote:
> On Wed, Sep 25, 2013 at 1:30 PM, S Moonesamy <sm+ietf@elandsys.com> wrote:
> > Hello,
> > 
> > I would like to bring the message below to the attention of the working
> > group.  There has not been any response to it.  Can a SPFBIS WG
> > participant
> > please respond to the message?
> > 
> > 
> > Thanks,
> > S. Moonesamy (as document shepherd)
> > 
> > At 03:15 12-09-2013, Stephen Farrell wrote:
> >> Stephen Farrell has entered the following ballot position for
> >> draft-ietf-spfbis-4408bis-19: No Objection
> >> 
> >> When responding, please keep the subject line intact and reply to all
> >> email addresses included in the To and CC lines. (Feel free to cut this
> >> introductory paragraph, however.)
> >> 
> >> 
> >> Please refer to http://www.ietf.org/iesg/**statement/discuss-criteria.**
> >> html <http://www.ietf.org/iesg/statement/discuss-criteria.html>
> >> for more information about IESG DISCUSS and COMMENT positions.
> >> 
> >> 
> >> The document, along with other ballot positions, can be found here:
> >> http://datatracker.ietf.org/**doc/draft-ietf-spfbis-4408bis/<http://datat
> >> racker.ietf.org/doc/draft-ietf-spfbis-4408bis/>
> >> 
> >> 
> >> 
> >> ------------------------------**------------------------------**
> >> ----------
> >> COMMENT:
> >> ------------------------------**------------------------------**
> >> ----------
> >> 
> >> 
> >> - 4.1: given that recursion is allowed and that you have
> >> overall limits on how many DNS transactions can be done,
> >> is the "transactions-remaining" value also an implicit
> >> parameter of a check_host() call? This is only a comment
> >> since check_host is not a formal API but it'd seem to make
> >> it easier to get right if you make that implicit parameter
> >> explicit. Or do the limits apply to each call as you
> >> recurse?  That wasn't entirely clear to me.
> 
> I suggest that it would be sufficient to add some prose that says the
> "transactions-remaining" count (or whatever we call it) has to apply
> through the recursions.  We shouldn't make this look any more like an API
> definition than it already does.

I agree that staying away from more API like language is good.  I took a prose 
approach to describing this was a global limit and not a per-recursion limit.  
In the attached diff.

> 
> - I didn't get appendix D at all - what's that do?
> 
> 
> I agree, we should explain it and include an example, or drop it.  Someone
> closer to the implementation and the original material than I am is almost
> certainly able to come up with an appropriate example versus what I would
> invent.

It made sense in context before we reorganized the document.  I find it 
troubling that the author of the reorganization now doesn't understand part of 
the text he shuffled around.

I'll take a stab at adding something.

> >> - Appendix E.1, 2nd bullet: what's that? I think it needs
> >> a reference if you want it to be understood.
> 
> Same here; examples would probably be useful for all three sections.

Generically, I agree, but it's beyond me to right it tonight.  I think the 
information is all there to get someone started with concepts of how senders 
can deal with avoiding SPF problems related to forwarding.  These are all 
unchanged from RFC 4408.  I don't think we should be changing them now after 
all the reviews as it wouldn't be a small change to rework these sections as 
you suggest.

Full diff from -20 attached.

Scott K
--nextPart2796661.iiajMldlZ8
Content-Disposition: attachment; filename="draft-ietf-spfbis-4408bis-21-from-0.diff.html"
Content-Transfer-Encoding: 7Bit
Content-Type: text/html; charset="UTF-8"; name="draft-ietf-spfbis-4408bis-21-from-0.diff.html"

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<!-- Generated by rfcdiff 1.41: rfcdiff  --> 
<!-- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional" > -->
<!-- System: Linux Scott-Latitude-E6320 3.8.0-30-generic #44-Ubuntu SMP Thu Aug 22 20:54:42 UTC 2013 i686 i686 i686 GNU/Linux --> 
<!-- Using awk: /usr/bin/gawk: GNU Awk 4.0.1 --> 
<!-- Using diff: /usr/bin/diff: diff (GNU diffutils) 3.2 --> 
<!-- Using wdiff: /usr/bin/wdiff: wdiff (GNU wdiff) 1.1.2 --> 
<html> 
<head> 
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
  <meta http-equiv="Content-Style-Type" content="text/css" /> 
  <title>Diff: draft-ietf-spfbis-4408bis-20.txt - draft-ietf-spfbis-4408bis-21.txt</title> 
  <style type="text/css"> 
    body    { margin: 0.4ex; margin-right: auto; } 
    tr      { } 
    td      { white-space: pre; font-family: monospace; vertical-align: top; font-size: 0.86em;} 
    th      { font-size: 0.86em; } 
    .small  { font-size: 0.6em; font-style: italic; font-family: Verdana, Helvetica, sans-serif; } 
    .left   { background-color: #EEE; } 
    .right  { background-color: #FFF; } 
    .diff   { background-color: #CCF; } 
    .lblock { background-color: #BFB; } 
    .rblock { background-color: #FF8; } 
    .insert { background-color: #8FF; } 
    .delete { background-color: #ACF; } 
    .void   { background-color: #FFB; } 
    .cont   { background-color: #EEE; } 
    .linebr { background-color: #AAA; } 
    .lineno { color: red; background-color: #FFF; font-size: 0.7em; text-align: right; padding: 0 2px; } 
    .elipsis{ background-color: #AAA; } 
    .left .cont { background-color: #DDD; } 
    .right .cont { background-color: #EEE; } 
    .lblock .cont { background-color: #9D9; } 
    .rblock .cont { background-color: #DD6; } 
    .insert .cont { background-color: #0DD; } 
    .delete .cont { background-color: #8AD; } 
    .stats, .stats td, .stats th { background-color: #EEE; padding: 2px 0; } 
  </style> 
</head> 
<body > 
  <table border="0" cellpadding="0" cellspacing="0"> 
  <tr bgcolor="orange"><th></th><th>&nbsp;draft-ietf-spfbis-4408bis-20.txt&nbsp;</th><th> </th><th>&nbsp;draft-ietf-spfbis-4408bis-21.txt&nbsp;</th><th></th></tr> 
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Network Working Group                                       S. Kitterman</td><td> </td><td class="right">Network Working Group                                       S. Kitterman</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Internet-Draft                              Kitterman Technical Services</td><td> </td><td class="right">Internet-Draft                              Kitterman Technical Services</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0001" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Obsoletes: 4408 (if approved)                         September <span class="delete">12</span>, 2013</td><td> </td><td class="rblock">Obsoletes: 4408 (if approved)                         September <span class="insert">26</span>, 2013</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Intended status: Standards Track</td><td> </td><td class="right">Intended status: Standards Track</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0002" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Expires: March <span class="delete">16</span>, 2014</td><td> </td><td class="rblock">Expires: March <span class="insert">30</span>, 2014</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"> Sender Policy Framework (SPF) for Authorizing Use of Domains in Email,</td><td> </td><td class="right"> Sender Policy Framework (SPF) for Authorizing Use of Domains in Email,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                               Version 1</td><td> </td><td class="right">                               Version 1</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0003" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">                      draft-ietf-spfbis-4408bis-2<span class="delete">0</span></td><td> </td><td class="rblock">                      draft-ietf-spfbis-4408bis-2<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Abstract</td><td> </td><td class="right">Abstract</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Email on the Internet can be forged in a number of ways.  In</td><td> </td><td class="right">   Email on the Internet can be forged in a number of ways.  In</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   particular, existing protocols place no restriction on what a sending</td><td> </td><td class="right">   particular, existing protocols place no restriction on what a sending</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   host can use as the "MAIL FROM" of a message or the domain given on</td><td> </td><td class="right">   host can use as the "MAIL FROM" of a message or the domain given on</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the SMTP HELO/EHLO commands.  This document describes version 1 of</td><td> </td><td class="right">   the SMTP HELO/EHLO commands.  This document describes version 1 of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the Sender Policy Framework (SPF) protocol, whereby ADministrative</td><td> </td><td class="right">   the Sender Policy Framework (SPF) protocol, whereby ADministrative</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Management Domains (ADMDs) can explicitly authorize the hosts that</td><td> </td><td class="right">   Management Domains (ADMDs) can explicitly authorize the hosts that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   are allowed to use its domain names, and a receiving host can check</td><td> </td><td class="right">   are allowed to use its domain names, and a receiving host can check</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 1, line 41</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 1, line 41</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are working documents of the Internet Engineering</td><td> </td><td class="right">   Internet-Drafts are working documents of the Internet Engineering</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Task Force (IETF).  Note that other groups may also distribute</td><td> </td><td class="right">   Task Force (IETF).  Note that other groups may also distribute</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   working documents as Internet-Drafts.  The list of current Internet-</td><td> </td><td class="right">   working documents as Internet-Drafts.  The list of current Internet-</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td> </td><td class="right">   Drafts is at http://datatracker.ietf.org/drafts/current/.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Internet-Drafts are draft documents valid for a maximum of six months</td><td> </td><td class="right">   Internet-Drafts are draft documents valid for a maximum of six months</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and may be updated, replaced, or obsoleted by other documents at any</td><td> </td><td class="right">   and may be updated, replaced, or obsoleted by other documents at any</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   time.  It is inappropriate to use Internet-Drafts as reference</td><td> </td><td class="right">   time.  It is inappropriate to use Internet-Drafts as reference</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   material or to cite them other than as "work in progress."</td><td> </td><td class="right">   material or to cite them other than as "work in progress."</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0004" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This Internet-Draft will expire on March <span class="delete">16</span>, 2014.</td><td> </td><td class="rblock">   This Internet-Draft will expire on March <span class="insert">30</span>, 2014.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">Copyright Notice</td><td> </td><td class="right">Copyright Notice</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Copyright (c) 2013 IETF Trust and the persons identified as the</td><td> </td><td class="right">   Copyright (c) 2013 IETF Trust and the persons identified as the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   document authors.  All rights reserved.</td><td> </td><td class="right">   document authors.  All rights reserved.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td> </td><td class="right">   This document is subject to BCP 78 and the IETF Trust's Legal</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Provisions Relating to IETF Documents</td><td> </td><td class="right">   Provisions Relating to IETF Documents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td> </td><td class="right">   (http://trustee.ietf.org/license-info) in effect on the date of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   publication of this document.  Please review these documents</td><td> </td><td class="right">   publication of this document.  Please review these documents</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> page 3, line 20</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> page 3, line 20</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       1.1.2.  Imported Definitions . . . . . . . . . . . . . . . . .  6</td><td> </td><td class="right">       1.1.2.  Imported Definitions . . . . . . . . . . . . . . . . .  6</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       1.1.3.  MAIL FROM Definition . . . . . . . . . . . . . . . . .  7</td><td> </td><td class="right">       1.1.3.  MAIL FROM Definition . . . . . . . . . . . . . . . . .  7</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       1.1.4.  HELO Definition  . . . . . . . . . . . . . . . . . . .  7</td><td> </td><td class="right">       1.1.4.  HELO Definition  . . . . . . . . . . . . . . . . . . .  7</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     1.2.  check_host() . . . . . . . . . . . . . . . . . . . . . . .  7</td><td> </td><td class="right">     1.2.  check_host() . . . . . . . . . . . . . . . . . . . . . . .  7</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   2.  Operational Overview . . . . . . . . . . . . . . . . . . . . .  8</td><td> </td><td class="right">   2.  Operational Overview . . . . . . . . . . . . . . . . . . . . .  8</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     2.1.  Publishing Authorization . . . . . . . . . . . . . . . . .  8</td><td> </td><td class="right">     2.1.  Publishing Authorization . . . . . . . . . . . . . . . . .  8</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     2.2.  Checking Authorization . . . . . . . . . . . . . . . . . .  8</td><td> </td><td class="right">     2.2.  Checking Authorization . . . . . . . . . . . . . . . . . .  8</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     2.3.  The "HELO" Identity  . . . . . . . . . . . . . . . . . . .  9</td><td> </td><td class="right">     2.3.  The "HELO" Identity  . . . . . . . . . . . . . . . . . . .  9</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     2.4.  The "MAIL FROM" Identity . . . . . . . . . . . . . . . . . 10</td><td> </td><td class="right">     2.4.  The "MAIL FROM" Identity . . . . . . . . . . . . . . . . . 10</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">     2.5.  Location of Checks . . . . . . . . . . . . . . . . . . . . 10</td><td> </td><td class="right">     2.5.  Location of Checks . . . . . . . . . . . . . . . . . . . . 10</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0005" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     2.6.  Results of Evaluation  . . . . . . . . . . . . . . . . . . 1<span class="delete">0</span></td><td> </td><td class="rblock">     2.6.  Results of Evaluation  . . . . . . . . . . . . . . . . . . 1<span class="insert">1</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.1.  None . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.1.  None . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       2.6.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . 11</td><td> </td><td class="right">       2.6.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . 11</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0006" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       2.6.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . <span class="delete">11</span></td><td> </td><td class="rblock">       2.6.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . <span class="insert">12</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   3.  SPF Records  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">12</span></td><td> </td><td class="rblock">   3.  SPF Records  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">13</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.1.  DNS Resource Records . . . . . . . . . . . . . . . . . . . <span class="delete">12</span></td><td> </td><td class="rblock">     3.1.  DNS Resource Records . . . . . . . . . . . . . . . . . . . <span class="insert">13</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.2.  Multiple DNS Records . . . . . . . . . . . . . . . . . . . <span class="delete">13</span></td><td> </td><td class="rblock">     3.2.  Multiple DNS Records . . . . . . . . . . . . . . . . . . . <span class="insert">14</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.3.  Multiple Strings in a Single DNS record  . . . . . . . . . <span class="delete">13</span></td><td> </td><td class="rblock">     3.3.  Multiple Strings in a Single DNS record  . . . . . . . . . <span class="insert">14</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.4.  Record Size  . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">14</span></td><td> </td><td class="rblock">     3.4.  Record Size  . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">15</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     3.5.  Wildcard Records . . . . . . . . . . . . . . . . . . . . . <span class="delete">14</span></td><td> </td><td class="rblock">     3.5.  Wildcard Records . . . . . . . . . . . . . . . . . . . . . <span class="insert">15</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   4.  The check_host() Function  . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">   4.  The check_host() Function  . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.1.  Arguments  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">     4.1.  Arguments  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.2.  Results  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">16</span></td><td> </td><td class="rblock">     4.2.  Results  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">17</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.3.  Initial Processing . . . . . . . . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock">     4.3.  Initial Processing . . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.4.  Record Lookup  . . . . . . . . . . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock">     4.4.  Record Lookup  . . . . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.5.  Selecting Records  . . . . . . . . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock">     4.5.  Selecting Records  . . . . . . . . . . . . . . . . . . . . <span class="insert">18</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.6.  Record Evaluation  . . . . . . . . . . . . . . . . . . . . <span class="delete">17</span></td><td> </td><td class="rblock">     4.6.  Record Evaluation  . . . . . . . . . . . . . . . . . . . . <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.1.  Term Evaluation  . . . . . . . . . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock">       4.6.1.  Term Evaluation  . . . . . . . . . . . . . . . . . . . <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.2.  Mechanisms . . . . . . . . . . . . . . . . . . . . . . <span class="delete">18</span></td><td> </td><td class="rblock">       4.6.2.  Mechanisms . . . . . . . . . . . . . . . . . . . . . . <span class="insert">19</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.3.  Modifiers  . . . . . . . . . . . . . . . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock">       4.6.3.  Modifiers  . . . . . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       4.6.4.  DNS Lookup Limits  . . . . . . . . . . . . . . . . . . <span class="delete">19</span></td><td> </td><td class="rblock">       4.6.4.  DNS Lookup Limits  . . . . . . . . . . . . . . . . . . <span class="insert">20</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.7.  Default Result . . . . . . . . . . . . . . . . . . . . . . <span class="delete">20</span></td><td> </td><td class="rblock">     4.7.  Default Result . . . . . . . . . . . . . . . . . . . . . . <span class="insert">21</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     4.8.  Domain Specification . . . . . . . . . . . . . . . . . . . <span class="delete">20</span></td><td> </td><td class="rblock">     4.8.  Domain Specification . . . . . . . . . . . . . . . . . . . <span class="insert">22</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   5.  Mechanism Definitions  . . . . . . . . . . . . . . . . . . . . <span class="delete">22</span></td><td> </td><td class="rblock">   5.  Mechanism Definitions  . . . . . . . . . . . . . . . . . . . . <span class="insert">23</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.1.  "all"  . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">23</span></td><td> </td><td class="rblock">     5.1.  "all"  . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">24</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.2.  "include"  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">23</span></td><td> </td><td class="rblock">     5.2.  "include"  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">24</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.3.  "a"  . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">25</span></td><td> </td><td class="rblock">     5.3.  "a"  . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">26</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.4.  "mx" . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">25</span></td><td> </td><td class="rblock">     5.4.  "mx" . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">26</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.5.  "ptr" (do not use) . . . . . . . . . . . . . . . . . . . . <span class="delete">25</span></td><td> </td><td class="rblock">     5.5.  "ptr" (do not use) . . . . . . . . . . . . . . . . . . . . <span class="insert">26</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.6.  "ip4" and "ip6"  . . . . . . . . . . . . . . . . . . . . . <span class="delete">27</span></td><td> </td><td class="rblock">     5.6.  "ip4" and "ip6"  . . . . . . . . . . . . . . . . . . . . . <span class="insert">28</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     5.7.  "exists" . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">27</span></td><td> </td><td class="rblock">     5.7.  "exists" . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">28</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   6.  Modifier Definitions . . . . . . . . . . . . . . . . . . . . . <span class="delete">29</span></td><td> </td><td class="rblock">   6.  Modifier Definitions . . . . . . . . . . . . . . . . . . . . . <span class="insert">30</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     6.1.  redirect: Redirected Query . . . . . . . . . . . . . . . . <span class="delete">29</span></td><td> </td><td class="rblock">     6.1.  redirect: Redirected Query . . . . . . . . . . . . . . . . <span class="insert">30</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     6.2.  exp: Explanation . . . . . . . . . . . . . . . . . . . . . <span class="delete">30</span></td><td> </td><td class="rblock">     6.2.  exp: Explanation . . . . . . . . . . . . . . . . . . . . . <span class="insert">31</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   7.  Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">32</span></td><td> </td><td class="rblock">   7.  Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">33</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.1.  Formal Specification . . . . . . . . . . . . . . . . . . . <span class="delete">32</span></td><td> </td><td class="rblock">     7.1.  Formal Specification . . . . . . . . . . . . . . . . . . . <span class="insert">33</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.2.  Macro Definitions  . . . . . . . . . . . . . . . . . . . . <span class="delete">32</span></td><td> </td><td class="rblock">     7.2.  Macro Definitions  . . . . . . . . . . . . . . . . . . . . <span class="insert">33</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.3.  Macro Processing Details . . . . . . . . . . . . . . . . . <span class="delete">33</span></td><td> </td><td class="rblock">     7.3.  Macro Processing Details . . . . . . . . . . . . . . . . . <span class="insert">34</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     7.4.  Expansion Examples . . . . . . . . . . . . . . . . . . . . <span class="delete">35</span></td><td> </td><td class="rblock">     7.4.  Expansion Examples . . . . . . . . . . . . . . . . . . . . <span class="insert">36</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   8.  Result Handling  . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock">   8.  Result Handling  . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.1.  None . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock">     8.1.  None . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">37</span></td><td> </td><td class="rblock">     8.2.  Neutral  . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">38</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">38</span></td><td> </td><td class="rblock">     8.3.  Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">39</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">38</span></td><td> </td><td class="rblock">     8.4.  Fail . . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">39</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">38</span></td><td> </td><td class="rblock">     8.5.  Softfail . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">39</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">39</span></td><td> </td><td class="rblock">     8.6.  Temperror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">40</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     8.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">39</span></td><td> </td><td class="rblock">     8.7.  Permerror  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">40</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   9.  Recording the Result . . . . . . . . . . . . . . . . . . . . . <span class="delete">40</span></td><td> </td><td class="rblock">   9.  Recording the Result . . . . . . . . . . . . . . . . . . . . . <span class="insert">41</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.1.  The Received-SPF Header Field  . . . . . . . . . . . . . . <span class="delete">40</span></td><td> </td><td class="rblock">     9.1.  The Received-SPF Header Field  . . . . . . . . . . . . . . <span class="insert">41</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     9.2.  SPF Results in the Authentication-Results Header Field . . <span class="delete">42</span></td><td> </td><td class="rblock">     9.2.  SPF Results in the Authentication-Results Header Field . . <span class="insert">43</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   10. Effects on Infrastructure  . . . . . . . . . . . . . . . . . . <span class="delete">44</span></td><td> </td><td class="rblock">   10. Effects on Infrastructure  . . . . . . . . . . . . . . . . . . <span class="insert">45</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     10.1. Sending Domains  . . . . . . . . . . . . . . . . . . . . . <span class="delete">44</span></td><td> </td><td class="rblock">     10.1. Sending Domains  . . . . . . . . . . . . . . . . . . . . . <span class="insert">45</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       10.1.1. DNS Resource Considerations  . . . . . . . . . . . . . <span class="delete">44</span></td><td> </td><td class="rblock">       10.1.1. DNS Resource Considerations  . . . . . . . . . . . . . <span class="insert">45</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       10.1.2. Administrator's Considerations . . . . . . . . . . . . <span class="delete">45</span></td><td> </td><td class="rblock">       10.1.2. Administrator's Considerations . . . . . . . . . . . . <span class="insert">46</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       10.1.3. Bounces  . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">46</span></td><td> </td><td class="rblock">       10.1.3. Bounces  . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">47</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     10.2. Receivers  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">46</span></td><td> </td><td class="rblock">     10.2. Receivers  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">47</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     10.3. Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">46</span></td><td> </td><td class="rblock">     10.3. Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">47</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   11. Security Considerations  . . . . . . . . . . . . . . . . . . . <span class="delete">48</span></td><td> </td><td class="rblock">   11. Security Considerations  . . . . . . . . . . . . . . . . . . . <span class="insert">49</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.1. Processing Limits  . . . . . . . . . . . . . . . . . . . . <span class="delete">48</span></td><td> </td><td class="rblock">     11.1. Processing Limits  . . . . . . . . . . . . . . . . . . . . <span class="insert">49</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.2. SPF-Authorized Email May Contain Other False Identities  . <span class="delete">49</span></td><td> </td><td class="rblock">     11.2. SPF-Authorized Email May Contain Other False Identities  . <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.3. Spoofed DNS and IP Data  . . . . . . . . . . . . . . . . . <span class="delete">49</span></td><td> </td><td class="rblock">     11.3. Spoofed DNS and IP Data  . . . . . . . . . . . . . . . . . <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.4. Cross-User Forgery . . . . . . . . . . . . . . . . . . . . <span class="delete">49</span></td><td> </td><td class="rblock">     11.4. Cross-User Forgery . . . . . . . . . . . . . . . . . . . . <span class="insert">50</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.5. Untrusted Information Sources  . . . . . . . . . . . . . . <span class="delete">50</span></td><td> </td><td class="rblock">     11.5. Untrusted Information Sources  . . . . . . . . . . . . . . <span class="insert">51</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       11.5.1. Recorded Results . . . . . . . . . . . . . . . . . . . <span class="delete">50</span></td><td> </td><td class="rblock">       11.5.1. Recorded Results . . . . . . . . . . . . . . . . . . . <span class="insert">51</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       11.5.2. External Explanations  . . . . . . . . . . . . . . . . <span class="delete">50</span></td><td> </td><td class="rblock">       11.5.2. External Explanations  . . . . . . . . . . . . . . . . <span class="insert">51</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       11.5.3. Macro Expansion  . . . . . . . . . . . . . . . . . . . <span class="delete">51</span></td><td> </td><td class="rblock">       11.5.3. Macro Expansion  . . . . . . . . . . . . . . . . . . . <span class="insert">52</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.6. Privacy Exposure . . . . . . . . . . . . . . . . . . . . . <span class="delete">51</span></td><td> </td><td class="rblock">     11.6. Privacy Exposure . . . . . . . . . . . . . . . . . . . . . <span class="insert">52</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">     11.7. Delivering Mail Producing a 'Fail' Result  . . . . . . . . <span class="delete">51</span></td><td> </td><td class="rblock">     11.7. Delivering Mail Producing a 'Fail' Result  . . . . . . . . <span class="insert">52</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   12. Contributors and Acknowledgements  . . . . . . . . . . . . . . <span class="delete">52</span></td><td> </td><td class="rblock">   12. <span class="insert">Collected ABNF . . . . . . . . . . . . . . . . . . . . . . . . 53</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   13.</span> IANA Considerations  . . . . . . . . . . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock"><span class="insert">   13.</span> Contributors and Acknowledgements  . . . . . . . . . . . . . . <span class="insert">56</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     13.1.</span> The SPF DNS Record Type  . . . . . . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock"><span class="insert">   14.</span> IANA Considerations  . . . . . . . . . . . . . . . . . . . . . <span class="insert">57</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     13.2.</span> The Received-SPF Mail Header Field . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock"><span class="insert">     14.1.</span> The SPF DNS Record Type  . . . . . . . . . . . . . . . . . <span class="insert">57</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     13.3.</span> SPF Modifier Registry  . . . . . . . . . . . . . . . . . . <span class="delete">53</span></td><td> </td><td class="rblock"><span class="insert">     14.2.</span> The Received-SPF Mail Header Field . . . . . . . . . . . . <span class="insert">57</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   14.</span> References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">54</span></td><td> </td><td class="rblock"><span class="insert">     14.3.</span> SPF Modifier Registry  . . . . . . . . . . . . . . . . . . <span class="insert">57</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     14.1.</span> Normative References . . . . . . . . . . . . . . . . . . . <span class="delete">54</span></td><td> </td><td class="rblock"><span class="insert">   15.</span> References . . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">58</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     14.2.</span> Informative References . . . . . . . . . . . . . . . . . . <span class="delete">55</span></td><td> </td><td class="rblock"><span class="insert">     15.1.</span> Normative References . . . . . . . . . . . . . . . . . . . <span class="insert">58</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix A.  <span class="delete">Collected ABNF  . . . . . . . . . . . . . . . . . . . 57</span></td><td> </td><td class="rblock"><span class="insert">     15.2.</span> Informative References . . . . . . . . . . . . . . . . . . <span class="insert">59</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   Appendix B.</span>  Extended Examples . . . . . . . . . . . . . . . . . . <span class="delete">60</span></td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     B.1.</span>  Simple Examples  . . . . . . . . . . . . . . . . . . . . . <span class="delete">60</span></td><td> </td><td class="rblock">   Appendix A.  Extended Examples . . . . . . . . . . . . . . . . . . <span class="insert">61</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     B.2.</span>  Multiple Domain Example  . . . . . . . . . . . . . . . . . <span class="delete">61</span></td><td> </td><td class="rblock"><span class="insert">     A.1.</span>  Simple Examples  . . . . . . . . . . . . . . . . . . . . . <span class="insert">61</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     B.3.</span>  DNSBL Style Example  . . . . . . . . . . . . . . . . . . . <span class="delete">62</span></td><td> </td><td class="rblock"><span class="insert">     A.2.</span>  Multiple Domain Example  . . . . . . . . . . . . . . . . . <span class="insert">62</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     B.4.</span>  Multiple Requirements Example  . . . . . . . . . . . . . . <span class="delete">62</span></td><td> </td><td class="rblock"><span class="insert">     A.3.</span>  DNSBL Style Example  . . . . . . . . . . . . . . . . . . . <span class="insert">63</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">C.</span>  Changes in implementation requirements from RFC</td><td> </td><td class="rblock"><span class="insert">     A.4.</span>  Multiple Requirements Example  . . . . . . . . . . . . . . <span class="insert">63</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">                4408  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">63</span></td><td> </td><td class="rblock">   Appendix <span class="insert">B.</span>  Changes in implementation requirements from RFC</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">D.</span>  Further Testing Advice  . . . . . . . . . . . . . . . <span class="delete">64</span></td><td> </td><td class="rblock">                4408  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">64</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">E.</span>  SPF/Mediator Interactions . . . . . . . . . . . . . . <span class="delete">65</span></td><td> </td><td class="rblock">   Appendix <span class="insert">C.</span>  Further Testing Advice  . . . . . . . . . . . . . . . <span class="insert">65</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     E.1.</span>  Originating ADMDs  . . . . . . . . . . . . . . . . . . . . <span class="delete">65</span></td><td> </td><td class="rblock">   Appendix <span class="insert">D.</span>  SPF/Mediator Interactions . . . . . . . . . . . . . . <span class="insert">66</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     E.2.</span>  Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">66</span></td><td> </td><td class="rblock"><span class="insert">     D.1.</span>  Originating ADMDs  . . . . . . . . . . . . . . . . . . . . <span class="insert">66</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     E.3.  Receving</span> ADMDs . . . . . . . . . . . . . . . . . . . . . <span class="delete">. 66</span></td><td> </td><td class="rblock"><span class="insert">     D.2.</span>  Mediators  . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">67</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">F.</span>  Mail Services . . . . . . . . . . . . . . . . . . . . <span class="delete">67</span></td><td> </td><td class="rblock"><span class="insert">     D.3.  Receiving</span> ADMDs  . . . . . . . . . . . . . . . . . . . . . <span class="insert">67</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">G.</span>  MTA Relays  . . . . . . . . . . . . . . . . . . . . . <span class="delete">68</span></td><td> </td><td class="rblock">   Appendix <span class="insert">E.</span>  Mail Services . . . . . . . . . . . . . . . . . . . . <span class="insert">68</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">H.</span>  Local Policy Considerations . . . . . . . . . . . . . <span class="delete">69</span></td><td> </td><td class="rblock">   Appendix <span class="insert">F.</span>  MTA Relays  . . . . . . . . . . . . . . . . . . . . . <span class="insert">69</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     H.1.</span>  Policy For SPF Pass  . . . . . . . . . . . . . . . . . . . <span class="delete">69</span></td><td> </td><td class="rblock">   Appendix <span class="insert">G.</span>  Local Policy Considerations . . . . . . . . . . . . . <span class="insert">70</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     H.2.</span>  Policy For SPF Fail  . . . . . . . . . . . . . . . . . . . <span class="delete">69</span></td><td> </td><td class="rblock"><span class="insert">     G.1.</span>  Policy For SPF Pass  . . . . . . . . . . . . . . . . . . . <span class="insert">70</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     H.3.</span>  Policy For SPF Permerror . . . . . . . . . . . . . . . . . <span class="delete">70</span></td><td> </td><td class="rblock"><span class="insert">     G.2.</span>  Policy For SPF Fail  . . . . . . . . . . . . . . . . . . . <span class="insert">70</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">     H.4.</span>  Policy For SPF Temperror . . . . . . . . . . . . . . . . . <span class="delete">70</span></td><td> </td><td class="rblock"><span class="insert">     G.3.</span>  Policy For SPF Permerror . . . . . . . . . . . . . . . . . <span class="insert">71</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">I.</span>  Protocol Status . . . . . . . . . . . . . . . . . . . <span class="delete">72</span></td><td> </td><td class="rblock"><span class="insert">     G.4.</span>  Policy For SPF Temperror . . . . . . . . . . . . . . . . . <span class="insert">71</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">J.</span>  Change History  . . . . . . . . . . . . . . . . . . . <span class="delete">73</span></td><td> </td><td class="rblock">   Appendix <span class="insert">H.</span>  Protocol Status . . . . . . . . . . . . . . . . . . . <span class="insert">73</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . <span class="delete">76</span></td><td> </td><td class="rblock">   Appendix <span class="insert">I.</span>  Change History  . . . . . . . . . . . . . . . . . . . <span class="insert">74</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . <span class="insert">77</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">1.  Introduction</td><td> </td><td class="right">1.  Introduction</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The current email infrastructure has the property that any host</td><td> </td><td class="right">   The current email infrastructure has the property that any host</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   injecting mail into the system can use any DNS domain name it wants</td><td> </td><td class="right">   injecting mail into the system can use any DNS domain name it wants</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   in each of the various identifiers specified by [RFC5321] and</td><td> </td><td class="right">   in each of the various identifiers specified by [RFC5321] and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5322].  Although this feature is desirable in some circumstances,</td><td> </td><td class="right">   [RFC5322].  Although this feature is desirable in some circumstances,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   it is a major obstacle to reducing Unsolicited Bulk Email (UBE, aka</td><td> </td><td class="right">   it is a major obstacle to reducing Unsolicited Bulk Email (UBE, aka</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   spam).  Furthermore, many domain owning ADMDs (as described in</td><td> </td><td class="right">   spam).  Furthermore, many domain owning ADMDs (as described in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5598]) are understandably concerned about the ease with which</td><td> </td><td class="right">   [RFC5598]) are understandably concerned about the ease with which</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> page 7, line 8</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> page 7, line 8</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The tokens "Local-part", "Domain", and "Mailbox are defined in</td><td> </td><td class="right">   The tokens "Local-part", "Domain", and "Mailbox are defined in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5321].</td><td> </td><td class="right">   [RFC5321].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "dot-atom", "quoted-string", "comment", "CFWS" (comment folded white</td><td> </td><td class="right">   "dot-atom", "quoted-string", "comment", "CFWS" (comment folded white</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   space), "FWS" (folded white space), and "CRLF" (carriage-return/</td><td> </td><td class="right">   space), "FWS" (folded white space), and "CRLF" (carriage-return/</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   line-feed) are defined in [RFC5322].</td><td> </td><td class="right">   line-feed) are defined in [RFC5322].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">1.1.3.  MAIL FROM Definition</td><td> </td><td class="right">1.1.3.  MAIL FROM Definition</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0007" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This document is concerned with the <span class="delete">portion</span> of a mail <span class="delete">message</span></td><td> </td><td class="rblock">   This document is concerned with the <span class="insert">identity of the sender</span> of a mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   commonly called "envelope sender", "return path", "reverse path",</span></td><td> </td><td class="rblock">   <span class="insert">message, as referred to in [RFC5321]:</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   "bounce address", "5321 FROM", "MAIL FROM", or RFC5321.MailFrom.</span></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Since <span class="delete">these terms</span> are <span class="delete">either not</span> well defined <span class="delete">or often used casually,</span></td><td> </td><td class="rblock"><span class="insert">      "The transaction starts with a MAIL command that gives the sender</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   this document <span class="delete">uses</span> "MAIL FROM" <span class="delete">for consistency.  This means</span> the</td><td> </td><td class="rblock"><span class="insert">      identification."</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   RFC5321.MailFrom <span class="delete">as defined</span> in [RFC5598].  <span class="delete">Note that other terms that</span></td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   might superficially look like the common terms, such as 'reverse-</span></td><td> </td><td class="rblock">   Since <span class="insert">there</span> are <span class="insert">many other names for this identity, it is important</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   path', are used only as they are specified in their defining</span></td><td> </td><td class="rblock"><span class="insert">   to choose a name that is:</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   documents.</span></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   1.  commonly used</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   2.</span>  well defined</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   <span class="insert">As such, throughout</span> this document <span class="insert">the term</span> "MAIL FROM" <span class="insert">will be used,</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   which is defined as</span> the RFC5321.MailFrom <span class="insert">(reverse-path) identity</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   described</span> in [RFC5598].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">1.1.4.  HELO Definition</td><td> </td><td class="right">1.1.4.  HELO Definition</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This document also makes use of the HELO/EHLO identity.  The "HELO"</td><td> </td><td class="right">   This document also makes use of the HELO/EHLO identity.  The "HELO"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   identity derives from either the SMTP HELO or EHLO command (see</td><td> </td><td class="right">   identity derives from either the SMTP HELO or EHLO command (see</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5321]).  Since HELO and EHLO can, in many cases, be used</td><td> </td><td class="right">   [RFC5321]).  Since HELO and EHLO can, in many cases, be used</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   interchangeably, they are identified commonly as "HELO" in this</td><td> </td><td class="right">   interchangeably, they are identified commonly as "HELO" in this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   document.  This means RFC5321.HELO/.EHLO as defined in [RFC5598].</td><td> </td><td class="right">   document.  This means RFC5321.HELO/.EHLO as defined in [RFC5598].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These commands supply the identity of the SMTP client (sending host)</td><td> </td><td class="right">   These commands supply the identity of the SMTP client (sending host)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for the SMTP session.</td><td> </td><td class="right">   for the SMTP session.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l5" /><small>skipping to change at</small><em> page 10, line 34</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> page 10, line 34</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.5.  Location of Checks</td><td> </td><td class="right">2.5.  Location of Checks</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The authorization check SHOULD be performed during the processing of</td><td> </td><td class="right">   The authorization check SHOULD be performed during the processing of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the SMTP transaction that receives the mail.  This reduces the</td><td> </td><td class="right">   the SMTP transaction that receives the mail.  This reduces the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   complexity of determining the correct IP address to use as an input</td><td> </td><td class="right">   complexity of determining the correct IP address to use as an input</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   to check_host() and allows errors to be returned directly to the</td><td> </td><td class="right">   to check_host() and allows errors to be returned directly to the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   sending MTA by way of SMTP replies.  Appendix C of [RFC5451] provides</td><td> </td><td class="right">   sending MTA by way of SMTP replies.  Appendix C of [RFC5451] provides</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a more thorough discussion of this topic.</td><td> </td><td class="right">   a more thorough discussion of this topic.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0008" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">Performing the</span> authorization check <span class="delete">other than using</span> the <span class="delete">MAIL FROM and</span></td><td> </td><td class="rblock">   <span class="insert">The</span> authorization check <span class="insert">is performed during</span> the <span class="insert">SMTP transaction</span> at</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   client address</span> at the time of the MAIL <span class="delete">command during</span> the <span class="delete">SMTP</span></td><td> </td><td class="rblock">   the time of the MAIL <span class="insert">command, and uses</span> the <span class="insert">MAIL FROM value and the</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   transaction</span> can cause <span class="delete">problems,</span> such as the following: <span class="delete">(1)</span> It might</td><td> </td><td class="rblock"><span class="insert">   client IP address.  Performing the check at later times or with other</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   be difficult to accurately extract the required information from</td><td> </td><td class="rblock"><span class="insert">   input</span> can cause <span class="insert">problems</span> such as the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   potentially deceptive <span class="delete">headers; (2) legitimate</span> email might fail</td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   because the sender's policy <span class="delete">had</span> since changed.</td><td> </td><td class="rblock">   <span class="insert">o</span>  It might be difficult to accurately extract the required</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">      information from potentially deceptive <span class="insert">headers.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   o  Legitimate</span> email might fail <span class="insert">the authorization check</span> because the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">      sender's policy <span class="insert">has</span> since changed.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Generating non-delivery notifications to forged identities that have</td><td> </td><td class="right">   Generating non-delivery notifications to forged identities that have</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   failed the authorization check often constitutes backscatter, i.e.,</td><td> </td><td class="right">   failed the authorization check often constitutes backscatter, i.e.,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   inactionable, nuisance rejection notices.  Operators are strongly</td><td> </td><td class="right">   inactionable, nuisance rejection notices.  Operators are strongly</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   advised to avoid such practices.  Section 2 of [RFC3834] describes</td><td> </td><td class="right">   advised to avoid such practices.  Section 2 of [RFC3834] describes</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   backscatter and the problems it causes.</td><td> </td><td class="right">   backscatter and the problems it causes.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.  Results of Evaluation</td><td> </td><td class="right">2.6.  Results of Evaluation</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Section 4 defines check_host(), a model function definition that uses</td><td> </td><td class="right">   Section 4 defines check_host(), a model function definition that uses</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l6" /><small>skipping to change at</small><em> page 11, line 22</em></th><th> </th><th><a name="part-r6" /><small>skipping to change at</small><em> page 11, line 28</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.1.  None</td><td> </td><td class="right">2.6.1.  None</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A result of "none" means either (a) no syntactically valid DNS domain</td><td> </td><td class="right">   A result of "none" means either (a) no syntactically valid DNS domain</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   name was extracted from the SMTP session that could be used as the</td><td> </td><td class="right">   name was extracted from the SMTP session that could be used as the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   one to be authorized, or (b) no SPF records were retrieved from the</td><td> </td><td class="right">   one to be authorized, or (b) no SPF records were retrieved from the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   DNS.</td><td> </td><td class="right">   DNS.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.2.  Neutral</td><td> </td><td class="right">2.6.2.  Neutral</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0009" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">The</span> ADMD has explicitly stated that it is not asserting whether the</td><td> </td><td class="rblock">   <span class="insert">A "neutral" result means that the</span> ADMD has explicitly stated that it</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   IP address is authorized.</td><td> </td><td class="rblock">   is not asserting whether the IP address is authorized.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.3.  Pass</td><td> </td><td class="right">2.6.3.  Pass</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0010" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   A "pass" result <span class="delete">means</span> that the client is authorized to inject mail</td><td> </td><td class="rblock">   A "pass" result <span class="insert">is an explicit statement</span> that the client is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   with the given identity.</td><td> </td><td class="rblock">   authorized to inject mail with the given identity.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.4.  Fail</td><td> </td><td class="right">2.6.4.  Fail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "fail" result is an explicit statement that the client is not</td><td> </td><td class="right">   A "fail" result is an explicit statement that the client is not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorized to use the domain in the given identity.</td><td> </td><td class="right">   authorized to use the domain in the given identity.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.5.  Softfail</td><td> </td><td class="right">2.6.5.  Softfail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0011" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">The ADMD has published</span> a weak statement that the host is probably not</td><td> </td><td class="rblock">   <span class="insert">A "softfail" result is</span> a weak statement <span class="insert">by the publishing ADMD</span> that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   authorized.  It has not published a stronger, more definitive policy</td><td> </td><td class="rblock">   the host is probably not authorized.  It has not published a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   that results in a "fail".</td><td> </td><td class="rblock">   stronger, more definitive policy that results in a "fail".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.6.  Temperror</td><td> </td><td class="right">2.6.6.  Temperror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "temperror" result means the SPF verifier encountered a transient</td><td> </td><td class="right">   A "temperror" result means the SPF verifier encountered a transient</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (generally DNS) error while performing the check.  A later retry may</td><td> </td><td class="right">   (generally DNS) error while performing the check.  A later retry may</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   succeed without further DNS operator action.</td><td> </td><td class="right">   succeed without further DNS operator action.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">2.6.7.  Permerror</td><td> </td><td class="right">2.6.7.  Permerror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "permerror" result means the domain's published records could not</td><td> </td><td class="right">   A "permerror" result means the domain's published records could not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l7" /><small>skipping to change at</small><em> page 12, line 25</em></th><th> </th><th><a name="part-r7" /><small>skipping to change at</small><em> page 13, line 25</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   not permitted for the same owner name.  The record format and the</td><td> </td><td class="right">   not permitted for the same owner name.  The record format and the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   process for selecting records is described below in Section 4.  An</td><td> </td><td class="right">   process for selecting records is described below in Section 4.  An</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   example record is the following:</td><td> </td><td class="right">   example record is the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      v=spf1 +mx a:colo.example.com/28 -all</td><td> </td><td class="right">      v=spf1 +mx a:colo.example.com/28 -all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This record has a version of "spf1" and three directives: "+mx",</td><td> </td><td class="right">   This record has a version of "spf1" and three directives: "+mx",</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "a:colo.example.com/28" (the + is implied), and "-all".</td><td> </td><td class="right">   "a:colo.example.com/28" (the + is implied), and "-all".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Each SPF record is placed in the DNS tree at the owner name it</td><td> </td><td class="right">   Each SPF record is placed in the DNS tree at the owner name it</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0012" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   pertains to, not a subdomain under <span class="delete">it, such as</span> is <span class="delete">done with</span> SRV</td><td> </td><td class="rblock">   pertains to, not <span class="insert">in</span> a subdomain under <span class="insert">the owner name.  This</span> is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   records <span class="delete">[RFC2782].</span></td><td> </td><td class="rblock">   <span class="insert">similar to how</span> SRV records <span class="insert">[RFC2782] are done.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The example in this section might be published via these lines in a</td><td> </td><td class="right">   The example in this section might be published via these lines in a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   domain zone file:</td><td> </td><td class="right">   domain zone file:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"</td><td> </td><td class="right">      example.com.          TXT "v=spf1 +mx a:colo.example.com/28 -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Since TXT records have multiple uses, beware of other TXT records</td><td> </td><td class="right">   Since TXT records have multiple uses, beware of other TXT records</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   published there for other purposes.  They might cause problems with</td><td> </td><td class="right">   published there for other purposes.  They might cause problems with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   size limits (see Section 3.4) and care has to be taken to ensure only</td><td> </td><td class="right">   size limits (see Section 3.4) and care has to be taken to ensure only</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF records are used for SPF processing.</td><td> </td><td class="right">   SPF records are used for SPF processing.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l8" /><small>skipping to change at</small><em> page 13, line 13</em></th><th> </th><th><a name="part-r8" /><small>skipping to change at</small><em> page 14, line 13</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   they are now.  Additionally, support for easy deployment of new DNS</td><td> </td><td class="right">   they are now.  Additionally, support for easy deployment of new DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   RR types was not widely deployed in DNS servers and provisioning</td><td> </td><td class="right">   RR types was not widely deployed in DNS servers and provisioning</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   systems.  As a result, developers of SPF found it easier and more</td><td> </td><td class="right">   systems.  As a result, developers of SPF found it easier and more</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   practical to use the TXT RR type for SPF records.</td><td> </td><td class="right">   practical to use the TXT RR type for SPF records.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   In its review of [RFC4408] the SPFbis working group concluded that</td><td> </td><td class="right">   In its review of [RFC4408] the SPFbis working group concluded that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   its dual RR type transition model was fundamentally flawed since it</td><td> </td><td class="right">   its dual RR type transition model was fundamentally flawed since it</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   contained no common RR type that implementers were required to serve</td><td> </td><td class="right">   contained no common RR type that implementers were required to serve</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and required to check.  Many alternatives were considered to resolve</td><td> </td><td class="right">   and required to check.  Many alternatives were considered to resolve</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   this issue, but ultimately the working group concluded that</td><td> </td><td class="right">   this issue, but ultimately the working group concluded that</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0013" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   significant migration to the SPF RR type in the for<span class="delete">e</span>seeable future was</td><td> </td><td class="rblock">   significant migration to the SPF RR type in the forseeable future was</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   very unlikely and that the best solution for resolving this</td><td> </td><td class="right">   very unlikely and that the best solution for resolving this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   interoperability issue was to drop support for the SPF RR type from</td><td> </td><td class="right">   interoperability issue was to drop support for the SPF RR type from</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF version 1.  See Appendix A of [RFC6686] for further information.</td><td> </td><td class="right">   SPF version 1.  See Appendix A of [RFC6686] for further information.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The circumstances surrounding SPF's initial deployment a decade ago</td><td> </td><td class="right">   The circumstances surrounding SPF's initial deployment a decade ago</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   are unique.  If a future update to SPF were developed that did not</td><td> </td><td class="right">   are unique.  If a future update to SPF were developed that did not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   reuse existing SPF records, it could use the SPF RR type.  SPF's use</td><td> </td><td class="right">   reuse existing SPF records, it could use the SPF RR type.  SPF's use</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of the TXT RR type for structured data should in no way be taken as</td><td> </td><td class="right">   of the TXT RR type for structured data should in no way be taken as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   precedent for future protocol designers.  Further discussion of</td><td> </td><td class="right">   precedent for future protocol designers.  Further discussion of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   design considerations when using new DNS RR types can be found in</td><td> </td><td class="right">   design considerations when using new DNS RR types can be found in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l9" /><small>skipping to change at</small><em> page 16, line 7</em></th><th> </th><th><a name="part-r9" /><small>skipping to change at</small><em> page 17, line 7</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       *.A.EXAMPLE.COM.      MX      10      A.EXAMPLE.COM</td><td> </td><td class="right">       *.A.EXAMPLE.COM.      MX      10      A.EXAMPLE.COM</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       *.A.EXAMPLE.COM.      TXT     "v=spf1 a:A.EXAMPLE.COM -all"</td><td> </td><td class="right">       *.A.EXAMPLE.COM.      TXT     "v=spf1 a:A.EXAMPLE.COM -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF records have to be listed twice for every name within the zone:</td><td> </td><td class="right">   SPF records have to be listed twice for every name within the zone:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   once for the name, and once with a wildcard to cover the tree under</td><td> </td><td class="right">   once for the name, and once with a wildcard to cover the tree under</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the name, in order to cover all domains in use in outgoing mail.</td><td> </td><td class="right">   the name, in order to cover all domains in use in outgoing mail.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">4.  The check_host() Function</td><td> </td><td class="right">4.  The check_host() Function</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0014" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   This description is not an <span class="delete">API (Application Program Interface)</span></td><td> </td><td class="rblock">   This description is not an <span class="insert">application programming interface</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   definition, but rather a function description used to illustrate the</td><td> </td><td class="right">   definition, but rather a function description used to illustrate the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   algorithm.  A compliant SPF implementation MUST produce results</td><td> </td><td class="right">   algorithm.  A compliant SPF implementation MUST produce results</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   semantically equivalent to this description.</td><td> </td><td class="right">   semantically equivalent to this description.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The check_host() function fetches SPF records, parses them, and</td><td> </td><td class="right">   The check_host() function fetches SPF records, parses them, and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   evaluates them to determine whether a particular host is or is not</td><td> </td><td class="right">   evaluates them to determine whether a particular host is or is not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   permitted to send mail with a given identity.  Receiving ADMDs that</td><td> </td><td class="right">   permitted to send mail with a given identity.  Receiving ADMDs that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   perform this check MUST correctly evaluate the check_host() function</td><td> </td><td class="right">   perform this check MUST correctly evaluate the check_host() function</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   as described here.</td><td> </td><td class="right">   as described here.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l10" /><small>skipping to change at</small><em> page 16, line 38</em></th><th> </th><th><a name="part-r10" /><small>skipping to change at</small><em> page 17, line 38</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   &lt;domain&gt; - the domain that provides the sought-after authorization</td><td> </td><td class="right">   &lt;domain&gt; - the domain that provides the sought-after authorization</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              information; initially, the domain portion of the "MAIL</td><td> </td><td class="right">              information; initially, the domain portion of the "MAIL</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              FROM" or "HELO" identity.</td><td> </td><td class="right">              FROM" or "HELO" identity.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   &lt;sender&gt; - the "MAIL FROM" or "HELO" identity.</td><td> </td><td class="right">   &lt;sender&gt; - the "MAIL FROM" or "HELO" identity.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   For recursive evaluations, the domain portion of &lt;sender&gt; might not</td><td> </td><td class="right">   For recursive evaluations, the domain portion of &lt;sender&gt; might not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be the same as the &lt;domain&gt; argument when check_host() is initially</td><td> </td><td class="right">   be the same as the &lt;domain&gt; argument when check_host() is initially</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   evaluated.  In most other cases it will be the same.  (See</td><td> </td><td class="right">   evaluated.  In most other cases it will be the same.  (See</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0015" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Section 5.2 below).</td><td> </td><td class="rblock">   Section 5.2 below).  <span class="insert">The overall DNS lookup limit for SPF terms</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   described below in Section 4.6.4 must be tracked as a single global</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   limit for all evaluations, not just for a single instance of a</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   recursive evaluation.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Note that the &lt;domain&gt; argument might not be a well-formed domain</td><td> </td><td class="right">   Note that the &lt;domain&gt; argument might not be a well-formed domain</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   name.  For example, if the reverse-path was null, then the EHLO/HELO</td><td> </td><td class="right">   name.  For example, if the reverse-path was null, then the EHLO/HELO</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   domain is used, with its associated problems (see Section 2.3).  In</td><td> </td><td class="right">   domain is used, with its associated problems (see Section 2.3).  In</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   these cases, check_host() is defined in Section 4.3 to return a</td><td> </td><td class="right">   these cases, check_host() is defined in Section 4.3 to return a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "none" result.</td><td> </td><td class="right">   "none" result.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">4.2.  Results</td><td> </td><td class="right">4.2.  Results</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The function check_host() can return one of several results described</td><td> </td><td class="right">   The function check_host() can return one of several results described</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l11" /><small>skipping to change at</small><em> page 19, line 34</em></th><th> </th><th><a name="part-r11" /><small>skipping to change at</small><em> page 20, line 40</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">4.6.4.  DNS Lookup Limits</td><td> </td><td class="right">4.6.4.  DNS Lookup Limits</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Some mechanisms and modifiers (collectively, "terms") cause DNS</td><td> </td><td class="right">   Some mechanisms and modifiers (collectively, "terms") cause DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   queries at the time of evaluation, and some do not.  The following</td><td> </td><td class="right">   queries at the time of evaluation, and some do not.  The following</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   terms cause DNS queries: the "include", "a", "mx", "ptr", and</td><td> </td><td class="right">   terms cause DNS queries: the "include", "a", "mx", "ptr", and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "exists" mechanisms and the "redirect" modifier.  SPF implementations</td><td> </td><td class="right">   "exists" mechanisms and the "redirect" modifier.  SPF implementations</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MUST limit the total number of those terms to 10 during SPF</td><td> </td><td class="right">   MUST limit the total number of those terms to 10 during SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   evaluation, to avoid unreasonable load on the DNS.  If this limit is</td><td> </td><td class="right">   evaluation, to avoid unreasonable load on the DNS.  If this limit is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   exceeded, the implementation MUST return "permerror".  The other</td><td> </td><td class="right">   exceeded, the implementation MUST return "permerror".  The other</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0016" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   terms: the "all", "ip4", and "ip6" mechanisms do not cause DNS</td><td> </td><td class="rblock">   terms: the "all", "ip4", and "ip6" mechanisms <span class="insert">and the "exp" modifier</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   queries at the time of SPF evaluation (the "exp" modifier causes a</td><td> </td><td class="rblock">   do not cause DNS queries at the time of SPF evaluation (the "exp"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   lookup at a later time), and their <span class="delete">use, including "exp",</span> is not</td><td> </td><td class="rblock">   modifier <span class="insert">only</span> causes a lookup at a later time), and their <span class="insert">use</span> is not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   subject to this limit.</td><td> </td><td class="right">   subject to this limit.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   When evaluating the "mx" mechanism, the number of "MX" resource</td><td> </td><td class="right">   When evaluating the "mx" mechanism, the number of "MX" resource</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   records queried is included in the overall limit of 10 mechanisms/</td><td> </td><td class="right">   records queried is included in the overall limit of 10 mechanisms/</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0017" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   modifiers that cause DNS lookups described above.  <span class="delete">The</span> evaluation of</td><td> </td><td class="rblock">   modifiers that cause DNS lookups described above.  <span class="insert">In addition to</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   each "MX" record MUST NOT result in querying more than 10 address</td><td> </td><td class="rblock"><span class="insert">   that limit, the</span> evaluation of each "MX" record MUST NOT result in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   records, either "A" or "AAAA" resource records.  If this limit is</td><td> </td><td class="rblock">   querying more than 10 address records, either "A" or "AAAA" resource</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   exceeded, the "mx" mechanism MUST produce a "permerror" result.</td><td> </td><td class="rblock">   records.  If this limit is exceeded, the "mx" mechanism MUST produce</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   a "permerror" result.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   When evaluating the "ptr" mechanism or the %{p} macro, the number of</td><td> </td><td class="right">   When evaluating the "ptr" mechanism or the %{p} macro, the number of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "PTR" resource records queried is included in the overall limit of 10</td><td> </td><td class="right">   "PTR" resource records queried is included in the overall limit of 10</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0018" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   mechanisms/modifiers that cause DNS lookups described above.  <span class="delete">The</span></td><td> </td><td class="rblock">   mechanisms/modifiers that cause DNS lookups described above.  <span class="insert">In</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   evaluation of each "PTR" record MUST NOT result in querying more than</td><td> </td><td class="rblock"><span class="insert">   addition to that limit, the</span> evaluation of each "PTR" record MUST NOT</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   10 address records, either "A" or "AAAA" resource records.  If this</td><td> </td><td class="rblock">   result in querying more than 10 address records, either "A" or "AAAA"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   limit is exceeded, all records other than the first 10 MUST be</td><td> </td><td class="rblock">   resource records.  If this limit is exceeded, all records other than</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ignored.</td><td> </td><td class="rblock">   the first 10 MUST be ignored.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The reason for the disparity is that the set of and contents of the</td><td> </td><td class="right">   The reason for the disparity is that the set of and contents of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MX record are under control of the publishing ADMD, while the set of</td><td> </td><td class="right">   MX record are under control of the publishing ADMD, while the set of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and contents of PTR records are under control of the owner of the IP</td><td> </td><td class="right">   and contents of PTR records are under control of the owner of the IP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   address actually making the connection.</td><td> </td><td class="right">   address actually making the connection.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These limits are per mechanism or macro in the record, and are in</td><td> </td><td class="right">   These limits are per mechanism or macro in the record, and are in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   addition to the lookup limits specified above.</td><td> </td><td class="right">   addition to the lookup limits specified above.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MTAs or other processors SHOULD impose a limit on the maximum amount</td><td> </td><td class="right">   MTAs or other processors SHOULD impose a limit on the maximum amount</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l12" /><small>skipping to change at</small><em> page 22, line 11</em></th><th> </th><th><a name="part-r12" /><small>skipping to change at</small><em> page 23, line 11</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The result of evaluating check_host() with a syntactically invalid</td><td> </td><td class="right">   The result of evaluating check_host() with a syntactically invalid</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   domain is undefined.</td><td> </td><td class="right">   domain is undefined.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">5.  Mechanism Definitions</td><td> </td><td class="right">5.  Mechanism Definitions</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This section defines two types of mechanisms: basic language</td><td> </td><td class="right">   This section defines two types of mechanisms: basic language</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   framework mechanisms and designated sender mechanisms.</td><td> </td><td class="right">   framework mechanisms and designated sender mechanisms.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Basic mechanisms contribute to the language framework.  They do not</td><td> </td><td class="right">   Basic mechanisms contribute to the language framework.  They do not</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0019" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   specify a particular type of authorization scheme.</td><td> </td><td class="rblock">   specify a particular type of authorization scheme.  <span class="insert">The basic</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   mechanisms are as follows:</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      all</td><td> </td><td class="right">      all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      include</td><td> </td><td class="right">      include</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Designated sender mechanisms are used to identify a set of &lt;ip&gt;</td><td> </td><td class="right">   Designated sender mechanisms are used to identify a set of &lt;ip&gt;</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   addresses as being permitted or not permitted to use the &lt;domain&gt; for</td><td> </td><td class="right">   addresses as being permitted or not permitted to use the &lt;domain&gt; for</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0020" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   sending mail.</td><td> </td><td class="rblock">   sending mail.<span class="insert">  The designated sender mechanisms are as follows:</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      a</td><td> </td><td class="right">      a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      mx</td><td> </td><td class="right">      mx</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0021" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      ptr (do not <span class="delete">publish</span>)</td><td> </td><td class="rblock">      ptr (do not <span class="insert">use</span>)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      ip4</td><td> </td><td class="right">      ip4</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      ip6</td><td> </td><td class="right">      ip6</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      exists</td><td> </td><td class="right">      exists</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The following conventions apply to all mechanisms that perform a</td><td> </td><td class="right">   The following conventions apply to all mechanisms that perform a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   comparison between &lt;ip&gt; and an IP address at any point:</td><td> </td><td class="right">   comparison between &lt;ip&gt; and an IP address at any point:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If no CIDR prefix length is given in the directive, then &lt;ip&gt; and the</td><td> </td><td class="right">   If no CIDR prefix length is given in the directive, then &lt;ip&gt; and the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   IP address are compared for equality.  (Here, CIDR is Classless</td><td> </td><td class="right">   IP address are compared for equality.  (Here, CIDR is Classless</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Inter-Domain Routing, described in [RFC4632].)</td><td> </td><td class="right">   Inter-Domain Routing, described in [RFC4632].)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l13" /><small>skipping to change at</small><em> page 23, line 18</em></th><th> </th><th><a name="part-r13" /><small>skipping to change at</small><em> page 24, line 18</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "all" mechanism is a test that always matches.  It is used as the</td><td> </td><td class="right">   The "all" mechanism is a test that always matches.  It is used as the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   rightmost mechanism in a record to provide an explicit default.</td><td> </td><td class="right">   rightmost mechanism in a record to provide an explicit default.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   For example:</td><td> </td><td class="right">   For example:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      v=spf1 a mx -all</td><td> </td><td class="right">      v=spf1 a mx -all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Mechanisms after "all" will never be tested.  Mechanisms listed after</td><td> </td><td class="right">   Mechanisms after "all" will never be tested.  Mechanisms listed after</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "all" MUST be ignored.  Any "redirect" modifier (Section 6.1) MUST be</td><td> </td><td class="right">   "all" MUST be ignored.  Any "redirect" modifier (Section 6.1) MUST be</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0022" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   ignored when there is an "all" mechanism in the <span class="delete">record.</span></td><td> </td><td class="rblock">   ignored when there is an "all" mechanism in the <span class="insert">record regardless of</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   the relative ordering of the terms.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">5.2.  "include"</td><td> </td><td class="right">5.2.  "include"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   include          = "include"  ":" domain-spec</td><td> </td><td class="right">   include          = "include"  ":" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "include" mechanism triggers a recursive evaluation of</td><td> </td><td class="right">   The "include" mechanism triggers a recursive evaluation of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   check_host().</td><td> </td><td class="right">   check_host().</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   1.  The domain-spec is expanded as per Section 7.</td><td> </td><td class="right">   1.  The domain-spec is expanded as per Section 7.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   2.  check_host() is evaluated with the resulting string as the</td><td> </td><td class="right">   2.  check_host() is evaluated with the resulting string as the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       &lt;domain&gt;.  The &lt;ip&gt; and &lt;sender&gt; arguments remain the same as in</td><td> </td><td class="right">       &lt;domain&gt;.  The &lt;ip&gt; and &lt;sender&gt; arguments remain the same as in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">       the current evaluation of check_host().</td><td> </td><td class="right">       the current evaluation of check_host().</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0023" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   3.  The recursive evaluation returns <span class="delete">either</span> match, not match, or an</td><td> </td><td class="rblock">   3.  The recursive evaluation returns match, not match, or an error.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       error.  <span class="delete">If it matches, then the appropriate result for the</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">       include: mechanism is used (e.g. include or +include produces a</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">       "pass" result and -include produces "fail").</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0024" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   4.  If <span class="delete">there</span> is no <span class="delete">match,</span> the parent check_host() resumes processing</td><td> </td><td class="rblock">   4.  If <span class="insert">it returns match, then the appropriate result for the include:</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       as per the table below, with the previous value of &lt;domain&gt;</td><td> </td><td class="rblock"><span class="insert">       mechanism</span> is <span class="insert">used (e.g. include or +include produces a "pass"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">       restored.</td><td> </td><td class="rblock"><span class="insert">       result and -include produces "fail").</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   5.  If it returns</span> no <span class="insert">match or an error,</span> the parent check_host()</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">       resumes processing as per the table below, with the previous</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">       value of &lt;domain&gt; restored.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   In hindsight, the name "include" was poorly chosen.  Only the</td><td> </td><td class="right">   In hindsight, the name "include" was poorly chosen.  Only the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   evaluated result of the referenced SPF record is used, rather than</td><td> </td><td class="right">   evaluated result of the referenced SPF record is used, rather than</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   literally including the mechanisms of the referenced record in the</td><td> </td><td class="right">   literally including the mechanisms of the referenced record in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   first.  For example, evaluating a "-all" directive in the referenced</td><td> </td><td class="right">   first.  For example, evaluating a "-all" directive in the referenced</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   record does not terminate the overall processing and does not</td><td> </td><td class="right">   record does not terminate the overall processing and does not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   necessarily result in an overall "fail".  (Better names for this</td><td> </td><td class="right">   necessarily result in an overall "fail".  (Better names for this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mechanism would have been "if-match", "on-match", etc.)</td><td> </td><td class="right">   mechanism would have been "if-match", "on-match", etc.)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "include" mechanism makes it possible for one domain to designate</td><td> </td><td class="right">   The "include" mechanism makes it possible for one domain to designate</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l14" /><small>skipping to change at</small><em> page 24, line 39</em></th><th> </th><th><a name="part-r14" /><small>skipping to change at</small><em> page 25, line 41</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   | neutral                         | not match                       |</td><td> </td><td class="right">   | neutral                         | not match                       |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   |                                 |                                 |</td><td> </td><td class="right">   |                                 |                                 |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   | temperror                       | return temperror                |</td><td> </td><td class="right">   | temperror                       | return temperror                |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   |                                 |                                 |</td><td> </td><td class="right">   |                                 |                                 |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   | permerror                       | return permerror                |</td><td> </td><td class="right">   | permerror                       | return permerror                |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   |                                 |                                 |</td><td> </td><td class="right">   |                                 |                                 |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   | none                            | return permerror                |</td><td> </td><td class="right">   | none                            | return permerror                |</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   +---------------------------------+---------------------------------+</td><td> </td><td class="right">   +---------------------------------+---------------------------------+</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "include" mechanism is intended for crossing administrative</td><td> </td><td class="right">   The "include" mechanism is intended for crossing administrative</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0025" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   boundaries.  For example, if example.com and example.org were managed</td><td> </td><td class="rblock">   boundaries.  <span class="insert">When remaining within one administrative authority,</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   by the same entity, and if the permitted set of hosts for both</td><td> </td><td class="rblock"><span class="insert">   "include" is usually not the best choice.</span>  For example, if</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   domains was "mx:example.com", it would be possible for example.org to</td><td> </td><td class="rblock">   example.com and example.org were managed by the same entity, and if</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   specify "include:example.com", but it would be preferable to specify</td><td> </td><td class="rblock">   the permitted set of hosts for both domains was "mx:example.com", it</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   "redirect=example.com" or even "mx:example.com".</td><td> </td><td class="rblock">   would be possible for example.org to specify "include:example.com",</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   but it would be preferable to specify "redirect=example.com" or even</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   "mx:example.com".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   With the "include" mechanism an administratively external set of</td><td> </td><td class="right">   With the "include" mechanism an administratively external set of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   hosts can be authorized, but determination of sender policy is still</td><td> </td><td class="right">   hosts can be authorized, but determination of sender policy is still</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a function of the original domain's SPF record (as determined by the</td><td> </td><td class="right">   a function of the original domain's SPF record (as determined by the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "all" mechanism in that record).  The redirect modifier is more</td><td> </td><td class="right">   "all" mechanism in that record).  The redirect modifier is more</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   suitable for consolidating both authorizations and policy into a</td><td> </td><td class="right">   suitable for consolidating both authorizations and policy into a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   common set to be shared within an ADMD.  Redirect is much more like a</td><td> </td><td class="right">   common set to be shared within an ADMD.  Redirect is much more like a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   common code element to be shared among records in a single ADMD.  It</td><td> </td><td class="right">   common code element to be shared among records in a single ADMD.  It</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   is possible to control both authorized hosts and policy for an</td><td> </td><td class="right">   is possible to control both authorized hosts and policy for an</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   arbitrary number of domains from a single record.</td><td> </td><td class="right">   arbitrary number of domains from a single record.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l15" /><small>skipping to change at</small><em> page 29, line 18</em></th><th> </th><th><a name="part-r15" /><small>skipping to change at</small><em> page 30, line 18</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Modifiers always have an "=" separating the name and the value.</td><td> </td><td class="right">   Modifiers always have an "=" separating the name and the value.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The modifiers defined in this document ("redirect" and "exp") SHOULD</td><td> </td><td class="right">   The modifiers defined in this document ("redirect" and "exp") SHOULD</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   appear at the end of the record, after all mechanisms, though</td><td> </td><td class="right">   appear at the end of the record, after all mechanisms, though</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   syntactically they can appear anywhere in the record.  Ordering of</td><td> </td><td class="right">   syntactically they can appear anywhere in the record.  Ordering of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   these two modifiers does not matter.  These two modifiers MUST NOT</td><td> </td><td class="right">   these two modifiers does not matter.  These two modifiers MUST NOT</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   appear in a record more than once each.  If they do, then</td><td> </td><td class="right">   appear in a record more than once each.  If they do, then</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   check_host() exits with a result of "permerror".</td><td> </td><td class="right">   check_host() exits with a result of "permerror".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Unrecognized modifiers MUST be ignored no matter where in a record,</td><td> </td><td class="right">   Unrecognized modifiers MUST be ignored no matter where in a record,</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0026" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   or how often.  This allows implementations of this document to</td><td> </td><td class="rblock">   <span class="insert">they appear</span> or how often.  This allows implementations of this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   gracefully handle records with modifiers that are defined in other</td><td> </td><td class="rblock">   document to gracefully handle records with modifiers that are defined</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   specifications.</td><td> </td><td class="rblock">   in other specifications.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">6.1.  redirect: Redirected Query</td><td> </td><td class="right">6.1.  redirect: Redirected Query</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The redirect modifier is intended for consolidating both</td><td> </td><td class="right">   The redirect modifier is intended for consolidating both</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorizations and policy into a common set to be shared within a</td><td> </td><td class="right">   authorizations and policy into a common set to be shared within a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   single ADMD.  It is possible to control both authorized hosts and</td><td> </td><td class="right">   single ADMD.  It is possible to control both authorized hosts and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   policy for an arbitrary number of domains from a single record.</td><td> </td><td class="right">   policy for an arbitrary number of domains from a single record.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   redirect         = "redirect" "=" domain-spec</td><td> </td><td class="right">   redirect         = "redirect" "=" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l16" /><small>skipping to change at</small><em> page 30, line 21</em></th><th> </th><th><a name="part-r16" /><small>skipping to change at</small><em> page 31, line 21</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the same record.  This can be an administrative advantage.</td><td> </td><td class="right">   the same record.  This can be an administrative advantage.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Note: In general, the domain "A" cannot reliably use a redirect to</td><td> </td><td class="right">   Note: In general, the domain "A" cannot reliably use a redirect to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   another domain "B" not under the same administrative control.  Since</td><td> </td><td class="right">   another domain "B" not under the same administrative control.  Since</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the &lt;sender&gt; stays the same, there is no guarantee that the record at</td><td> </td><td class="right">   the &lt;sender&gt; stays the same, there is no guarantee that the record at</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   domain "B" will correctly work for mailboxes in domain "A",</td><td> </td><td class="right">   domain "B" will correctly work for mailboxes in domain "A",</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   especially if domain "B" uses mechanisms involving local-parts.  An</td><td> </td><td class="right">   especially if domain "B" uses mechanisms involving local-parts.  An</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "include" directive will generally be more appropriate.</td><td> </td><td class="right">   "include" directive will generally be more appropriate.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   For clarity, any "redirect" modifier SHOULD appear as the very last</td><td> </td><td class="right">   For clarity, any "redirect" modifier SHOULD appear as the very last</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0027" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   term in a record.</td><td> </td><td class="rblock">   term in a record.  <span class="insert">Any "redirect" modifier MUST be ignored if there</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   is an "all" mechanism anywhere in the record.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">6.2.  exp: Explanation</td><td> </td><td class="right">6.2.  exp: Explanation</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   explanation      = "exp" "=" domain-spec</td><td> </td><td class="right">   explanation      = "exp" "=" domain-spec</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If check_host() results in a "fail" due to a mechanism match (such as</td><td> </td><td class="right">   If check_host() results in a "fail" due to a mechanism match (such as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "-all"), and the "exp" modifier is present, then the explanation</td><td> </td><td class="right">   "-all"), and the "exp" modifier is present, then the explanation</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   string returned is computed as described below.  If no "exp" modifier</td><td> </td><td class="right">   string returned is computed as described below.  If no "exp" modifier</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   is present, then either a default explanation string or an empty</td><td> </td><td class="right">   is present, then either a default explanation string or an empty</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   explanation string MUST be returned to the calling application.</td><td> </td><td class="right">   explanation string MUST be returned to the calling application.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l17" /><small>skipping to change at</small><em> page 38, line 15</em></th><th> </th><th><a name="part-r17" /><small>skipping to change at</small><em> page 39, line 15</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "neutral" more harshly than "none" would discourage ADMDs from</td><td> </td><td class="right">   "neutral" more harshly than "none" would discourage ADMDs from</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   testing the use of SPF records (see Section 10.1).</td><td> </td><td class="right">   testing the use of SPF records (see Section 10.1).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.3.  Pass</td><td> </td><td class="right">8.3.  Pass</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "pass" result means that the client is authorized to inject mail</td><td> </td><td class="right">   A "pass" result means that the client is authorized to inject mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   with the given identity.  The domain can now, in the sense of</td><td> </td><td class="right">   with the given identity.  The domain can now, in the sense of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   reputation, be considered responsible for sending the message.</td><td> </td><td class="right">   reputation, be considered responsible for sending the message.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Further policy checks can now proceed with confidence in the</td><td> </td><td class="right">   Further policy checks can now proceed with confidence in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   legitimate use of the identity.  This is further discussed in</td><td> </td><td class="right">   legitimate use of the identity.  This is further discussed in</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0028" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">H</span>.1.</td><td> </td><td class="rblock">   Appendix <span class="insert">G</span>.1.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.4.  Fail</td><td> </td><td class="right">8.4.  Fail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "fail" result is an explicit statement that the client is not</td><td> </td><td class="right">   A "fail" result is an explicit statement that the client is not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorized to use the domain in the given identity.  Disposition of</td><td> </td><td class="right">   authorized to use the domain in the given identity.  Disposition of</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0029" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   SPF fail messages is a matter of local policy.  See Appendix <span class="delete">H</span>.2 for</td><td> </td><td class="rblock">   SPF fail messages is a matter of local policy.  See Appendix <span class="insert">G</span>.2 for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   considerations on developing local policy.</td><td> </td><td class="right">   considerations on developing local policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If the checking software chooses to reject the mail during the SMTP</td><td> </td><td class="right">   If the checking software chooses to reject the mail during the SMTP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   transaction, then it SHOULD use an SMTP reply code of 550 (see</td><td> </td><td class="right">   transaction, then it SHOULD use an SMTP reply code of 550 (see</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC5321]) and, if supported, the 5.7.1 enhanced status code (see</td><td> </td><td class="right">   [RFC5321]) and, if supported, the 5.7.1 enhanced status code (see</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC3463], Section 3.8), in addition to an appropriate reply text.</td><td> </td><td class="right">   [RFC3463], Section 3.8), in addition to an appropriate reply text.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The check_host() function will return either a default explanation</td><td> </td><td class="right">   The check_host() function will return either a default explanation</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   string or one from the domain that published the SPF records (see</td><td> </td><td class="right">   string or one from the domain that published the SPF records (see</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Section 6.2).  If the information does not originate with the</td><td> </td><td class="right">   Section 6.2).  If the information does not originate with the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   checking software, it is good to make it clear that the text is</td><td> </td><td class="right">   checking software, it is good to make it clear that the text is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l18" /><small>skipping to change at</small><em> page 39, line 21</em></th><th> </th><th><a name="part-r18" /><small>skipping to change at</small><em> page 40, line 21</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.6.  Temperror</td><td> </td><td class="right">8.6.  Temperror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "temperror" result means the SPF verifier encountered a transient</td><td> </td><td class="right">   A "temperror" result means the SPF verifier encountered a transient</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   (generally DNS) error while performing the check.  Checking software</td><td> </td><td class="right">   (generally DNS) error while performing the check.  Checking software</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   can choose to accept or temporarily reject the message.  If the</td><td> </td><td class="right">   can choose to accept or temporarily reject the message.  If the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message is rejected during the SMTP transaction for this reason, the</td><td> </td><td class="right">   message is rejected during the SMTP transaction for this reason, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   software SHOULD use an SMTP reply code of 451 and, if supported, the</td><td> </td><td class="right">   software SHOULD use an SMTP reply code of 451 and, if supported, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   4.4.3 enhanced status code (see [RFC3463], Section 3.5).  These</td><td> </td><td class="right">   4.4.3 enhanced status code (see [RFC3463], Section 3.5).  These</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   errors can be caused by problems in either the sender's or receiver's</td><td> </td><td class="right">   errors can be caused by problems in either the sender's or receiver's</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0030" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   DNS software.  See Appendix <span class="delete">H</span>.4 for considerations on developing</td><td> </td><td class="rblock">   DNS software.  See Appendix <span class="insert">G</span>.4 for considerations on developing</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   local policy.</td><td> </td><td class="right">   local policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">8.7.  Permerror</td><td> </td><td class="right">8.7.  Permerror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   A "permerror" result means the domain's published records could not</td><td> </td><td class="right">   A "permerror" result means the domain's published records could not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   be correctly interpreted.  This signals an error condition that</td><td> </td><td class="right">   be correctly interpreted.  This signals an error condition that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   definitely requires DNS operator intervention to be resolved.  If the</td><td> </td><td class="right">   definitely requires DNS operator intervention to be resolved.  If the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message is rejected during the SMTP transaction for this reason, the</td><td> </td><td class="right">   message is rejected during the SMTP transaction for this reason, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   software SHOULD use an SMTP reply code of 550 and, if supported, the</td><td> </td><td class="right">   software SHOULD use an SMTP reply code of 550 and, if supported, the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   5.5.2 enhanced status code (see [RFC3463], Section 3.6).  Be aware</td><td> </td><td class="right">   5.5.2 enhanced status code (see [RFC3463], Section 3.6).  Be aware</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that if the ADMD uses macros (Section 7), it is possible that this</td><td> </td><td class="right">   that if the ADMD uses macros (Section 7), it is possible that this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   result is due to the checked identities having an unexpected format.</td><td> </td><td class="right">   result is due to the checked identities having an unexpected format.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   It is also possible that this result is generated by certain SPF</td><td> </td><td class="right">   It is also possible that this result is generated by certain SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   verifiers due to the input arguments having an unexpected format; see</td><td> </td><td class="right">   verifiers due to the input arguments having an unexpected format; see</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0031" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Section 4.8.  See Appendix <span class="delete">H</span>.3 for considerations on developing local</td><td> </td><td class="rblock">   Section 4.8.  See Appendix <span class="insert">G</span>.3 for considerations on developing local</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   policy.</td><td> </td><td class="right">   policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">9.  Recording the Result</td><td> </td><td class="right">9.  Recording the Result</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   To provide downstream agents, such as MUAs, with the information they</td><td> </td><td class="right">   To provide downstream agents, such as MUAs, with the information they</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   might need in terms of evaluating or representing the apparent safety</td><td> </td><td class="right">   might need in terms of evaluating or representing the apparent safety</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of the message content, it is RECOMMENDED that SMTP receivers record</td><td> </td><td class="right">   of the message content, it is RECOMMENDED that SMTP receivers record</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the result of SPF processing in the message header.  For SPF verifier</td><td> </td><td class="right">   the result of SPF processing in the message header.  For SPF verifier</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   operators that choose to record SPF results in the header of the</td><td> </td><td class="right">   operators that choose to record SPF results in the header of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message for processing by internal filters or MUAs, two methods are</td><td> </td><td class="right">   message for processing by internal filters or MUAs, two methods are</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l19" /><small>skipping to change at</small><em> page 45, line 47</em></th><th> </th><th><a name="part-r19" /><small>skipping to change at</small><em> page 46, line 47</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The hostname is generally the identity used in the 5321.HELO/.EHLO</td><td> </td><td class="right">   The hostname is generally the identity used in the 5321.HELO/.EHLO</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   command.  In the case of messages with a null 5321.MailFrom, this is</td><td> </td><td class="right">   command.  In the case of messages with a null 5321.MailFrom, this is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   used as the domain for 5321.MailFrom SPF checks, in addition to being</td><td> </td><td class="right">   used as the domain for 5321.MailFrom SPF checks, in addition to being</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   used in 5321.HELO/.EHLO based SPF checks.  The standard SPF record</td><td> </td><td class="right">   used in 5321.HELO/.EHLO based SPF checks.  The standard SPF record</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   for an individual host that is involved in mail processing is:</td><td> </td><td class="right">   for an individual host that is involved in mail processing is:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      relay.example.com.   IN TXT  "v=spf1 a -all"</td><td> </td><td class="right">      relay.example.com.   IN TXT  "v=spf1 a -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Validating correct deployment is difficult.  [RFC6652] describes one</td><td> </td><td class="right">   Validating correct deployment is difficult.  [RFC6652] describes one</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mechanism for soliciting feedback on SPF failures.  Another</td><td> </td><td class="right">   mechanism for soliciting feedback on SPF failures.  Another</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0032" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   suggestion can be found in Appendix <span class="delete">D</span>.</td><td> </td><td class="rblock">   suggestion can be found in Appendix <span class="insert">C</span>.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Regardless of the method used, understanding the ADMD's outbound mail</td><td> </td><td class="right">   Regardless of the method used, understanding the ADMD's outbound mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   architecture is essential to effective deployment.</td><td> </td><td class="right">   architecture is essential to effective deployment.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">10.1.3.  Bounces</td><td> </td><td class="right">10.1.3.  Bounces</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As explained in Section 1.1.3, [RFC5321] allows the MAIL FROM to be</td><td> </td><td class="right">   As explained in Section 1.1.3, [RFC5321] allows the MAIL FROM to be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   null, which is typical of some Delivery Status Notification</td><td> </td><td class="right">   null, which is typical of some Delivery Status Notification</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC3464], commonly called email bounces.  In this case the only</td><td> </td><td class="right">   [RFC3464], commonly called email bounces.  In this case the only</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   entity available for performing an SPF check is the "HELO" identity</td><td> </td><td class="right">   entity available for performing an SPF check is the "HELO" identity</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l20" /><small>skipping to change at</small><em> page 46, line 31</em></th><th> </th><th><a name="part-r20" /><small>skipping to change at</small><em> page 47, line 31</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF results can be used in combination with other methods to</td><td> </td><td class="right">   SPF results can be used in combination with other methods to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   determine the final local disposition (either positive or negative)</td><td> </td><td class="right">   determine the final local disposition (either positive or negative)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of a message.  It can also be considered dispositive on its own.</td><td> </td><td class="right">   of a message.  It can also be considered dispositive on its own.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   An attempt to have one organization (sender) direct the email</td><td> </td><td class="right">   An attempt to have one organization (sender) direct the email</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   handling policies of another (receiver) is inherently challenging and</td><td> </td><td class="right">   handling policies of another (receiver) is inherently challenging and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   often controversial.  As stated elsewhere in this document, there is</td><td> </td><td class="right">   often controversial.  As stated elsewhere in this document, there is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   no comprehensive normative requirement for specific handling of a</td><td> </td><td class="right">   no comprehensive normative requirement for specific handling of a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message based on SPF results.  The information presented in Section 8</td><td> </td><td class="right">   message based on SPF results.  The information presented in Section 8</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0033" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   and in Appendix <span class="delete">H</span> is offered for receiver consideration when forming</td><td> </td><td class="rblock">   and in Appendix <span class="insert">G</span> is offered for receiver consideration when forming</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   local handling policies.</td><td> </td><td class="right">   local handling policies.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The primary considerations are that SPF might return "pass" for mail</td><td> </td><td class="right">   The primary considerations are that SPF might return "pass" for mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that is ultimately harmful (e.g., spammers that arrange for SPF to</td><td> </td><td class="right">   that is ultimately harmful (e.g., spammers that arrange for SPF to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   pass using disposable domain names, or virus or spam outbreaks from</td><td> </td><td class="right">   pass using disposable domain names, or virus or spam outbreaks from</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   within trusted sources), and might also return "fail" for mail that</td><td> </td><td class="right">   within trusted sources), and might also return "fail" for mail that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   is ultimately legitimate (e.g., legitimate mail that has traversed a</td><td> </td><td class="right">   is ultimately legitimate (e.g., legitimate mail that has traversed a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mail alias).  It is important take both of these cases under</td><td> </td><td class="right">   mail alias).  It is important take both of these cases under</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   consideration when establishing local handling policy.</td><td> </td><td class="right">   consideration when establishing local handling policy.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l21" /><small>skipping to change at</small><em> page 47, line 14</em></th><th> </th><th><a name="part-r21" /><small>skipping to change at</small><em> page 48, line 14</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Because SPF evaluation is based on the IP address of the "last"</td><td> </td><td class="right">   Because SPF evaluation is based on the IP address of the "last"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   sending SMTP server, the address of the mediator will be used, rather</td><td> </td><td class="right">   sending SMTP server, the address of the mediator will be used, rather</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   than the address of the SMTP server that sent the message to the</td><td> </td><td class="right">   than the address of the SMTP server that sent the message to the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mediator.  Some mediators retain the email address from the original</td><td> </td><td class="right">   mediator.  Some mediators retain the email address from the original</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   message, while some use a new address.</td><td> </td><td class="right">   message, while some use a new address.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If the address is the same as for the original message, and the</td><td> </td><td class="right">   If the address is the same as for the original message, and the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   original message had an associated SPF record, then the SPF</td><td> </td><td class="right">   original message had an associated SPF record, then the SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   evaluation will fail unless mitigations such as those described in</td><td> </td><td class="right">   evaluation will fail unless mitigations such as those described in</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0034" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   Appendix <span class="delete">E</span> are used.</td><td> </td><td class="rblock">   Appendix <span class="insert">D</span> are used.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">11.  Security Considerations</td><td> </td><td class="right">11.  Security Considerations</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">11.1.  Processing Limits</td><td> </td><td class="right">11.1.  Processing Limits</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As with most aspects of email, there are a number of ways that</td><td> </td><td class="right">   As with most aspects of email, there are a number of ways that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   malicious parties could use the protocol as an avenue for a</td><td> </td><td class="right">   malicious parties could use the protocol as an avenue for a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Denial-of-Service (DoS) attack.  The processing limits outlined in</td><td> </td><td class="right">   Denial-of-Service (DoS) attack.  The processing limits outlined in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Section 4.6.4 are designed to prevent attacks such as the following:</td><td> </td><td class="right">   Section 4.6.4 are designed to prevent attacks such as the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l22" /><small>skipping to change at</small><em> page 49, line 17</em></th><th> </th><th><a name="part-r22" /><small>skipping to change at</small><em> page 50, line 17</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      encountered (defined in Section 4.6.4).</td><td> </td><td class="right">      encountered (defined in Section 4.6.4).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Of these, the case of a third party referenced in the SPF record is</td><td> </td><td class="right">   Of these, the case of a third party referenced in the SPF record is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the easiest for a DoS attack to effectively exploit.  As a result,</td><td> </td><td class="right">   the easiest for a DoS attack to effectively exploit.  As a result,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   limits that might seem reasonable for an individual mail server can</td><td> </td><td class="right">   limits that might seem reasonable for an individual mail server can</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   still allow an unreasonable amount of bandwidth amplification.</td><td> </td><td class="right">   still allow an unreasonable amount of bandwidth amplification.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Therefore, the processing limits need to be quite low.</td><td> </td><td class="right">   Therefore, the processing limits need to be quite low.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">11.2.  SPF-Authorized Email May Contain Other False Identities</td><td> </td><td class="right">11.2.  SPF-Authorized Email May Contain Other False Identities</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0035" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">Do not construe the</span> "MAIL FROM" and "HELO" identity authorizations <span class="delete">to</span></td><td> </td><td class="rblock">   <span class="insert">The</span> "MAIL FROM" and "HELO" identity authorizations <span class="insert">do not</span> provide</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   provide <span class="delete">more</span> assurance <span class="delete">than they do.</span>  It is entirely possible for a</td><td> </td><td class="rblock">   assurance <span class="insert">about the authorization/authenticity of other identities</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   malicious sender to inject a message using his own domain in the</td><td> </td><td class="rblock"><span class="insert">   used in the message.</span>  It is entirely possible for a malicious sender</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   identities used by SPF, to have that domain's SPF record authorize</td><td> </td><td class="rblock">   to inject a message using his own domain in the identities used by</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   the sending host, and yet the message can easily list other</td><td> </td><td class="rblock">   SPF, to have that domain's SPF record authorize the sending host, and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   identities in its header.  Unless the user or the MUA takes care to</td><td> </td><td class="rblock">   yet the message can easily list other identities in its header.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   note that the authorized identity does not match the other more</td><td> </td><td class="rblock">   Unless the user or the MUA takes care to note that the authorized</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   commonly-presented identities (such as the From: header field), the</td><td> </td><td class="rblock">   identity does not match the other more commonly-presented identities</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">   user might be lulled into a false sense of security.</td><td> </td><td class="rblock">   (such as the From: header field), the user might be lulled into a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   false sense of security.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">11.3.  Spoofed DNS and IP Data</td><td> </td><td class="right">11.3.  Spoofed DNS and IP Data</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There are two aspects of this protocol that malicious parties could</td><td> </td><td class="right">   There are two aspects of this protocol that malicious parties could</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   exploit to undermine the validity of the check_host() function:</td><td> </td><td class="right">   exploit to undermine the validity of the check_host() function:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  The evaluation of check_host() relies heavily on DNS.  A malicious</td><td> </td><td class="right">   o  The evaluation of check_host() relies heavily on DNS.  A malicious</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      attacker could attack the DNS infrastructure and cause</td><td> </td><td class="right">      attacker could attack the DNS infrastructure and cause</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      check_host() to see spoofed DNS data, and then return incorrect</td><td> </td><td class="right">      check_host() to see spoofed DNS data, and then return incorrect</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      results.  This could include returning "pass" for an &lt;ip&gt; value</td><td> </td><td class="right">      results.  This could include returning "pass" for an &lt;ip&gt; value</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      where the actual domain's record would evaluate to "fail".  See</td><td> </td><td class="right">      where the actual domain's record would evaluate to "fail".  See</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0036" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      [RFC3833] for a description of DNS <span class="delete">weaknesses.</span></td><td> </td><td class="rblock">      [RFC3833] for a description of DNS <span class="insert">weaknesses and see [RFC4033]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">      for a countermeasure.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  The client IP address, &lt;ip&gt;, is assumed to be correct.  In a</td><td> </td><td class="right">   o  The client IP address, &lt;ip&gt;, is assumed to be correct.  In a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      modern, correctly configured system the risk of this not being</td><td> </td><td class="right">      modern, correctly configured system the risk of this not being</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      true is nil.</td><td> </td><td class="right">      true is nil.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">11.4.  Cross-User Forgery</td><td> </td><td class="right">11.4.  Cross-User Forgery</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   By definition, SPF policies just map domain names to sets of</td><td> </td><td class="right">   By definition, SPF policies just map domain names to sets of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   authorized MTAs, not whole email addresses to sets of authorized</td><td> </td><td class="right">   authorized MTAs, not whole email addresses to sets of authorized</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   users.  Although the "l" macro (Section 7) provides a limited way to</td><td> </td><td class="right">   users.  Although the "l" macro (Section 7) provides a limited way to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l23" /><small>skipping to change at</small><em> page 52, line 5</em></th><th> </th><th><a name="part-r23" /><small>skipping to change at</small><em> page 53, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   to likely harm.  This is especially true for domains belonging to</td><td> </td><td class="right">   to likely harm.  This is especially true for domains belonging to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   known good actors that are typically well-behaved; unauthorized mail</td><td> </td><td class="right">   known good actors that are typically well-behaved; unauthorized mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   from those sources might well be subjected to much higher skepticism</td><td> </td><td class="right">   from those sources might well be subjected to much higher skepticism</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and content analysis.</td><td> </td><td class="right">   and content analysis.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF does not, however, include the capacity for identifying good</td><td> </td><td class="right">   SPF does not, however, include the capacity for identifying good</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   actors from bad ones, nor does it handle the concept of known actors</td><td> </td><td class="right">   actors from bad ones, nor does it handle the concept of known actors</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   versus unknown ones.  Those notions are out of scope for this</td><td> </td><td class="right">   versus unknown ones.  Those notions are out of scope for this</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   specification.</td><td> </td><td class="right">   specification.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0037" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">12.  Contributors and Acknowledgements</td><td> </td><td class="rblock">12.  <span class="insert">Collected ABNF</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   This section is normative and any discrepancies with the ABNF</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   fragments in the preceding text are to be resolved in favor of this</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   grammar.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   See [RFC5234] for ABNF notation.  Please note that as per this ABNF</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   definition, literal text strings (those in quotes) are case-</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   insensitive.  Hence, "mx" matches "mx", "MX", "mX", and "Mx".</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   record           = version terms *SP</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   version          = "v=spf1"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   terms            = *( 1*SP ( directive / modifier ) )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   directive        = [ qualifier ] mechanism</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   qualifier        = "+" / "-" / "?" / "~"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   mechanism        = ( all / include</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / a / mx / ptr / ip4 / ip6 / exists )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   all              = "all"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   include          = "include"  ":" domain-spec</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   a                = "a"      [ ":" domain-spec ] [ dual-cidr-length ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   mx               = "mx"     [ ":" domain-spec ] [ dual-cidr-length ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ptr              = "ptr"    [ ":" domain-spec ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   exists           = "exists"   ":" domain-spec</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   modifier         = redirect / explanation / unknown-modifier</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   redirect         = "redirect" "=" domain-spec</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   explanation      = "exp" "=" domain-spec</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   unknown-modifier = name "=" macro-string</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      ; where name is not any known modifier</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip4-cidr-length  = "/" ("0" |  %x31-39 0*1DIGIT) ; value range 0-32</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip6-cidr-length  = "/" ("0" |  %x31-39 0*2DIGIT) ; value range 0-128</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip4-network      = qnum "." qnum "." qnum "." qnum</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   qnum             = DIGIT                 ; 0-9</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / %x31-39 DIGIT       ; 10-99</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / "1" 2DIGIT          ; 100-199</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / "2" %x30-34 DIGIT   ; 200-249</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / "25" %x30-35        ; 250-255</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">            ; conventional dotted quad notation.  e.g., 192.0.2.0</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">            ; e.g., 2001:DB8::CD30</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   domain-spec      = macro-string domain-end</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   domain-end       = ( "." toplabel [ "." ] ) / macro-expand</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   toplabel         = ( *alphanum ALPHA *alphanum ) /</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      ( 1*alphanum "-" *( alphanum / "-" ) alphanum )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      ; LDH rule plus additional TLD restrictions</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      ; (see [RFC3696], Section 2 for background)</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   alphanum         = ALPHA / DIGIT</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   explain-string   = *( macro-string / SP )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   macro-string     = *( macro-expand / macro-literal )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   macro-expand     = ( "%{" macro-letter transformers *delimiter "}" )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / "%%" / "%_" / "%-"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   macro-literal    = %x21-24 / %x26-7E</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      ; visible characters except "%"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   macro-letter     = "s" / "l" / "o" / "d" / "i" / "p" / "h" /</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      "c" / "r" / "t" / "v"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   transformers     = *DIGIT [ "r" ]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   delimiter        = "." / "-" / "+" / "," / "/" / "_" / "="</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   name             = ALPHA *( ALPHA / DIGIT / "-" / "_" / "." )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   header-field     = "Received-SPF:" [CFWS] result FWS [comment FWS]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      [ key-value-list ] CRLF</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   result           = "pass" / "fail" / "softfail" / "neutral" /</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      "none" / "temperror" / "permerror"</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   key-value-list   = key-value-pair *( ";" [CFWS] key-value-pair )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      [";"]</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   key-value-pair   = key [CFWS] "=" ( dot-atom / quoted-string )</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   key              = "client-ip" / "envelope-from" / "helo" /</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      "problem" / "receiver" / "identity" /</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                       "mechanism" / name</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   identity         = "mailfrom"   ; for the "MAIL FROM" identity</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / "helo"     ; for the "HELO" identity</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">                      / name       ; other identities</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   sender           = Mailbox</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ip               = ip4-network / ip6-network</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   ALPHA            = &lt;A-Z / a-z as per [RFC5234]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   DIGIT            = &lt;0-9 as per [RFC5234]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   SP               = &lt;space character as per [RFC5234]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   dot-atom         = &lt;unquoted word as per [RFC5322]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   quoted-string    = &lt;quoted string as per [RFC5322]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   comment          = &lt;comment string as per [RFC5322]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   CFWS             = &lt;comment or folding white space as per [RFC5322]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   FWS              = &lt;folding white space as per [RFC5322]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   CRLF             = &lt;standard end-of-line token as per [RFC5322]&gt;</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">13.</span>  Contributors and Acknowledgements</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This document is largely based on the work of Meng Weng Wong, Mark</td><td> </td><td class="right">   This document is largely based on the work of Meng Weng Wong, Mark</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Lentczner, and Wayne Schlitt.  Although, as this section</td><td> </td><td class="right">   Lentczner, and Wayne Schlitt.  Although, as this section</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   acknowledges, many people have contributed to this document, a very</td><td> </td><td class="right">   acknowledges, many people have contributed to this document, a very</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   large portion of the writing and editing are due to Meng, Mark, and</td><td> </td><td class="right">   large portion of the writing and editing are due to Meng, Mark, and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Wayne.</td><td> </td><td class="right">   Wayne.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This design owes a debt of parentage to [RMX] by Hadmut Danisch and</td><td> </td><td class="right">   This design owes a debt of parentage to [RMX] by Hadmut Danisch and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   to [DMP] by Gordon Fecyk.  The idea of using a DNS record to check</td><td> </td><td class="right">   to [DMP] by Gordon Fecyk.  The idea of using a DNS record to check</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the legitimacy of an email address traces its ancestry further back</td><td> </td><td class="right">   the legitimacy of an email address traces its ancestry further back</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l24" /><small>skipping to change at</small><em> page 53, line 5</em></th><th> </th><th><a name="part-r24" /><small>skipping to change at</small><em> page 57, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the development of this design.  They are far too numerous to name,</td><td> </td><td class="right">   the development of this design.  They are far too numerous to name,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   but they include the following:</td><td> </td><td class="right">   but they include the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The participants in the SPFbis working group.</td><td> </td><td class="right">      The participants in the SPFbis working group.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The folks on the spf-discuss mailing list.</td><td> </td><td class="right">      The folks on the spf-discuss mailing list.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The folks on the SPAM-L mailing list.</td><td> </td><td class="right">      The folks on the SPAM-L mailing list.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The folks on the IRTF ASRG mailing list.</td><td> </td><td class="right">      The folks on the IRTF ASRG mailing list.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The folks on the IETF MARID mailing list.</td><td> </td><td class="right">      The folks on the IETF MARID mailing list.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      The folks on #perl.</td><td> </td><td class="right">      The folks on #perl.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0038" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">3</span>.  IANA Considerations</td><td> </td><td class="rblock">1<span class="insert">4</span>.  IANA Considerations</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0039" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">3</span>.1.  The SPF DNS Record Type</td><td> </td><td class="rblock">1<span class="insert">4</span>.1.  The SPF DNS Record Type</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Per [RFC4408], the IANA assigned the Resource Record Type and Qtype</td><td> </td><td class="right">   Per [RFC4408], the IANA assigned the Resource Record Type and Qtype</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   from the DNS Parameters Registry for the SPF RR type with code 99.</td><td> </td><td class="right">   from the DNS Parameters Registry for the SPF RR type with code 99.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The format of this type is identical to the TXT RR [RFC1035].  The</td><td> </td><td class="right">   The format of this type is identical to the TXT RR [RFC1035].  The</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   character content of the record is encoded as [US-ASCII].</td><td> </td><td class="right">   character content of the record is encoded as [US-ASCII].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Studies have shown that RRTYPE 99 has not seen any substantial use,</td><td> </td><td class="right">   Studies have shown that RRTYPE 99 has not seen any substantial use,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   and in fact its existence and mechanism defined in [RFC4408] has led</td><td> </td><td class="right">   and in fact its existence and mechanism defined in [RFC4408] has led</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   to some interoperability issues.  Accordingly, its use is now</td><td> </td><td class="right">   to some interoperability issues.  Accordingly, its use is now</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   obsolete, and new implementations are not to use it.</td><td> </td><td class="right">   obsolete, and new implementations are not to use it.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   IANA is requested to update the Resource Record (RR) TYPEs registry</td><td> </td><td class="right">   IANA is requested to update the Resource Record (RR) TYPEs registry</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   to indicate that this document is the reference document for that</td><td> </td><td class="right">   to indicate that this document is the reference document for that</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   RRTYPE.</td><td> </td><td class="right">   RRTYPE.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [NOTE TO RFC EDITOR: (to be changed to " ... has updated ..." upon</td><td> </td><td class="right">   [NOTE TO RFC EDITOR: (to be changed to " ... has updated ..." upon</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   publication)]</td><td> </td><td class="right">   publication)]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0040" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">3</span>.2.  The Received-SPF Mail Header Field</td><td> </td><td class="rblock">1<span class="insert">4</span>.2.  The Received-SPF Mail Header Field</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Per [RFC3864], the "Received-SPF:" header field is added to the IANA</td><td> </td><td class="right">   Per [RFC3864], the "Received-SPF:" header field is added to the IANA</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Permanent Message Header Field Registry.  The following is the</td><td> </td><td class="right">   Permanent Message Header Field Registry.  The following is the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   registration template:</td><td> </td><td class="right">   registration template:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Header field name: Received-SPF</td><td> </td><td class="right">      Header field name: Received-SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Applicable protocol: mail ([RFC5322])</td><td> </td><td class="right">      Applicable protocol: mail ([RFC5322])</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Status: standard</td><td> </td><td class="right">      Status: standard</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Author/Change controller: IETF</td><td> </td><td class="right">      Author/Change controller: IETF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Specification document(s): RFC XXXX</td><td> </td><td class="right">      Specification document(s): RFC XXXX</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      [NOTE TO RFC EDITOR: (this document)]</td><td> </td><td class="right">      [NOTE TO RFC EDITOR: (this document)]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0041" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">3</span>.3.  SPF Modifier Registry</td><td> </td><td class="rblock">1<span class="insert">4</span>.3.  SPF Modifier Registry</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   IANA is requested to change the reference for the exp and redirect</td><td> </td><td class="right">   IANA is requested to change the reference for the exp and redirect</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   modifiers in the Modifier Names registry, under Sender Policy</td><td> </td><td class="right">   modifiers in the Modifier Names registry, under Sender Policy</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Framework Parameters, from [RFC4408] to this document.  Their status</td><td> </td><td class="right">   Framework Parameters, from [RFC4408] to this document.  Their status</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   is unchanged.</td><td> </td><td class="right">   is unchanged.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0042" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">4</span>.  References</td><td> </td><td class="rblock">1<span class="insert">5</span>.  References</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0043" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">4</span>.1.  Normative References</td><td> </td><td class="rblock">1<span class="insert">5</span>.1.  Normative References</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC1035]  Mockapetris, P., "Domain names - implementation and</td><td> </td><td class="right">   [RFC1035]  Mockapetris, P., "Domain names - implementation and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              specification", STD 13, RFC 1035, November 1987.</td><td> </td><td class="right">              specification", STD 13, RFC 1035, November 1987.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC1123]  Braden, R., "Requirements for Internet Hosts - Application</td><td> </td><td class="right">   [RFC1123]  Braden, R., "Requirements for Internet Hosts - Application</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              and Support", STD 3, RFC 1123, October 1989.</td><td> </td><td class="right">              and Support", STD 3, RFC 1123, October 1989.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate</td><td> </td><td class="right">   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Requirement Levels", BCP 14, RFC 2119, March 1997.</td><td> </td><td class="right">              Requirement Levels", BCP 14, RFC 2119, March 1997.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l25" /><small>skipping to change at</small><em> page 55, line 11</em></th><th> </th><th><a name="part-r25" /><small>skipping to change at</small><em> page 59, line 11</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [US-ASCII]</td><td> </td><td class="right">   [US-ASCII]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              American National Standards Institute (formerly United</td><td> </td><td class="right">              American National Standards Institute (formerly United</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              States of America Standards Institute), "USA Code for</td><td> </td><td class="right">              States of America Standards Institute), "USA Code for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Information Interchange, X3.4", 1968.</td><td> </td><td class="right">              Information Interchange, X3.4", 1968.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              ANSI X3.4-1968 has been replaced by newer versions with</td><td> </td><td class="right">              ANSI X3.4-1968 has been replaced by newer versions with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              slight modifications, but the 1968 version remains</td><td> </td><td class="right">              slight modifications, but the 1968 version remains</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              definitive for the Internet.</td><td> </td><td class="right">              definitive for the Internet.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0044" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">1<span class="delete">4</span>.2.  Informative References</td><td> </td><td class="rblock">1<span class="insert">5</span>.2.  Informative References</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [DMP]      Fecyk, G., "Designated Mailers Protocol".</td><td> </td><td class="right">   [DMP]      Fecyk, G., "Designated Mailers Protocol".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Work In Progress</td><td> </td><td class="right">              Work In Progress</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [Green]    Green, D., "Domain-Authorized SMTP Mail", 2002.</td><td> </td><td class="right">   [Green]    Green, D., "Domain-Authorized SMTP Mail", 2002.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",</td><td> </td><td class="right">   [RFC1034]  Mockapetris, P., "Domain names - concepts and facilities",</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              STD 13, RFC 1034, November 1987.</td><td> </td><td class="right">              STD 13, RFC 1034, November 1987.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l26" /><small>skipping to change at</small><em> page 55, line 45</em></th><th> </th><th><a name="part-r26" /><small>skipping to change at</small><em> page 59, line 45</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC3696]  Klensin, J., "Application Techniques for Checking and</td><td> </td><td class="right">   [RFC3696]  Klensin, J., "Application Techniques for Checking and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Transformation of Names", RFC 3696, February 2004.</td><td> </td><td class="right">              Transformation of Names", RFC 3696, February 2004.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC3833]  Atkins, D. and R. Austein, "Threat Analysis of the Domain</td><td> </td><td class="right">   [RFC3833]  Atkins, D. and R. Austein, "Threat Analysis of the Domain</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Name System (DNS)", RFC 3833, August 2004.</td><td> </td><td class="right">              Name System (DNS)", RFC 3833, August 2004.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC3834]  Moore, K., "Recommendations for Automatic Responses to</td><td> </td><td class="right">   [RFC3834]  Moore, K., "Recommendations for Automatic Responses to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Electronic Mail", RFC 3834, August 2004.</td><td> </td><td class="right">              Electronic Mail", RFC 3834, August 2004.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0045" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">   <span class="insert">[RFC4033]  Arends, R., Austein, R., Larson, M., Massey, D., and S.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">              Rose, "DNS Security Introduction and Requirements",</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">              RFC 4033, March 2005.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC4408]  Wong, M. and W. Schlitt, "Sender Policy Framework (SPF)</td><td> </td><td class="right">   [RFC4408]  Wong, M. and W. Schlitt, "Sender Policy Framework (SPF)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              for Authorizing Use of Domains in E-Mail, Version 1",</td><td> </td><td class="right">              for Authorizing Use of Domains in E-Mail, Version 1",</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              RFC 4408, April 2006.</td><td> </td><td class="right">              RFC 4408, April 2006.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC4632]  Fuller, V. and T. Li, "Classless Inter-domain Routing</td><td> </td><td class="right">   [RFC4632]  Fuller, V. and T. Li, "Classless Inter-domain Routing</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              (CIDR): The Internet Address Assignment and Aggregation</td><td> </td><td class="right">              (CIDR): The Internet Address Assignment and Aggregation</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Plan", BCP 122, RFC 4632, August 2006.</td><td> </td><td class="right">              Plan", BCP 122, RFC 4632, August 2006.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC4880]  Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R.</td><td> </td><td class="right">   [RFC4880]  Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Thayer, "OpenPGP Message Format", RFC 4880, November 2007.</td><td> </td><td class="right">              Thayer, "OpenPGP Message Format", RFC 4880, November 2007.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l27" /><small>skipping to change at</small><em> page 57, line 5</em></th><th> </th><th><a name="part-r27" /><small>skipping to change at</small><em> page 61, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC6891]  Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms</td><td> </td><td class="right">   [RFC6891]  Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              for DNS (EDNS(0))", STD 75, RFC 6891, April 2013.</td><td> </td><td class="right">              for DNS (EDNS(0))", STD 75, RFC 6891, April 2013.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [RMX]      Danisch, H., "The RMX DNS RR Type for light weight sender</td><td> </td><td class="right">   [RMX]      Danisch, H., "The RMX DNS RR Type for light weight sender</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              authentication".</td><td> </td><td class="right">              authentication".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">              Work In Progress</td><td> </td><td class="right">              Work In Progress</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   [Vixie]    Vixie, P., "Repudiating MAIL FROM", 2002.</td><td> </td><td class="right">   [Vixie]    Vixie, P., "Repudiating MAIL FROM", 2002.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0046" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix A.  <span class="delete">Collected ABNF</span></td><td> </td><td class="rblock">Appendix A.  Extended Examples</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   This section is normative and any discrepancies with the ABNF</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   fragments in the preceding text are to be resolved in favor of this</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   grammar.</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   See [RFC5234] for ABNF notation.  Please note that as per this ABNF</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   definition, literal text strings (those in quotes) are case-</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   insensitive.  Hence, "mx" matches "mx", "MX", "mX", and "Mx".</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   record           = version terms *SP</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   version          = "v=spf1"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   terms            = *( 1*SP ( directive / modifier ) )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   directive        = [ qualifier ] mechanism</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   qualifier        = "+" / "-" / "?" / "~"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   mechanism        = ( all / include</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / a / mx / ptr / ip4 / ip6 / exists )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   all              = "all"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   include          = "include"  ":" domain-spec</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   a                = "a"      [ ":" domain-spec ] [ dual-cidr-length ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   mx               = "mx"     [ ":" domain-spec ] [ dual-cidr-length ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ptr              = "ptr"    [ ":" domain-spec ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip4              = "ip4"      ":" ip4-network   [ ip4-cidr-length ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip6              = "ip6"      ":" ip6-network   [ ip6-cidr-length ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   exists           = "exists"   ":" domain-spec</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   modifier         = redirect / explanation / unknown-modifier</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   redirect         = "redirect" "=" domain-spec</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   explanation      = "exp" "=" domain-spec</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   unknown-modifier = name "=" macro-string</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      ; where name is not any known modifier</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip4-cidr-length  = "/" ("0" |  %x31-39 0*1DIGIT) ; value range 0-32</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip6-cidr-length  = "/" ("0" |  %x31-39 0*2DIGIT) ; value range 0-128</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   dual-cidr-length = [ ip4-cidr-length ] [ "/" ip6-cidr-length ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip4-network      = qnum "." qnum "." qnum "." qnum</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   qnum             = DIGIT                 ; 0-9</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / %x31-39 DIGIT       ; 10-99</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / "1" 2DIGIT          ; 100-199</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / "2" %x30-34 DIGIT   ; 200-249</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / "25" %x30-35        ; 250-255</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">            ; conventional dotted quad notation.  e.g., 192.0.2.0</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip6-network      = &lt;as per [RFC 4291], section 2.2&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">            ; e.g., 2001:DB8::CD30</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   domain-spec      = macro-string domain-end</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   domain-end       = ( "." toplabel [ "." ] ) / macro-expand</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   toplabel         = ( *alphanum ALPHA *alphanum ) /</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      ( 1*alphanum "-" *( alphanum / "-" ) alphanum )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      ; LDH rule plus additional TLD restrictions</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      ; (see [RFC3696], Section 2 for background)</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   alphanum         = ALPHA / DIGIT</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   explain-string   = *( macro-string / SP )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   macro-string     = *( macro-expand / macro-literal )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   macro-expand     = ( "%{" macro-letter transformers *delimiter "}" )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / "%%" / "%_" / "%-"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   macro-literal    = %x21-24 / %x26-7E</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      ; visible characters except "%"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   macro-letter     = "s" / "l" / "o" / "d" / "i" / "p" / "h" /</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      "c" / "r" / "t" / "v"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   transformers     = *DIGIT [ "r" ]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   delimiter        = "." / "-" / "+" / "," / "/" / "_" / "="</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   name             = ALPHA *( ALPHA / DIGIT / "-" / "_" / "." )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   header-field     = "Received-SPF:" [CFWS] result FWS [comment FWS]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      [ key-value-list ] CRLF</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   result           = "pass" / "fail" / "softfail" / "neutral" /</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      "none" / "temperror" / "permerror"</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   key-value-list   = key-value-pair *( ";" [CFWS] key-value-pair )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      [";"]</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   key-value-pair   = key [CFWS] "=" ( dot-atom / quoted-string )</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   key              = "client-ip" / "envelope-from" / "helo" /</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      "problem" / "receiver" / "identity" /</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                       "mechanism" / name</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   identity         = "mailfrom"   ; for the "MAIL FROM" identity</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / "helo"     ; for the "HELO" identity</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">                      / name       ; other identities</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   sender           = Mailbox</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ip               = ip4-network / ip6-network</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   ALPHA            = &lt;A-Z / a-z as per [RFC5234]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   DIGIT            = &lt;0-9 as per [RFC5234]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   SP               = &lt;space character as per [RFC5234]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   dot-atom         = &lt;unquoted word as per [RFC5322]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   quoted-string    = &lt;quoted string as per [RFC5322]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   comment          = &lt;comment string as per [RFC5322]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   CFWS             = &lt;comment or folding white space as per [RFC5322]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   FWS              = &lt;folding white space as per [RFC5322]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   CRLF             = &lt;standard end-of-line token as per [RFC5322]&gt;</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete"></span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">Appendix B.</span>  Extended Examples</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These examples are based on the following DNS setup:</td><td> </td><td class="right">   These examples are based on the following DNS setup:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ; A domain with two mail servers, two hosts</td><td> </td><td class="right">   ; A domain with two mail servers, two hosts</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ; and two servers at the domain name</td><td> </td><td class="right">   ; and two servers at the domain name</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   $ORIGIN example.com.</td><td> </td><td class="right">   $ORIGIN example.com.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   @           MX  10 mail-a</td><td> </td><td class="right">   @           MX  10 mail-a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">               MX  20 mail-b</td><td> </td><td class="right">               MX  20 mail-b</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">               A   192.0.2.10</td><td> </td><td class="right">               A   192.0.2.10</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">               A   192.0.2.11</td><td> </td><td class="right">               A   192.0.2.11</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l28" /><small>skipping to change at</small><em> page 60, line 42</em></th><th> </th><th><a name="part-r28" /><small>skipping to change at</small><em> page 61, line 42</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   66          PTR bob.example.com.</td><td> </td><td class="right">   66          PTR bob.example.com.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   129         PTR mail-a.example.com.</td><td> </td><td class="right">   129         PTR mail-a.example.com.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   130         PTR mail-b.example.com.</td><td> </td><td class="right">   130         PTR mail-b.example.com.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   140         PTR mail-c.example.org.</td><td> </td><td class="right">   140         PTR mail-c.example.org.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ; A rogue reverse IP domain that claims to be</td><td> </td><td class="right">   ; A rogue reverse IP domain that claims to be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ; something it's not</td><td> </td><td class="right">   ; something it's not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   $ORIGIN 0.0.10.in-addr.arpa.</td><td> </td><td class="right">   $ORIGIN 0.0.10.in-addr.arpa.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   4           PTR bob.example.com.</td><td> </td><td class="right">   4           PTR bob.example.com.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0047" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">B</span>.1.  Simple Examples</td><td> </td><td class="rblock"><span class="insert">A</span>.1.  Simple Examples</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These examples show various possible published records for</td><td> </td><td class="right">   These examples show various possible published records for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   example.com and which values if &lt;ip&gt; would cause check_host() to</td><td> </td><td class="right">   example.com and which values if &lt;ip&gt; would cause check_host() to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   return "pass".  Note that &lt;domain&gt; is "example.com".</td><td> </td><td class="right">   return "pass".  Note that &lt;domain&gt; is "example.com".</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   v=spf1 +all</td><td> </td><td class="right">   v=spf1 +all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  any &lt;ip&gt; passes</td><td> </td><td class="right">      --  any &lt;ip&gt; passes</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   v=spf1 a -all</td><td> </td><td class="right">   v=spf1 a -all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  hosts 192.0.2.10 and 192.0.2.11 pass</td><td> </td><td class="right">      --  hosts 192.0.2.10 and 192.0.2.11 pass</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l29" /><small>skipping to change at</small><em> page 61, line 35</em></th><th> </th><th><a name="part-r29" /><small>skipping to change at</small><em> page 62, line 35</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  sending host 192.0.2.65 passes (reverse DNS is valid and is in</td><td> </td><td class="right">      --  sending host 192.0.2.65 passes (reverse DNS is valid and is in</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">          example.com)</td><td> </td><td class="right">          example.com)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  sending host 192.0.2.140 fails (reverse DNS is valid, but not</td><td> </td><td class="right">      --  sending host 192.0.2.140 fails (reverse DNS is valid, but not</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">          in example.com)</td><td> </td><td class="right">          in example.com)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  sending host 10.0.0.4 fails (reverse IP is not valid)</td><td> </td><td class="right">      --  sending host 10.0.0.4 fails (reverse IP is not valid)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   v=spf1 ip4:192.0.2.128/28 -all</td><td> </td><td class="right">   v=spf1 ip4:192.0.2.128/28 -all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  sending host 192.0.2.65 fails</td><td> </td><td class="right">      --  sending host 192.0.2.65 fails</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      --  sending host 192.0.2.129 passes</td><td> </td><td class="right">      --  sending host 192.0.2.129 passes</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0048" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">B</span>.2.  Multiple Domain Example</td><td> </td><td class="rblock"><span class="insert">A</span>.2.  Multiple Domain Example</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These examples show the effect of related records:</td><td> </td><td class="right">   These examples show the effect of related records:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      example.org: "v=spf1 include:example.com include:example.net -all"</td><td> </td><td class="right">      example.org: "v=spf1 include:example.com include:example.net -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This record would be used if mail from example.org actually came</td><td> </td><td class="right">   This record would be used if mail from example.org actually came</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   through servers at example.com and example.net.  Example.org's</td><td> </td><td class="right">   through servers at example.com and example.net.  Example.org's</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   designated servers are the union of example.com's and example.net's</td><td> </td><td class="right">   designated servers are the union of example.com's and example.net's</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   designated servers.</td><td> </td><td class="right">   designated servers.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      la.example.org: "v=spf1 redirect=example.org"</td><td> </td><td class="right">      la.example.org: "v=spf1 redirect=example.org"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      ny.example.org: "v=spf1 redirect=example.org"</td><td> </td><td class="right">      ny.example.org: "v=spf1 redirect=example.org"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      sf.example.org: "v=spf1 redirect=example.org"</td><td> </td><td class="right">      sf.example.org: "v=spf1 redirect=example.org"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   These records allow a set of domains that all use the same mail</td><td> </td><td class="right">   These records allow a set of domains that all use the same mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   system to make use of that mail system's record.  In this way, only</td><td> </td><td class="right">   system to make use of that mail system's record.  In this way, only</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the mail system's record needs to be updated when the mail setup</td><td> </td><td class="right">   the mail system's record needs to be updated when the mail setup</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   changes.  These domains' records never have to change.</td><td> </td><td class="right">   changes.  These domains' records never have to change.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0049" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">B</span>.3.  DNSBL Style Example</td><td> </td><td class="rblock"><span class="insert">A</span>.3.  DNSBL Style Example</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Imagine that, in addition to the domain records listed above, there</td><td> </td><td class="right">   Imagine that, in addition to the domain records listed above, there</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   are these (see [RFC5782]):</td><td> </td><td class="right">   are these (see [RFC5782]):</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   $ORIGIN _spf.example.com.</td><td> </td><td class="right">   $ORIGIN _spf.example.com.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mary.mobile-users                   A 127.0.0.2</td><td> </td><td class="right">   mary.mobile-users                   A 127.0.0.2</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   fred.mobile-users                   A 127.0.0.2</td><td> </td><td class="right">   fred.mobile-users                   A 127.0.0.2</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   15.15.168.192.joel.remote-users     A 127.0.0.2</td><td> </td><td class="right">   15.15.168.192.joel.remote-users     A 127.0.0.2</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   16.15.168.192.joel.remote-users     A 127.0.0.2</td><td> </td><td class="right">   16.15.168.192.joel.remote-users     A 127.0.0.2</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l30" /><small>skipping to change at</small><em> page 62, line 36</em></th><th> </th><th><a name="part-r30" /><small>skipping to change at</small><em> page 63, line 36</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">          -all</td><td> </td><td class="right">          -all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mobile-users._spf.example.com:</td><td> </td><td class="right">   mobile-users._spf.example.com:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   v=spf1 exists:%{l1r+}.%{d}</td><td> </td><td class="right">   v=spf1 exists:%{l1r+}.%{d}</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   remote-users._spf.example.com:</td><td> </td><td class="right">   remote-users._spf.example.com:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   v=spf1 exists:%{ir}.%{l1r+}.%{d}</td><td> </td><td class="right">   v=spf1 exists:%{ir}.%{l1r+}.%{d}</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0050" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">B</span>.4.  Multiple Requirements Example</td><td> </td><td class="rblock"><span class="insert">A</span>.4.  Multiple Requirements Example</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Say that your sender policy requires both that the IP address is</td><td> </td><td class="right">   Say that your sender policy requires both that the IP address is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   within a certain range and that the reverse DNS for the IP matches.</td><td> </td><td class="right">   within a certain range and that the reverse DNS for the IP matches.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This can be done several ways, including the following:</td><td> </td><td class="right">   This can be done several ways, including the following:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   example.com.           SPF  ( "v=spf1 "</td><td> </td><td class="right">   example.com.           SPF  ( "v=spf1 "</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                                 "-include:ip4._spf.%{d} "</td><td> </td><td class="right">                                 "-include:ip4._spf.%{d} "</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                                 "-include:ptr._spf.%{d} "</td><td> </td><td class="right">                                 "-include:ptr._spf.%{d} "</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">                                 "+all" )</td><td> </td><td class="right">                                 "+all" )</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ip4._spf.example.com.  SPF  "v=spf1 -ip4:192.0.2.0/24 +all"</td><td> </td><td class="right">   ip4._spf.example.com.  SPF  "v=spf1 -ip4:192.0.2.0/24 +all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   ptr._spf.example.com.  SPF  "v=spf1 -ptr +all"</td><td> </td><td class="right">   ptr._spf.example.com.  SPF  "v=spf1 -ptr +all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This example shows how the "-include" mechanism can be useful, how an</td><td> </td><td class="right">   This example shows how the "-include" mechanism can be useful, how an</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF record that ends in "+all" can be very restrictive, and the use</td><td> </td><td class="right">   SPF record that ends in "+all" can be very restrictive, and the use</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of De Morgan's Law.</td><td> </td><td class="right">   of De Morgan's Law.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0051" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">C</span>.  Changes in implementation requirements from RFC 4408</td><td> </td><td class="rblock">Appendix <span class="insert">B</span>.  Changes in implementation requirements from RFC 4408</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The modifications to implementation requirements from [RFC4408] are</td><td> </td><td class="right">   The modifications to implementation requirements from [RFC4408] are</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   all either (a) corrections to errors in [RFC4408], or (b) additional</td><td> </td><td class="right">   all either (a) corrections to errors in [RFC4408], or (b) additional</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   documentation based on consensus of operational experience acquired</td><td> </td><td class="right">   documentation based on consensus of operational experience acquired</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   since publication of [RFC4408].</td><td> </td><td class="right">   since publication of [RFC4408].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Use of DNS RR type SPF (99) has been removed from the protocol,</td><td> </td><td class="right">   o  Use of DNS RR type SPF (99) has been removed from the protocol,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      see [RFC6686] for background.</td><td> </td><td class="right">      see [RFC6686] for background.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  A new DNS related processing limit based on "void lookups" has</td><td> </td><td class="right">   o  A new DNS related processing limit based on "void lookups" has</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l31" /><small>skipping to change at</small><em> page 63, line 28</em></th><th> </th><th><a name="part-r31" /><small>skipping to change at</small><em> page 64, line 28</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Use of the ptr mechanism and the %p macro have been strongly</td><td> </td><td class="right">   o  Use of the ptr mechanism and the %p macro have been strongly</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      discouraged Section 5.5 and Section 7.2.  They remain part of the</td><td> </td><td class="right">      discouraged Section 5.5 and Section 7.2.  They remain part of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      protocol because they were found to be in use, but records ought</td><td> </td><td class="right">      protocol because they were found to be in use, but records ought</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      to be updated to avoid them.</td><td> </td><td class="right">      to be updated to avoid them.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Use of the "Authentication-Results" header field [RFC5451] as a</td><td> </td><td class="right">   o  Use of the "Authentication-Results" header field [RFC5451] as a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      possible alternative to use of the "Received-SPF" header field is</td><td> </td><td class="right">      possible alternative to use of the "Received-SPF" header field is</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      discussed (Section 9.2).</td><td> </td><td class="right">      discussed (Section 9.2).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  There have been a number of minor corrections to the ABNF to make</td><td> </td><td class="right">   o  There have been a number of minor corrections to the ABNF to make</td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0052" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">      it more clear and correct <span class="delete">Appendix A</span>.  SPF library implementers</td><td> </td><td class="rblock">      it more clear and correct <span class="insert">Section 12</span>.  SPF library implementers</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      should give the revised ABNF a careful review to determine if</td><td> </td><td class="right">      should give the revised ABNF a careful review to determine if</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      implementation changes are needed.</td><td> </td><td class="right">      implementation changes are needed.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Use of X- fields in the ABNF has been removed see [RFC6648] for</td><td> </td><td class="right">   o  Use of X- fields in the ABNF has been removed see [RFC6648] for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      background.</td><td> </td><td class="right">      background.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Ambiguity about how to deal with invalid domain-spec after macro</td><td> </td><td class="right">   o  Ambiguity about how to deal with invalid domain-spec after macro</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      expansion has been documented.  Depending on one specific behavior</td><td> </td><td class="right">      expansion has been documented.  Depending on one specific behavior</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      has to be avoided (Section 4.8).</td><td> </td><td class="right">      has to be avoided (Section 4.8).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  General operational information has been updated and expanded</td><td> </td><td class="right">   o  General operational information has been updated and expanded</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      based on eight years of post [RFC4408] operations experience.  See</td><td> </td><td class="right">      based on eight years of post [RFC4408] operations experience.  See</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Section 10 and Appendices D - H below.</td><td> </td><td class="right">      Section 10 and Appendices D - H below.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Security considerations have been reviewed and updated</td><td> </td><td class="right">   o  Security considerations have been reviewed and updated</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      (Section 11).</td><td> </td><td class="right">      (Section 11).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0053" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">D</span>.  Further Testing Advice</td><td> </td><td class="rblock">Appendix <span class="insert">C</span>.  Further Testing Advice</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Another approach that can be helpful to publish records that include</td><td> </td><td class="right">   Another approach that can be helpful to publish records that include</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a "tracking exists:" mechanism.  By looking at the name server logs,</td><td> </td><td class="right">   a "tracking exists:" mechanism.  By looking at the name server logs,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a rough list can then be generated.  For example:</td><td> </td><td class="right">   a rough list can then be generated.  For example:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      v=spf1 exists:_h.%{h}._l.%{l}._o.%{o}._i.%{i}._spf.%{d} ?all</td><td> </td><td class="right">      v=spf1 exists:_h.%{h}._l.%{l}._o.%{o}._i.%{i}._spf.%{d} ?all</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0054" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">E.</span>  SPF/Mediator Interactions</td><td> </td><td class="rblock">   <span class="insert">This associated macro expansion would cause the sending helo domain,</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   localpart of the sending email address, domain part of the sending</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   email address, and the IP address from which the connection was</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   received to be embdedded in an SPF query and logged in the sender's</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   DNS logs.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert"></span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   This approach, which has been used since very early in the SPF</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   project, allows senders to unilaterally collect data to evaluate the</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   correctness of their SPF records.  Unlike newer feedback mechanisms,</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   it does not require an special cooperation from SPF verifiers.  A</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   similar example, one of the earliest SPF records published, can still</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock"><span class="insert">   be found as of this writing at altavista.net.</span></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">Appendix <span class="insert">D.</span>  SPF/Mediator Interactions</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There are three places that techniques can be used to ameliorate</td><td> </td><td class="right">   There are three places that techniques can be used to ameliorate</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   unintended SPF failures with mediators.</td><td> </td><td class="right">   unintended SPF failures with mediators.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0055" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">E</span>.1.  Originating ADMDs</td><td> </td><td class="rblock"><span class="insert">D</span>.1.  Originating ADMDs</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The beginning, when email is first sent:</td><td> </td><td class="right">   The beginning, when email is first sent:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  "Neutral" results could be given for IP addresses that might be</td><td> </td><td class="right">   o  "Neutral" results could be given for IP addresses that might be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      forwarders, instead of "fail" results based on a list of known</td><td> </td><td class="right">      forwarders, instead of "fail" results based on a list of known</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      reliable forwarders.  For example:</td><td> </td><td class="right">      reliable forwarders.  For example:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0056" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">         "v=spf1 mx ?exists:%{ir}.whitlist.example.org -all"</td><td> </td><td class="rblock">         "v=spf1 mx ?exists:%{ir}.whit<span class="insert">e</span>list.example.org -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      This would cause a lookup on an DNS white list (DNSWL) and cause a</td><td> </td><td class="right">      This would cause a lookup on an DNS white list (DNSWL) and cause a</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      result of "fail" only for email not either coming from the</td><td> </td><td class="right">      result of "fail" only for email not either coming from the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      domain's mx host(s) (SPF pass) or white listed sources (SPF</td><td> </td><td class="right">      domain's mx host(s) (SPF pass) or white listed sources (SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      neutral).  This, in effect, outsources an element of sender policy</td><td> </td><td class="right">      neutral).  This, in effect, outsources an element of sender policy</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      to the maintainer of the whitelist.</td><td> </td><td class="right">      to the maintainer of the whitelist.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  The "MAIL FROM" identity could have additional information in the</td><td> </td><td class="right">   o  The "MAIL FROM" identity could have additional information in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      local-part that cryptographically identifies the mail as coming</td><td> </td><td class="right">      local-part that cryptographically identifies the mail as coming</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      from an authorized source.  In this case, such an SPF record could</td><td> </td><td class="right">      from an authorized source.  In this case, such an SPF record could</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l32" /><small>skipping to change at</small><em> page 66, line 7</em></th><th> </th><th><a name="part-r32" /><small>skipping to change at</small><em> page 67, line 7</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      rate-limit the email coming from unexpected IP addresses.</td><td> </td><td class="right">      rate-limit the email coming from unexpected IP addresses.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">         "v=spf1 mx exists:%{ir}._spf_rate.%{d} -all"</td><td> </td><td class="right">         "v=spf1 mx exists:%{ir}._spf_rate.%{d} -all"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  SPF allows the creation of per-user policies for special cases.</td><td> </td><td class="right">   o  SPF allows the creation of per-user policies for special cases.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      For example, the following SPF record and appropriate wildcard DNS</td><td> </td><td class="right">      For example, the following SPF record and appropriate wildcard DNS</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      records can be used:</td><td> </td><td class="right">      records can be used:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">         "v=spf1 mx redirect=%{l1r+}._at_.%{o}._spf.%{d}"</td><td> </td><td class="right">         "v=spf1 mx redirect=%{l1r+}._at_.%{o}._spf.%{d}"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0057" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">E</span>.2.  Mediators</td><td> </td><td class="rblock"><span class="insert">D</span>.2.  Mediators</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The middle, when email is forwarded:.</td><td> </td><td class="right">   The middle, when email is forwarded:.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Mediators can solve the problem by rewriting the "MAIL FROM" to be</td><td> </td><td class="right">   o  Mediators can solve the problem by rewriting the "MAIL FROM" to be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      in their own domain.  This means mail rejected from the external</td><td> </td><td class="right">      in their own domain.  This means mail rejected from the external</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      mailbox will have to be forwarded back to the original sender by</td><td> </td><td class="right">      mailbox will have to be forwarded back to the original sender by</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      the forwarding service.  Various schemes to do this exist though</td><td> </td><td class="right">      the forwarding service.  Various schemes to do this exist though</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      they vary widely in complexity and resource requirements on the</td><td> </td><td class="right">      they vary widely in complexity and resource requirements on the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      part of the mediator.</td><td> </td><td class="right">      part of the mediator.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l33" /><small>skipping to change at</small><em> page 66, line 29</em></th><th> </th><th><a name="part-r33" /><small>skipping to change at</small><em> page 67, line 29</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      "mailing list" semantics by configuring an additional alias with</td><td> </td><td class="right">      "mailing list" semantics by configuring an additional alias with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      "owner-" prepended to the original alias name (e.g., an alias of</td><td> </td><td class="right">      "owner-" prepended to the original alias name (e.g., an alias of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      "friends: george@example.com, fred@example.org" would need another</td><td> </td><td class="right">      "friends: george@example.com, fred@example.org" would need another</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      alias of the form "owner-friends: localowner").</td><td> </td><td class="right">      alias of the form "owner-friends: localowner").</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Mediators could reject mail that would "fail" SPF if forwarded</td><td> </td><td class="right">   o  Mediators could reject mail that would "fail" SPF if forwarded</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      using an SMTP reply code of 551, User not local, (see [RFC5321]</td><td> </td><td class="right">      using an SMTP reply code of 551, User not local, (see [RFC5321]</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      section 3.4) to communicate the correct target address to resend</td><td> </td><td class="right">      section 3.4) to communicate the correct target address to resend</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      the mail to.</td><td> </td><td class="right">      the mail to.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0058" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">E.3.  Rece</span>ving ADMDs</td><td> </td><td class="rblock"><span class="insert">D.3.  Recei</span>ving ADMDs</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The end, when email is received:</td><td> </td><td class="right">   The end, when email is received:</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  If the owner of the external mailbox wishes to trust the mediator,</td><td> </td><td class="right">   o  If the owner of the external mailbox wishes to trust the mediator,</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      he can direct the external mailbox's MTA to skip SPF tests when</td><td> </td><td class="right">      he can direct the external mailbox's MTA to skip SPF tests when</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      the client host belongs to the mediator.</td><td> </td><td class="right">      the client host belongs to the mediator.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  Tests against other identities, such as the "HELO" identity, can</td><td> </td><td class="right">   o  Tests against other identities, such as the "HELO" identity, can</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      be used to override a failed test against the "MAIL FROM"</td><td> </td><td class="right">      be used to override a failed test against the "MAIL FROM"</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      identity.</td><td> </td><td class="right">      identity.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   o  For larger domains, it might not be possible to have a complete or</td><td> </td><td class="right">   o  For larger domains, it might not be possible to have a complete or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      accurate list of forwarding services used by the owners of the</td><td> </td><td class="right">      accurate list of forwarding services used by the owners of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      domain's mailboxes.  In such cases, whitelists of generally-</td><td> </td><td class="right">      domain's mailboxes.  In such cases, whitelists of generally-</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      recognized forwarding services could be employed.</td><td> </td><td class="right">      recognized forwarding services could be employed.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0059" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">F</span>.  Mail Services</td><td> </td><td class="rblock">Appendix <span class="insert">E</span>.  Mail Services</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MSPs (Mail Service Providers - [RFC5598] Section 2.3) that offer mail</td><td> </td><td class="right">   MSPs (Mail Service Providers - [RFC5598] Section 2.3) that offer mail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   services to third-party domains, such as sending of bulk mail, might</td><td> </td><td class="right">   services to third-party domains, such as sending of bulk mail, might</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   want to adjust their configurations in light of the authorization</td><td> </td><td class="right">   want to adjust their configurations in light of the authorization</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   check described in this document.  If the domain part of the "MAIL</td><td> </td><td class="right">   check described in this document.  If the domain part of the "MAIL</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   FROM" identity used for such email uses the domain of one of the MSPs</td><td> </td><td class="right">   FROM" identity used for such email uses the domain of one of the MSPs</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   domain, then the provider needs only to ensure that its sending host</td><td> </td><td class="right">   domain, then the provider needs only to ensure that its sending host</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   is authorized by its own SPF record, if any.</td><td> </td><td class="right">   is authorized by its own SPF record, if any.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   If the "MAIL FROM" identity does not use the MSP's domain, then extra</td><td> </td><td class="right">   If the "MAIL FROM" identity does not use the MSP's domain, then extra</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   care has to be taken.  The SPF record format has several options for</td><td> </td><td class="right">   care has to be taken.  The SPF record format has several options for</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the third-party domain to authorize the service provider's MTAs to</td><td> </td><td class="right">   the third-party domain to authorize the service provider's MTAs to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   send mail on its behalf.  For MSPs, such as ISPs, that have a wide</td><td> </td><td class="right">   send mail on its behalf.  For MSPs, such as ISPs, that have a wide</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   variety of customers using the same MTA, steps are required to</td><td> </td><td class="right">   variety of customers using the same MTA, steps are required to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   mitigate the risk of cross-customer forgery (see Section 11.4).</td><td> </td><td class="right">   mitigate the risk of cross-customer forgery (see Section 11.4).</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0060" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">G</span>.  MTA Relays</td><td> </td><td class="rblock">Appendix <span class="insert">F</span>.  MTA Relays</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Relays are described in [RFC5598] Section 2.2.2.  The authorization</td><td> </td><td class="right">   Relays are described in [RFC5598] Section 2.2.2.  The authorization</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   check generally precludes the use of arbitrary MTA relays between</td><td> </td><td class="right">   check generally precludes the use of arbitrary MTA relays between</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   sender and receiver of an email message.</td><td> </td><td class="right">   sender and receiver of an email message.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Within an organization, MTA relays can be effectively deployed.</td><td> </td><td class="right">   Within an organization, MTA relays can be effectively deployed.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   However, for purposes of this document, such relays are effectively</td><td> </td><td class="right">   However, for purposes of this document, such relays are effectively</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   transparent.  The SPF authorization check is a check between border</td><td> </td><td class="right">   transparent.  The SPF authorization check is a check between border</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   MTAs of different ADMDs.</td><td> </td><td class="right">   MTAs of different ADMDs.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l34" /><small>skipping to change at</small><em> page 69, line 5</em></th><th> </th><th><a name="part-r34" /><small>skipping to change at</small><em> page 70, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   relayed mail stream) then do not perform the authorization test.  To</td><td> </td><td class="right">   relayed mail stream) then do not perform the authorization test.  To</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   perform the authorization test other than at the boundary, the host</td><td> </td><td class="right">   perform the authorization test other than at the boundary, the host</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   that first transferred the message to the receiving ADMD have to be</td><td> </td><td class="right">   that first transferred the message to the receiving ADMD have to be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   determined, which can be difficult to extract from the message header</td><td> </td><td class="right">   determined, which can be difficult to extract from the message header</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   because (a) header fields can be forged or malformed, and (b) there's</td><td> </td><td class="right">   because (a) header fields can be forged or malformed, and (b) there's</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   no standard way to encode that information such that it can be</td><td> </td><td class="right">   no standard way to encode that information such that it can be</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   reliably extracted.  Testing other than at the boundary is likely to</td><td> </td><td class="right">   reliably extracted.  Testing other than at the boundary is likely to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   produce unreliable results.  This is described further in Appendix C</td><td> </td><td class="right">   produce unreliable results.  This is described further in Appendix C</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of [RFC5451].</td><td> </td><td class="right">   of [RFC5451].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0061" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">H</span>.  Local Policy Considerations</td><td> </td><td class="rblock">Appendix <span class="insert">G</span>.  Local Policy Considerations</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF results can be used in combination with other methods to</td><td> </td><td class="right">   SPF results can be used in combination with other methods to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   determine the final local disposition (either positive or negative of</td><td> </td><td class="right">   determine the final local disposition (either positive or negative of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a message.  It can also be considered dispositive on its own.</td><td> </td><td class="right">   a message.  It can also be considered dispositive on its own.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0062" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">H</span>.1.  Policy For SPF Pass</td><td> </td><td class="rblock"><span class="insert">G</span>.1.  Policy For SPF Pass</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF pass results can be used in combination with "white lists" of</td><td> </td><td class="right">   SPF pass results can be used in combination with "white lists" of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   known "good" domains to bypass some or all additional pre-delivery</td><td> </td><td class="right">   known "good" domains to bypass some or all additional pre-delivery</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   email checks.  Exactly which checks and how to determine appropriate</td><td> </td><td class="right">   email checks.  Exactly which checks and how to determine appropriate</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   white list entries has to be based on local conditions and</td><td> </td><td class="right">   white list entries has to be based on local conditions and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   requirements.</td><td> </td><td class="right">   requirements.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0063" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">H</span>.2.  Policy For SPF Fail</td><td> </td><td class="rblock"><span class="insert">G</span>.2.  Policy For SPF Fail</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF fail results can be used to reject messages during the SMTP</td><td> </td><td class="right">   SPF fail results can be used to reject messages during the SMTP</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   transaction based on either "MAIL FROM" or "HELO" identity results.</td><td> </td><td class="right">   transaction based on either "MAIL FROM" or "HELO" identity results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   This reduces resource requirements for various content filtering</td><td> </td><td class="right">   This reduces resource requirements for various content filtering</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   methods and conserves bandwidth since rejection can be done before</td><td> </td><td class="right">   methods and conserves bandwidth since rejection can be done before</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the SMTP content is transferred.  It also gives immediate feedback to</td><td> </td><td class="right">   the SMTP content is transferred.  It also gives immediate feedback to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the sender who might then be able to resolve the issue.  Due to some</td><td> </td><td class="right">   the sender who might then be able to resolve the issue.  Due to some</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   of the issues described above in this section (Section 10), SPF based</td><td> </td><td class="right">   of the issues described above in this section (Section 10), SPF based</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   rejection does present some risk of rejecting legitimate email when</td><td> </td><td class="right">   rejection does present some risk of rejecting legitimate email when</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   rejecting based on "MAIL FROM" results.</td><td> </td><td class="right">   rejecting based on "MAIL FROM" results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l35" /><small>skipping to change at</small><em> page 70, line 5</em></th><th> </th><th><a name="part-r35" /><small>skipping to change at</small><em> page 71, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   might result in email that was not authorized by the sending ADMD</td><td> </td><td class="right">   might result in email that was not authorized by the sending ADMD</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   being unknowingly delivered to end users.</td><td> </td><td class="right">   being unknowingly delivered to end users.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Either general approach can be used as they both leave a clear</td><td> </td><td class="right">   Either general approach can be used as they both leave a clear</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   disposition of emails.  They are either delivered in some manner or</td><td> </td><td class="right">   disposition of emails.  They are either delivered in some manner or</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the sender is notified of the failure.  Other dispositions such as</td><td> </td><td class="right">   the sender is notified of the failure.  Other dispositions such as</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   "dropping" or deleting email after acceptance are inappropriate</td><td> </td><td class="right">   "dropping" or deleting email after acceptance are inappropriate</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   because they leave uncertainty and reduce the overall reliability and</td><td> </td><td class="right">   because they leave uncertainty and reduce the overall reliability and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   utility of email across the Internet.</td><td> </td><td class="right">   utility of email across the Internet.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0064" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">H</span>.3.  Policy For SPF Permerror</td><td> </td><td class="rblock"><span class="insert">G</span>.3.  Policy For SPF Permerror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "permerror" result (see Section 2.6.7) indicates the SPF</td><td> </td><td class="right">   The "permerror" result (see Section 2.6.7) indicates the SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   processing module at the receiver determined that the retrieved SPF</td><td> </td><td class="right">   processing module at the receiver determined that the retrieved SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   policy record could not be interpreted.  This gives no true</td><td> </td><td class="right">   policy record could not be interpreted.  This gives no true</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   indication about the authorized use of the data found in the</td><td> </td><td class="right">   indication about the authorized use of the data found in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   envelope.</td><td> </td><td class="right">   envelope.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As with all results, implementers have a choice to make regarding</td><td> </td><td class="right">   As with all results, implementers have a choice to make regarding</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   what to do with a message that yields this result.  SMTP allows only</td><td> </td><td class="right">   what to do with a message that yields this result.  SMTP allows only</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a few basic options.</td><td> </td><td class="right">   a few basic options.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l36" /><small>skipping to change at</small><em> page 70, line 41</em></th><th> </th><th><a name="part-r36" /><small>skipping to change at</small><em> page 71, line 41</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There is of course the option placing this choice in the hands of the</td><td> </td><td class="right">   There is of course the option placing this choice in the hands of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF verifier operator rather than the implementer since this kind of</td><td> </td><td class="right">   SPF verifier operator rather than the implementer since this kind of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   choice is often a matter of local policy rather than a condition with</td><td> </td><td class="right">   choice is often a matter of local policy rather than a condition with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a universal solution, but this adds one more piece of complexity to</td><td> </td><td class="right">   a universal solution, but this adds one more piece of complexity to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   an already non-trivial environment.</td><td> </td><td class="right">   an already non-trivial environment.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Both implementers and SPF verfier operators need to be cautious of</td><td> </td><td class="right">   Both implementers and SPF verfier operators need to be cautious of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   all choices and outcomes when handling SPF results.</td><td> </td><td class="right">   all choices and outcomes when handling SPF results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0065" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">H</span>.4.  Policy For SPF Temperror</td><td> </td><td class="rblock"><span class="insert">G</span>.4.  Policy For SPF Temperror</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   The "temperror" result (see Section 2.6.6) indicates the SPF</td><td> </td><td class="right">   The "temperror" result (see Section 2.6.6) indicates the SPF</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   processing module at the receiver could not retrieve and SPF policy</td><td> </td><td class="right">   processing module at the receiver could not retrieve and SPF policy</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   record due to a (probably) transient condition.  This gives no true</td><td> </td><td class="right">   record due to a (probably) transient condition.  This gives no true</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   indication about the authorized use of the data found in the</td><td> </td><td class="right">   indication about the authorized use of the data found in the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   envelope.</td><td> </td><td class="right">   envelope.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   As with all results, implementers have a choice to make regarding</td><td> </td><td class="right">   As with all results, implementers have a choice to make regarding</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   what to do with a message that yields this result.  SMTP allows only</td><td> </td><td class="right">   what to do with a message that yields this result.  SMTP allows only</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a few basic options.</td><td> </td><td class="right">   a few basic options.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l37" /><small>skipping to change at</small><em> page 72, line 5</em></th><th> </th><th><a name="part-r37" /><small>skipping to change at</small><em> page 73, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There is of course the option placing this choice in the hands of the</td><td> </td><td class="right">   There is of course the option placing this choice in the hands of the</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF verifier operator rather than the implementer since this kind of</td><td> </td><td class="right">   SPF verifier operator rather than the implementer since this kind of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   choice is often a matter of local policy rather than a condition with</td><td> </td><td class="right">   choice is often a matter of local policy rather than a condition with</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   a universal solution, but this adds one more piece of complexity to</td><td> </td><td class="right">   a universal solution, but this adds one more piece of complexity to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   an already non-trivial environment.</td><td> </td><td class="right">   an already non-trivial environment.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   Both implementers and SPF verifier operators need to be cautious of</td><td> </td><td class="right">   Both implementers and SPF verifier operators need to be cautious of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   all choices and outcomes when handling SPF results.</td><td> </td><td class="right">   all choices and outcomes when handling SPF results.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0066" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">I</span>.  Protocol Status</td><td> </td><td class="rblock">Appendix <span class="insert">H</span>.  Protocol Status</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   NOTE TO RFC EDITOR: To be removed prior to publication.</td><td> </td><td class="right">   NOTE TO RFC EDITOR: To be removed prior to publication.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF has been in development since the summer of 2003 and has seen</td><td> </td><td class="right">   SPF has been in development since the summer of 2003 and has seen</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   deployment beyond the developers beginning in December 2003.  The</td><td> </td><td class="right">   deployment beyond the developers beginning in December 2003.  The</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   design of SPF slowly evolved until the spring of 2004 and has since</td><td> </td><td class="right">   design of SPF slowly evolved until the spring of 2004 and has since</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   stabilized.  There have been quite a number of forms of SPF, some</td><td> </td><td class="right">   stabilized.  There have been quite a number of forms of SPF, some</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   written up as documents, some submitted as Internet Drafts, and many</td><td> </td><td class="right">   written up as documents, some submitted as Internet Drafts, and many</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   discussed and debated in development forums.  The protocol was</td><td> </td><td class="right">   discussed and debated in development forums.  The protocol was</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   originally defined in [RFC4408], which this document replaces.</td><td> </td><td class="right">   originally defined in [RFC4408], which this document replaces.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
      <tr bgcolor="gray" ><td></td><th><a name="part-l38" /><small>skipping to change at</small><em> page 73, line 5</em></th><th> </th><th><a name="part-r38" /><small>skipping to change at</small><em> page 74, line 5</em></th><td></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   SPF is widely deployed by large and small email providers alike.</td><td> </td><td class="right">   SPF is widely deployed by large and small email providers alike.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   There are multiple, interoperable implementations.</td><td> </td><td class="right">   There are multiple, interoperable implementations.</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   For SPF (as documented in RFC 4408) a careful effort was made to</td><td> </td><td class="right">   For SPF (as documented in RFC 4408) a careful effort was made to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   collect and document lessons learned and errata during the two year</td><td> </td><td class="right">   collect and document lessons learned and errata during the two year</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   period.  The errata list has been stable (no new submissions) and</td><td> </td><td class="right">   period.  The errata list has been stable (no new submissions) and</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   only minor protocol lessons learned were identified.  Resolution of</td><td> </td><td class="right">   only minor protocol lessons learned were identified.  Resolution of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   the IESG's experiment is documented in [RFC6686].</td><td> </td><td class="right">   the IESG's experiment is documented in [RFC6686].</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td><a name="diff0067" /></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="lblock">Appendix <span class="delete">J</span>.  Change History</td><td> </td><td class="rblock">Appendix <span class="insert">I</span>.  Change History</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   NOTE TO RFC EDITOR: Changes since RFC 4408 (to be removed prior to</td><td> </td><td class="right">   NOTE TO RFC EDITOR: Changes since RFC 4408 (to be removed prior to</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">   publication)</td><td> </td><td class="right">   publication)</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Moved to standards track</td><td> </td><td class="right">      Moved to standards track</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      Authors updated</td><td> </td><td class="right">      Authors updated</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      IESG Note regarding experimental use replaced with discussion of</td><td> </td><td class="right">      IESG Note regarding experimental use replaced with discussion of</td><td class="lineno" valign="top"></td></tr>
      <tr><td class="lineno" valign="top"></td><td class="left">      results</td><td> </td><td class="right">      results</td><td class="lineno" valign="top"></td></tr>

     <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
     <tr bgcolor="gray"><th colspan="5" align="center"><a name="end">&nbsp;End of changes. 67 change blocks.&nbsp;</a></th></tr>
     <tr class="stats"><td></td><th><i>310 lines changed or deleted</i></th><th><i> </i></th><th><i>351 lines changed or added</i></th><td></td></tr>
     <tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.41. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/" >http://tools.ietf.org/tools/rfcdiff/</a> </td></tr>
   </table>
   </body>
   </html>

--nextPart2796661.iiajMldlZ8--


From internet-drafts@ietf.org  Wed Sep 25 22:40:14 2013
Return-Path: <internet-drafts@ietf.org>
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 580F121F9AF0; Wed, 25 Sep 2013 22:40:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.563
X-Spam-Level: 
X-Spam-Status: No, score=-102.563 tagged_above=-999 required=5 tests=[AWL=0.037, BAYES_00=-2.599, NO_RELAYS=-0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id t99CjsNwl8Mg; Wed, 25 Sep 2013 22:40:13 -0700 (PDT)
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id E511E11E8140; Wed, 25 Sep 2013 22:40:10 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
From: internet-drafts@ietf.org
To: i-d-announce@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 4.72
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <20130926054010.30938.10948.idtracker@ietfa.amsl.com>
Date: Wed, 25 Sep 2013 22:40:10 -0700
Cc: spfbis@ietf.org
Subject: [spfbis] I-D Action: draft-ietf-spfbis-4408bis-21.txt
X-BeenThere: spfbis@ietf.org
X-Mailman-Version: 2.1.12
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: Thu, 26 Sep 2013 05:40:14 -0000

A New Internet-Draft is available from the on-line Internet-Drafts director=
ies.
 This draft is a work item of the SPF Update Working Group of the IETF.

	Title           : Sender Policy Framework (SPF) for Authorizing Use of Dom=
ains in Email, Version 1
	Author(s)       : Scott Kitterman
	Filename        : draft-ietf-spfbis-4408bis-21.txt
	Pages           : 77
	Date            : 2013-09-25

Abstract:
   Email on the Internet can be forged in a number of ways.  In
   particular, existing protocols place no restriction on what a sending
   host can use as the "MAIL FROM" of a message or the domain given on
   the SMTP HELO/EHLO commands.  This document describes version 1 of
   the Sender Policy Framework (SPF) protocol, whereby ADministrative
   Management Domains (ADMDs) can explicitly authorize the hosts that
   are allowed to use its domain names, and a receiving host can check
   such authorization.

   This document obsoletes RFC4408.


The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-ietf-spfbis-4408bis

There's also a htmlized version available at:
http://tools.ietf.org/html/draft-ietf-spfbis-4408bis-21

A diff from the previous version is available at:
http://www.ietf.org/rfcdiff?url2=3Ddraft-ietf-spfbis-4408bis-21


Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/


From spf2@kitterman.com  Wed Sep 25 22:42:30 2013
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 12F5B21F935A for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 22:42:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.295
X-Spam-Level: 
X-Spam-Status: No, score=-2.295 tagged_above=-999 required=5 tests=[AWL=0.304,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CPoA3khLf512 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 22:42:25 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id 0136121F9AF0 for <spfbis@ietf.org>; Wed, 25 Sep 2013 22:42:22 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 71E6320E40D3; Thu, 26 Sep 2013 01:42:21 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1380174141; bh=EzkWTx6Z7dD69nof0rh+BLAY9IvIuPa8S38mJZW1J/A=; h=From:To:Subject:Date:In-Reply-To:References:From; b=EG3I9X7OcUqgFfxs75dRF2zpWrM1Kxou42bTUBJBzyyqBrnTNUiM5k5BIpwUFLHNd P9tT79xvN7z8vBbe+kkjzqtaXpmVWPM3RXUV8PRPu406ralFS56TLkPcuAmC76R4q7 cIrfkoqVQvmAhdY3IMKY8E+QrQLwr/mS/fr2dpmo=
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 5BF1A20E40C4;  Thu, 26 Sep 2013 01:42:21 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Thu, 26 Sep 2013 01:42:21 -0400
Message-ID: <1710927.iDJcxKNrn7@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <20130926054010.30938.10948.idtracker@ietfa.amsl.com>
References: <20130926054010.30938.10948.idtracker@ietfa.amsl.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] I-D Action: draft-ietf-spfbis-4408bis-21.txt
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: Thu, 26 Sep 2013 05:42:30 -0000

On Wednesday, September 25, 2013 22:40:10 internet-drafts@ietf.org wrote:
> A New Internet-Draft is available from the on-line Internet-Drafts
> directories. This draft is a work item of the SPF Update Working Group of
> the IETF.
> 
> 	Title           : Sender Policy Framework (SPF) for Authorizing Use of
> Domains in Email, Version 1 Author(s)       : Scott Kitterman
> 	Filename        : draft-ietf-spfbis-4408bis-21.txt
> 	Pages           : 77
> 	Date            : 2013-09-25

The is the same as the last diff I posted.

Scott K

From superuser@gmail.com  Wed Sep 25 22:58:00 2013
Return-Path: <superuser@gmail.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 71BEA21F9228 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 22:58:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.507
X-Spam-Level: 
X-Spam-Status: No, score=-2.507 tagged_above=-999 required=5 tests=[AWL=0.092,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wZ39sSPh9xXD for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 22:57:59 -0700 (PDT)
Received: from mail-wg0-x231.google.com (mail-wg0-x231.google.com [IPv6:2a00:1450:400c:c00::231]) by ietfa.amsl.com (Postfix) with ESMTP id 4DAF121F9346 for <spfbis@ietf.org>; Wed, 25 Sep 2013 22:57:59 -0700 (PDT)
Received: by mail-wg0-f49.google.com with SMTP id l18so619114wgh.28 for <spfbis@ietf.org>; Wed, 25 Sep 2013 22:57:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=4xZ1oYl2Secfhdp6Mqe6tF9Nia4WutQKgIa6Y7Caxqs=; b=a6Uo8TthtURnbWOPMbJvmUPo97c5iyalnKk5t7AWsQF//SJtH4sqa91Pk5W8xnibOq J5nQuFYiw27H6zO36fkZoAyg30tK7ZHQyfuaF9kIqP9rfClKtFDrYzTfhIALeuEaYO+d wlUVcz+VLdhyPorio+0YDWoagUARBMbK5+CWNSq/nZVdA3jhGESZdIlANvS+to+V07LU QscTVqu8Y9RjtOYU6uzVP3VOV7YfqyPAhKO6Ih5GG6Z8tHjp6QQJsOl5tJgF/zmF/Lhm xoQH45h4LQZcQb6UL9h3AZhPUStQLxvVObbbDlfpwNtB0IECvmmDvLc0T0psM0dRW8Ee 38AQ==
MIME-Version: 1.0
X-Received: by 10.194.240.197 with SMTP id wc5mr31440826wjc.23.1380175078432;  Wed, 25 Sep 2013 22:57:58 -0700 (PDT)
Received: by 10.180.18.202 with HTTP; Wed, 25 Sep 2013 22:57:57 -0700 (PDT)
In-Reply-To: <9521219.RXqIhQCEgb@scott-latitude-e6320>
References: <20130912101511.20829.6656.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130925131612.0d8d3800@elandnews.com> <CAL0qLwZqmReNcT3n4HBdd8ZkMN0P=J42nZREUcSXYAS2h1Eiug@mail.gmail.com> <9521219.RXqIhQCEgb@scott-latitude-e6320>
Date: Wed, 25 Sep 2013 22:57:57 -0700
Message-ID: <CAL0qLwb60BwQsDjDSbWJQO=pnjgnE1P0w8N99=cqdb2C+d0zdQ@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: Scott Kitterman <spf2@kitterman.com>
Content-Type: multipart/alternative; boundary=089e013d19cc4725fa04e7430d60
Cc: "spfbis@ietf.org" <spfbis@ietf.org>
Subject: Re: [spfbis] Stephen Farrell's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 26 Sep 2013 05:58:00 -0000

--089e013d19cc4725fa04e7430d60
Content-Type: text/plain; charset=ISO-8859-1

On Wed, Sep 25, 2013 at 10:09 PM, Scott Kitterman <spf2@kitterman.com>wrote:

> > - I didn't get appendix D at all - what's that do?
> >
> >
> > I agree, we should explain it and include an example, or drop it.
>  Someone
> > closer to the implementation and the original material than I am is
> almost
> > certainly able to come up with an appropriate example versus what I would
> > invent.
>
> It made sense in context before we reorganized the document.  I find it
> troubling that the author of the reorganization now doesn't understand
> part of
> the text he shuffled around.
>
> I'll take a stab at adding something.
>

That was unnecessary, Scott.  Furthermore, I didn't say I don't understand
it.  I merely suggested that someone (you perhaps) might already have an
example in mind, perhaps from previous revisions or related work, rather
than one I might contrive.


>
> > >> - Appendix E.1, 2nd bullet: what's that? I think it needs
> > >> a reference if you want it to be understood.
> >
> > Same here; examples would probably be useful for all three sections.
>
> Generically, I agree, but it's beyond me to right it tonight.  I think the
> information is all there to get someone started with concepts of how
> senders
> can deal with avoiding SPF problems related to forwarding.  These are all
> unchanged from RFC 4408.  I don't think we should be changing them now
> after
> all the reviews as it wouldn't be a small change to rework these sections
> as
> you suggest.
>

In what sense does adding an example, illustrative of the point being made,
constitute "rework"?  I'd be more than surprised if adding examples causes
a full round of evaluation again.

In any case, Stephen's comments were non-blocking (note COMMENT, not
DISCUSS), so they're merely suggestions to improve or clarify.  I think
they're useful suggestions, but if it's really so arduous to do so, we can
drop it.

-MSK

--089e013d19cc4725fa04e7430d60
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">On Wed, Sep 25, 2013 at 10:09 PM, Scott Kitterman <span di=
r=3D"ltr">&lt;<a href=3D"mailto:spf2@kitterman.com" target=3D"_blank">spf2@=
kitterman.com</a>&gt;</span> wrote:<br><div class=3D"gmail_extra"><div clas=
s=3D"gmail_quote">
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">&gt; - I didn&#39;t get appendix D at all - =
what&#39;s that do?<br><div class=3D"im">
&gt;<br>
&gt;<br>
&gt; I agree, we should explain it and include an example, or drop it. =A0S=
omeone<br>
&gt; closer to the implementation and the original material than I am is al=
most<br>
&gt; certainly able to come up with an appropriate example versus what I wo=
uld<br>
&gt; invent.<br>
<br>
</div>It made sense in context before we reorganized the document. =A0I fin=
d it<br>
troubling that the author of the reorganization now doesn&#39;t understand =
part of<br>
the text he shuffled around.<br>
<br>
I&#39;ll take a stab at adding something.<br></blockquote><div><br></div><d=
iv>That was unnecessary, Scott.=A0 Furthermore, I didn&#39;t say I don&#39;=
t understand it.=A0 I merely suggested that someone (you perhaps) might alr=
eady have an example in mind, perhaps from previous revisions or related wo=
rk, rather than one I might contrive.<br>
</div><div>=A0<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0=
 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class=3D"im"><br>
&gt; &gt;&gt; - Appendix E.1, 2nd bullet: what&#39;s that? I think it needs=
<br>
&gt; &gt;&gt; a reference if you want it to be understood.<br>
&gt;<br>
&gt; Same here; examples would probably be useful for all three sections.<b=
r>
<br>
</div>Generically, I agree, but it&#39;s beyond me to right it tonight. =A0=
I think the<br>
information is all there to get someone started with concepts of how sender=
s<br>
can deal with avoiding SPF problems related to forwarding. =A0These are all=
<br>
unchanged from RFC 4408. =A0I don&#39;t think we should be changing them no=
w after<br>
all the reviews as it wouldn&#39;t be a small change to rework these sectio=
ns as<br>
you suggest.<br></blockquote><div><br></div><div>In what sense does adding =
an example, illustrative of the point being made, constitute &quot;rework&q=
uot;?=A0 I&#39;d be more than surprised if adding examples causes a full ro=
und of evaluation again.<br>
<br></div><div>In any case, Stephen&#39;s comments were non-blocking (note =
COMMENT, not DISCUSS), so they&#39;re merely suggestions to improve or clar=
ify.=A0 I think they&#39;re useful suggestions, but if it&#39;s really so a=
rduous to do so, we can drop it.<br>
<br></div><div>-MSK<br></div></div></div></div>

--089e013d19cc4725fa04e7430d60--

From spf2@kitterman.com  Wed Sep 25 23:10:42 2013
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 8E2F211E8147 for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 23:10:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.306
X-Spam-Level: 
X-Spam-Status: No, score=-2.306 tagged_above=-999 required=5 tests=[AWL=0.293,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id TkEG93T8Fufx for <spfbis@ietfa.amsl.com>; Wed, 25 Sep 2013 23:10:37 -0700 (PDT)
Received: from mailout02.controlledmail.com (mailout02.controlledmail.com [72.81.252.18]) by ietfa.amsl.com (Postfix) with ESMTP id C2E8B11E8140 for <spfbis@ietf.org>; Wed, 25 Sep 2013 23:10:33 -0700 (PDT)
Received: from mailout02.controlledmail.com (localhost [127.0.0.1]) by mailout02.controlledmail.com (Postfix) with ESMTP id 2D94220E40D3; Thu, 26 Sep 2013 02:10:33 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1380175833; bh=0keXUSqFBdVvsnYvPedDVO0lwsf3VKQVOTBDXCmd2l4=; h=From:To:Subject:Date:In-Reply-To:References:From; b=nD8rEK4OQ8zS4j9nFupQCeBFseipi2elH6bkkzY7PKpJQQQQLbPqQ49Jg0fwOLbX9 pesnZFcmTYFo5mrfehsIHNbHqe5TPtMNOZRlpuvdma61MjYx08plvoKDAsXz603yea mDV6Q7/P5c9CZriUUFvs4i776cRG0MEAleN8P4N0=
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 1094B20E40C4;  Thu, 26 Sep 2013 02:10:32 -0400 (EDT)
From: Scott Kitterman <spf2@kitterman.com>
To: spfbis@ietf.org
Date: Thu, 26 Sep 2013 02:10:32 -0400
Message-ID: <4527957.brLT0mFqda@scott-latitude-e6320>
User-Agent: KMail/4.10.5 (Linux/3.8.0-30-generic; KDE/4.10.5; i686; ; )
In-Reply-To: <CAL0qLwb60BwQsDjDSbWJQO=pnjgnE1P0w8N99=cqdb2C+d0zdQ@mail.gmail.com>
References: <20130912101511.20829.6656.idtracker@ietfa.amsl.com> <9521219.RXqIhQCEgb@scott-latitude-e6320> <CAL0qLwb60BwQsDjDSbWJQO=pnjgnE1P0w8N99=cqdb2C+d0zdQ@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] Stephen Farrell's No Objection on draft-ietf-spfbis-4408bis-19: (with COMMENT)
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: Thu, 26 Sep 2013 06:10:42 -0000

On Wednesday, September 25, 2013 22:57:57 Murray S. Kucherawy wrote:
> On Wed, Sep 25, 2013 at 10:09 PM, Scott Kitterman <spf2@kitterman.com>wrote:
> > > - I didn't get appendix D at all - what's that do?
> > > 
> > > 
> > > I agree, we should explain it and include an example, or drop it.
> >  
> >  Someone
> >  
> > > closer to the implementation and the original material than I am is
> > 
> > almost
> > 
> > > certainly able to come up with an appropriate example versus what I
> > > would
> > > invent.
> > 
> > It made sense in context before we reorganized the document.  I find it
> > troubling that the author of the reorganization now doesn't understand
> > part of
> > the text he shuffled around.
> > 
> > I'll take a stab at adding something.
> 
> That was unnecessary, Scott.  Furthermore, I didn't say I don't understand
> it.  I merely suggested that someone (you perhaps) might already have an
> example in mind, perhaps from previous revisions or related work, rather
> than one I might contrive.
> 
> > > >> - Appendix E.1, 2nd bullet: what's that? I think it needs
> > > >> a reference if you want it to be understood.
> > > 
> > > Same here; examples would probably be useful for all three sections.
> > 
> > Generically, I agree, but it's beyond me to right it tonight.  I think the
> > information is all there to get someone started with concepts of how
> > senders
> > can deal with avoiding SPF problems related to forwarding.  These are all
> > unchanged from RFC 4408.  I don't think we should be changing them now
> > after
> > all the reviews as it wouldn't be a small change to rework these sections
> > as
> > you suggest.
> 
> In what sense does adding an example, illustrative of the point being made,
> constitute "rework"?  I'd be more than surprised if adding examples causes
> a full round of evaluation again.
> 
> In any case, Stephen's comments were non-blocking (note COMMENT, not
> DISCUSS), so they're merely suggestions to improve or clarify.  I think
> they're useful suggestions, but if it's really so arduous to do so, we can
> drop it.

It's probably me being tired.  Sorry.

I disagree with removing text at this point that we've carried forward from 
RFC 4408.  I couldn't think of a way to come up with short examples.  It's not 
that what's there needs to be changed, but that an example that would make it 
easy to understand would take a lot of text that I'm just too tired to write 
tonight.

Maybe when I'm better rested it'll be clearer to me how to do it in a more 
simple manner.

Scott K

From sm@elandsys.com  Thu Sep 26 08:06:44 2013
Return-Path: <sm@elandsys.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 4196B21F9998; Thu, 26 Sep 2013 08:06:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.555
X-Spam-Level: 
X-Spam-Status: No, score=-102.555 tagged_above=-999 required=5 tests=[AWL=0.044, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id S4yeD+nvMmtu; Thu, 26 Sep 2013 08:06:43 -0700 (PDT)
Received: from mx.ipv6.elandsys.com (mx.ipv6.elandsys.com [IPv6:2001:470:f329:1::1]) by ietfa.amsl.com (Postfix) with ESMTP id 89CA011E8107; Thu, 26 Sep 2013 08:05:43 -0700 (PDT)
Received: from SUBMAN.elandsys.com ([197.224.155.160]) (authenticated bits=0) by mx.elandsys.com (8.14.5/8.14.5) with ESMTP id r8QF5BM4002689 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 26 Sep 2013 08:05:21 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=opendkim.org; s=mail2010; t=1380207926; bh=VYt4/havLv2cJot5haBEXVM0jHRYoUM1lMB045mlgcA=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=0oVVc7VbpfSLMYISPt9vbDHMwB3lSfCdJcDhB8SK4X4X1GrhO/oo+XKKXnhN7Lnf4 LdjT2j2efvSenbqaP26Tn6jh1jOaGQ/wHRISbSi+6+RLuyTgvv7JH/uNCRnJeOzf/K eSfe0PRnAk3r+ze6z9c+GnnpmVxMuxhJl51XBgIw=
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=elandsys.com; s=mail; t=1380207926; i=@elandsys.com; bh=VYt4/havLv2cJot5haBEXVM0jHRYoUM1lMB045mlgcA=; h=Date:To:From:Subject:Cc:In-Reply-To:References; b=B0/ceDh7Fk1OtX8orht+oM5TCw49d+RkZ0/7Zt1s3GWjd9u1+b9uyfH7Gj/QnYZv5 nrYAn0KFswfV04ZxYXn7WC9pzCgOSyZoHZ40b06c2G/Ob0+sgpT+rT6PiGU/pTmvgX b6TF5lli34qGU4f56ohxoz58pxpKf0TvukLcRRVg=
Message-Id: <6.2.5.6.2.20130926075151.0ec9f198@elandnews.com>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Thu, 26 Sep 2013 08:05:01 -0700
To: "Barry Leiba" <barryleiba@computer.org>, The IESG <iesg@ietf.org>
From: S Moonesamy <sm+ietf@elandsys.com>
In-Reply-To: <20130926143718.29653.4925.idtracker@ietfa.amsl.com>
References: <20130926143718.29653.4925.idtracker@ietfa.amsl.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format=flowed
Cc: spfbis@ietf.org, spfbis-chairs@tools.ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, Scott Kitterman <spf2@kitterman.com>
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-21: (with DISCUSS and COMMENT)
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: Thu, 26 Sep 2013 15:06:44 -0000

Hi Barry,
At 07:37 26-09-2013, Barry Leiba wrote:
>Barry Leiba has entered the following ballot position for
>draft-ietf-spfbis-4408bis-21: Discuss

[snip]

>DISCUSS:
>----------------------------------------------------------------------
>
>UPDATED for -21: It seems that resolutions for the DISCUSS points got
>left out of the update.  :-(
>-------------------------------------------------------
>I have two very small points that I think are unclear, and important
>enough that we have to get them right, both regarding the check_host()
>function.  These should be really easy to clear up:
>
>-- Section 4.6 --
>
>    The check_host() function parses and interprets the SPF record to
>    find a result for the current test.  If there are any syntax errors
>    anywhere in the record, check_host() returns immediately with the
>    result "permerror", without further interpretation.
>
>I think you're trying to say that syntax checking is done before any
>evaluation, but you aren't saying it.  It matters, because
>implementations that make different choices in that regard won't get the
>same results from check_host() in all cases, as they're required to.
>Maybe this?:
>
>NEW
>    The check_host() function parses and interprets the SPF record to
>    find a result for the current test.  The syntax of the record is
>    validated first, and if there are any syntax errors anywhere in the
>    record, check_host() returns immediately with the result "permerror",
>    without further interpretation or evaluation.
>END

Scott Kitterman agreed to the proposed text previously ( 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04124.html 
).  What follows is the change to address to DISCUSS:

OLD

    The check_host() function parses and interprets the SPF record to
    find a result for the current test.  If there are any syntax errors
    anywhere in the record, check_host() returns immediately with the
    result "permerror", without further interpretation.

END

NEW
    The check_host() function parses and interprets the SPF record to
    find a result for the current test.  The syntax of the record is
    validated first, and if there are any syntax errors anywhere in the
    record, check_host() returns immediately with the result "permerror",
    without further interpretation or evaluation.
END

>-- Section 5.5 --
>
>I have to say that I'm not happy about the pseudocode here: what
>situation are we in when the pseudocode differs from the text?  Which
>wins?
>
>I already see a case where they differ: the new pseudocode says "if more
>than 10 sending-domain_names are found, use at most 10", and there's
>nothing of the sort in the text.
>
>Does the working group really think there's enough value in having
>pseudocode there that it's worth saying the same thing twice and relying
>on them to be truly the same?  And is it really worth it for mechanism
>that's not recommended for use?
>
>I strongly suggest making sure that the text says what you want it to,
>and removing the pseudocode.

Scott Kitterman agreed that the pseudocode can be removed ( 
http://www.ietf.org/mail-archive/web/spfbis/current/msg04124.html 
).  The OLD text is below; there isn't any NEW text as it is a removal.

OLD

  Pseudocode:

    sending-domain_names := ptr_lookup(sending-host_IP);
    if more than 10 sending-domain_names are found, use at most 10.
    for each name in (sending-domain_names) {
      IP_addresses := a_lookup(name);
      if the sending-domain_IP is one of the IP_addresses {
        validated-sending-domain_names += name;
      }
    }

    for each name in (validated-sending-domain_names) {
      if name ends in <target-name>, return match.
      if name is <target-name>, return match.
    }
    return no-match.
END

Regards,
S. Moonesamy (as document shepherd) 


From presnick@qti.qualcomm.com  Thu Sep 26 08:10:21 2013
Return-Path: <presnick@qti.qualcomm.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 B33A621F92B9; Thu, 26 Sep 2013 08:10:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.553
X-Spam-Level: 
X-Spam-Status: No, score=-102.553 tagged_above=-999 required=5 tests=[AWL=0.046, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id g0x49JBQyb+r; Thu, 26 Sep 2013 08:10:15 -0700 (PDT)
Received: from sabertooth02.qualcomm.com (sabertooth02.qualcomm.com [65.197.215.38]) by ietfa.amsl.com (Postfix) with ESMTP id EC0DC21E8051; Thu, 26 Sep 2013 08:08:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qti.qualcomm.com; i=@qti.qualcomm.com; q=dns/txt; s=qcdkim; t=1380208125; x=1411744125; h=message-id:date:from:mime-version:to:cc:subject: references:in-reply-to:content-transfer-encoding; bh=PTzcIBvw4Go2u8uHrbgmD4DYk6dlwio+qa5Q7kdfnG8=; b=PSGl6D5QIQyp6dVOA8UcvVT5NyKF6WsGBc5ARcbUbBvPcRSJeJsG36UE rzNMmB4dK/6+7/fZoP+pEqhevswQ4p3sSHuAnRKtonXsiNHhUF1IhSCcp N2u8ItWJIQfZfXZdkSvyJiJJrXkNS9A6du+XdSb2C0XF1S27paO2ngGJp E=;
X-IronPort-AV: E=McAfee;i="5400,1158,7209"; a="52283044"
Received: from ironmsg02-lv.qualcomm.com ([10.47.202.183]) by sabertooth02.qualcomm.com with ESMTP; 26 Sep 2013 08:08:42 -0700
X-IronPort-AV: E=McAfee;i="5400,1158,7209"; a="20214776"
Received: from nasanexhc07.na.qualcomm.com ([172.30.39.190]) by ironmsg02-lv.qualcomm.com with ESMTP/TLS/RC4-SHA; 26 Sep 2013 08:08:41 -0700
Received: from resnick2.qualcomm.com (172.30.39.5) by qcmail1.qualcomm.com (172.30.39.190) with Microsoft SMTP Server (TLS) id 14.3.158.1; Thu, 26 Sep 2013 08:08:41 -0700
Message-ID: <52444DF7.5070504@qti.qualcomm.com>
Date: Thu, 26 Sep 2013 10:08:39 -0500
From: Pete Resnick <presnick@qti.qualcomm.com>
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.7; en-US; rv:1.9.1.9) Gecko/20100630 Eudora/3.0.4
MIME-Version: 1.0
To: S Moonesamy <sm+ietf@elandsys.com>
References: <20130926143718.29653.4925.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130926075151.0ec9f198@elandnews.com>
In-Reply-To: <6.2.5.6.2.20130926075151.0ec9f198@elandnews.com>
Content-Type: text/plain; charset="ISO-8859-1"; format=flowed
Content-Transfer-Encoding: 7bit
X-Originating-IP: [172.30.39.5]
Cc: spfbis@ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>, spfbis-chairs@tools.ietf.org, Barry Leiba <barryleiba@computer.org>, Scott Kitterman <spf2@kitterman.com>
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-21: (with DISCUSS and COMMENT)
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: Thu, 26 Sep 2013 15:10:21 -0000
X-List-Received-Date: Thu, 26 Sep 2013 15:10:21 -0000

Thanks SM. I will put these in an RFC Editor Note so that Barry can clear.

pr

On 9/26/13 10:05 AM, S Moonesamy wrote:
> Hi Barry,
> At 07:37 26-09-2013, Barry Leiba wrote:
>> Barry Leiba has entered the following ballot position for
>> draft-ietf-spfbis-4408bis-21: Discuss
>
> [snip]
>
>> DISCUSS:
>> ----------------------------------------------------------------------
>>
>> UPDATED for -21: It seems that resolutions for the DISCUSS points got
>> left out of the update.  :-(
>> -------------------------------------------------------
>> I have two very small points that I think are unclear, and important
>> enough that we have to get them right, both regarding the check_host()
>> function.  These should be really easy to clear up:
>>
>> -- Section 4.6 --
>>
>>    The check_host() function parses and interprets the SPF record to
>>    find a result for the current test.  If there are any syntax errors
>>    anywhere in the record, check_host() returns immediately with the
>>    result "permerror", without further interpretation.
>>
>> I think you're trying to say that syntax checking is done before any
>> evaluation, but you aren't saying it.  It matters, because
>> implementations that make different choices in that regard won't get the
>> same results from check_host() in all cases, as they're required to.
>> Maybe this?:
>>
>> NEW
>>    The check_host() function parses and interprets the SPF record to
>>    find a result for the current test.  The syntax of the record is
>>    validated first, and if there are any syntax errors anywhere in the
>>    record, check_host() returns immediately with the result "permerror",
>>    without further interpretation or evaluation.
>> END
>
> Scott Kitterman agreed to the proposed text previously ( 
> http://www.ietf.org/mail-archive/web/spfbis/current/msg04124.html ).  
> What follows is the change to address to DISCUSS:
>
> OLD
>
>    The check_host() function parses and interprets the SPF record to
>    find a result for the current test.  If there are any syntax errors
>    anywhere in the record, check_host() returns immediately with the
>    result "permerror", without further interpretation.
>
> END
>
> NEW
>    The check_host() function parses and interprets the SPF record to
>    find a result for the current test.  The syntax of the record is
>    validated first, and if there are any syntax errors anywhere in the
>    record, check_host() returns immediately with the result "permerror",
>    without further interpretation or evaluation.
> END
>
>> -- Section 5.5 --
>>
>> I have to say that I'm not happy about the pseudocode here: what
>> situation are we in when the pseudocode differs from the text?  Which
>> wins?
>>
>> I already see a case where they differ: the new pseudocode says "if more
>> than 10 sending-domain_names are found, use at most 10", and there's
>> nothing of the sort in the text.
>>
>> Does the working group really think there's enough value in having
>> pseudocode there that it's worth saying the same thing twice and relying
>> on them to be truly the same?  And is it really worth it for mechanism
>> that's not recommended for use?
>>
>> I strongly suggest making sure that the text says what you want it to,
>> and removing the pseudocode.
>
> Scott Kitterman agreed that the pseudocode can be removed ( 
> http://www.ietf.org/mail-archive/web/spfbis/current/msg04124.html ).  
> The OLD text is below; there isn't any NEW text as it is a removal.
>
> OLD
>
>  Pseudocode:
>
>    sending-domain_names := ptr_lookup(sending-host_IP);
>    if more than 10 sending-domain_names are found, use at most 10.
>    for each name in (sending-domain_names) {
>      IP_addresses := a_lookup(name);
>      if the sending-domain_IP is one of the IP_addresses {
>        validated-sending-domain_names += name;
>      }
>    }
>
>    for each name in (validated-sending-domain_names) {
>      if name ends in <target-name>, return match.
>      if name is <target-name>, return match.
>    }
>    return no-match.
> END
>
> Regards,
> S. Moonesamy (as document shepherd)
> _______________________________________________
> spfbis mailing list
> spfbis@ietf.org
> https://www.ietf.org/mailman/listinfo/spfbis

-- 
Pete Resnick<http://www.qualcomm.com/~presnick/>
Qualcomm Technologies, Inc. - +1 (858)651-4478


From hsantos@isdg.net  Thu Sep 26 08:50:54 2013
Return-Path: <hsantos@isdg.net>
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 F1E2521E80A5 for <spfbis@ietfa.amsl.com>; Thu, 26 Sep 2013 08:50:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.646
X-Spam-Level: 
X-Spam-Status: No, score=-102.646 tagged_above=-999 required=5 tests=[AWL=-0.048, BAYES_00=-2.599, NORMAL_HTTP_TO_IP=0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1tTLmeuTaKaa for <spfbis@ietfa.amsl.com>; Thu, 26 Sep 2013 08:50:52 -0700 (PDT)
Received: from mail.winserver.com (pop3.winserver.com [208.247.131.9]) by ietfa.amsl.com (Postfix) with ESMTP id 5982321E80A7 for <spfbis@ietf.org>; Thu, 26 Sep 2013 08:49:15 -0700 (PDT)
DKIM-Signature: v=1; d=isdg.net; s=tms1; a=rsa-sha1; c=simple/relaxed; l=5046; t=1380210545; h=Received:Received: Received:Received:Message-ID:Date:From:Organization:To:Subject: List-ID; bh=/J4pPw7bAa//f99UshQmi1flYeE=; b=JoPJC+2gBKeosuRq7nwp tDJDRDAqp02bTBWVUz3IaYVjADUFkHD4YLWiFRMiH4QtDGc+/0i85MnIAYwwmCNh H4weh2X9gNtpUiIgWDJ7FVHoLz4NmVBPAXpHzqDvXF+rGc5oCSetqahjQwLAydU4 B/XnH/tX0lwMD08vKf7Yu2g=
Received: by winserver.com (Wildcat! SMTP Router v7.0.454.4) for spfbis@ietf.org; Thu, 26 Sep 2013 11:49:05 -0400
Authentication-Results: dkim.winserver.com; dkim=pass header.d=beta.winserver.com header.s=tms1 header.i=beta.winserver.com;  adsp=pass policy=all author.d=isdg.net asl.d=beta.winserver.com;
Received: from beta.winserver.com ([208.247.131.23]) by winserver.com (Wildcat! SMTP v7.0.454.4) with ESMTP id 2378057918.16763.4364; Thu, 26 Sep 2013 11:49:04 -0400
DKIM-Signature: v=1; d=beta.winserver.com; s=tms1; a=rsa-sha256; c=simple/relaxed; l=5046; t=1380210170; h=Received:Received: Message-ID:Date:From:Organization:To:Subject:List-ID; bh=vMv3XmL 950zhSyYk9OrJ64rwylTbYd6Wct9tM5QmGK4=; b=smrHI3PZI+fOvhPHQAdYTY/ FtpxwEkyDSUqz1RNHm57u6Ig/Tcr10aez7xlrH27I54/226eVJbeLBlJngPtwsab pkRUUf6VJnARc3aZO2+4g0gr/lBljhmmQolZEvSTzl/+tYcLyK5ePynojQddZ69r v/NwbM8NaOn2/yNmj79Y=
Received: by beta.winserver.com (Wildcat! SMTP Router v7.0.454.4) for spfbis@ietf.org; Thu, 26 Sep 2013 11:42:50 -0400
Received: from [192.168.1.2] ([99.121.4.27]) by beta.winserver.com (Wildcat! SMTP v7.0.454.4) with ESMTP id 1824450831.9.9324; Thu, 26 Sep 2013 11:42:49 -0400
Message-ID: <5244576D.4020905@isdg.net>
Date: Thu, 26 Sep 2013 11:49:01 -0400
From: Hector Santos <hsantos@isdg.net>
Organization: Santronics Software, Inc.
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: S Moonesamy <sm+ietf@elandsys.com>
References: <20130926143718.29653.4925.idtracker@ietfa.amsl.com> <6.2.5.6.2.20130926075151.0ec9f198@elandnews.com>
In-Reply-To: <6.2.5.6.2.20130926075151.0ec9f198@elandnews.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Cc: spfbis@ietf.org, draft-ietf-spfbis-4408bis@tools.ietf.org, The IESG <iesg@ietf.org>, spfbis-chairs@tools.ietf.org, Barry Leiba <barryleiba@computer.org>, Scott Kitterman <spf2@kitterman.com>
Subject: Re: [spfbis] Barry Leiba's Discuss on draft-ietf-spfbis-4408bis-21: (with DISCUSS and COMMENT)
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: Thu, 26 Sep 2013 15:50:54 -0000

On 9/26/2013 11:05 AM, S Moonesamy wrote:
> OLD
>
>     The check_host() function parses and interprets the SPF record to
>     find a result for the current test.  If there are any syntax errors
>     anywhere in the record, check_host() returns immediately with the
>     result "permerror", without further interpretation.
>
> END
>
> NEW
>     The check_host() function parses and interprets the SPF record to
>     find a result for the current test.  The syntax of the record is
>     validated first, and if there are any syntax errors anywhere in the
>     record, check_host() returns immediately with the result "permerror",
>     without further interpretation or evaluation.
> END

For the record, our implementation does not have what is effectively 
described above as a two-pass parser.  IMO, it is technically a waste 
and not optimal in the long run (of continued operations) -- most 
records are not invalid.  And its also a implementation method, not 
required to be a two-pass parser.

Probably, what you mean with the second sentence:

     The syntax of a directive or mechanism is checked first. If
     there are any syntax errors, check_host() returns immediately
     with the result "permerror", without further interpretation
     or evaluation.

>
>> -- Section 5.5 --
>>
>> I have to say that I'm not happy about the pseudocode here: what
>> situation are we in when the pseudocode differs from the text?  Which
>> wins?
>>
>> I already see a case where they differ: the new pseudocode says "if
>> more
>> than 10 sending-domain_names are found, use at most 10", and there's
>> nothing of the sort in the text.
>>
>> Does the working group really think there's enough value in having
>> pseudocode there that it's worth saying the same thing twice and
>> relying
>> on them to be truly the same?  And is it really worth it for mechanism
>> that's not recommended for use?
>>
>> I strongly suggest making sure that the text says what you want it to,
>> and removing the pseudocode.
>
> Scott Kitterman agreed that the pseudocode can be removed (
> http://www.ietf.org/mail-archive/web/spfbis/current/msg04124.html ).
> The OLD text is below; there isn't any NEW text as it is a removal.
>
> OLD
>
>   Pseudocode:
>
>     sending-domain_names := ptr_lookup(sending-host_IP);
>     if more than 10 sending-domain_names are found, use at most 10.
>     for each name in (sending-domain_names) {
>       IP_addresses := a_lookup(name);
>       if the sending-domain_IP is one of the IP_addresses {
>         validated-sending-domain_names += name;
>       }
>     }
>
>     for each name in (validated-sending-domain_names) {
>       if name ends in <target-name>, return match.
>       if name is <target-name>, return match.
>     }
>     return no-match.
> END

hmmmm, to tell you the truth I though the "10" limit was on the number 
of total lookups, not in the the BUFFER storage restrictions on a PTR 
lookup.

I don't think you can tell DNS server "please only give me 10" PTR 
query records, so the overhead concern "to avoid unreasonable load on 
the DNS" stated in section 4.6.4 would not be correct.

However, there could be limits to save recursion stack limits if its 
not dynamically allocated implementation design.

Also more importantly,  if you need to single source the DNS API 
interface (for local caching designs) across different applications, I 
found it to be better to increase the potential records returned 
(allocate more space) otherwise you can get false positive/negative 
under SPF.   In fact, for historical reasons, our records for 
208.247.131.9 are 14 records.

M:\rfc\spf>nslookup -query=ptr 208.247.131.9

Non-authoritative answer:
9.131.247.208.in-addr.arpa      name = ntbbs.santronics.com
9.131.247.208.in-addr.arpa      name = mail.catinthebox.net
9.131.247.208.in-addr.arpa      name = ftp.catinthebox.net
9.131.247.208.in-addr.arpa      name = news.winserver.com
9.131.247.208.in-addr.arpa      name = listserv.winserver.com
9.131.247.208.in-addr.arpa      name = groups.winserver.com
9.131.247.208.in-addr.arpa      name = mail.santronics.com
9.131.247.208.in-addr.arpa      name = mail.winserver.com
9.131.247.208.in-addr.arpa      name = ntbbs.winserver.com
9.131.247.208.in-addr.arpa      name = winserver.com
9.131.247.208.in-addr.arpa      name = catinthebox.net
9.131.247.208.in-addr.arpa      name = secure.winserver.com
9.131.247.208.in-addr.arpa      name = pop3.winserver.com
9.131.247.208.in-addr.arpa      name = dkim.winserver.com

I'm sure we are not the only server with this historical layout.

I think don't the issue is related to the concept of deprecating PTR 
publishing. SPF MUST support the PTR logic. No parser can get around 
that complaint protocol design requirement.

But we can do is save the overhead and minimize wasted processing 
because SPF parser limited the PTR resultant record to 10.  In this 
case, allow implementators to set their own limits because a) we can 
afford it today, and b) there is no DNS concern in this regard (can't 
set a limit to 10 to query DNS).

I thought the "10 limit" was for total DNS queries.

-- 
HLS



From superuser@gmail.com  Mon Sep 30 22:46:10 2013
Return-Path: <superuser@gmail.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 3D18321F8948 for <spfbis@ietfa.amsl.com>; Mon, 30 Sep 2013 22:46:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.515
X-Spam-Level: 
X-Spam-Status: No, score=-2.515 tagged_above=-999 required=5 tests=[AWL=0.084,  BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qOesAJ9AK-GF for <spfbis@ietfa.amsl.com>; Mon, 30 Sep 2013 22:46:09 -0700 (PDT)
Received: from mail-wi0-x236.google.com (mail-wi0-x236.google.com [IPv6:2a00:1450:400c:c05::236]) by ietfa.amsl.com (Postfix) with ESMTP id B131A21F8BFD for <spfbis@ietf.org>; Mon, 30 Sep 2013 22:46:07 -0700 (PDT)
Received: by mail-wi0-f182.google.com with SMTP id ez12so4997984wid.9 for <spfbis@ietf.org>; Mon, 30 Sep 2013 22:46:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=29swkkKVT6Awwxi6a0qteMvSByQblbzVCCqQlKDf9KQ=; b=ke5iGg6z3/sD9bk37IZeXxyAaqkSICPjg0/IRleNduJkmrltyHGbFnX5+Po2KZIXKW /D2vdRErYyLjdj9K86oIiDpz8jkwIxKR8PKv++1HeCV42YFKzphnlLz+lxdPA9ef7SgE V3XWpOA7TCGQho6tA1T9VRcQC+FakZtz6Wu9szrgk80DHJVtp9JkK6GzWff1WAVR7FdD 9xMj3oo8KgLErEYSXBZQx1S/1ppPFrh5H7wZuHyt5CZRuEegZwO9eeyPQHQI8npk0VYx +plEipD+N9QLd9PLAhIDq9SO4vmvj/23cafS2HcDc5SfEiqduZNix6i7hk1b4Zrpn2hR XADg==
MIME-Version: 1.0
X-Received: by 10.194.104.42 with SMTP id gb10mr20869644wjb.16.1380606364237;  Mon, 30 Sep 2013 22:46:04 -0700 (PDT)
Received: by 10.180.18.202 with HTTP; Mon, 30 Sep 2013 22:46:04 -0700 (PDT)
Date: Mon, 30 Sep 2013 22:46:04 -0700
Message-ID: <CAL0qLwYhMz=aKZsvZwUF+8QJGgfwH-RtAdEZ5NbEX11r60WjSA@mail.gmail.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
To: "spfbis@ietf.org" <spfbis@ietf.org>
Content-Type: multipart/alternative; boundary=047d7bf19852ea46dd04e7a7773f
Subject: [spfbis] Too many includes!
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: Tue, 01 Oct 2013 05:46:10 -0000

--047d7bf19852ea46dd04e7a7773f
Content-Type: text/plain; charset=ISO-8859-1

For the second time in recent memory, I'm being consulted about an issue
where some outsourced mail service provider has its customers publish an
SPF policy that has an "include:" referring to some name the service
provider has defined.  That include refers to a number of other includes,
which in turn contain as many "ip4" rules as will fit in an UDP DNS reply.
This consumes most of the ten lookups the overall limit allows.

I'm concerned that this is going to become a pervasive problem.  In offlist
conversations the consensus has clearly been "Yeah, don't do that."  I
wonder, though, if we need to say something more formal, be it inside
spfbis or elsewhere.  It seems to me that if we do decide we want to say
something someplace, we need to come up with "Don't do that, do this other
thing" and give at least one alternative to do the same thing.

Do we need to find some way to provide some advice here?

-MSK

--047d7bf19852ea46dd04e7a7773f
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>For the second time in recent memory, I&#39;m be=
ing consulted about an issue where some outsourced mail service provider ha=
s its customers publish an SPF policy that has an &quot;include:&quot; refe=
rring to some name the service provider has defined.=A0 That include refers=
 to a number of other includes, which in turn contain as many &quot;ip4&quo=
t; rules as will fit in an UDP DNS reply.=A0 This consumes most of the ten =
lookups the overall limit allows.<br>

<br></div>I&#39;m concerned that this is going to become a pervasive proble=
m.=A0 In offlist conversations the consensus has clearly been &quot;Yeah, d=
on&#39;t do that.&quot;=A0 I wonder, though, if we need to say something mo=
re formal, be it inside spfbis or elsewhere.=A0 It seems to me that if we d=
o decide we want to say something someplace, we need to come up with &quot;=
Don&#39;t do that, do this other thing&quot; and give at least one alternat=
ive to do the same thing.<br>

<br></div><div>Do we need to find some way to provide some advice here?<br>=
<br></div><div>-MSK<br></div></div>

--047d7bf19852ea46dd04e7a7773f--

From spf2@kitterman.com  Mon Sep 30 22:57:49 2013
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 C6D1721F92DA for <spfbis@ietfa.amsl.com>; Mon, 30 Sep 2013 22:57:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.317
X-Spam-Level: 
X-Spam-Status: No, score=-2.317 tagged_above=-999 required=5 tests=[AWL=0.282,  BAYES_00=-2.599]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ShvspqZmGvGH for <spfbis@ietfa.amsl.com>; Mon, 30 Sep 2013 22:57:49 -0700 (PDT)
Received: from mailout03.controlledmail.com (mailout03.controlledmail.com [IPv6:2607:f0d0:3001:aa::2]) by ietfa.amsl.com (Postfix) with ESMTP id 3FFF321F853A for <spfbis@ietf.org>; Mon, 30 Sep 2013 22:57:49 -0700 (PDT)
Received: from mailout03.controlledmail.com (localhost [127.0.0.1]) by mailout03.controlledmail.com (Postfix) with ESMTP id ADF34D04081; Tue,  1 Oct 2013 01:57:47 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=kitterman.com; s=2007-00; t=1380607067; bh=+WlrzcBK+NGGWR9O2qct7AWN6UPJKa0Xeii9jLG80tc=; h=In-Reply-To:References:Subject:From:Date:To:From; b=FwtvaKzTPpsI3riDlxszwFjiih5NXVGY29FCLJxjczdCv7Wpvm5IBPcX5yTOjJMxw gJjYzpPgp/Pa6njhkmi7KXuAdy6xyZkkirv7gVw+32S49mCJ3cuE95D+KBpYXoyj2Z kxEeXVMytDsiRxE+mWjSPVpC/ccY7ZlnTZwUfpoE=
Received: from [192.168.111.106] (static-72-81-252-21.bltmmd.fios.verizon.net [72.81.252.21]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mailout03.controlledmail.com (Postfix) with ESMTPSA id 56C88D0405E;  Tue,  1 Oct 2013 01:57:47 -0400 (EDT)
User-Agent: K-9 Mail for Android
In-Reply-To: <CAL0qLwYhMz=aKZsvZwUF+8QJGgfwH-RtAdEZ5NbEX11r60WjSA@mail.gmail.com>
References: <CAL0qLwYhMz=aKZsvZwUF+8QJGgfwH-RtAdEZ5NbEX11r60WjSA@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Scott Kitterman <spf2@kitterman.com>
Date: Tue, 01 Oct 2013 01:57:41 -0400
To: "spfbis@ietf.org" <spfbis@ietf.org>
Message-ID: <2594c731-a8c6-4bc3-95d9-891caf8e9bd8@email.android.com>
X-AV-Checked: ClamAV using ClamSMTP
Subject: Re: [spfbis] Too many includes!
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: Tue, 01 Oct 2013 05:57:49 -0000

"Murray S. Kucherawy" <superuser@gmail.com> wrote:
>For the second time in recent memory, I'm being consulted about an
>issue
>where some outsourced mail service provider has its customers publish
>an
>SPF policy that has an "include:" referring to some name the service
>provider has defined.  That include refers to a number of other
>includes,
>which in turn contain as many "ip4" rules as will fit in an UDP DNS
>reply.
>This consumes most of the ten lookups the overall limit allows.
>
>I'm concerned that this is going to become a pervasive problem.  In
>offlist
>conversations the consensus has clearly been "Yeah, don't do that."  I
>wonder, though, if we need to say something more formal, be it inside
>spfbis or elsewhere.  It seems to me that if we do decide we want to
>say
>something someplace, we need to come up with "Don't do that, do this
>other
>thing" and give at least one alternative to do the same thing.
>
>Do we need to find some way to provide some advice here?

I'll be glad to add it to the FAQ or other appropriate place on openspf.org if someone wants to write something up.

It's certainly come up before. 

Scott K

