Re: [v6ops] [dhcwg] IPv6-Only Preferred DHCPv4 option

Roy Marples <roy@marples.name> Thu, 05 December 2019 04:46 UTC

Return-Path: <roy@marples.name>
X-Original-To: v6ops@ietfa.amsl.com
Delivered-To: v6ops@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 828F412095A for <v6ops@ietfa.amsl.com>; Wed, 4 Dec 2019 20:46:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=marples.name
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 h75EcBJtxwzM for <v6ops@ietfa.amsl.com>; Wed, 4 Dec 2019 20:46:05 -0800 (PST)
Received: from relay2.marples.name (relay2.marples.name [IPv6:2a00:da00:1800:80d6::1]) (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 59C511200B4 for <v6ops@ietf.org>; Wed, 4 Dec 2019 20:46:05 -0800 (PST)
Received: from mail.marples.name (cpc115040-bour7-2-0-cust370.15-1.cable.virginm.net [81.108.15.115]) by relay2.marples.name (Postfix) with ESMTPS id 8A90179B for <v6ops@ietf.org>; Thu, 5 Dec 2019 04:46:03 +0000 (UTC)
Received: from [10.73.1.30] (unknown [10.73.1.30]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.marples.name (Postfix) with ESMTPSA id B9FF11CD619; Thu, 5 Dec 2019 04:45:05 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marples.name; s=mail; t=1575521105; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ui3n6UqhQE17L5sJ7Y8kxrRRq7NnUSLUslE28hdfGfc=; b=E5clX5kmJaU64+OQ1r8pdUydHKzc7kPYLQAkS8DmLsIGjCCqhzYA0dbdzfTA4zFE9n0qbr psnloJIEUCw07dfNnUPzngCLuTJ6rC488icvG5TtWy8Z0azZCu/7dqlgy/4lkB6+lqYGLd p5PyLWE4QIRO1/aI8Lu/a9ZWE+lieV8=
To: Lorenzo Colitti <lorenzo@google.com>, Tomek Mrugalski <tomasz.mrugalski@gmail.com>
Cc: Jen Linkova <furry13@gmail.com>, dhcwg@ietf.org, draft-link-dhc-v6only@ietf.org, V6 Ops List <v6ops@ietf.org>
References: <CAFU7BAR1JLUZps=CAqJfeQtUf-xQ88RYvgYrPCP+QP0Ter7YFg@mail.gmail.com> <da078a21-b606-f0d9-3833-d66b20410853@marples.name> <CAFU7BASdWZv1RTVa5v4thbKPqCrmG886G+hK2J0UoZ3TbELDnw@mail.gmail.com> <b52fdd35-9663-e7df-7303-748a6b3a57ce@marples.name> <CAKD1Yr0vp2gaVRza+wei0qM6T9oN=iu39jRjK-cvhheorgE=Xg@mail.gmail.com> <67155c63-2442-2846-57f2-82fa4da16251@marples.name> <CAKD1Yr3y9eycfenN-t9oU_zgPHEZPy-AVXs3qXkWOBe9UXxVUQ@mail.gmail.com>
From: Roy Marples <roy@marples.name>
Message-ID: <a6035aba-cab5-c779-c977-8b1a995eccfd@marples.name>
Date: Thu, 05 Dec 2019 04:45:59 +0000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1
MIME-Version: 1.0
In-Reply-To: <CAKD1Yr3y9eycfenN-t9oU_zgPHEZPy-AVXs3qXkWOBe9UXxVUQ@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-GB
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/v6ops/WuxkfLHqGw1SDUaVTvIhQteLdQU>
Subject: Re: [v6ops] [dhcwg] IPv6-Only Preferred DHCPv4 option
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: v6ops discussion list <v6ops.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/v6ops>, <mailto:v6ops-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/v6ops/>
List-Post: <mailto:v6ops@ietf.org>
List-Help: <mailto:v6ops-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/v6ops>, <mailto:v6ops-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Dec 2019 04:46:07 -0000

On 05/12/2019 03:48, Lorenzo Colitti wrote:
> On Thu, Dec 5, 2019 at 11:50 AM Roy Marples <roy@marples.name 
> <mailto:roy@marples.name>> wrote:
> 
>      > The T2 timer is about the validity of the address that is offered
> 
>     Wrong.
>     The T2 timer addresses the lease as a whole. At this point the address
>     is just meta data, just like domain or dns servers.
> 
> 
> Regardless: the T2 timer is about the validity of the information that 
> is offered. The V6ONLY_WAIT timer is different: it's about when the 
> client should ask again if the client *does not request* the offer.

So in simple terms.
The server offers some information.
Given this information (in current DHCP semantics) we can RENEW (T1) or 
REBIND (T2).
If the client does not request the offer (hey! I see this new fangled 
option here that says NO DHCP) the client can still accept the T2 timer 
at the very least.

Think of the analogus RFC 7083 - Modification to Default Values of 
SOL_MAX_RT and INF_MAX_RT. This RFC goes out of its way not to add new 
timers.

>     Or at least V6ONLY_WAIT is at the very least badly worded, but DHCP
>     should not depend on any IPv6 settings - or vice versa. Is it too much
>     to ask to keep protocol setup separate?
> 
> 
> Then suggest a name that you like more? I can think of DISCOVER_WAIT and 
> INIT_WAIT, but I'm fine with any name that has WG consensus.
> 
>     As we're not offering an address in this situation, how is V6ONLY_WAIT
>     different from a timer source that cannot exist? As such, why invent a
>     new timer source?
> 
> 
> In the document as currently worded, the network does offer an address. 
> It says that the client MUST NOT configure the address if it supports 
> the new option.

You are directly correlating T2 to an address. Please don't - T2 is for 
the whole lease.

> 
>      > If there is consensus that this is useless we can remove it, but
>     I don't
>      > see a a strong reason to give up that extra flexibility. Is there?
> 
>     I don't see any extra flexibility offered. You talk about lease times
>     and yet say T1/T2 can't be used - why? All I see is more complication
>     when things can be kept simple.
> 
> 
> There's a difference in semantics: the least time is meaningful to 
> clients that request the lease and directly affects their behaviour and 
> the number and frequency of DHCP packets that they send. The V6ONLY_WAIT 
> timer is meaningful to clients that do not request the lease.

I'm not fully following here.
DISOVER - DHCP optional
server says - OK, retry around T2 (our new option)

vs

DISCOVER - No new option, I want a lease
server says - Sure! here's T1 and T2 timers


  As in the
> example I provided, the operator is likely going to want to configure 
> them differently. We should also bear in mind that there may be devices 
> on the path (e.g., relays, snooping switches) that see these offer 
> packets. Using a separate timer avoids the possibility that these 
> devices would act on the T2 field in ways that we don't anticipate or 
> desire. Using a separate option also makes it clear that there is no 
> need for this document to update RFC 2132 and RFC 8415 to amend the 
> definition of the IP address lease time option and the T1/T2 timers. >
>  From a complexity perspective, I think a separate timer is actually 
> simpler. While it does need to be parsed, that needs to happen anyway.

Only because you are insistent in putting it into a new option.
It's not needed.

> The fact that it's a separate option and has separate semantics makes it 
> easier to reason about the behaviour of the state machine than if we 
> were overloading the existing option. As the maintainer of a popular 
> DHCP client myself, I would prefer it.

Well, if you prefer extra code, unit tests and bloat, don't let me stop you.
But when it comes to my code I would rather keep it lean and mean.

Or to put it another way - I would not like anyone to force needless 
code when it's not really needed.

> Additionally, I would expect that a separate option would be simpler to 
> implement on the server side. This is because the server can just 
> continue to consider the lease time a property of the address pool, and 
> treat this new option simply as a statically-configured option that is 
> returned to clients iff they requested it in the PRL. If we use the same 
> field for the lease timer and the V6ONLY_WAIT timer, then the server 
> will need to change the lease timer in DHCPOFFER packets depending on 
> whether the option was requested or not, and I would expect that to be 
> more complex. +Tomek Mrugalski <mailto:tomasz.mrugalski@gmail.com> any 
> thoughts on this?

 From what I'm proposing, the extra option server side is like DHCP:on/off
It's not complex or rocket science. It addreses the need.
There is no concern about IPv6 or future IPv8 or whatever.

Roy