Re: [v6ops] IPv6 link-local and URLs @ IETF119

Toerless Eckert <tte@cs.fau.de> Tue, 19 March 2024 21:30 UTC

Return-Path: <eckert@i4.informatik.uni-erlangen.de>
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 B1865C14F69D for <v6ops@ietfa.amsl.com>; Tue, 19 Mar 2024 14:30:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.66
X-Spam-Level:
X-Spam-Status: No, score=-6.66 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id s8XhF7NhRRqA for <v6ops@ietfa.amsl.com>; Tue, 19 Mar 2024 14:30:13 -0700 (PDT)
Received: from faui40.informatik.uni-erlangen.de (faui40.informatik.uni-erlangen.de [131.188.34.40]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4E07AC14F5FD for <v6ops@ietf.org>; Tue, 19 Mar 2024 14:30:11 -0700 (PDT)
Received: from faui48e.informatik.uni-erlangen.de (faui48e.informatik.uni-erlangen.de [131.188.34.51]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by faui40.informatik.uni-erlangen.de (Postfix) with ESMTPS id 4TzlHf5HbMznkM6; Tue, 19 Mar 2024 22:30:06 +0100 (CET)
Received: by faui48e.informatik.uni-erlangen.de (Postfix, from userid 10463) id 4TzlHf4Ndtzkn8b; Tue, 19 Mar 2024 22:30:06 +0100 (CET)
Date: Tue, 19 Mar 2024 22:30:06 +0100
From: Toerless Eckert <tte@cs.fau.de>
To: Brian E Carpenter <brian.e.carpenter@gmail.com>
Cc: Lorenzo Colitti <lorenzo@google.com>, George Michaelson <ggm@algebras.org>, "v6ops@ietf.org WG" <v6ops@ietf.org>, "Murray S. Kucherawy" <superuser@gmail.com>
Message-ID: <ZfoD3livnUewXREI@faui48e.informatik.uni-erlangen.de>
References: <CAL0qLwZfRt1o4o3Z0zC+XfO1U_=uGznpmqSaDrKjf06HXAYm5w@mail.gmail.com> <CAL0qLwZ2WELSG868Hcc=dYH_zcm+ecEbavt8Oq7GSTT8st0hWg@mail.gmail.com> <e9387f40-408a-15fb-3f2c-afaa05c5a7ce@gmail.com> <CAKD1Yr09GvBdHFqPAujGaJ-j4cLYX2yMLhMDB4b_GfEM-1SNYw@mail.gmail.com> <CAKr6gn3ektAdcMz2g230S3UZKoyMohc_3_t9Xi1QtAcDem3P1Q@mail.gmail.com> <bc63fd8e-4a04-535d-977d-cd102ae0fbae@gmail.com> <CAKD1Yr3hQOKYZ0JwOXf6z8d9r4cwggmUXApLWwdgCyNG9XYWVw@mail.gmail.com> <dd8b103c-33ad-962e-f26f-40bc89175a96@gmail.com> <CAKD1Yr0GLA0ufT8F10iDQNx0NsdDjMz17X3Q1HR9VuBJU_EvcA@mail.gmail.com> <03a9d46b-4bf5-d460-7cd3-4985863ca1cf@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <03a9d46b-4bf5-d460-7cd3-4985863ca1cf@gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/v6ops/309GcMiQQvzzljy9t5MeE9_2d1g>
Subject: Re: [v6ops] IPv6 link-local and URLs @ IETF119
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.39
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: Tue, 19 Mar 2024 21:30:14 -0000

Inline.

On Wed, Mar 20, 2024 at 07:53:56AM +1300, Brian E Carpenter wrote:
> >     RFC4007 says that an implementation MAY have a default interface for link locals when the user doesn't supply one via fe80::1%name. Linux doesn't do that. Since link-locals aren't routeable, you just get 'invalid argument' from sendmsg()  if you don't supply a valid interface number.
> > 
> > 
> > It's pretty trivial for a browser to do this though: whenever it converts a link-local address from a URL to its internal data structures, determine the system default network and use that to populate the scope ID.
> 
> Except that
> (a) No browser does that (it works on Windows because the network stack does it).
> (b) afaik there is no such thing as a system default interface on Linux, there's only routing which doesn't apply here.

It would be a fairly useful pragmatic solution for a subset of use-cases for
the browser (or some library used by it), to determine the IPv6 default route's zone_name
and then supply this to the socket API when connecting to a link-local IPv6 address.

> (c) the use cases we list want a specific interface not a default

Yes, and i am happy to repeat that i think it is very inappropriate for Murray to reject the
document based on what likely is the unwillingness of two browser implementers to implement it,
given the as i mentioned in a prior, uncommented email in this thread, much broader candidate target
of possible software that might use URLs also for more specialized use-cases.

There is the much bigger issue, that the zone_id/zone_name distinguisher is rejected on the bounds
of conflicting with the browser (not URL!) origin concept, but given how the concept of zone_id/name
are intrinsic properties of the IPv6 network layer, i firmly believe that it is the responsiblity
of browsers to at least archtiecturally own how to solve supporting it, if they want to reject the
rfc6874(bis) solution for their environments.

The reason why this is all such a surreal discussion is because the origin concept does already not work
correctly for any link-local IPv6 AND IPv4 addresses (192.168.x.y/16) even absent the use of
zone_id/name, for example when changing WiFi SIDs, and/or any other similar case. Its just that that
case too is likely "too insignificant" to justify fixing up terribly complex browsers. Which is fine.
It's just not fine to make IETF standards track 6MAN rejections based on such convoluted business
problems of maybe as few as 2 application implementations.

But it would certainly extremely helpful for the browser community to try to figure out how theoretically
link-local addresses would have to be supported if not how rfc6874(bis) wants it. If and when three is
a better proposal, then it makes sense to add specific requirements to exclude browsers from rfc6874
and point to such other option(s). Which also does not mean that such another option would have to be
immediately implemented on browsers if there is not enough business case for those browsers, if the
minimum needed users for any feature exceeds e.g.: 10 million users.

Cheers
    Toerless