Re: [DNSOP] raising the bar: requiring implementations

Petr Špaček <petr.spacek@nic.cz> Mon, 26 March 2018 12:45 UTC

Return-Path: <petr.spacek@nic.cz>
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 1CC5F124205 for <dnsop@ietfa.amsl.com>; Mon, 26 Mar 2018 05:45:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.01
X-Spam-Level:
X-Spam-Status: No, score=-7.01 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nic.cz
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 6H8TOMgmRKSd for <dnsop@ietfa.amsl.com>; Mon, 26 Mar 2018 05:45:16 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) (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 A1C71120454 for <dnsop@ietf.org>; Mon, 26 Mar 2018 05:45:15 -0700 (PDT)
Received: from [IPv6:2001:1488:fffe:6:37:44ff:fe34:d861] (unknown [IPv6:2001:1488:fffe:6:37:44ff:fe34:d861]) by mail.nic.cz (Postfix) with ESMTPSA id 2C9EC60933 for <dnsop@ietf.org>; Mon, 26 Mar 2018 14:45:14 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1522068314; bh=GzYhV5gcPatQsmtiBn9Bb+T5dwwUNa7Uq6JtR1u8Ugg=; h=To:From:Date; b=mSlaN6cka6JVH+IZ2xjWFPzG3ETkNHcI9+8v6aiFA00keC0OpW1zj8HkD+HcmdpY/ 3Veee65+cO/y1S4zZU9NVM7Uvm+ej2Q0cRV6Pyb163swmm25LknTiHOB8G64/9mC+T kWbhQK3mc9ImXiBv4jJWDoJq4tNnBKKchNVxFPZs=
To: dnsop@ietf.org
References: <20180324110756.GE69302@vurt.meerval.net>
From: Petr Špaček <petr.spacek@nic.cz>
Organization: CZ.NIC
Message-ID: <d65304d1-445d-5752-3868-19f00146f41f@nic.cz>
Date: Mon, 26 Mar 2018 14:45:14 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: <20180324110756.GE69302@vurt.meerval.net>
Content-Type: text/plain; charset="utf-8"
Content-Language: en-US
Content-Transfer-Encoding: 8bit
X-Virus-Scanned: clamav-milter 0.99.2 at mail
X-Virus-Status: Clean
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/pA4QXa3h7bGYAMObxbU3jNzsTKY>
Subject: Re: [DNSOP] raising the bar: requiring implementations
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 26 Mar 2018 12:45:17 -0000

On 24.3.2018 12:07, Job Snijders wrote:
> Dear DNSOP,
> 
> I'd like to share some pointers from the working group that governs the
> BGP protocol, IDR, on requiring implementations before drafts can
> advance towards RFC publication. Raising the bar for publication will
> take weight off the camel's back.
> 
> The IDR policy and rationale is outlined here: https://trac.ietf.org/trac/idr/wiki
> 
> An example of an implementation report is available here:
> https://trac.ietf.org/trac/idr/wiki/draft-ietf-idr-large-community%20implementations
> Every normative (RFC 2119 / RFC 8174) term should expand into a
> compliance test, and it is particularly good to document where
> implementations deviate from what is required or suggested in the
> proposed specification. The work listed on this wikipage was done
> _before_ the draft was submitted to the IESG, and we intentionally
> sought to create more than the minimum amount of implementations
> required.

I very much support this approach.

BTW we already have test framework which was used to test BIND, Unbound,
Knot Resolver, and PowerDNS recursor! I.e. we have one tool which is
able to test all of these using the same test data, so the remaining
work here is writting tests, not creating test tools from scratch.

Petr Špaček  @  CZ.NIC


> In the case of the BGP large communities project the working group was
> particularly lucky because Pier Carlo Chiodi created an open 'regression
> testing'-style environment into which BGP speakers could be plugged in
> to assess their compliance:
> https://github.com/pierky/bgp-large-communities-playground
> https://github.com/pierky/bgp-large-communities-playground/blob/master/tests/README.md
> 
> The DNS world would benefit from such environments and automated
> compliance testing. Manual testing for a specification (that is still
> being worked on) can be tedious, having a 'playground' can pay huge
> dividend. We did catch bugs in implementations thanks to this
> environment, so it not only helped the specification, but increased the
> quality of the participating implementations.
> 
> RFC 7942 suggest that During the development of a draft people are
> encouraged to document what implementations exist, an example is here:
> https://tools.ietf.org/html/draft-ietf-idr-large-community-12#section-7
> 
> Closed source implementations as part of such a list is not an issue
> (just a little bit more work), at IETF meetings we'd meet up, plug
> laptops with virtual machines into each other and run compliance tests.
> Sidenote: when IANA codepoints are needed but not yet assigned, don't
> forget to keep everything on separate beta/feature branches; don't ship
> software with squatted codepoints :-)
> 
> The DNSOP working group will have to figure out what constitutes a
> meaningful implementation in what context. For example, a tcpdump or
> wireshark decoder would hardly count as an implementation of a proposed
> DNS feature, but those decoders are _incredibly_ useful to have
> alongside real implementations, especially during development. DNS
> people will probably want to see multiple implementation reports in
> context of packet decoding, stub, resolver, and authoritative.