Re: [tsvwg] DPLPMTUD comments

Joe Touch <touch@strayalpha.com> Fri, 19 July 2019 04:56 UTC

Return-Path: <touch@strayalpha.com>
X-Original-To: tsvwg@ietfa.amsl.com
Delivered-To: tsvwg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 923CF1205FD for <tsvwg@ietfa.amsl.com>; Thu, 18 Jul 2019 21:56:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.22
X-Spam-Level:
X-Spam-Status: No, score=-1.22 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=strayalpha.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 38sJTNKiih_X for <tsvwg@ietfa.amsl.com>; Thu, 18 Jul 2019 21:56:55 -0700 (PDT)
Received: from server217-3.web-hosting.com (server217-3.web-hosting.com [198.54.115.226]) (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 E65FC1205D7 for <tsvwg@ietf.org>; Thu, 18 Jul 2019 21:56:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=strayalpha.com; s=default; h=To:References:Message-Id: Content-Transfer-Encoding:Cc:Date:In-Reply-To:From:Subject:Mime-Version: Content-Type:Sender:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=Rj64y/yrXCTVhZt7U3QEiVsA5ayMhyOLCqnfVGVhs0k=; b=68H9hwO1C7kC2M86HQBwFPdpe JzVqlPiV3Hph59Us5oKEthilMyFw0HhWmUxcQ2l/vtDTplt6M2Y5S1jFUVWj6TI39YP0p3/fEm3KT Z+V2VS30kvpaeXg7axz9f8HD4XtgUd9vN3llZunFBOD87KEsZBhpNACNUTb60EguILvHtOKnEHIoD jlodvDsYh/NfnyVI/0+lga6XJGDepTH69+fTg/ZWVf7JXLKrAVA2C3ZXtyehDyxIJZPiRxvx1f+mF j6kZi8FdrUWfw1/LCks60gi+iQCipY6lqDYvlRyIK1ov65/pHCMQJxiUX42X3T3l23MYqvL9U9lad jtLvaQ8Hg==;
Received: from cpe-172-250-225-198.socal.res.rr.com ([172.250.225.198]:50999 helo=[192.168.1.10]) by server217.web-hosting.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from <touch@strayalpha.com>) id 1hoKwq-003F9Q-3G; Fri, 19 Jul 2019 00:56:52 -0400
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Joe Touch <touch@strayalpha.com>
In-Reply-To: <5D30366C.7040005@erg.abdn.ac.uk>
Date: Thu, 18 Jul 2019 21:56:47 -0700
Cc: Wes Eddy <wes@mti-systems.com>, "tsvwg@ietf.org" <tsvwg@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <7D7082F0-3CC0-40F3-890D-132112D92397@strayalpha.com>
References: <3b0fad58-5fbd-33ca-7cab-a2fa119612b2@mti-systems.com> <5D30366C.7040005@erg.abdn.ac.uk>
To: gorry@erg.abdn.ac.uk
X-Mailer: Apple Mail (2.3445.9.1)
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - server217.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - strayalpha.com
X-Get-Message-Sender-Via: server217.web-hosting.com: authenticated_id: touch@strayalpha.com
X-Authenticated-Sender: server217.web-hosting.com: touch@strayalpha.com
X-Source:
X-Source-Args:
X-Source-Dir:
X-From-Rewrite: unmodified, already matched
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsvwg/6l5LsConA9EPuo30tbn5eD0nNN4>
Subject: Re: [tsvwg] DPLPMTUD comments
X-BeenThere: tsvwg@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Working Group <tsvwg.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsvwg/>
List-Post: <mailto:tsvwg@ietf.org>
List-Help: <mailto:tsvwg-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsvwg>, <mailto:tsvwg-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 19 Jul 2019 04:57:01 -0000

Some additional comments below...

> On Jul 18, 2019, at 2:05 AM, Gorry Fairhurst <gorry@erg.abdn.ac.uk> wrote:
> 
> Thanks Wes for your careful read, that is really helpful!!!
> 
> Please see responses in-line below. Other people do please also comment,
> and we'll incorporate all the editorial corrections next rev., and propose
> text for the outcomes from the other points from this thread.
> 
> ---
> Wes:
> 
> Here are some questions and comments I had on reading the DPLPMTUD draft
> (version -08):
> 
> Technical items:
> 
> -  Interaction w/ UDP options: I think there is an implicit assumption
> about code for DPLPMTUD needing to be aware of the actual UDP datagram
> size when UDP options are used, and not the length from the UDP
> header?   So, the application that's asking for UDP options to be tacked
> on needs to also know how big those options will wind up being,
> including possible padding, in order to stay within the PMTU.  It seems
> like there should be some description  of how this interaction needs to
> work or be handled in an application or library.
> 
> GF: This seems true to me, in that any PL has to know the max size
> of data it is allowed to send. This could also be said in UDP-Options.
> 
> TJ: If the application cannot learn the option overhead, it just because a
> strange tunnel with variable overhead. I would hope that nothing tries
> to do dplpmtud on top of udp options. This is potentially another case
> of dplpmtud/dplpmtud

This is the same as for TCP - there’s always a possibility that a tunnel needs breathing room that isn’t discoverable directly. That’s why PLPMTUD sends probes of different sizes.

The user can definitely learn the option overhead.

> - Reading Section 1.1&  1.2, I was wondering if another motivation could
> be that ICMP is totally unauthenticated, making it another problem to
> rely on for classical PMTUD (it can be spoofed, etc).
> 
> GF: True. ICMP processing does not provide authentication protection.
> The validation described at least provides a check that a sender of
> an ICMP message had on-path information. We can add text.
> 
> - Sec. 3 bullet #8 saying "MUST be robust to the wide variety of
> underlying network forwarding behaviors" seems pretty useless to me
> (even though I don't argue that it's true).  It's just not specific
> enough for an implementer to do anything specific with. I believe that's
> more of a rationale for why we do things in the specification rather
> than a requirement for implementation.
> 
> GF: Agree: /MUST be/needs to be/
> 
> - Section 3 in the bullet on "When to probe", I'm not sure how path
> changes would actually be known to the end host.  Can we give a hint
> about what some of these methods for determining a path change might
> be?  Are you thinking about L2 and L3 triggers and signalling?
> 
> GF: Perhaps, and that would be OK to say. I was also thinking that
> the RTO expiry in a transport is usually regarded as a potential
> signal that the path characteristics have changed. I am interested
> in more wisdom here, because the current statement seems to lack
> detail.
> 
> TJ: I think detecting path changes is still open. The mechanism you
> suggest are one way to do it, there might be more. PANRG might be
> interested in figuring this out.

I don’t think path changes can necessarily be detected. That’s why probes should be periodic - there’s no “failure to make progress” at the transport layer that helps you otherwise.

> - In 4.4.2, the rule uses the symbol MIN_PMTU, but the text below uses
> 68 and 1280 bytes separately for IPv4 and IPv6 paths ... is that really
> necessary since the whole point of having MIN_PMTU defined seems to be
> to represent the correct value?
> 
> TJ: The values we provide are our definitions of MIN_PMTU for v4
> and v6. There is redundancy, but the numbers are good to have.
> 
> - I'm not sure if there are any complications with regard to IPv4/IPv6
> protocol translation / NAT-PT in the path?
> 
> GF: Possibly, this could find a v4 segment of the path that
> doesn't support the MIN_PMTU for IPv6. This doesn't change that.
> I'm not sure what you would like to be written?
> 
> TJ: Ah! This seems to be a great way to offer a path that doesn't
> support v6 MIN MTU. I think we get kicked into the error state
> if we are a v6 sender on a NAT-PT path with a small PMTU.

FWIW, that sort of error makes sense to me.

> - In 4.4.2, the bullet "The information could be utilized as an input to
> trigger enabling a resilience mode." ... I have no idea what this is
> trying to say.  Either we should recommend some specific behavior be
> triggered or not, but this statement seems like a vague hint.
> 
> GF: The options are to ignore or treat as Error (we can think of more
> clever things to do, but currently we think a simple approach
> is best to standardise). I think the simplest would be to ignore this
> case (in which case we can remove this bullet and leave the remains text).
> 
> - There's an author's note at the end of Sec. 4 about how to handle
> PTB_SIZE = 0.  I was wondering what would cause this, if it's a real
> possibility or not?  Also, wouldn't PTB_SIZE<  BASE_PMTU be the more
> general  condition to handle, that would also encompass the zero value?
> 
> GF: I do not have any more detail about how common it is to receive
> PTB_SIZE = 0. My co-authors may be able to say more.
> Something perhaps to measure in future?
> 
> GF2: It would be helpful to add text for the case for PTB_SIZE<MIN_PMTU.
> - Since this is illegal, i.e. less than the permitted minimum,
> I suggest we explicitly IGNORE this. (We could choose the same action as
> for MIN_PMTU<  PTB_SIZE<  BASE_PMTU ... but I'd argue that case can
> arise from parallel forwarding paths, etc and therefore it is appropriate
> to treat in the error handling, whereas TB_SIZE<MIN_PMTU is
> always inconistent with the PL's understanding of the min PMTU). Does that
> seem reasonable?
> 
> - Section 5 says "DPLPMTUD SHOULD NOT be used by an application if it is
> already used in a lower layer", but there doesn't seem to be rationale
> for that ... is it just something that scares us, or is there a problem
> we're trying to avoid?  Also, how would a higher layer know if a lower
> layer implements it or not?
> 
> GF: This can lead to inefficient use of the path. We will say that.
> 
> However, I think we could also add a note, something like:
> 
> This can result in interactions
> between the different protocol mechanisms, potentially
> causing erroneous state transitions.
> For example, a lower (D)PLPMTUD method that uses what is described as
> "Probing using application
> data and padding data" (section 4.1) could further pad
> an upper layer probe packet - changing the size of probe
> that was sent and potentially leading to loss (which
> the upper layer could assume was congestion) and
> then possibly also could
> conclude that the high layer probe size did not work.
> Using methods with "Probing using padding data"
> is expected to mitigate such unwanted interactions.
> 
> TJ: The application can only work from prior knowledge or a signal/api
> from the lower layer. This note helps app developers know that should
> look below before implementing and consider that the lower layer might
> be trying too.
> 
> - The relation between phases and the actual state machine is slightly
> fuzzy.  It seems kind of duplicative, since it seems like the state
> machine description is sufficient by itself, and the description of
> phases is just a higher-level version of what it contains?
> 
> GF: Yes, it is a higher-level description. The nuance was that
> this was intended to show an implementation can be simple or
> sophisticated. We can look at this again, and try to focus the text more.
> 
> - Security considerations says "Parallel forwarding paths SHOULD be
> considered."  This seems to need a bit more work.  Of course it's true,
> but it seems like we the working group need to consider it and say what
> the security threats and risks are, or where in the spec the correct
> behavior is described that makes it robust.
> 
> GF: I agree.
> This is a topic where the current authors would indeed welcome more insight.
> 
> Ideally, we'd love measurement data, understanding of pathologies that
> can and do occur. That's a great research project - and we'd be keen to
> do such measurements!
> 
> We'd also like to see and test ideas about how to mitigate this…

Why? either they have stable PMTUs or not; especially if the paths have other similar properties, there’s nothing to do here other than keep checking PLPMTU and see if it varies or not.

Joe