Re: [DNSOP] Kindly review draft-woodworth-bulk-rr-05.txt
"Woodworth, John R" <John.Woodworth@CenturyLink.com> Wed, 15 February 2017 22:57 UTC
Return-Path: <John.Woodworth@CenturyLink.com>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 35795129721 for <dnsop@ietfa.amsl.com>; Wed, 15 Feb 2017 14:57:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6kpiQGE7BcOb for <dnsop@ietfa.amsl.com>; Wed, 15 Feb 2017 14:57:20 -0800 (PST)
Received: from lxomp52w.centurylink.com (lxomp52w.centurylink.com [155.70.50.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5B67112985F for <dnsop@ietf.org>; Wed, 15 Feb 2017 14:57:20 -0800 (PST)
Received: from lxdenvmpc030.qintra.com (emailout.qintra.com [10.1.51.30]) by lxomp52w.centurylink.com (8.14.8/8.14.8) with ESMTP id v1FMvIEx021018 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 15 Feb 2017 16:57:19 -0600
Received: from lxdenvmpc030.qintra.com (unknown [127.0.0.1]) by IMSA (Postfix) with ESMTP id BA9421E0053; Wed, 15 Feb 2017 15:57:13 -0700 (MST)
Received: from lxdnp31k.corp.intranet (unknown [151.119.92.134]) by lxdenvmpc030.qintra.com (Postfix) with ESMTP id 99BDC1E005F; Wed, 15 Feb 2017 15:57:13 -0700 (MST)
Received: from lxdnp31k.corp.intranet (localhost [127.0.0.1]) by lxdnp31k.corp.intranet (8.14.8/8.14.8) with ESMTP id v1FMvDHG063153; Wed, 15 Feb 2017 15:57:13 -0700
Received: from vodcwhubex501.ctl.intranet (vodcwhubex501.ctl.intranet [151.117.206.27]) by lxdnp31k.corp.intranet (8.14.8/8.14.8) with ESMTP id v1FMvDiq063149 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Wed, 15 Feb 2017 15:57:13 -0700
Received: from PODCWMBXEX501.ctl.intranet ([169.254.1.220]) by vodcwhubex501.ctl.intranet ([151.117.206.27]) with mapi id 14.03.0294.000; Wed, 15 Feb 2017 16:57:13 -0600
From: "Woodworth, John R" <John.Woodworth@CenturyLink.com>
To: 'Shane Kerr' <shane@time-travellers.org>
Thread-Topic: [DNSOP] Kindly review draft-woodworth-bulk-rr-05.txt
Thread-Index: AQHSh3MZ+ZDvSwGOnkOBz2+cOwa2X6FqoFkA///6gWA=
Date: Wed, 15 Feb 2017 22:57:11 +0000
Message-ID: <A05B583C828C614EBAD1DA920D92866BD06DD758@PODCWMBXEX501.ctl.intranet>
References: <A05B583C828C614EBAD1DA920D92866BD06DCF82@PODCWMBXEX501.ctl.intranet> <20170215170532.71bdb7e5@pallas.home.time-travellers.org>
In-Reply-To: <20170215170532.71bdb7e5@pallas.home.time-travellers.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [151.117.206.8]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-TM-AS-MML: disable
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/gMwxSvHg9JwOjxpDehQWMJLfuZs>
Cc: "'dnsop@ietf.org'" <dnsop@ietf.org>, 'JW' <jw@pcthink.com>, 'shash raghu' <shash.raghu@gmail.com>, "Woodworth, John R" <John.Woodworth@CenturyLink.com>, "Ballew, Dean" <Dean.Ballew@CenturyLink.com>
Subject: Re: [DNSOP] Kindly review draft-woodworth-bulk-rr-05.txt
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 15 Feb 2017 22:57:22 -0000
Shane, Thanks so much for the review, it is very detailed and your comments are fantastic! > John, > > Full disclosure: I hate reverse DNS, which seems to be a strong > motivator for things like $GENERATE and the BULK proposal. :) > :) > The benefit of the BULK proposal is that it performs a nice > compression compared to $GENERATE when sending via AXFR, and > also enables on-the-fly generation of answers for things like > IPv6 reverse DNS which cannot be done with $GENERATE. > > I have a few mostly minor comments, feel free to ignore any > and all of them. My main concern is with the proposal for > NPN. That's at the end of this e-mail. > > -------- > > I'd move section 2.4 to the top of section 2. Looking at > the examples first can make understanding the rest clearer. Good idea. We struggled a bit with this as we didn't want to throw too much at the reader too soon. It is a rather long draft to get through. > -------- > > It might be nice if the examples could be re-worked to use > the documentation IP addresses from RFC 3330 (192.0.2.0/24) > or RFC 3849 (2001:DB8::/32). I realize that for IPv4 this > might be unworkable, because of the limited size of the > prefix. > We can rework the IPv6 as you suggest but we wanted to point out the significance of the larger ranges even in IPv4. > ------- > > In 2.2.2. The Domain Name Pattern Field, we see: > > number = 1*DIGIT / 1*HEXDIG > > However a HEXDIG already includes DIGIT in RFC 5234. > (This is also true in 2.2.3. The Replacement Pattern Field.) > Good point. This was done more for readability, if it is confusing we can try to find another way. > In fact, I don't see any way to disambiguate. Does [9-11] > mean "9, 10, 11" or "9, 10, 11, 12, 13, 14, 15, 16, 17"? > > While the server will eventually figure this out based on > the record type, to me it seems better to define the > grammar completely separately for IPv4 (decimal) versus > IPv6 (hex). Or perhaps use the "0x" prefix for hex, > although I can see why that might be too clumsy. This > might even get rid of the need for the rules in 3.3.2. > Manual Domain Name Pattern Matching. > We will take a close look at this section to see where we can tune it a bit and maybe provide better clarity. > ------- > > In 2.2.2. The Domain Name Pattern Field, we see: > > range = number [ "-" number ] > > I don't understand the motivation here. If you are just using > a single number then why include it in a range? It seems like > it complicates parsing (and possibly automatic generation) > for no real gain. The main motivation behind this is only ranges are captured and if you want to use all octets/nibbles in the backreference even a single number should be able to work. Guess it depends on how the zone maintainer wants to segment their rules. > I propose making range: > > range = number "-" number > > This would apply when used in 2.2.3. The Replacement Pattern > Field also. > The replacement pattern accepts something like ${1,3,4,6} to allow more control over the backreferences. This feature requires single digits to maintain a clean look. > -------- > > In 2.2.3. The Replacement Pattern Field, the term "stage" is > introduced in a bit of a haphazard way. I am pretty sure I > understand the intent, but for example the phrase "stage one" > is never used. > > I think that I would say something like: > > This field MUST be evaluated for proper syntax for resource > records of its Match Type, as defined above. This validation > MAY be done when a new version of the zone is received, > such as through a zone transfer or when loaded from a file. > In this case, the version of the zone containing the invalid > RR is not used. If validation is not done then, then > validation MUST be done prior to returning generated > replacement answers. > Good suggestion, we will reevaluate the wording here. We don't want a "1st, B, and finally" scenario :) . > -------- > > In 3.4.1.1.8. Backreference Position, it makes me nervous to have > context-based rules about reversed order or not. As the text > indicates, this was done to make the syntax intuitive. Since I > have been working on computers for many years, I have no > intuition any more, but it still seems like a source of potential > mistakes to specify some rules operate in reverse and others not. > I don't strongly oppose this, but it does make me nervous. :) > I am personally torn on this point as well. On one hand, it "feels" nicer to have the numbers automatically reversed (it is a computer after all); but on the other hand, giving up control in the matter is difficult. Overall, I tend to lean toward the automatic assignment but maybe there could be a parameter to control this behavior. > -------- > > In 5.1 Record Superimposition, "SWIP" is an ARIN-ism (I think). > Perhaps this should be replaced with some text describing what > is meant by the term instead of using it. > The main point of this section is to show how non BULK RRs inserted within the range of a BULK RR are automatically "superimposed" where they belong. For too long, we have had to break up $GENERATES into multiple $GENERATES (especially for singletons) to support a new customer assignment. While this feature piggybacks on wildcard logic, we find it to be worth pointing out its utility and novelty. Perhaps it would be worthwhile to expand this section with an example to make this feature more apparent. > -------- > > Now... for DNSSEC and the NPN record. > > My own preference here would be for on-the-fly signing, but > this is of course not always possible. Certainly if you are > using a commercial secondary service you don't want to hand > the provider your DNSSEC keys in many cases. :) > > So I understand the motivation for NPN, but if I understand > the NPN record itself, then it can allow certain types of > spoofed data. > Basically, we are saying that we are going to ignore part > of the answer when we do our checks. This is where we expected the biggest concern. DNSSEC was a hard nut to crack so we had to stroll down a very seedy road to get there :) . To be clear, the "ignore" fields control which part of the RR would remain completely untouched by the "normalization" process. The normalization then collapses hexadecimal and decimal ranges into a fixed single digit allowing for the number "65535" to become "9" for evaluation purposes. > In the case of a typical IPv6 setup with a /64 network, > that would allow an attacker to provide an AAAA record > anywhere in the network. > This might allow an attacker to direct traffic to anything > in the network to any hacked device. > We had great concerns about this as well initially but after further experimentation realized the scope was a lot smaller than the hair on the back of our necks had led us to suspect. > I wonder if a better approach might be to simply supply > the BULK record itself to a resolver, and have it perform > the rewriting itself. We could add an EDNS0 option where > a resolver indicates that it understands the BULK format. > If the zone is signed and the flag is used, then the > authoritative server can include the BULK record and its > RRSIG in the answer. > > This also makes me think of complications with NXDOMAIN > results. > > * In the case where there is an error that is not caught > on load (the "stage two" checking in the text), the > NXDOMAIN will not have a signed NSEC or NSEC3 record > to return, and a validating resolver will not accept > the response. Possibly it is better to return SERVFAIL > if an error is discovered when sending a reply. Good point. We will comb through this section as well. Our instinct here was to leave the system the same way we found it (i.e. NXDOMAIN) if we were unable to synthesize RRs but DNSSEC greatly complicates this. > * In the case where there is no error but no patterns > match, probably it is better to return an empty answer > (what BIND 9 calls NODATA, I think) rather than NXDOMAIN, > since we don't have a signed NSEC or NSEC3 record. This > will work with the EDNS0 hack that I described, but I > do not think it will work with NPN. > > I think that's about it. I spent way more time on this > than I expected, hopefully it is helpful. :) > Thanks again for your thoughtful and thorough review, it has given us much to think about. Thanks, John > Cheers, > > -- > Shane > -- THESE ARE THE DROIDS TO WHOM I REFER: This communication is the property of CenturyLink and may contain confidential or privileged information. Unauthorized use of this communication is strictly prohibited and may be unlawful. If you have received this communication in error, please immediately notify the sender by reply e-mail and destroy all copies of the communication and any attachments.
- [DNSOP] Kindly review draft-woodworth-bulk-rr-05.… Woodworth, John R
- Re: [DNSOP] Kindly review draft-woodworth-bulk-rr… Shane Kerr
- Re: [DNSOP] Kindly review draft-woodworth-bulk-rr… Woodworth, John R
- Re: [DNSOP] Kindly review draft-woodworth-bulk-rr… Stephane Bortzmeyer
- Re: [DNSOP] Kindly review draft-woodworth-bulk-rr… Woodworth, John R