Re: [dnssd] Working group last call for draft-ietf-dnssd-push

Ted Lemon <mellon@fugue.com> Mon, 29 October 2018 20:55 UTC

Return-Path: <mellon@fugue.com>
X-Original-To: dnssd@ietfa.amsl.com
Delivered-To: dnssd@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7A1B8130FC2 for <dnssd@ietfa.amsl.com>; Mon, 29 Oct 2018 13:55:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fugue-com.20150623.gappssmtp.com
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 OBQIMXKCB-wF for <dnssd@ietfa.amsl.com>; Mon, 29 Oct 2018 13:55:29 -0700 (PDT)
Received: from mail-qt1-x831.google.com (mail-qt1-x831.google.com [IPv6:2607:f8b0:4864:20::831]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CC20613108C for <dnssd@ietf.org>; Mon, 29 Oct 2018 13:55:28 -0700 (PDT)
Received: by mail-qt1-x831.google.com with SMTP id b22-v6so10991470qtr.11 for <dnssd@ietf.org>; Mon, 29 Oct 2018 13:55:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fugue-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=nM/0JU3MModDEYT/x4OfcXQ1V7rZfnrqb2I7YjroOQs=; b=DtYe+cjoNwDe518K+60YA13LLc9s+G3DyBJLfucGaP/Tyvx3O/eg28dn6fFcR6m4Jp dQHTbKN+r6Wk2wePSI2dTPLY/3ZgcTIYXDdtM19fHq1fsaDjjuF+xdhSBlDpangnh11V 6Mk/erwLUaZtYV0ChHUXba5Xqmy/z+rj09ID59Rr7pUFz6DpQH5YhrYkDyk9EUkeZadZ pWHao93TbUtymeeiTX+Q3g5FblSzwqbE07qDbOviezputoq4izOcNyEa+im+Uu100hB5 ENvCWjnyKjmbQ2y+SBe/YtBWGz70473kZ6B3uzAil2WYQOUmdCMRHIX4OmOg2kgANDcd eYoQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=nM/0JU3MModDEYT/x4OfcXQ1V7rZfnrqb2I7YjroOQs=; b=spQnYKIrJxso8Ik0lKDe06xHiDw+7GHglf3zUbJubr7iYv6WOjsfQ04h5tb8BbZ2yh 2IIoFM4Z+9Z7FvrH34M2TEobEBIx1c3q2mPRvEWnBEJ3/dWK/V8fIBt0xXLS1kAkavt5 qaIfsMSBkES9B7D+TiGsLx7Gqu8iMRPENP6ppeGlPp/5pYroueKfYVtn2it/+EY3Tn4W ItzP4+Ie+KsAJYNdwQNQCjdMeHAYVM+9Hd1wLv3q9c7dbqBFbcm00QPea+w2Odx22LB3 X1UMK75X5UTHh3JZBogeUotpl9pTcA337IRXFGLzDEJ3OUlD8S5fj+W8bAm45g4BgTWN 5rJA==
X-Gm-Message-State: AGRZ1gK/ugtJod0VFeI9Xmxeth2sjDLgRUqOmPULZg2b4tzkUuyQsKY+ pCLXStqctzvOvqNV8Iidw1wNlIXMa9YKy2pdHW/BeQ==
X-Google-Smtp-Source: AJdET5fFmo0ln2fZzDLaH/au7CY7G3BDkGRqMvDGzVDylcH1SYpN/GiaxeOfY+XZHYDsmir++cwfTfNWwiQNWtO4ZKQ=
X-Received: by 2002:a0c:c966:: with SMTP id v35mr14690139qvj.45.1540846527784; Mon, 29 Oct 2018 13:55:27 -0700 (PDT)
MIME-Version: 1.0
References: <9EDAA7B4-BB78-4CCC-BE0E-A47EF3E0A4A6@apple.com> <DD18BDD4-FFDF-43BC-97E1-8BB846F15702@bangj.com> <C4802C62-E94C-48AE-867F-9A4743A4AEA2@cisco.com> <CAPt1N1m1d5Vj1ueC17ksfP7j9+23s0ATtxUwrTnCwmjqEQgtUQ@mail.gmail.com> <F8E849EC-2B09-481E-B01E-0805D7B5E11E@bangj.com>
In-Reply-To: <F8E849EC-2B09-481E-B01E-0805D7B5E11E@bangj.com>
From: Ted Lemon <mellon@fugue.com>
Date: Mon, 29 Oct 2018 16:54:51 -0400
Message-ID: <CAPt1N1n__-A2Q9m8jVT3+RrTTewGe5AOHqki3LwMu9vF12-12g@mail.gmail.com>
To: Tom Pusateri <pusateri@bangj.com>
Cc: "Jan Komissar (jkomissa)" <jkomissa@cisco.com>, Stuart Cheshire <cheshire@apple.com>, Tim Wicinski <tjw.ietf@gmail.com>, dnssd <dnssd@ietf.org>, David Schinazi <dschinazi@apple.com>
Content-Type: multipart/alternative; boundary="000000000000f13cdc0579644944"
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnssd/7wEI4vSeT7LZV9osoP8CUZryCrU>
Subject: Re: [dnssd] Working group last call for draft-ietf-dnssd-push
X-BeenThere: dnssd@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discussion of extensions to DNS-based service discovery for routed networks." <dnssd.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnssd>, <mailto:dnssd-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnssd/>
List-Post: <mailto:dnssd@ietf.org>
List-Help: <mailto:dnssd-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnssd>, <mailto:dnssd-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Oct 2018 20:55:33 -0000

Awesome, thanks! :)

I think it's fine if we just wait to see what DNSOP says about ANY.

On Mon, Oct 29, 2018 at 4:45 PM Tom Pusateri <pusateri@bangj.com> wrote:

> Continuing on… Comments inline.
>
> > On Oct 26, 2018, at 5:28 PM, Ted Lemon <mellon@fugue.com> wrote:
> >
> > Section 6.1 says:
> >
> >    The client begins by opening a DSO Session to its normal configured
> >    DNS recursive resolver and requesting a Push Notification
> >    subscription.  If this is successful, then the recursive resolver
> >    will make appropriate Push Notification subscriptions on the client's
> >    behalf, and the client will receive appropriate results.  If the
> >    recursive resolver does not support Push Notification subscriptions,
> >    then it will return an error code, and the client should proceed to
> >    discover the appropriate server for direct communication.  The client
> >    MUST also determine which TCP port on the server is listening for
> >    connections, which need not be (and often is not) the typical TCP
> >    port 53 used for conventional DNS, or TCP port 853 used for DNS over
> >
> >    TLS [RFC7858].
> >
> > This is inconsistent with the earlier assertion that the server we are
> talking to is an authoritative server.   How do we know what zone, if any,
> the default resolver is authoritative for?   What if it can support some
> push notifications we want, but for others we need to talk to the
> authoritative server?   What about TLS?
> >
> > I think this text was added based on a comment I made a while back; I
> think that the behavior defined here may be okay, but there should be some
> additional text:
> >
> >    The client begins by opening a DSO Session to its normal configured
> >    DNS recursive resolver and requesting a Push Notification
> >    subscription.  This connection is made to the default DNS-over-TLS
> >
> >    port.   If this connection is successful, then the recursive resolver
> >    will make appropriate Push Notification subscriptions on the client's
> >    behalf, and the client will receive appropriate results.
> >
> >
> >    In many contexts, the local recursive resolver will be able to handle
> >    push notifications for all zones that the client may need to follow.
> >    In other cases, the client may require Push Notifications from more
> >    than one zone, and those zones may be served by different servers.
> >    It is assumed here, therefore, that the client may need to maintain
> >    connections to more than one DNS Push server..
> >
> >    In some cases,
> >    the recursive resolver may not be able to get answers for a particular
> >    zone.   In this case, rather than returning SERVFAIL, the resolver
> >    returns NOTAUTH.   This signals the client that queries for this zone
> >    can't be handled by the local caching resolver.   For that zone, the
> >    client SHOULD contact the zone's DNS Push server itself, even if
> >    all other DNS Push queries can be handled by the local resolver.
> >    This may be necessary in cases where the client is connected to a VPN,
> >    for example, or where the client has a pre-established trust
> relationship
> >    with the owner of the zone that allows the client, but not the local
> >    resolver, to successfully get answers for queries in that zone.
> >
> >    If the
> >    recursive resolver does not support Push Notification subscriptions,
> >    then it will return an error code, DSONOTIMPL.   This occurs when the
> >
> >    local resolver follows the procedure below and does not find an SRV
> >    record indicating support for DNS Push Notifications.
> >
> >    In case of either failure, the client should proceed to
> >    discover the appropriate server for direct communication.  The client
> >
> >    MUST also determine which TCP port on the server is listening for
> >    connections, which need not be (and often is not) the typical TCP
> >    port 53 used for conventional DNS, or TCP port 853 used for DNS over
> >
> >    TLS [RFC7858].
>
> Looks good. Adopted.
>
> >
> > Later in 6.1:
> >
> >    3.  If the requested SOA record does not exist, the client will get
> >        back a NOERROR/NODATA response or an NXDOMAIN/Name Error
> >        response.  In either case, the local resolver SHOULD include the
> >        SOA record for the zone of the requested name in the Authority
> >        Section.
> >
> >
> > That SHOULD is updating RFC1035, I think, although I realize that
> there's text later claiming it doesn't.   How about "would normally"?
>  Given that we specify how clients handle the exceptional case, there's no
> reason to get fussy about this here.   BTW, we really ought to have a
> document that describes this stuff, so that we can reference it.   It's a
> fairly common operation.
>
> changed to “would normally”.
>
> >
> > At the bottom of Page 16 (the end of section 6.2.1) it might be good to
> add some text acknowledging the recent deprecation of ANY queries, and
> explicitly saying why they are not deprecated here.   This avoids the risk
> of DNSOP experts tripping on this, although they will probably see the
> utility.
>
> This is the only thing I didn’t change yet. Looking at
> https://tools.ietf.org/html/draft-ietf-dnsop-refuse-any-07 doesn’t
> exactly say it’s deprecated and our wording seems consistent with the
> options given. I don’t understand how this could trip up DNSOP experts.
>
> > The table in 6.2.2 is introduced by saying "Supported RCODEs are as
> follows:" but then lists NXDOMAIN, for the purpose of explicitly repeating
> that it is not supported.   Subsequent text also refers to the table as if
> all the RCODEs are permitted.   This needs to be fixed.   I would take
> NXDOMAIN out of the table and just be really explicit about how it's not
> allowed.   6.5.2 has the same issue, with the same cure.
>
> Fixed.
>
> >
> > Also in 6.2.2:
> >
> > For RCODE = 2 (SERVFAIL) the delay should be chosen according to the
> level of server overload and the anticipated duration of that overload. By
> default, a value of one minute is RECOMMENDED. If a more serious server
> failure occurs, the delay may be longer in accordance with the specific
> problem encountered.
> >
> > In this case ideally there is more than one server, and the client can
> try the next one in the list, rather than repeatedly connecting to the same
> overloaded server.   Or are we assuming the client will look the server up
> again, and that round-robining will take care of this?
>
> Clarified.
>
> >
> > Also in 6.2.2:
> >
> >       This is a misconfiguration, since this server is listed in a
> >       "_dns-push-tls._tcp.<zone>" SRV record, but the server itself is
> >       not currently configured to support DNS Push Notifications for
> >       that zone.  Since it is possible that the misconfiguration may be
> >       repaired at any time, the retry delay should not be set too high.
> >       By default, a value of 5 minutes is RECOMMENDED.
> >
> >
> > Probably ought to say this:
> >
> >       If the server being queried is not the local resolver, rhis is a
> >       misconfiguration, since this server is listed in a
> >       "_dns-push-tls._tcp.<zone>" SRV record, but the server itself is
> >       not currently configured to support DNS Push Notifications for
> >       that zone.  Since it is possible that the misconfiguration may be
> >       repaired at any time, the retry delay should not be set too high.
> >       By default, a value of 5 minutes is RECOMMENDED.
> >
>
> Adopted.
>
> >
> > At the end of 6.3.1:
> >
> >    The TTL of an added record is stored by the client and decremented as
> >    time passes, with the caveat that for as long as a relevant
> >    subscription is active, the TTL does not decrement below 1 second.
> >    For as long as a relevant subscription remains active, the client
> >    SHOULD assume that when a record goes away the server will notify it
> >    of that fact.  Consequently, a client does not have to poll to verify
> >    that the record is still there.  Once a subscription is cancelled
> >    (individually, or as a result of the DSO session being closed) record
> >    aging resumes and records are removed from the local cache when their
> >
> >    TTL reaches zero.
> >
> > There's a slight problem with this: if the caching resolver is doing
> these queries on behalf of a client, then it shouldn't be decrementing the
> TTL.   Also, if we haven't received an update from the server saying that
> the TTL has a new value, then the TTL doesn't have a new value—it's still
> whatever the server sent last time.   So it would actually be correct to
> never decrement the TTL while a subscription is active.   So I would
> suggest:
> >
> >    The TTL of an added record is stored by the client.   While the
> subscription
> >    is active, the TTL is not decremented, because a change to the TTL
> would
> >    produce a new update.
> >    For as long as a relevant subscription remains active, the client
> >    SHOULD assume that when a record goes away the server will notify it
> >    of that fact.  Consequently, a client does not have to poll to verify
> >    that the record is still there.  Once a subscription is cancelled
> >    (individually, or as a result of the DSO session being closed) record
> >    aging for records covered by the subscription resumes and records are
> >
> >    removed from the local cache when their
> >    TTL reaches zero.
>
> Sounds good.
>
> >
> > Section 7.4 talks about TLS session resumption and that subscriptions
> have to be reinstantiated, but implies without stating explicitly that
> closing a TLS session closes the DSO session.   It might be worth saying
> that explicitly.   Something like:
> >
> >    TLS Session Resumption is permissible on DNS Push Notification
> >    servers.  The server may keep TLS state with Session IDs [RFC5246
> > ] or
> >    operate in stateless mode by sending a Session Ticket [
> > RFC5077
> > ] to
> >    the client for it to store.  However, closing the TLS connection
> >
> >    terminates the  the DSO session.  When the TLS session is
> >    resumed, the DNS Push Notification server will not have any
> >    subscription state and will proceed as with any other new DSO
> >    session.  Use of TLS Session Resumption allows a new TLS connection
> >    to be set up more quickly, but the client will still have to recreate
> >    any desired subscriptions.
> >
>
> Done.
>
> >
> > In section 8, you probably ought to use two tables rather than one.
>  Also, I don't think you've given enough information for the service name
> registration.
>
>
> Split the table and added a “none" port for clarity.
>
> Thanks again!
>
> Tom
>
>