Re: Review of draft-lemon-stub-networks-00

Ted Lemon <mellon@fugue.com> Sat, 27 February 2021 20:08 UTC

Return-Path: <mellon@fugue.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 55BA23A1364 for <ipv6@ietfa.amsl.com>; Sat, 27 Feb 2021 12:08:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable 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 MrI5F6RBXTnT for <ipv6@ietfa.amsl.com>; Sat, 27 Feb 2021 12:08:17 -0800 (PST)
Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com [IPv6:2607:f8b0:4864:20::835]) (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 8F8A13A135D for <6man@ietf.org>; Sat, 27 Feb 2021 12:08:17 -0800 (PST)
Received: by mail-qt1-x835.google.com with SMTP id w6so9235853qti.6 for <6man@ietf.org>; Sat, 27 Feb 2021 12:08:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fugue-com.20150623.gappssmtp.com; s=20150623; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=99s/oIxYMaq+9DnsuA5ZlBv0O0UvWy3bviKZDKthRPA=; b=h2r9h1ZcbpV0Ik3henHClnad07fFW9rcI2mTBk6r3AvBLjGsZrK8ydJOjnx9aj51mq hmU5woHB/EX+lFT7PBqTUJsN0JMILRTSsVM3q0a+ayukzGMbbZEfAmHyEgQbHhmX/zya pfNh9CwfCeb7ORBMlluSwRnNtDV+N70+8NKsNJ51+Ngk4P5wGuh+CW5FXbPFAESieo1A 4gU+kmabevvXFC0KlUB12LCcpgkIC5jJTAmeYpO9RsmCk5IVwonPjUcdfmbwI3pa1AyX 3yEewv4Ia9x3MYl/po07804bOpUL8DChGzJVbTYCO8q5Zj81JBnkvLmQVRCXZKQg9Wi9 khAg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=99s/oIxYMaq+9DnsuA5ZlBv0O0UvWy3bviKZDKthRPA=; b=sAf4tJ6HnOo/fVX/+qe1c88nXwAKdicu2KZActCSTKMyoGB4uITgUvositMqzqnnEw oz55X8gtxq+l7mUTgLW1Y0XawOIzAXSoBlxaS7WhD7YZoiiTVNC5YgQVvi43YbZ4lr2p /jcIIiChh+X2frbtJ5PAujZpu+ilXhWVCOIw2pNgrcU2Y+lfaV/flCMwB0H15bnObzIa 4E+W6w5TNLp8R9NyS9O1wGRt+IvvgbZdmiAmsvl7FYVxft6dbW432NYs2IYzegvgSpjb LWDKEC6WpeSXyjspl+NfOVundhT6H6N0d7X5Eq5LfdS41UlCmN694tkWXiSHyZGUAJ/8 LQvQ==
X-Gm-Message-State: AOAM532/qg1VQ9rxE5fyoV5wNH9/JnNIVAhRmq5NmRWXit2wnE16J/HR EfxyEDAtuHFqL+WHu3z+/7FNSrb6NRBaaw==
X-Google-Smtp-Source: ABdhPJxwygbsenqaUrL9oiZGAr5D0BiSkHqpX/BIdfNZkSiOEKpqwpt8W66sOPrUd7WQgvG4UGpA4w==
X-Received: by 2002:ac8:5d0d:: with SMTP id f13mr7597287qtx.317.1614456496428; Sat, 27 Feb 2021 12:08:16 -0800 (PST)
Received: from smtpclient.apple ([2600:380:8d78:580d:287d:4697:6caf:a899]) by smtp.gmail.com with ESMTPSA id y15sm8341617qtb.29.2021.02.27.12.08.15 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sat, 27 Feb 2021 12:08:16 -0800 (PST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.80.0.2.33\))
Subject: Re: Review of draft-lemon-stub-networks-00
From: Ted Lemon <mellon@fugue.com>
In-Reply-To: <CAGwZUDthsDwLQZE_8AgY0DUXiThTGci3S6EjdsPDb8Wgr7JEBQ@mail.gmail.com>
Date: Sat, 27 Feb 2021 15:08:14 -0500
Cc: Homenet Working Group <homenet@ietf.org>, iotops@ietf.org, 6MAN <6man@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <7809B49F-EFC1-480D-8BE7-2669335F263D@fugue.com>
References: <CAGwZUDthsDwLQZE_8AgY0DUXiThTGci3S6EjdsPDb8Wgr7JEBQ@mail.gmail.com>
To: Jonathan Hui <jonhui=40google.com@dmarc.ietf.org>
X-Mailer: Apple Mail (2.3654.80.0.2.33)
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/sB3OMJXMyt4-9_Mj1lGJxP1qmJE>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 27 Feb 2021 20:08:22 -0000

Thanks for the review, Jonathan! I’ve applied your changes to the document where appropriate (will publish an update when posting re-opens). I’ve also called out some discussion points where I don’t yet know what to add to the text.

> On Feb 26, 2021, at 2:07 PM, Jonathan Hui <jonhui=40google.com@dmarc.ietf.org> wrote:
> Section 3.1
> - "In this case, the stub router SHOULD NOT provide addressability on the adjacent infrastructure link." - I wonder if there are scenarios where the existing addressing is not stable (e.g. when provided by an external entity). Constrained devices would rather avoid having to determine that an existing IPv6 address is unreachable and discover the new IPv6 address. Having the stub router guarantee stable IPv6 addressing can reduce overhead on stub network devices. For example, I'm wondering if it's useful for the stub router to provide a ULA prefix if only a GUA prefix is being advertised and no ULA prefix exists.

This is an interesting point. I would expect the home router to be providing a ULA in this case, for just this reason. You are also assuming that the stub network device is relying on address stability, which perhaps it shouldn’t be. Just because I got address A during service discovery doesn’t mean that address A is still valid a half hour later. If address A suddenly stops working, that’s probably a signal to refresh the DNS Lookup that returned address A to see if it’s now returning address B. Obviously if this is a constrained device we’d prefer it do as little work as possible, but I think it needs to be able to do this or it’s not a functioning device. So if we make this scenario less likely, is that actually a good outcome?

In principle, I think events of this sort can be expected to be infrequent, and so I’m not convinced that hardening the network is a good approach—hardening the node may produce a more resilient service.

> Section 3.1.1
> - "router discovery" - Should we capitalize and explicitly reference RFC 4861?
> - "a usable prefixes" -> "a usable prefix"

Yes, there are a lot of places in the document where [citation needed] applies. I’ve fixed this one.

> Section 3.1.2 
> - "IP addressability becomes present on adjacent infrastructure link" - was more text intended here?

I’ve deleted this fragment—I think it was the beginning thought for the next paragraph, and then got forgotten.

> Section 3.1.3
> - This section describes how to avoid creating duplicate on-link prefixes. Should we also discuss how to avoid deprecating multiple on-link prefixes simultaneously in the case that duplicates do occur? In particular, how do we ensure convergence on one prefix?

This is a good point. I’d worried about this but concluded that it was unlikely and also not deadly, but there’s no harm in accounting for it.

I’ve made two changes to the document to address this. First, I emphasized in the existing text that a prefix only triggers deprecation if it has a non-zero preferred lifetime. Secondly, I’ve added the following text:

	    It is also possible that all routers on the link that are capable of advertising prefixes might be following the same
	    protocol of deprecating their own prefix when a valid prefix shows up. To prevent a situation where all routers
	    deprecate their prefix and wait until there are no valid prefixes being advertised before advertising a prefix, each
	    stub router must detect the situation where, having deprecated its own prefix, all of the other prefixes being
	    advertised on the link have also been deprecated.
	    
	    When this situation occurs, each router on the link MUST compare the valid lifetimes of all the prefixes that have been
	    seen. If the router's own prefix expires last, then that router should immediately resume publishing its prefix as a
	    preferred prefix.

	    If a router observes this situation and its prefix is not the one that expires last, it MUST set a timer for
	    UNDEPRECATE_WAIT seconds, while continuing to observe prefix advertisements on the link. If, when the timer expires, the
	    prefix that expires last has not been re-published as a preferred prefix, then that prefix is marked as 'really
	    deprecated', and no longer considered a candidate for de-deprecation.

	    Using the remaining list of prefixes, the router should then apply the same algorithm. It should continue to apply this
	    algorithm until either its prefix becomes the one to re-publish as preferred, or some other router has re-published its
	    prefix as preferred.

> 
> Section 3.3
> - "Stub routers MUST advertise reachability to stub network OSNR prefixes on any AIL to which they are connected." Should we consider limiting which stub routers advertise reachability if there are a large number of stub routers?

We could. I don’t know what the number should be, though.

> - "reachability to all such links" should be "reachability to all such prefixes”?

Fixed, thanks!

> Section 3.4
> - "If the stub router is not advertising itself as a default on the stub network, it MUST advertise reachability to any prefixes that are being advertised as on-link on AILs to which it is attached." I think we should consider reachability to other stub networks in addition to the AIL. In this case, the stub router must also advertise reachability to prefixes advertised in RIOs.

Okay. That’s starting to go in the direction of a routing protocol, though. It might be better to just do that, if that’s what we need. The Babel working group has a pretty nice self-configuring routing protocol for just this sort of situation.

> Also, similar to Section 3.3, should we consider limiting which stub routers advertise reachability if there are a large number of stub routers?

Yes, this would be particularly important on a constrained network. I will confess that at present we are not doing this. Can you suggest text? :)

> - "Consequently, stub routers SHOULD be configurable to not advertise themselves as default routers on the stub network." In some cases, I think it may be possible for a stub router to automatically determine that there is another stub router attached to the same stub network but not the same AIL.

Send text? :)

> Section 3.5
> - "be able to discovery devices" -> "be able to discover devices"
> - add references to SRP, Advertising Proxy, etc.

Fixed, thanks!

> Section 3.6
> - add reference to Discovery Proxy.

Done.

> 
> Section 4.1
> - "traffix" -> "traffic"

Done.

> Section 4.2
> - "WFfi" -> "WiFi"

Done. I also noticed that I’m using WiFi a lot, and the trademarked term is Wi-Fi, so I corrected all of those cases.

> Section 5
> - Should we recommend some way to deterministically converge on one prefix when deprecating?

Ooh, nice catch—I forgot about that. I’ve added this, which describes what we did:

	When the time comes to deprecate one or more prefixes as a result of a network partition healing, only one prefix should
	remain. If there are any GUA prefixes, and if there is no specific configuration contradicting this, the GUA prefix that is
	numerically lowest should be kept, and all others deprecated. If there are no GUA prefixes, then the ULA prefix that is
	numerically lowest should be kept, and the others deprecated. By using this approach, it is not necessary for the routers to
	coordinate in advance.


> Section 6
> - "effected" -> "affected"

I actually meant “effected,” but maybe I should have said “established?” :)

> Section 6.2
> - "off-mesh" -> "Off-Stub-Network"

Oops.

> Section 6.3
> - How does the infrastructure advertise availability of the SRP service? If out of scope, maybe state that?

Hm. I added this:

	  This SRP service can be discovered
	  using DNS-SD, using the _dnssd-srp-tls service type. If the stub network requires UDP-based SRP rather than tls-based SRP,
	  the stub router MUST act as a proxy to deliver SRP updates over the tcp+tls transport.

This probably needs to be fleshed out in this document, or else in another dnssd document.