Re: [dhcwg] [v6ops] Fwd: New Version Notification for draft-link-dhc-v6only-01.txt

Roy Marples <roy@marples.name> Thu, 12 December 2019 22:23 UTC

Return-Path: <roy@marples.name>
X-Original-To: dhcwg@ietfa.amsl.com
Delivered-To: dhcwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 82AE5120025 for <dhcwg@ietfa.amsl.com>; Thu, 12 Dec 2019 14:23:39 -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 ZY5tyHc3exXU for <dhcwg@ietfa.amsl.com>; Thu, 12 Dec 2019 14:23:38 -0800 (PST)
Received: from relay2.marples.name (relay2.marples.name [77.68.23.143]) (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 DBD21120024 for <dhcwg@ietf.org>; Thu, 12 Dec 2019 14:23:37 -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 C950675E for <dhcwg@ietf.org>; Thu, 12 Dec 2019 22:23:34 +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 AE8DB1CD621; Thu, 12 Dec 2019 22:21:58 +0000 (GMT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marples.name; s=mail; t=1576189318; 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=MLsFylBSD3VAjV4uyz2z8HsASwo5wsEscTzwm5YkiIs=; b=RV7V+QNQWqB7uY3ETjMjbzwqW1eUCEkE3QjZ1KS0RauY5hENEJqXf2M1t3kLSY+jzLR9dA Sc97YAAur+sUBKoF+89sS7mdpoO47jc6t9ZfoPcOaQAd6cO0TxYFjUwCI19XdbIS/4l5d2 Yg/4YMTIez8TyDXDHhomR5L7bPR4EzY=
To: "Bernie Volz (volz)" <volz@cisco.com>, David Farmer <farmer@umn.edu>, Ted Lemon <mellon@fugue.com>
Cc: "dhcwg@ietf.org" <dhcwg@ietf.org>
References: <157593507544.2098.9687007201578884820.idtracker@ietfa.amsl.com> <CABKWDgx5SSBP_K7BWxe4aPn9DKm-VPo62OXjsVZP8PRjfu0C2w@mail.gmail.com> <CAFU7BAQHkYh-EDLopUbWvw-gq8i5jttacVogKXUaJvJcBTdCOA@mail.gmail.com> <787AE7BB302AE849A7480A190F8B9330313E7F6E@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <DM6PR11MB41379502CE18C7AF513181F0CF5B0@DM6PR11MB4137.namprd11.prod.outlook.com> <FB5B5DDE-9DB4-4E18-BF7E-7D9ECFCB016E@fugue.com> <DM6PR11MB4137651404FE6807DF29FC8DCF5B0@DM6PR11MB4137.namprd11.prod.outlook.com> <CAN-Dau1F794J3GzDKNmSX+hGBauQbJ954-7ViOGZN9XHs1cRWQ@mail.gmail.com> <F6B54CA9-BCF9-4E2C-B431-AC73954C99AE@cisco.com> <DM6PR11MB413778A43012050E9CB0502BCF550@DM6PR11MB4137.namprd11.prod.outlook.com> <ce5dfc2f-d8a1-35b1-9678-d7b0b5303788@marples.name> <DM6PR11MB41376D48C8D68DE0040E4B7DCF550@DM6PR11MB4137.namprd11.prod.outlook.com>
From: Roy Marples <roy@marples.name>
Message-ID: <d4480cd8-bc5d-3c36-a5ac-10c053509760@marples.name>
Date: Thu, 12 Dec 2019 22:23:33 +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: <DM6PR11MB41376D48C8D68DE0040E4B7DCF550@DM6PR11MB4137.namprd11.prod.outlook.com>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-GB
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/dhcwg/gG_5pkgnbrsENFtFXRJCOpGHVtA>
Subject: Re: [dhcwg] [v6ops] Fwd: New Version Notification for draft-link-dhc-v6only-01.txt
X-BeenThere: dhcwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <dhcwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dhcwg/>
List-Post: <mailto:dhcwg@ietf.org>
List-Help: <mailto:dhcwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dhcwg>, <mailto:dhcwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Dec 2019 22:23:39 -0000

On 12/12/2019 21:02, Bernie Volz (volz) wrote:
>> You can argue that said boxes are not RFC compliant, but that is the same as the argument here - nothing in the standard says that 0.0.0.0 cannot be offered.
> 
> Yes, there is no text that directly says 0.0.0.0 MUST NOT be offered. But it is pretty clear:
> 
> Field      DHCPOFFER            DHCPACK             DHCPNAK
> -----      ---------            -------             -------
> ...
> 'yiaddr'   IP address offered   IP address          0
>             to client            assigned to client
> 
> Offering 0.0.0.0 is not given the client an address it can use. There's plenty of documents that document 0.0.0.0 is not a destination address on the network. I can't see how in the absence of this use case, 0.0.0.0 would ever be a valid yiaddr in a DHCPOFFER.

But yet there is no error assiging the unspecified address to an interface.
On BSD, it shows as an address via ifconfig.
On Linux and Solaris it removes any currently assigned address (via 
ifconfig).

Now on BSD (historically) it actually had a use - it needed to be 
assigned to get DHCP to work (this is no longer an issue, just noting 
it). Some PPP/VPN implementations (on BSD and other OS) also assign the 
unspecified address like so.

Does it go anywhere? No. But that's not the point - the address *as an 
address* is valid. How it's used by the host is entirely upto the host.
Any middleware specifying unspecified behaviour is broken by design.

> And, when given two choices - one that clearly works (offer an address that the client could use) vs offering 0.0.0.0 which could have issues, why would you chose to do something that you know has a chance of breaking things. It just makes no sense to do so. And, this option is for the case where IPv4 service IS available to clients that need it, but if the client doesn't need it and can use IPv6 transition mechanism for IPv4 service.

I see an issue with being handed an address and a faulty client which 
implements this option performing DAD, spots a host that's actually 
using it and then declining the lease.

Using the unspecified address clearly works here.

So which is more at fault - trying to validate currently undefined 
behaviour to trying to validate an address offered?

Both are equally at fault in my eyes, thus the better semantic of 
offering an unspecified address wins.

> 
> Nothing we "change" or "enhance" is 100% certain to work everywhere - there are just too many (often broken) assumptions people make. But that's exactly my argument for assigning a real address - one less risk you need to take that something somewhere will break because it wasn't expected. Thank you for your cases where this demonstrates why being conservative in what we do is best.

Agreed

> And, in terms of being conservative, if someone (a vendor, a site) has used whatever option value IANA eventually assigns to the IPv6-only option and a client sends it in the PRL, this will cause problems as the client is not using it as "IPv6-only" and so it will fail because it will either think the server's reply with a yiaddr of 0 is bad or it will try a DHCPREQUEST and fail to get any address (likely will get a DHCPNAK). This process will repeat and the client will not come online. If instead the server sends a usable address, the client will likely be happy and come online (though it may not understand the returned option data).

This is true.
However, in this case the standard is currently undefined behaviour for 
this option.
We are talking about defining it - exactly the same as the unspecified 
address here. It's currently undefined and your middleware box has the 
same issue as this vendor with the duplicated code.

> Finally, if you're hinting that if something is going to break (ignoring the offered address issue) if the IPv6-only option is present, there's not much we can do about that except hope that it is fixed. Or, perhaps we should stop issuing new option assignments?

And the reason we can't take the same stance with your middleware box is?

Also, the breakage I am referring to is no lease offered at all - the 
upstream box is totally silent in all cases.

Roy