Re: [v6ops] IPv6-Only Preferred DHCPv4 option

Ted Lemon <mellon@fugue.com> Fri, 06 December 2019 02:37 UTC

Return-Path: <mellon@fugue.com>
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 C9CB5120072 for <v6ops@ietfa.amsl.com>; Thu, 5 Dec 2019 18:37:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, MIME_QP_LONG_LINE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, 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 sa6n-dLJHQbC for <v6ops@ietfa.amsl.com>; Thu, 5 Dec 2019 18:37:36 -0800 (PST)
Received: from mail-pg1-x529.google.com (mail-pg1-x529.google.com [IPv6:2607:f8b0:4864:20::529]) (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 B5B4F12004C for <v6ops@ietf.org>; Thu, 5 Dec 2019 18:37:36 -0800 (PST)
Received: by mail-pg1-x529.google.com with SMTP id x8so2513341pgk.8 for <v6ops@ietf.org>; Thu, 05 Dec 2019 18:37:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fugue-com.20150623.gappssmtp.com; s=20150623; h=content-transfer-encoding:from:mime-version:subject:date:message-id :references:cc:in-reply-to:to; bh=+MRfAguxVXMOjp9EqCUSZpJydcWiliRa6jUl2JlPpr8=; b=w2KCLINVf9vwy3DSdngN1Wt5bs1UwX1JUpaoDYve4RSuqGDSyTeMks0/a4PUXDerfh yNY5VuDCzzyf0e+G2gWUybbLQQjiS27UM0UI8HUHLhj98nJd/Nz9K6tIoSnxyx6ldPmz HiIKvIYUoLitCnp2gfg4NbG2isRhjTbhma9wmDPdNp7GYADisMohOq0iGn55Q8DHNOFC MQIyy6LcwF3flc5NScrfp5aJYz7WLWfRcY70Q3GnTrNvYs/AEVfzFfwI2F/U1mTItz7Y eHcA3vyBUP1gijjBxZXmIzWkhS1OcnGCSsMFRKTXrJDuHJ2JPZ8gIJTI59ToPGscKM5f eofg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:content-transfer-encoding:from:mime-version :subject:date:message-id:references:cc:in-reply-to:to; bh=+MRfAguxVXMOjp9EqCUSZpJydcWiliRa6jUl2JlPpr8=; b=n1uQY8b9/z3gQ9FQm+lH+20CsFowe/FRq5hDufZfIB12cXwVYBtNMdsVtHwtL/ZMeS gXy6iq8hD3u0/4PUUemsZfmU9DDnIitOhl3UkM43uuaRXKWgoYTi7pUB+xGS0+5sDvzU qG66lIpgJUz+Fu62VkoTrFTAJsvFIeRSzxw7ZVej/554s7VqW1h/luDOthliIAsdiYv8 i6PrCJZhT048ZOBp88GX2uwX/d3P/MYELIzSF2THOevJVirfUNBGUwDOhnnD0dxAhgbD ixUhL/gluTTYbncUfYZZMIWHYTCKMoCmooa+hEib80EMB/8LlhXxcOIEEa/QvSTTdmyc Z3Fg==
X-Gm-Message-State: APjAAAXV7inl8rRMIvjWZ1oYthKI9rnrKvd+6e6aL9htJfZX9Ve5qUgh zD6jHbzLM3hKYhuo9Mhaou1voQ==
X-Google-Smtp-Source: APXvYqyZcv3Syv966XR0Gj3ttaLrETiBXiiMo4tckWSZ1krjIZwgLkH6kB9AnMIjtVM9y4sDGG0UHg==
X-Received: by 2002:a63:6a09:: with SMTP id f9mr928030pgc.425.1575599856012; Thu, 05 Dec 2019 18:37:36 -0800 (PST)
Received: from [10.20.3.126] (ip-64-134-236-149.public.wayport.net. [64.134.236.149]) by smtp.gmail.com with ESMTPSA id 17sm14201218pfv.142.2019.12.05.18.37.34 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 05 Dec 2019 18:37:34 -0800 (PST)
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
From: Ted Lemon <mellon@fugue.com>
Mime-Version: 1.0 (1.0)
Date: Thu, 05 Dec 2019 18:37:33 -0800
Message-Id: <6C2B751E-9402-4ABD-830B-C9099AA97994@fugue.com>
References: <CAO42Z2xDi5dNiVJ_DMEWBfX5fk-1FTVMq6B1njQVVzOEGcc+9g@mail.gmail.com>
Cc: Lorenzo Colitti <lorenzo@google.com>, v6ops list <v6ops@ietf.org>, Lorenzo Colitti <lorenzo=40google.com@dmarc.ietf.org>
In-Reply-To: <CAO42Z2xDi5dNiVJ_DMEWBfX5fk-1FTVMq6B1njQVVzOEGcc+9g@mail.gmail.com>
To: Mark Smith <markzzzsmith@gmail.com>
X-Mailer: iPhone Mail (17E180a)
Archived-At: <https://mailarchive.ietf.org/arch/msg/v6ops/IptE64lNLGIr-mBW2DqOQ1JXk6s>
Subject: Re: [v6ops] 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: Fri, 06 Dec 2019 02:37:43 -0000

That wasn’t my question. I know how to write one. Can you give me an example of one in the wild?  It has to be something that gets serious use. 

> On Dec 5, 2019, at 17:58, Mark Smith <markzzzsmith@gmail.com> wrote:
> 
> On Fri, 6 Dec 2019 at 12:50, Ted Lemon <mellon@fugue.com> wrote:
>> 
>> What’s an ipv6-only application?  Normally I would expect an application to be stack-neutral.
>> 
> 
> From RFC 3493:
> 
> For example, to create an IPv6/TCP socket, applications make the
>   call:
> 
>      s = socket(AF_INET6, SOCK_STREAM, 0);
> 
>   To create an IPv6/UDP socket, applications make the call:
> 
>      s = socket(AF_INET6, SOCK_DGRAM, 0);
> 
> 
> For example, this application only listens on IPv4 or IPv6, but never both:
> 
> https://github.com/markzzzsmith/replicast
> 
> 
> Regards,
> Mark.
> 
> 
>>>> On Dec 5, 2019, at 16:59, Mark Smith <markzzzsmith@gmail.com> wrote:
>>> 
>>> On Thu, 5 Dec 2019 at 13:20, Lorenzo Colitti <lorenzo@google.com> wrote:
>>>> 
>>>>> On Thu, Dec 5, 2019 at 9:53 AM Mark Smith <markzzzsmith@gmail.com> wrote:
>>>>> 
>>>>> If hosts only acquired IPv4 addresses via DHCPv4 based on when the first IPv4 application started running, then when a host is only running IPv6 only applications, it would never acquire an IPv4 address because it wouldn't need one, meaning never try to use DHCPv4 (so would avoid the link-layer broadcast DHCP_DISCOVERS) and never use ARP (avoid link-layer broadcast ARP Requests).
>>>> 
>>>> 
>>>> Speaking as an OS implementer: how do I know whether an application is an IPv4 application?
>>>> 
>>> 
>>> So these are reasonable questions, and they're uncovering some
>>> assumptions and a view point I have:
>>> 
>>> - the hosts in question are commonly single homed (and I should know
>>> better *, however I would't be surprised if that is the unstated
>>> assumption of most people when they imagine the scenario being
>>> discussed)
>>> 
>>> - the on-demand I'm imagining is inspired by the dial-on-demand that
>>> used to be implemented with ISDN, triggered by IP traffic. ISDN
>>> connection establishment happened quickly enough that it was tolerable
>>> by end-users. If a DHCPv4 transaction occurred within 100 ms, users
>>> will perceive it as instant - "Response Times: The 3 Important Limits"
>>> - https://www.nngroup.com/articles/response-times-3-important-limits/
>>> 
>>> - IPv6 only applications clearly indicate they're IPv6 only, by only
>>> opening IPv6 sockets.
>>> 
>>> This latter point is probably a significant difference between what is
>>> being proposed here and what I'm thinking. My thinking is probably
>>> about a passive and longer term mechanism that would result in IPv4
>>> disappearing over time, rather than an active mechanism that purposely
>>> switches IPv4 off on dual stack hosts.
>>> 
>>> 
>>> Responding to these points for completeness:
>>> 
>>>> When it calls getaddrinfo() with AF_UNSPEC? Pretty much all apps do that.
>>> 
>>> They wouldn't be IPv6 Only applications.
>>> 
>>> 
>>>> When it creates an IPv4 socket? But what if it's creating an IPv4 socket for the purpose of connecting to another network on the system (e.g., cellular data) that does have IPv4?
>>> 
>>> Yes, this would be an issue with what I was describing.
>>> 
>>> What I'm thinking about would probably more result in "IPv6 Only"
>>> being a host level status on a host, covering all interfaces (1 or
>>> many), rather than an interface status. In other words, if a host is
>>> only currently running IPv6 Only applications, then there is no need
>>> for any IPv4 addresses on any of its interfaces.
>>> 
>>> 
>>>> When it does a connect() on an IPv4 socket? But what if that's just a happy eyeballs stack that is using IPv4 because it might be available?
>>> 
>>> As above, not an IPv6 Only application if trying to use HE.
>>> 
>>> 
>>>> What if the app knows it needs IPv4 and will refuse to do any networking if it doesn't find an IPv4 address on the system?
>>> 
>>> Not an IPv6 Only application.
>>> 
>>> 
>>> I see value in both applications being explicit about what Internet
>>> Protocol they want to use (e.g. on demand addressing per above), and
>>> also being agnostic about it.
>>> 
>>> 
>>> 
>>> Regards,
>>> Mark.
>>> 
>>> 
>>> 
>>> (* "The Rapid Rise of the Mobile Multi-Homed Host" -
>>> https://www.ausnog.net/sites/default/files/ausnog-2013/presentations/D01%20P06-the%20rapid%20rise%20of%20the%20mobile%20multihomed%20host.pdf)
>>> 
>>> _______________________________________________
>>> v6ops mailing list
>>> v6ops@ietf.org
>>> https://www.ietf.org/mailman/listinfo/v6ops