Re: [IPv6] Adoption call for draft-bctb-6man-rfc6296-bis

Nick Buraglio <buraglio@forwardingplane.net> Thu, 28 March 2024 17:02 UTC

Return-Path: <buraglio@forwardingplane.net>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 190A1C169407 for <ipv6@ietfa.amsl.com>; Thu, 28 Mar 2024 10:02:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=forwardingplane.net
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 XhpwA3kek7y4 for <ipv6@ietfa.amsl.com>; Thu, 28 Mar 2024 10:02:32 -0700 (PDT)
Received: from mail-qk1-x729.google.com (mail-qk1-x729.google.com [IPv6:2607:f8b0:4864:20::729]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 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 61D74C169406 for <ipv6@ietf.org>; Thu, 28 Mar 2024 10:02:32 -0700 (PDT)
Received: by mail-qk1-x729.google.com with SMTP id af79cd13be357-78a26803f1aso74348885a.3 for <ipv6@ietf.org>; Thu, 28 Mar 2024 10:02:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=forwardingplane.net; s=google; t=1711645351; x=1712250151; darn=ietf.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=bCR/llOBb/7ilLlLFZVUOg6NjIFkC0w/U3Xt6b8DdLY=; b=vn8u0HH/eoGOMIezQ8JRH+EYeghEn1pGS/ZsjMNiFv99vStBMd3tYv2mGRO8a5p2pX xpPlt/kcHrtmTMYNL1a+oRIprzu9h19pV8QdrJI4gBtC6Baojrrv2nSvTFmBsO9evOvG G+BDG+rGPX40MuP3onteGscZLfa8vj/2SvNac=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711645351; x=1712250151; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=bCR/llOBb/7ilLlLFZVUOg6NjIFkC0w/U3Xt6b8DdLY=; b=V95YBbpz3sr9gaFHaKftHEz8LJ0yB/VSCuOaTkiwBub88QJCY6kC06312DlamY1YNM Vpv1B+uDBD8RkqiY2/XR6aAOKawLm1Mx/XFOOTo6PNzzl8MUUmojlMgaJavJnt/+qajM bQDOSmEvT0+NgMhr1exdXv3F2XQIT9QxFha9HdIEtfF7OfBdZk2b4lv5E4Wh3tyjT+Y/ Z5I6mOXDcEtWidY/v89By0R1Cgf+PuMo3jCSPsd2c8urUbo7JyOdkeew/XYyXq6c64Rc f6QvIgANbmK142iwCi6Q6li3iEJfdffkVQfx+DkNPOPOzwrM62eA40ytyF56GEKUZ1Jw /9gQ==
X-Gm-Message-State: AOJu0Yx2UvxPtwH5gjADsVv7RaY5Ed0Q8e/NoL9HqWb4sfR/hsYHQg/L NufozDxc9m5lcuvaruObcpp5c9yiqKxecmK08LZibkOCRy/azkJJIDoX4s9igHcoLpBW8+3jHst ZO2m6IZ2EGhogJ5uI/uIJPTefmyBf5OQuA4Yd8tfuGjxi0Vi4oQ==
X-Google-Smtp-Source: AGHT+IEGvg1K2k4ZdSzq8ZpjgdRn2N8IUwL2OleFiNyN9xlH1k0zbV/z+2tnjN8SUwmY3YRNi/sG5WUcSxmo2gc4goU=
X-Received: by 2002:a0c:cdc2:0:b0:691:64e9:9a4a with SMTP id a2-20020a0ccdc2000000b0069164e99a4amr3345865qvn.53.1711645350653; Thu, 28 Mar 2024 10:02:30 -0700 (PDT)
MIME-Version: 1.0
References: <CADmxuPF1AReQCSY13HjqXE+8Jofy_uoo1wmnzs8+whG7Tdc+UQ@mail.gmail.com> <836E3A12-FAAF-4C19-91A1-322203645AAA@employees.org> <CADmxuPEBXYeTPrJqfPEGaxmUM75iKQx6kfCcpHHjxyekZy0xuQ@mail.gmail.com> <2DB6E450-9EE4-438A-9D3B-78DDFF0CA78F@employees.org> <CAKD1Yr0+ArFfn7uZddMAGpxYroSxw-u=cpti4mwp_7-yRBSRSA@mail.gmail.com> <CACMsEX_Can2Uc4dEvC+9B_zG3OuP0YwQnGr=4uQyrFcjjgLHjA@mail.gmail.com> <CAO42Z2yghAZdk_ZO8nzufkJXsgsJMhUNi_Fm+SpUUQ1b7GLCuQ@mail.gmail.com> <CACMsEX8S26NMaseCfepBzoHHyN68k5aApSwG4nSKwJWk4mMKOA@mail.gmail.com>
In-Reply-To: <CACMsEX8S26NMaseCfepBzoHHyN68k5aApSwG4nSKwJWk4mMKOA@mail.gmail.com>
From: Nick Buraglio <buraglio@forwardingplane.net>
Date: Thu, 28 Mar 2024 12:02:19 -0500
Message-ID: <CACMsEX-hmi+PqvdykmTGA_+Jq7cK+TwZiWWFhEkeOHgFgSr=Rg@mail.gmail.com>
To: 6man WG <ipv6@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000001b91020614bb7d28"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/PcwOWCQpL-_xJQpPbWXd6k3rs-w>
Subject: Re: [IPv6] Adoption call for draft-bctb-6man-rfc6296-bis
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 28 Mar 2024 17:02:36 -0000

On Thu, Mar 28, 2024 at 9:45 AM Nick Buraglio <buraglio@forwardingplane.net>
wrote:

>
>
> On Wed, Mar 27, 2024 at 8:34 PM Mark Smith <markzzzsmith@gmail.com> wrote:
> >
> >
> >
> > On Thu, 28 Mar 2024, 02:50 Nick Buraglio, <buraglio@forwardingplane.net>
> wrote:
> >>
> >>
> >>
> >> On Tue, Mar 26, 2024 at 8:31 PM Lorenzo Colitti <lorenzo=
> 40google.com@dmarc.ietf.org> wrote:
> >>>
> >>> On Tue, Mar 26, 2024 at 6:33 PM Ole Troan <otroan@employees.org>
> wrote:
> >>>>
> >>>> The benefit of NAT class mechanisms, is that cost and benefit are
> aligned. Only one side needs to deploy it.
> >>>
> >>>
> >>> Actually, the benefit of NAT class mechanisms is that one party
> deploys them and another party incurs the costs. NAT is great for the
> network operator, because it moves a number of problems out of the network
> operator's domain. But it doesn't do that by solving the problem, it does
> so by making the application's job more difficult.
> >>
> >>
> >> I don't think that is typically true.
> >
> >
> > For client/server applications, where the client is on the inside of the
> NAT with a private address, and the server is on the outside with a public
> address, that wouldn't be typically true.
> >
> > However, for applications where the communications model is
> peer-to-peer, or a mix of client/server and peer-to-peer, the application
> developer has to implement RFC 8445 ICE using STUN and TURN for NAT
> traversal, incurring additional development, debugging and testing costs.
>
> Is that still accurate for a device behind NPTv6? RFC3235 section 3.1.5
> points out that statically configured NAT bindings are largely exempt from
> the problems of port mapping, and NPTv6 is only a non-stateful translation
> that does not require the transport header to be re-written, simply
> translating the first 64 bits, so unless the communication embeds an
> address, which is problematic for all of the obvious reasons we see with
> things like legacy FTP, the peer-to-peer applications should work -
> assuming no security policy is in place to prevent it.  In fact, vendor
> documentation specifically calls out one of the advantages of NPTv6 as
> keeping peer-to-peer networking accessible:
>
> *The NPTv6 support allows you to redirect or forward packets from one
> network to another in an IPV6 environment. The NPTv6 support on is an
> algorithmic translation function which provides a 1:1 relationship between
> the addresses within the inside and outside network. When NTPv6 is used,
> you can interconnect different networks and support multihoming, load
> balancing, peer-to-peer networking. The NPTv6 does not create any state in
> the data plane and hence can operate using minimal memory and also supports
> high availability by default.*
>
> Of course, it's vendor documentation so take it with a grain of salt, but
> I would not expect that to remain in published documentation unless it
> actually had some validity.
>
> >
> > Alternatively the application developer adopts a client/server
> communications model for the application, even though a peer-to-peer model
> would be more scalable and more robust against a centralised server failure
> and server performance problems.
> >
> > This is why I say that NAT (of any type) imposes a default client
> (inside NAT) /server (outside NAT) communications model at the IPv4 or IPv6
> network layers, rather than the default peer-to-peer model that can then
> accommodate both client/server and peer-to-peer applications communications
> models.
> >
> > NPTv6 may be stateless, however since hosts behind the NPTv6 will have
> to discover their public addresses via ICE if they want to be peers, NPTv6
> still imposes those ICE costs on application developers and the
> applications' end-users.
>
> Do they need to discover that? If the mapping is 1:1 it is functionally
> the same address unless there is an embedded address in the protocol
> communications, right? Or am I missing something obvious?
>

I talked to some developer friends that helped me understand this a bit
better, thanks for giving me the terms to build from to dig deeper.
Specifically, the need for determining the actual address for a peer to
peer application is required because there may be peers both inside and
outside of the translation boundary and a given application needs to know
what those are in order to avoid things like tromboning traffic or
blackholing connectivity. This makes much more sense now that I have had
someone walk me through it.
My question back which I think is still a valid question and is couched in
a dichotomy of ideal vs pragmatic debate is "does this extra work
implementing the overhead of the ICE/STUN/TURN impose significant overhead
compared to existing application development requirements to support how
networks work on average today?"
I am not knowledgeable enough to answer that question. At face value it
*seems* that there will be a need to support these tools (ICE/STUN/TURN)
already in order to support port address translation that is likely
required for the foreseeable future for environments that are devoid of
public addressing and are behind some kind of a port address translation
device for v4. And, how does that map into a NPTv6 deployment using one of
the specific use cases? Does the lack of state make that easier or harder
or make no difference?
Myself and others have pointed out very clear and very specific use cases
where NPTv6 solves a real operational problem, and has been in operation
for quite some time.

As an aside, I don't think we should "what if" about ISPs deploying NPTv6
at their edges or all home users insisting on using it as they are
functionally forced to do with NAPT, those use cases for NAPT are a forced
function caused be a problem we don't currently have (address exhaustion)
and any guessing about exploding use is all speculation. Operators are
going to do what they are going to do, but what we could do is be very
clear about the problems that this solves, and the places where it does not
add value and is discouraged.


>
> >
> > Network engineers who deploy NATs aren't directly exposed to or pay any
> of these additional application development costs (other than when they're
> the application users), which is why it appears that NAT is a simple and
> low impact technology to deploy.
>
> Given that nearly every application must be written to support dual-stack,
> and therefore must implement these techniques for port address translation,
> is that cost not already incurred by default? I understand that it may take
> some work to add IPv6 support to applications that require ICE/STUN/TURN,
> however, assuming (and that's a big assumption on my part), that the 1:1
> stateless nature of NPTv6 and a lack of an embedded address, what is the
> surface area of applications that need to incur that cost specifically for
> IPv6 where it does not currently exist?
> Is it 90% of applications? Is is 10%? I don't actually know but would like
> to. Likelihood of occurrence is a key in making design decisions, at
> least in my world.
>
> I fully admit that I am not an application developer, and there are
> undoubtedly aspects here that I do not understand, so pardon my potentially
> basic questions - I simply don't have the background but would like to
> fully understand. Knowing the likelihood and actual need at an application
> level where it does not already exist as part of a normal development
> workflow to support existing environments, and specifically where it is
> required where NPTv6 is a valid design model  would be very, very useful,
> especially with the use cases for NPTv6 being fairly specific.
>
> >
> > Regards,
> > Mark.
> >
> >>
> >> I will definitely say from experience that there is a significant
> operational cost to deploying any translation tool, and more so when there
> is active state tracking and overload involved. There are often (but not
> always) logging requirements to do these things at scale, and there are
> definitely operational costs in dealing with state table tracking and
> scaling. These don't exist at the same level for mechanisms that do not
> track state and that do not masquerade using port address translation. They
> may still incur application cost, or they may not, that is always going to
> be based on the application stack and is more likely in real time
> applications that don't use a third party intermediary, as you have stated.
> >>
> >> There are similarities in the translation toolkits, yes, they all
> perform translation at some level. However, what is generally referred to
> as "NAT" in the general term is typically PAT or NAPT or Masquerading,
> depending on the nomenclature. That said, *because* it is significantly
> easier to deploy NAPT, I do not believe that it is an apples to apples
> comparison. They're all tools in the "translation" category, but they're
> definitely not all created equally. NPTv6 does a 1:1 translation, the NAT
> that folks seem to be referencing in the IPv4 world does not, and I do not
> believe it is a reasonable comparison.  It's a far better comparison to say
> that NPTv6 is like a traditional one-to-one NAT (which does still have
> notable, albeit significantly fewer considerations, which I believe are
> noted in the draft).
> >>
> >>
> >> nb
> >>
> >> --------------------------------------------------------------------
> >>>
> >>> IETF IPv6 working group mailing list
> >>> ipv6@ietf.org
> >>> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> >>> --------------------------------------------------------------------
> >>
> >> --------------------------------------------------------------------
> >> IETF IPv6 working group mailing list
> >> ipv6@ietf.org
> >> Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
> >> --------------------------------------------------------------------
>