Subject: Re: [Int-area] Discussion about Section 6.1 in draft-ietf-intarea-frag-fragile
From: Tom Herbert <[email-masked]>
To: "Templin (US), Fred L" <[email-masked]>
Cc: Ole Troan <[email-masked]>, Ron Bonica <rbonica=[email-masked]>, "[email-masked]" <[email-masked]>, IESG <[email-masked]>, Joel Halpern <[email-masked]>, "[email-masked]" <[email-masked]>, Suresh Krishnan <[email-masked]>, "[email-masked]" <[email-masked]>
Date: Fri, 6 Sep 2019 14:44:03 -0700
List-Id: IETF Internet Area Mailing List <int-area.ietf.org>

On Fri, Sep 6, 2019 at 2:03 PM Templin (US), Fred L
<[email-masked]> wrote:
>
> Hi Tom,
>
> > -----Original Message-----
> > From: Int-area [mailto:[email-masked]] On Behalf Of Tom Herbert
> > Sent: Friday, September 06, 2019 11:21 AM
> > To: Ole Troan <[email-masked]>
> > Cc: Ron Bonica <rbonica=[email-masked]>; [email-masked]; IESG <[email-masked]>; Joel Halpern
> > <[email-masked]>; [email-masked]; Suresh Krishnan <[email-masked]>; intarea-
> > [email-masked]
> > Subject: Re: [Int-area] Discussion about Section 6.1 in draft-ietf-intarea-frag-fragile
> >
> > On Thu, Sep 5, 2019 at 11:33 PM Ole Troan <[email-masked]> wrote:
> > >
> > > Bob, et al,
> > >
> > > I have two issues with this text.
> > >
> > > 1) It introduces something new and undescribed in paragraph 2.
> > >    "unless they also include mechanisms to detect that IP fragmentation isn't working
> > >   reliably."
> > >    That seems like hand-waving to me. Suggest deleting.
> > >
> > > 2) Paragraph 4:
> > >    "The risks of IP fragmentation can also be mitigated
> > >    through the use of encapsulation, e.g., by transmitting IP fragments
> > >    as payloads."
> > >
> > >    This seems like proposing new unspecified solutions with it's own set
> > >    of considerations. IP fragmentation is a general solution to all hosts,
> > >    encapsulation is certainly not in every host, and has different
> > >    properties with regards to NAT traversal etc. Also if encapsulation
> > >    was the answer, other segmentation / reassembly that were tunnel
> > >    specific could be developed. Regardless this also amounts of hand-waving
> > >    and doesn't seem to offer any advice that can be heeded now.
> > >    And of course encapsulation can also exacerbate the problem
> > >    by increasing packet size.
> > >    Suggest deletion.
> > >
> > Ole,
> >
> > This also makes the implicit and seemingly unproven assumption that
> > encapsulation is less fragile than IP fragmentation on the Internet.
>
> With the rise of the middle and network-based (deep) packet inspection, I
> think the statement could be considered that all things on the Internet are
> potentially fragile or could become so in the future. Certainly we know that
> naked IP fragments are filtered over many paths, and we have a strong
> intuition that if we clothe them in "innocent-looking" clothing that they will
> be far more likely to get through. For example, I don't think UDP port 6080
> (or even 8060) are on many middlebox blacklists yet.

Fred,

I suspect a lot of firewalls whitelist UDP ports (e.g. DNS and maybe
QUIC might be the only UDP applications that commonly pass firewalls).

>
> > Without the data that shows otherwise, I don't believe there is any
> > basis to say that encapsulation is generally a viable alternative.
>
> I don't think gathering data in a snapshot of time today could serve as a
> predictor of the state of affairs a few weeks/months/years down the
> road from now. But, what we believe is that right here; right now we
> are far more likely to get a whole IP/UDP packet that contains an IP
> fragment through than we are to get a naked IP fragment through.
>
Where is the data to show that? It's a bit paradoxical that we have
declared IP fragmentation to be fragile based because the data "shows"
that and we assume that is a predictor of the future for IP
fragmentation, but yet in the same breath the draft would suggest
alternatives that with no deployment experience on the Internet and no
data to support that they will fare any better than fragmentation.

> I think if we deployed on the Internet today in innocuous headers like
> UDP port 6080/8060 we could start getting the word out that IP fragments
> carried in these protocols are good - not evil - and the proper way to
> transport them. It's like anything else in the Internet in terms of what
> middleboxes will pass vs. block; reputation is everything.
>
> > Also, I would note that there was similar text in early versions of
> > RFC8200 that encapsulation could be used as a method of allowing
> > extension header insertion. That text was taken out because
> > encapsulation is not sufficiently standardized or ubiquitous to be
> > considered a direct replacement for an IP network layer protocol
> > function. The same is true here, encapsulation is not a drop-in
> > replacement for IP fragmentation.
>
> No; not a replacement for IP fragmentation but rather a vehicle for
> carrying IP fragments. It is still good old IP fragmentation.

But, it's NOT IP fragmentation. Support for IP reassembly is a host
requirement. From RFC1122: "The Internet model requires that every
host support reassembly". The implication of this requirement is that
if I send a fragmented packet to any host on the Internet the
expectation is that the receiving host can reassemble the packet.
Support for IP reassembly has long been is ubiquitous in host
implementations, and as long as the network doesn't interfere
fragmentation will work and packets will be reassembled. This is true
for IPv4 and IPv6. There is no requirement that any encapsulation must
be processed by a receiving host. So if someone sends an encapsulated
packet (via GUE, IPIP, GRE, etc.) with fragments to some random
destination, there's no guarantee at all that the receiving host will
do anything with. Encapsulation requires coordination between senders
and receivers which does not exist in any general sense in the
Internet.

This discussion underscores a flaw of this draft I believe. While
there is a recommendation to avoid fragmentation, there really is no
robust substitute offered to replace the functionality. All the
alternatives either only work in narrow circumstances, may or may not
themselves be fragile, or place undue burden on application and
protocol developers to deal with something they have previously been
told they weren't supposed to worry about.

Tom

>
> Fred
>
> > Tom
> >
> > > New text:
> > >
> > > 6.1.  For Application and Protocol Developers
> > >
> > >   Developers SHOULD NOT develop new protocols or applications that rely
> > >   on IP fragmentation.  When a new protocol or application is deployed
> > >   in an environment that does not fully support IP fragmentation, it
> > >   SHOULD operate correctly, either in its default configuration or in a
> > >   specified alternative configuration.
> > >
> > >   While there may be controlled environments where IP fragmentation
> > >   works reliably, this is a deployment issue and can not be known to
> > >   someone developing a new protocol or application.  It is not
> > >   recommended that new protocols or applications be developed that rely
> > >   on IP fragmentation.  Protocols and applications that rely on IP
> > >   fragmentation will work less reliably on the Internet.
> > >
> > >   Legacy protocols that depend upon IP fragmentation SHOULD be updated
> > >   to break that dependency.  However, in some cases, there may be no
> > >   viable alternative to IP fragmentation (e.g., IPSEC tunnel mode, IP-
> > >   in-IP encapsulation).  Applications and protocols cannot necessarily
> > >   know or control whether they use lower layers or network paths that
> > >   rely on such fragmentation.  In these cases, the protocol will
> > >   continue to rely on IP fragmentation but should only be used in
> > >   environments where IP fragmentation is known to be supported.
> > >
> > >   Protocols may be able to avoid IP fragmentation by using a
> > >   sufficiently small MTU (e.g.  The protocol minimum link MTU),
> > >   disabling IP fragmentation, and ensuring that the transport protocol
> > >   in use adapts its segment size to the MTU.  Other protocols may
> > >   deploy a sufficiently reliable PMTU discovery mechanism
> > >   (e.g.,PLMPTUD).
> > >
> > >   UDP applications SHOULD abide by the recommendations stated in
> > >   Section 3.2 of [RFC8085].
> > >
> > >
> > > Cheers,
> > > Ole
> > >
> > > > On 6 Sep 2019, at 06:05, Bob Hinden <[email-masked]> wrote:
> > > >
> > > > Hi,
> > > >
> > > > Joe and I talked off list.   The result is below.  Changes were to add a sentence in the forth and fifth paragraphs.
> > > >
> > > > Please review.
> > > >
> > > > Bob
> > > >
> > > > ----------
> > > >
> > > > 6.1.  For Application and Protocol Developers
> > > >
> > > >   Developers SHOULD NOT develop new protocols or applications that rely
> > > >   on IP fragmentation.  When a new protocol or application is deployed
> > > >   in an environment that does not fully support IP fragmentation, it
> > > >   SHOULD operate correctly, either in its default configuration or in a
> > > >   specified alternative configuration.
> > > >
> > > >   While there may be controlled environments where IP fragmentation
> > > >   works reliably, this is a deployment issue and can not be known to
> > > >   someone developing a new protocol or application.  It is not
> > > >   recommended that new protocols or applications be developed that rely
> > > >   on IP fragmentation.  Protocols and applications that rely on IP
> > > >   fragmentation will work less reliably on the Internet unless they
> > > >   also include mechanisms to detect that IP fragmentation isn't working
> > > >   reliably.
> > > >
> > > >   Legacy protocols that depend upon IP fragmentation SHOULD be updated
> > > >   to break that dependency.  However, in some cases, there may be no
> > > >   viable alternative to IP fragmentation (e.g., IPSEC tunnel mode, IP-
> > > >   in-IP encapsulation).  Applications and protocols cannot necessarily
> > > >   know or control whether they use lower layers or network paths that
> > > >   rely on such fragmentation.  In these cases, the protocol will
> > > >   continue to rely on IP fragmentation but should only be used in
> > > >   environments where IP fragmentation is known to be supported.
> > > >
> > > >   Protocols may be able to avoid IP fragmentation by using a
> > > >   sufficiently small MTU (e.g.  The protocol minimum link MTU),
> > > >   disabling IP fragmentation, and ensuring that the transport protocol
> > > >   in use adapts its segment size to the MTU.  Other protocols may
> > > >   deploy a sufficiently reliable PMTU discovery mechanism
> > > >   (e.g.,PLMPTUD).  The risks of IP fragmentation can also be mitigated
> > > >   through the use of encapsulation, e.g., by transmitting IP fragments
> > > >   as payloads.
> > > >
> > > >   UDP applications SHOULD abide by the recommendations stated in
> > > >   Section 3.2 of [RFC8085].
> > > >
> > > > —————
> > > >
> > > >
> > > >
> > > >> On Sep 5, 2019, at 6:18 PM, Joe Touch <[email-masked]> wrote:
> > > >>
> > > >> Although this is close, it misses the mark a little on the issue that
> > > >> the app may not actually have any control here - or know how or when to
> > > >> reduce its MTU. That might be a minor point to add, but is worth adding.
> > > >> This isn't just an app layer issue.
> > > >>
> > > >> Joe
> > > >>
> > > >> On 9/5/2019 4:45 PM, Ron Bonica wrote:
> > > >>> Bob,
> > > >>>
> > > >>> I think that this is a close to consensus as we are going to get.
> > > >>>
> > > >>>                                          Ron
> > > >>>
> > > >>>
> > > >>> Juniper Business Use Only
> > > >>>
> > > >>> -----Original Message-----
> > > >>> From: Bob Hinden <[email-masked]>
> > > >>> Sent: Thursday, September 5, 2019 2:29 PM
> > > >>> To: [email-masked]
> > > >>> Cc: Bob Hinden <[email-masked]>; Alissa Cooper <[email-masked]>; IESG <[email-masked]>; Joel Halpern
> > <[email-masked]>; [email-masked]; [email-masked]; Suresh Krishnan
> > <[email-masked]>
> > > >>> Subject: Discussion about Section 6.1 in draft-ietf-intarea-frag-fragile
> > > >>>
> > > >>> Hi,
> > > >>>
> > > >>> Based on the discussion, I would like to propose to see if this will resolve the issues raised.   It attempts to cover the issues
> > raised.
> > > >>>
> > > >>> The full section 6.1 is included below, but only the last sentence in the second paragraph changed.
> > > >>>
> > > >>> Please review and comment.
> > > >>>
> > > >>> Thanks,
> > > >>> Bob
> > > >>>
> > > >>>
> > > >>>
> > > >>> 6.1.  For Application and Protocol Developers
> > > >>>
> > > >>>  Developers SHOULD NOT develop new protocols or applications that rely
> > > >>>  on IP fragmentation.  When a new protocol or application is deployed
> > > >>>  in an environment that does not fully support IP fragmentation, it
> > > >>>  SHOULD operate correctly, either in its default configuration or in a
> > > >>>  specified alternative configuration.
> > > >>>
> > > >>>  While there may be controlled environments where IP fragmentation
> > > >>>  works reliably, this is a deployment issue and can not be known to
> > > >>>  someone developing a new protocol or application.  It is not
> > > >>>  recommended that new protocols or applications be developed that rely
> > > >>>  on IP fragmentation.  Protocols and applications that rely on IP
> > > >>>  fragmentation will work less reliably on the Internet unless they
> > > >>>  also include mechanisms to detect that IP fragmentation isn't working
> > > >>>  reliably.
> > > >>>
> > > >>>  Legacy protocols that depend upon IP fragmentation SHOULD be updated
> > > >>>  to break that dependency.  However, in some cases, there may be no
> > > >>>  viable alternative to IP fragmentation (e.g., IPSEC tunnel mode, IP-
> > > >>>  in-IP encapsulation).  In these cases, the protocol will continue to
> > > >>>  rely on IP fragmentation but should only be used in environments
> > > >>>  where IP fragmentation is known to be supported.
> > > >>>
> > > >>>  Protocols may be able to avoid IP fragmentation by using a
> > > >>>  sufficiently small MTU (e.g.  The protocol minimum link MTU),
> > > >>>  disabling IP fragmentation, and ensuring that the transport protocol
> > > >>>  in use adapts its segment size to the MTU.  Other protocols may
> > > >>>  deploy a sufficiently reliable PMTU discovery mechanism
> > > >>>  (e.g.,PLMPTUD).
> > > >>>
> > > >>>  UDP applications SHOULD abide by the recommendations stated in
> > > >>>  Section 3.2 of [RFC8085].
> > > >>>
> > > >>> _______________________________________________
> > > >>> Int-area mailing list
> > > >>> [email-masked]
> > > >>> https://www.ietf.org/mailman/listinfo/int-area
> > > >
> > >
> > > _______________________________________________
> > > Int-area mailing list
> > > [email-masked]
> > > https://www.ietf.org/mailman/listinfo/int-area
> >
> > _______________________________________________
> > Int-area mailing list
> > [email-masked]
> > https://www.ietf.org/mailman/listinfo/int-area