On Thu, Sep 5, 2019 at 3:53 PM Tom Herbert <[email protected]> wrote:
>
> On Thu, Sep 5, 2019 at 11:29 AM Bob Hinden <[email protected]> wrote:
> >
> > 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.
> >
> Bob,
>
> These two paragraphs seem somewhat contradicatory. For new protocols
> the recommendation is not to use fragmentation because we can't know
> whether the deployment allows that, but for legacy protocols we're
> allowed to use fragmentation if we know the deployment allows that.
>
> I think it's a lot simpler to just say that if you know fragmentation
> works in your environment or to some destination then you can use it,
> if not then you'll need to do something else.

<no hats>
Advice like this always feels like a cop-out to me[0].

Let's say that I do (somehow) know that fragmentation works in my
environment -- where is the knob that I turn in [ Linux | OS X | iOS |
Android | Windows | IOS | JunOS | <etc> ] which says "These set of
prefixes are within my environment and you can fragment when sending
to them?" And how do I also configure <insert long list of protocols>
to also know this?

It is a *very* small number of cases where my environment is
sufficiently well defined, homogeneous, and not connected to the
Internet that "environment" can be properly defined, *and* where all
nodes know that they are part of it -- off the top if my head, DTN is
the only example that comes to mind...

The "you can do xxx in your environment" usually feels like / results in:
a: "I'm tired of fighting, go do whatever you want"
b: weasel words which later get abuse to justify incorrect behavior
c: additional complexity
or d: all of the above.

What we've built is an Internet -- protocols should "just work", not
only work in specific parts of it, especially if there isn't an
obvious border (e.g: L2 domain, OSPF domain, etc)

W

[0]: An exception to this is the standard boilerplate which BMWG
attaches to its drafts, which goes along the lines of:
" Benchmarking activities as described in this memo are limited to
   technology characterization using controlled stimuli in a laboratory
   environment, with dedicated address space and the constraints
   specified in the sections above.

   The benchmarking network topology will be an independent test setup
   and MUST NOT be connected to devices that may forward the test
   traffic into a production network or misroute traffic to the test
   management network.

   Further, benchmarking is performed on a "black-box" basis, relying
   solely on measurements observable external to the DUT or System Under
   Test (SUT).  Special capabilities SHOULD NOT exist in the DUT/SUT
   specifically for benchmarking purposes.

   Any implications for network security arising from the DUT/SUT SHOULD
   be identical in the lab and in production networks."



> This applies equally to
> legacy protocols and new protocols, on the open Internet as well as
> limited domains. For that matter the rule applies pretty much to any
> protocol that might be considered "fragile" (note, this might just be
> a rewording of Joe's proposed text).
>
> Tom
>
>
>
> >    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 protected]
> > https://www.ietf.org/mailman/listinfo/int-area
>


-- 
I don't think the execution is relevant when it was obviously a bad
idea in the first place.
This is like putting rabid weasels in your pants, and later expressing
regret at having chosen those particular rabid weasels and that pair
of pants.
   ---maf

_______________________________________________
Int-area mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/int-area

Reply via email to