Re: [v6ops] ULA precedence [Thoughts about wider operational input]

Erik Auerswald <auerswald@fg-networking.de> Thu, 05 May 2022 07:39 UTC

Return-Path: <auerswald@fg-networking.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 F1D19C157B42; Thu, 5 May 2022 00:39:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.897
X-Spam-Level:
X-Spam-Status: No, score=-6.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] 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 G2FOWWFBawLT; Thu, 5 May 2022 00:39:03 -0700 (PDT)
Received: from mailgw1.uni-kl.de (mailgw1.uni-kl.de [IPv6:2001:638:208:120::220]) (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 05708C157B36; Thu, 5 May 2022 00:39:00 -0700 (PDT)
Received: from mail.fg-networking.de (mail.fg-networking.de [IPv6:2001:638:208:cd01::23]) by mailgw1.uni-kl.de (8.14.4/8.14.4/Debian-8+deb8u2) with ESMTP id 2457cu8p170239 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 5 May 2022 09:38:56 +0200
Received: from login.fg-networking.de (login.fg-networking.de [131.246.197.41]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.fg-networking.de (Postfix) with ESMTPS id 68DCA2009B; Thu, 5 May 2022 09:38:43 +0200 (CEST)
Received: by login.fg-networking.de (Postfix, from userid 11002) id 514BC155; Thu, 5 May 2022 09:38:43 +0200 (CEST)
Date: Thu, 05 May 2022 09:38:43 +0200
From: Erik Auerswald <auerswald@fg-networking.de>
To: Fred Baker <fredbaker.ietf@gmail.com>
Cc: Mark Smith <markzzzsmith@gmail.com>, 6man list <ipv6@ietf.org>, v6ops list <v6ops@ietf.org>
Message-ID: <20220505073842.GA46353@fg-networking.de>
References: <CAM5+tA8WvjvWirxqE6kQ9LQAG0NcpWyCLGVooB=G7gZ9ETb2zQ@mail.gmail.com> <20220424172743.GA218999@fg-networking.de> <CAKD1Yr1v0Tkh+pWD-ts=PL3gZf7Qj6OHW6Cuvj8iGcSSMibjew@mail.gmail.com> <20220425100310.GF67548@fg-networking.de> <CAPt1N1=XedJ7tY9pKDS3LvDMak6iPsK9fA=oF7Z0KkmGcA6-_A@mail.gmail.com> <CAO42Z2ydhe3hVOqSaN814hYh3oF3yG_du+gRkg6yD5haCqDnLQ@mail.gmail.com> <CAPt1N1=YdnZ_N+47v4A_EM70TobSt1sw5tcmBfQJEP5Y1zCwMg@mail.gmail.com> <CAO42Z2xyx2MpCCYQoXA9izRM7Xk42+Z-1OnL2PuzgsGfw1SFiw@mail.gmail.com> <20220428075001.GA86458@fg-networking.de> <3499CB52-0873-4DF5-A923-62BF91AA6FAB@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <3499CB52-0873-4DF5-A923-62BF91AA6FAB@gmail.com>
Archived-At: <https://mailarchive.ietf.org/arch/msg/v6ops/zdTgDnEhwqJyOwoRxYC_HdVwbas>
Subject: Re: [v6ops] ULA precedence [Thoughts about wider operational input]
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.34
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 May 2022 07:39:05 -0000

Hi Fred,

On Wed, May 04, 2022 at 10:53:58AM -0700, Fred Baker wrote:
> > On Apr 28, 2022, at 12:50 AM, Erik Auerswald <auerswald@fg-networking.de> wrote:
> > 
> > I'd say that _remote_ ULAs are less reliable than GUAs. Selecting
> > ULA source to reach GUA destination risks that the return
> > traffic would be sent to a _remote_ ULA (if the initial packet
> > even reaches the destination; it could be filtered because of
> > using a "wrong" source address).
> > 
> > The RFC 6724 default errs on the side of caution by assuming
> > that ULA are non-local, unless either auto-detected or configured
> > as local.
> 
> From a specification perspective, it seems to me that the two
> cases should be separated. If I have a local ULA address and a
> peer I want to communicate with has an address in the same prefix,
> then I probably should prefer to use that address pair unless I
> have a reason not to. In any other case, I should use my own GUA
> and send the message to my peer's GUA - I have no guarantee of
> connectivity otherwise.

Indeed they are separated.  The procedure from RFC 6724 section
10.6 distinguishes between local and remote ULA addresses.

RFC 6724 also distinguishes between GUA and ULA and does prefer to
use GUA source to reach GUA destination and ULA source to reach
ULA destination.  Section 10.6 describes how to automatically
distinguish between local and remote ULA.

The RFC 6724 section 10.6 procedure prefers local ULA over GUA when
selecting destination addresses.

Source address selection by default prefers the same kind of address,
e.g. GUA to reach GUA and ULA to reach ULA.  Following section 10.6
refines this to prefer local ULA to reach local ULA and remote ULA to
reach remote ULA.

For a host with ULA and GUA, when connecting to a host with only
ULA, when one of the hosts does not provide IPv4 as well, ULA
is preferred.

That is the situation Ted Lemon described at IETF 113 (slides at
https://datatracker.ietf.org/meeting/113/materials/slides-113-6man-source-address-selection-for-foreign-ulas-00)
As Ted described, when introducing a router that adds ULA addresses
where there were none before, and without integrating those new
addresses into the routing information bases of all routers, this
can lead to problems.

With the optional rule 5.5 from section 5, RFC 6724 already provides
a solution for the specific problem described by Ted.  No changes
to RFC 6724 needed.

> In fact, I'm not sure how I would know that my peer has an
> address that is not in my ULA prefix. It shouldn't be in DNS,
> as I recall (RFC 4193 section 4.4). That might mean a split DNS
> implementation...

Well, there is a difference between "that should usually not happen"
and "this is impossible" (and for the latter, theory and practice
too often differ).

To circle back to Nick's problem:

RFC 6724, describing default IPv6 address selection, does not
distinguish between different kinds of IPv4 addresses, only between
different kinds of IPv6 addresses.  But it does prefer using IPv4
destination addresses over remote (i.e., not known to be local)
ULA addresses.

This leads to the problems described in Nick's draft
(draft-buraglio-v6ops-ula):

- If two internal hosts have both IPv4 and ULA IPv6 addresses, where
  the ULA addresses are neither auto-detected as local (ref. RFC
  6724 section 10.6) nor configured as local, they prefer IPv4.
  But Nick would like them to prefer IPv6.

  This can be solved by local configuration to designate the local
  ULA /48 prefix as local.  This can also be solved by using hosts
  that implement RFC 6724 section 10.6.

- If an internal host with both IPv4 and ULA IPv6 addresses, where
  the ULA addresses are neither auto-detected as local (ref. RFC
  6724 section 10.6) nor configured as local, attempt a connection
  to a remote host with both IPv4 and GUA IPv6 addresses, it will
  prefer IPv4.  But Nick would like it to prefer IPv6.

  This can be solved by local configuration, i.e., changing the
  ULA entry in the address selection policy table from RFC 6724,
  as described in RFC 6724.

  Nick points out that readily available open-source operating
  systems (GNU/Linux in the example from the draft) do not make
  this as easy as one could wish for.

The latter point is where I disagree with Nick, because of my
bad experience with exactly the behavior Nick is asking for.

Communication with a remote IPv6 host over the Internet does not
work if the local system uses a ULA IPv6 address (return traffic
cannot be routed, and the outgoing packet should have been filtered
for using a ULA source address on the Internet).

For the latter to work, some kind of IPv6 NAT is required.

For Nick's implicit idea that Enterprises want to use IPv6 exactly
as they use IPv4, adding just one ULA address where they already
have one RFC 1918 address, without any additional configuration
(they don't need address selection policy configuration for IPv4),
and with NAT66 for Internet access, treating ULA identically to GUA,
as done in RFC 3484 which was obsoleted by RFC 6724, would work.
The refined RFC 6724 situation requires local configuration for
this to work.

But this did not work for the idea of using ULA only for local
connectivity in an RFC 3484 situation, as I experienced back when,
and thus described as reaction to Nick's draft.  I would not like to
see a regression to before RFC 6724.  I would like to see more of
RFC 6724 implemented in all kinds of hosts, including the example
from section 10.6 and the optional source address selection rule
5.5 from section 5.

Without NAT66, treating ULA identical to GUA, leads to longer
connection times (Happy Eyeballs) or connection failures (no Happy
Eyeballs) when attempting to reach dual-stack Internet hosts from
local dual-stack hosts with only ULA, but no GUA, IPv6 addresses.
This in turn results in disabling IPv6 again, because it causes
problems.  RFC 6724 solved that problem.

I think that RFC 6724 describes a useful default behavior, allows for
and describes useful extensions, and supports local configuration
to use a non-default behavior if required.  I do not think that
RFC 6724 is wrong.

I would like host implementations to be extended to comprise more
of RFC 6724 (e.g., dynamic address selection policy adjustments,
automatic addition of the local ULA prefix to this policy table
(this is section 10.6), and tracking which router advertised which
prefixes to enable source address selection rule 5.5).  Making the
existence and configuration of said address selection policy table
both more easily discoverable and configurable would most likely
improve the situation, too.

Thanks,
Erik
-- 
Dipl.-Inform. Erik Auerswald
Gesellschaft für Fundamental Generic Networking mbH
Geschäftsführung: Volker Bauer, Jörg Mayer
Gerichtsstand: Amtsgericht Kaiserslautern - HRB: 3630