Re: [dnsoverhttp] DNS wireformat in JSON draft
Paul Hoffman <paul.hoffman@icann.org> Thu, 22 September 2016 14:58 UTC
Return-Path: <paul.hoffman@icann.org>
X-Original-To: dnsoverhttp@ietfa.amsl.com
Delivered-To: dnsoverhttp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
by ietfa.amsl.com (Postfix) with ESMTP id C2AA012B93D
for <dnsoverhttp@ietfa.amsl.com>; Thu, 22 Sep 2016 07:58:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.517
X-Spam-Level:
X-Spam-Status: No, score=-6.517 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-2.316,
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 dVIU95e6sPkZ for <dnsoverhttp@ietfa.amsl.com>;
Thu, 22 Sep 2016 07:57:54 -0700 (PDT)
Received: from out.west.pexch112.icann.org (pfe112-ca-2.pexch112.icann.org
[64.78.40.10])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits))
(No client certificate requested)
by ietfa.amsl.com (Postfix) with ESMTPS id 65BAB12B460
for <dnsoverhttp@ietf.org>; Thu, 22 Sep 2016 07:57:11 -0700 (PDT)
Received: from PMBX112-W1-CA-1.pexch112.icann.org (64.78.40.21) by
PMBX112-W1-CA-2.pexch112.icann.org (64.78.40.23) with Microsoft SMTP Server
(TLS) id 15.0.1178.4; Thu, 22 Sep 2016 07:57:08 -0700
Received: from PMBX112-W1-CA-1.pexch112.icann.org ([64.78.40.21]) by
PMBX112-W1-CA-1.PEXCH112.ICANN.ORG ([64.78.40.21]) with mapi id
15.00.1178.000; Thu, 22 Sep 2016 07:57:08 -0700
From: Paul Hoffman <paul.hoffman@icann.org>
To: Martin Thomson <martin.thomson@gmail.com>
Thread-Topic: DNS wireformat in JSON draft
Thread-Index: AQHSFJYhyduQGe0s5Uy9YEGpS3+BrqCGD1mA
Date: Thu, 22 Sep 2016 14:57:08 +0000
Message-ID: <709009EE-4301-46BC-A0E0-34B606509226@icann.org>
References: <CABkgnnVyvgL27pED13zgkcs9z8TKpiE7dpXWUVVnaTfiw+hstw@mail.gmail.com>
In-Reply-To: <CABkgnnVyvgL27pED13zgkcs9z8TKpiE7dpXWUVVnaTfiw+hstw@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [192.0.32.234]
Content-Type: text/plain; charset="us-ascii"
Content-ID: <B21E2C7AFA945249A0325C50E1F02174@pexch112.icann.org>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsoverhttp/_b4Q4lJZ2sUUVWRruw16JMXAm80>
Cc: "dnsoverhttp@ietf.org" <dnsoverhttp@ietf.org>
Subject: Re: [dnsoverhttp] DNS wireformat in JSON draft
X-BeenThere: dnsoverhttp@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Discussion of DNS over HTTP <dnsoverhttp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsoverhttp>,
<mailto:dnsoverhttp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsoverhttp/>
List-Post: <mailto:dnsoverhttp@ietf.org>
List-Help: <mailto:dnsoverhttp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsoverhttp>,
<mailto:dnsoverhttp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Sep 2016 14:58:01 -0000
On Sep 21, 2016, at 10:56 PM, Martin Thomson <martin.thomson@gmail.com> wrote: > > (Starting a new thread for this stuff) > >>> Frankly, I don't think that the JSON spec is anywhere near as ready as >>> your proposed protocol spec, so I'm surprised to hear you want to push >>> it out with an RFC number on it. >> >> As I keep saying, I'm quite open to comments on it. I've gotten plenty from the DNS community over the past few years, but we could have missed stuff you're seeing. > > Here you go then: > > What draft-hoffman-dns-in-json describes is worse than having to parse > the DNS wire protocol. Yes and no. Yes because the receiver has more ways to do things and has to specify to the sender what it wants to receive. No because (1) name compression turns out to have ugly edge cases, (2) escaping, and (3) parsing badly-formated responses is really really hard. The original use case for the JSON format was a receiver who wanted to know just a few common values for a huge amount of traffic. > This is because it assumes that you have name compression, and all the > crap that the DNS wire protocol includes Yes, of course. > , PLUS the added complicates > of JSON and base64 (and base16). True. I am open to getting rid of one of the optional encodings. > If the goal here is to make this > format accessible in a way that DNS never has been, you can't just do > a mechanical translation of the wire format. That was never my goal, but I hear it is a goal for you and others here. > That does no one a > service - application developers find the format unusable and the DNS > people want their wire format back. With what you have, you might as > well go with the binary format and leave people to mess with > ArrayBuffers and the like. That would be a shame. > > On the other hand, if you want to make this usable, then make it > usable. Ditch the name compression. ... you didn't read the revised draft I put out yesterday... > Translate the contents of the > common RRtypes into usable forms, don't just dump RDATA on people. Define "common" for you. Seriously, that's easily done. However, for the DNS folks, uncommon is just as important as common. > Don't use "*" or "!" in your names. ... you didn't read the revised draft I put out yesterday... > Don't use both base64 and base16. Noted; can do. > Don't use \DDD encoding. That requirement means "when encoding from a zone file to this format, you MUST do a conversion". You are just trading unfriendly to the recipient with unfriendly to the sender. It's fine for a profile to say "values with \DDD encoding will be rejected", but I think it is wrong to put that in the protocol itself. > Don't use 0/1 for boolean fields. Noted; can do. (Well, *should* do. This was me being lazy.) > All of > these things are very hostile to application developers. They are hostile to developers of *receiving* applications. Some of what you ask is hostile to the sending applications. Having said that, I'm open to making the format less balanced between the two, picking one side over the other, and picking the receiving side. I just want you to be clear that is what you are asking for. > Then you can include defaults for fields and look at other usability > improvements. Quite true. > Then you might have something that an application > developer will want to look at. > > In the end, you are making the server do more work to produce a usable > format, but do it right and it's fairly easy. There are a lot more > producers than consumers in this space and the consumers will thank > you for it. My view was that if there are more producers than consumers, you should make the producers' life easier. I hear that might be inverted. Other folks: please chime in! --Paul Hoffman
- [dnsoverhttp] DNS wireformat in JSON draft Martin Thomson
- Re: [dnsoverhttp] DNS wireformat in JSON draft Paul Hoffman