Re: [v6ops] IPv6-Only Preferred DHCPv4 option

Mark Smith <markzzzsmith@gmail.com> Fri, 06 December 2019 03:25 UTC

Return-Path: <markzzzsmith@gmail.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 3429712006F for <v6ops@ietfa.amsl.com>; Thu, 5 Dec 2019 19:25:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.496
X-Spam-Level:
X-Spam-Status: No, score=-0.496 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, FROM_LOCAL_NOVOWEL=0.5, HK_RANDOM_ENVFROM=0.001, HK_RANDOM_FROM=1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 nqgrMQOmr4WD for <v6ops@ietfa.amsl.com>; Thu, 5 Dec 2019 19:24:59 -0800 (PST)
Received: from mail-oi1-x22e.google.com (mail-oi1-x22e.google.com [IPv6:2607:f8b0:4864:20::22e]) (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 AF0F412000F for <v6ops@ietf.org>; Thu, 5 Dec 2019 19:24:59 -0800 (PST)
Received: by mail-oi1-x22e.google.com with SMTP id 6so4890187oix.7 for <v6ops@ietf.org>; Thu, 05 Dec 2019 19:24:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=JQQNbW8cStAx6+ohPWfDmzYVgImJEYYic+pZzsxiTxQ=; b=YI39c5yH+1FzBHAvgRUHyPKDjzx4RxPrXcWW4X3XyRpOIhUBlBrFFhdTq3k+PXp0Yg p2rLYDj7T3rT2wpS4wwpIlfxBPGNIWXYmFItkOnyqv8XnxZosNFDkDU+X0GcUKSWGTLx oScemypJC5dMxNw54oNMOdSK46a1RR8K+6/gBgAxsIv5mXw32egd1IPI21wPTmsnkCq8 GKY8oM3M25h9eFwt7PzY2j2JYE8Fi9pOcM1/TzzNNrplTllZ6H9PvTaN2IwqCUNj9+LE Ti5YsQjoV43Z6dPRk/HA0UPYvBB90Fj6Qb9ARdqk0Mj9zHobvryC76DIUBw6ufac54zJ s9Zg==
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=JQQNbW8cStAx6+ohPWfDmzYVgImJEYYic+pZzsxiTxQ=; b=kOsSMDqDi5lX1sz49Q08LG1UJbVKrYJ0JvhB/1FGipCmEkBoHkb393+8Dh4H3Mbu5c 6TMQVamrKYwayWGhkwk4vVez7NhJeiKtq/zNTmroj9hpv/pQVnCgMwCB4j6CtsOi0/TG UnY7IIhQLUR8jMBUYTqH9zub6XHpEkQ0KMLCSid7ivadPvQ5F76jovFmXsXUgQHkJxXP PJ/wUhPQA0kxCoLrWIPqcaoFPXgO5JpzbDx7kTL0IWAjiAszrCwy3h6w+j/tEMH+d08x KTYysTA872QAOArEiqzMsxK8cr+ihEKiuwOdU5tEkBg7sgixqDGCLxlfINyP205HDYUV xHdA==
X-Gm-Message-State: APjAAAVcZzGhtk1H57YoWY2A0MpzguQsbdF2bIj8b9w8LxGkfnowwCrq B7asbJJZjbtWgyngzU3IZfazCjJPR2kPEqBcbJc=
X-Google-Smtp-Source: APXvYqwi1RrpyECzsqZb6dtqISlWTHvLRKJ1K8kpxx0zHPCQt6rnsOias+VktPGTYyulgboNTPHeRdBhHQF/byx4RVc=
X-Received: by 2002:a05:6808:f:: with SMTP id u15mr10191097oic.164.1575602698994; Thu, 05 Dec 2019 19:24:58 -0800 (PST)
MIME-Version: 1.0
References: <CAO42Z2xDi5dNiVJ_DMEWBfX5fk-1FTVMq6B1njQVVzOEGcc+9g@mail.gmail.com> <6C2B751E-9402-4ABD-830B-C9099AA97994@fugue.com>
In-Reply-To: <6C2B751E-9402-4ABD-830B-C9099AA97994@fugue.com>
From: Mark Smith <markzzzsmith@gmail.com>
Date: Fri, 06 Dec 2019 14:24:47 +1100
Message-ID: <CAO42Z2xTNHepQmMpTmwnXDARjXe_Y9jYMONZjHpzaRp35hVE4Q@mail.gmail.com>
To: Ted Lemon <mellon@fugue.com>
Cc: Lorenzo Colitti <lorenzo@google.com>, v6ops list <v6ops@ietf.org>, Lorenzo Colitti <lorenzo=40google.com@dmarc.ietf.org>
Content-Type: multipart/alternative; boundary="0000000000002e473c05990097c0"
Archived-At: <https://mailarchive.ietf.org/arch/msg/v6ops/F61-1RFrHL-bXDhkVolO7B3D4YY>
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 03:25:01 -0000

On Fri, 6 Dec 2019, 13:37 Ted Lemon, <mellon@fugue.com> wrote:

> 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.
>

I'm not sure what the point of your question is.

I mentioned my thinking is probably more future and long term because
applications would need to be explicitly IPv6 only. I understand that's not
going to be many today.

The trouble with dual stack applications is that they aren't explicitly
saying whether they want or expect IPv4, IPv6 or both from the network.

Since what the applications want from the network is ambiguous, it's hard
to know if an application would be happy with an IPv6 only network
connection.

Taking IPv4 away from these ambiguous applications always creates a risk of
breaking them.

An application that explicitly said "I only want IPv6" doesn't have that
risk.



> > 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
>