Re: [Int-area] I-D Action: draft-ietf-intarea-frag-fragile-06.txt

"Templin (US), Fred L" <Fred.L.Templin@boeing.com> Fri, 01 February 2019 18:13 UTC

Return-Path: <Fred.L.Templin@boeing.com>
X-Original-To: int-area@ietfa.amsl.com
Delivered-To: int-area@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F1CCC13113A for <int-area@ietfa.amsl.com>; Fri, 1 Feb 2019 10:13:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 ZrgfIugNb2AD for <int-area@ietfa.amsl.com>; Fri, 1 Feb 2019 10:13:26 -0800 (PST)
Received: from clt-mbsout-01.mbs.boeing.net (clt-mbsout-01.mbs.boeing.net [130.76.144.162]) (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 B1AC4131112 for <int-area@ietf.org>; Fri, 1 Feb 2019 10:13:26 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by clt-mbsout-01.mbs.boeing.net (8.14.4/8.14.4/DOWNSTREAM_MBSOUT) with SMTP id x11I8OaO010094; Fri, 1 Feb 2019 13:08:25 -0500
Received: from XCH16-07-09.nos.boeing.com (xch16-07-09.nos.boeing.com [144.115.66.111]) by clt-mbsout-01.mbs.boeing.net (8.14.4/8.14.4/UPSTREAM_MBSOUT) with ESMTP id x11I8FYx008742 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=FAIL); Fri, 1 Feb 2019 13:08:15 -0500
Received: from XCH16-07-10.nos.boeing.com (144.115.66.112) by XCH16-07-09.nos.boeing.com (144.115.66.111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1591.10; Fri, 1 Feb 2019 10:08:14 -0800
Received: from XCH16-07-10.nos.boeing.com ([fe80::e065:4e77:ac47:d9a8]) by XCH16-07-10.nos.boeing.com ([fe80::e065:4e77:ac47:d9a8%2]) with mapi id 15.01.1591.012; Fri, 1 Feb 2019 10:08:14 -0800
From: "Templin (US), Fred L" <Fred.L.Templin@boeing.com>
To: Tom Herbert <tom@herbertland.com>
CC: Joe Touch <touch@strayalpha.com>, Ron Bonica <rbonica@juniper.net>, int-area <int-area@ietf.org>
Thread-Topic: [Int-area] I-D Action: draft-ietf-intarea-frag-fragile-06.txt
Thread-Index: AQHUuca6SuivHwZx+kuGWrzT5CVq16XKIAkggACKE4CAAGcsgIAAk/IA//96sDCAAJPSgP//hX1w
Date: Fri, 01 Feb 2019 18:08:14 +0000
Message-ID: <0060dde68ede48bb8959d1951e9797b9@boeing.com>
References: <BYAPR05MB424584AA4D0D11D7D0098B81AE900@BYAPR05MB4245.namprd05.prod.outlook.com> <CALx6S35-F_8L+QCcwN6--3TrrRdE5OG3vUACTEH03AmKYerLSw@mail.gmail.com> <BYAPR05MB4245604C8E234D72F42E0D8CAE910@BYAPR05MB4245.namprd05.prod.outlook.com> <10861CAC-3650-4B69-A8B0-437C2A3494CA@strayalpha.com> <CALx6S35XMV+7uXoGatsFEg7Bh+ueuHGVDZrXa8o4cSQKdON7iA@mail.gmail.com> <eb0cd9a4bd898310122ea77e0fade3f9@strayalpha.com> <CALx6S3708uQN2cey8ZDWUKsRR0KUH_uEPk6JwUu4eY4h0Op6xA@mail.gmail.com> <75e840b19c2e439ab3ff13d7c105ce8f@boeing.com> <CALx6S35tKRUDuMQmpiA7dVJV7D9ijXAWD-exGe7-3xZT-k9XVw@mail.gmail.com> <65c1231056cf4eb68abb2d3af7b2ba5d@boeing.com> <CALx6S35x89FjRVAq1HOMRiLXLZMnv0ZOgwtvyN1c+N2GF5SoTA@mail.gmail.com> <4dc8e447ec594453afe289850cfd818e@boeing.com> <CALx6S36qSabo9e3tYimoXyyu6m3QgQjPnVvHKbw8T5U6GeYLKQ@mail.gmail.com>
In-Reply-To: <CALx6S36qSabo9e3tYimoXyyu6m3QgQjPnVvHKbw8T5U6GeYLKQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [137.137.12.6]
x-tm-snts-smtp: 7BA4D970510AE9BB31CAEBFD8FB009B83A541D82D1DB6D3C51651733092BF5C02000:8
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-TM-AS-GCONF: 00
Archived-At: <https://mailarchive.ietf.org/arch/msg/int-area/qKNwSjQif8DYeiOA5W-4Bd4HmNs>
Subject: Re: [Int-area] I-D Action: draft-ietf-intarea-frag-fragile-06.txt
X-BeenThere: int-area@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF Internet Area Mailing List <int-area.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/int-area>, <mailto:int-area-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/int-area/>
List-Post: <mailto:int-area@ietf.org>
List-Help: <mailto:int-area-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/int-area>, <mailto:int-area-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 01 Feb 2019 18:13:30 -0000

Hi Tom,

We need to realize that there are two cases for middleboxes - transparent
and non-transparent.

For transparent middleboxes, the IP destination address *is not* the address
of the middlebox. Instead, IP routing inside of the middlebox determines the
next hop toward the destination. In the case of transparent middleboxes, unless
the network has been physically deployed to avoid any possibility of multiple
paths, you are right that some fragments might traverse middlebox A and
others traverse middlebox B. So, transparent middleboxes should provide a
configuration option to turn VFR on or off according to the deployment model. 

For non-transparent middleboxes, the IP destination address *is* the address
of the middlebox. In that case, state inside of the middlebox causes the IP
and possibly also higher layer headers to be rewritten with values that
correspond to either the next hop middlebox or the final destination.
So, in the case of non-transparent middleboxes, the node acts as a host
on its upstream interface and a router on its downstream interface. And,
hosts can be expected to receive all fragments of a fragmented IP packet
that are addressed to itself, therefore VFR is acceptable. The only time
that is not true is when the address of the middlebox is an anycast address.
In that case, VFR should be turned off.

Thanks - Fred

> -----Original Message-----
> From: Tom Herbert [mailto:tom@herbertland.com]
> Sent: Friday, February 01, 2019 9:07 AM
> To: Templin (US), Fred L <Fred.L.Templin@boeing.com>
> Cc: Joe Touch <touch@strayalpha.com>; Ron Bonica <rbonica@juniper.net>; int-area <int-area@ietf.org>
> Subject: Re: [Int-area] I-D Action: draft-ietf-intarea-frag-fragile-06.txt
> 
> On Fri, Feb 1, 2019 at 8:25 AM Templin (US), Fred L
> <Fred.L.Templin@boeing.com> wrote:
> >
> > Hi Tom,
> >
> > > -----Original Message-----
> > > From: Tom Herbert [mailto:tom@herbertland.com]
> > > Sent: Friday, February 01, 2019 8:15 AM
> > > To: Templin (US), Fred L <Fred.L.Templin@boeing.com>
> > > Cc: Joe Touch <touch@strayalpha.com>; Ron Bonica <rbonica@juniper.net>; int-area <int-area@ietf.org>
> > > Subject: Re: [Int-area] I-D Action: draft-ietf-intarea-frag-fragile-06.txt
> > >
> > > On Fri, Feb 1, 2019 at 7:39 AM Templin (US), Fred L
> > > <Fred.L.Templin@boeing.com> wrote:
> > > >
> > > > Hi Tom,
> > > >
> > > > > -----Original Message-----
> > > > > From: Tom Herbert [mailto:tom@herbertland.com]
> > > > > Sent: Thursday, January 31, 2019 5:17 PM
> > > > > To: Templin (US), Fred L <Fred.L.Templin@boeing.com>
> > > > > Cc: Joe Touch <touch@strayalpha.com>; Ron Bonica <rbonica@juniper.net>; int-area <int-area@ietf.org>
> > > > > Subject: Re: [Int-area] I-D Action: draft-ietf-intarea-frag-fragile-06.txt
> > > > >
> > > > > On Thu, Jan 31, 2019 at 5:03 PM Templin (US), Fred L
> > > > > <Fred.L.Templin@boeing.com> wrote:
> > > > > >
> > > > > >
> > > > > >
> > > > > > > -----Original Message-----
> > > > > > > From: Int-area [mailto:int-area-bounces@ietf.org] On Behalf Of Tom Herbert
> > > > > > > Sent: Thursday, January 31, 2019 4:40 PM
> > > > > > > To: Joe Touch <touch@strayalpha.com>
> > > > > > > Cc: Ron Bonica <rbonica@juniper.net>; int-area <int-area@ietf.org>
> > > > > > > Subject: Re: [Int-area] I-D Action: draft-ietf-intarea-frag-fragile-06.txt
> > > > > > >
> > > > > > > On Thu, Jan 31, 2019 at 3:10 PM Joe Touch <touch@strayalpha.com> wrote:
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On 2019-01-31 13:56, Tom Herbert wrote:
> > > > > > > >
> > > > > > > > On Thu, Jan 31, 2019 at 7:59 AM Joe Touch <touch@strayalpha.com> wrote:
> > > > > > > >
> > > > > > > >
> > > > > > > > The problem with dropping the entire paragraph is the section title - talking about stateless firewalls begs the question of
> > > > > stateful
> > > > > > > ones. This is reinforced later in the recommendations. The sentences you remove were the only thing that tied the two
> > > together,
> > > > > > > which IMO is important.
> > > > > > > >
> > > > > > > >
> > > > > > > > Joe,
> > > > > > > >
> > > > > > > > The term "Stateless firewalls" is unambiguous in this context. In a
> > > > > > > > stateless firewall, each packet is inspected and judge based solely on
> > > > > > > > it's content.
> > > > > > > >
> > > > > > > >
> > > > > > > > My statement above has no relation to any potential ambiguity in the term.
> > > > > > > >
> > > > > > > > ---
> > > > > > > >
> > > > > > > > However, the term stateless is inaccurate in a few places:
> > > > > > > >
> > > > > > > > (Sec 4.6) NAT is a stateful procedure for an otherwise stateless protocol as well. The same could be argued for load
> balancers
> > > > > that
> > > > > > > retain similar state through a connection for a flow (i.e., not just hashing the flow or tuple, but doing round-robin per-
> > > flow/tuple
> > > > > > > 'sticky' routing)
> > > > > > > >
> > > > > > > > (Sec 7.3) The problem is not just stateless middle boxes, but also certain stateful ones (e.g., NATs, some load balancers,
> etc.)
> > > > > > > >
> > > > > > > > ---
> > > > > > > >
> > > > > > > > Thus "stateful" actually is both ambiguous and inaccurate here.
> > > > > > > >
> > > > > > > > You appear to want to distinguish between the state needed for virtual reassembly and the state needed to maintain
> NAT
> > > > > > > translations or sticky round-robin load balancing, but there's no simple term that differentiates them. They're both
> content-
> > > > > > > dependent, context-dependent, and stateful.
> > > > > > > >
> > > > > > > >
> > > > > > > > Further, as you note there are no *specified* algorithms for virtual reassembly, nor are there any *specified* for NAT
> > > > > translation
> > > > > > > table maintenance or sticky load balancing. Everyone comes up with their own and the basic concept is well enough
> defined as
> > > to
> > > > > not
> > > > > > > need a specification.
> > > > > > > >
> > > > > > > In that case, if it's so obvious and well defined then there shouldn't
> > > > > > > be any issue in either providing a reference to a description or
> > > > > > > specifying it in the draft (if authors do choose discuss virtual
> > > > > > > reassembly in the draft).
> > > > > >
> > > > > > I have been telling everyone about virtual fragmentation reassembly for
> > > > > > years. You will find it in many of my docs. Here is what cisco says about it:
> > > > > >
> > > > > >
> > > > >
> > >
> https://www.cisco.com/c/en/us/td/docs/ios/sec_data_plane/configuration/guide/12_4/sec_data_plane_12_4_book/sec_virt_frag_
> > > > > reassm.html
> > > > >
> > > > > Hi Fred,
> > > > >
> > > > > It does seem that Cisco configuration manuals and marketing materials
> > > > > are the best source of information on virtual reassembly.
> > > > >
> > > > > https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_frre/configuration/xe-3s/frre-xe-3s-book/virt-frag-
> reassembly.html
> > > > > is a little more interesting in that it provides a few more details.
> > > > > In particular the requirement that all fragments must traverse the
> > > > > same intermediate device is mentioned:
> > > > >
> > > > > "The reassembly process requires all fragments within an IP datagram.
> > > > > If fragments within an IP datagram are sent to different devices due
> > > > > to load balancing VFR may fail and fragments may be dropped."
> > > >
> > > > Yes, of course the fragments all need to go through the same destination where
> > > > VFR is caching the fragments. That is assured due to the IP destination address
> > > > for unicast, but not necessarily for anycast. But, for anycast, the considerations
> > > > are no different for middleboxes than they are for anycast final destinations.
> > > >
> > > > An analogy for VFR is that the middlebox receives the pieces of a puzzle from
> > > > the network. It checks each piece to make sure it is OK and holds them until
> > > > all pieces have arrived, but then instead of assembling the puzzle it forwards
> > > > the pieces on to the next hop destination, with the realization that there could
> > > > be NATs-within-NATs. Then, when the final destination receives all pieces it
> > > > assembles the puzzle.
> > > >
> > > > I don' t think there needs to be a spec for this because the behavior is
> > > > inherently understood from the title (*Virtual* Fragment Reassembly).
> > > >
> > > Fred,
> > >
> > > I don't see this. It is not at all clear from three words that
> > > everyone could draw the same conclusions on what the protocol is and
> > > how it works. Your description above about the interaction between
> > > multicast and unicast is not obvious from the title. Neither is it
> >
> > I said "anycast"; not multicast. Multicast is different in that all nodes that
> > are members of the group will receive all fragments. With anycast, only
> > one node out of potentially many gets the fragments, and it may not
> > always be the same node for all fragments.
> >
> > > obvious there is on only compliant way to implement the protocol
> > > (there are at least three variants that have been implemented with
> > > varying degrees of interoperability problems). I still maintain that
> > > if virtual reassembly were to be used in a normative context, it needs
> > > a normative definition. If nothing else, that ensures there is no
> > > ambiguity in what the protocol is, how it works, and what
> > > implementations need to do to be interoperable-- after all that is the
> > > goal of formal protocol specifications.
> >
> > The only requirement is that the node receiving the fragments and doing
> > VFR internally has to emit them looking just like they did originally - albeit
> > with a potentially different IP destination address. What goes on inside the
> > box in terms of VFR is completely implementation-dependent, and not a
> > topic for standardization.
> >
> Fred,
> i
> That is only true if the implementation is standards conformant and
> doesn't break interoperability. We've already identified one instance
> of non-conformance with virtual routing that breaks interoperability
> (namely the aforementioned requirement that packets of flow must
> traverse the same device). There is another variant of virtual routing
> that has been deployed in which the implementation only tracks
> reassembly state, but does not actually queue fragments. As long as
> the first fragment is received by the device first, this works. This
> probably works probably 99.9% of the time, and represents a huge cost
> savings in terms of memory. There is even a simpler variant of that in
> which an implementation just creates a state for <src, dst, id>,
> allows non-first fragments to pass, and then destroys the state when
> MF is not set in a fragment. This is even more savings in memory,
> substantially reduces CPU overhead, and probably works 99.8% of the
> time. Of course, IP does not require in order delivery, so like the
> requirement above, such implementations are technically non-conformant
> and inevitably will break interoperability for someone.
> 
> Tom
> 
> > Thanks - Fred
> >
> > > Tom
> > >
> > > > Thanks - Fred
> > > >
> > > > > Tom
> > > > >
> > > > > >
> > > > > > Fred
> > > > > > >
> > > > > > > Tom
> > > > > > >
> > > > > > > > Joe
> > > > > > >
> > > > > > > _______________________________________________
> > > > > > > Int-area mailing list
> > > > > > > Int-area@ietf.org
> > > > > > > https://www.ietf.org/mailman/listinfo/int-area