Re: [Spud] Putting Network-Layer Information in the Network Layer

Brian Trammell <ietf@trammell.ch> Mon, 20 July 2015 11:31 UTC

Return-Path: <ietf@trammell.ch>
X-Original-To: spud@ietfa.amsl.com
Delivered-To: spud@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C12E41A1F70 for <spud@ietfa.amsl.com>; Mon, 20 Jul 2015 04:31:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.912
X-Spam-Level:
X-Spam-Status: No, score=-1.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 tCDGKQYSRr7P for <spud@ietfa.amsl.com>; Mon, 20 Jul 2015 04:31:05 -0700 (PDT)
Received: from trammell.ch (trammell.ch [5.148.172.66]) by ietfa.amsl.com (Postfix) with ESMTP id 7BC811A1A90 for <spud@ietf.org>; Mon, 20 Jul 2015 04:31:04 -0700 (PDT)
Received: from dhcp-9b59.meeting.ietf.org (dhcp-9b59.meeting.ietf.org [31.133.155.89]) by trammell.ch (Postfix) with ESMTPSA id D7EA21A0023; Mon, 20 Jul 2015 13:30:33 +0200 (CEST)
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2102\))
Content-Type: multipart/signed; boundary="Apple-Mail=_B943CDC4-8D62-46B4-AFE7-0D66BBAD8B46"; protocol="application/pgp-signature"; micalg=pgp-sha512
X-Pgp-Agent: GPGMail 2.5
From: Brian Trammell <ietf@trammell.ch>
In-Reply-To: <CALx6S37Xy1gg0O-OmkMMdxbJoQmHDS79Z9ZoU92-kAsDfUbTrQ@mail.gmail.com>
Date: Mon, 20 Jul 2015 13:30:32 +0200
Message-Id: <AB3E8022-C3F3-4966-9EAF-193971D26F26@trammell.ch>
References: <20150703151910.417.20312.idtracker@ietfa.amsl.com> <176C39DB-16F3-4E46-9A1D-22290A38FBA6@tik.ee.ethz.ch> <CALx6S37Eo6eAE4GTkAWGe+w0ZhDHyuMym7+txgjai5GRw+pgiQ@mail.gmail.com> <7158BF85-8731-40A0-9920-36D21D73D7F2@trammell.ch> <CALx6S37w1J=v48gFCH18E-3UZyfC28_d_LTuKjC5VHtXC0eu2Q@mail.gmail.com> <5A64B99E-89C5-4D5C-BFF2-C5F0C25EC35D@trammell.ch> <559D8301.2020604@isi.edu> <006C9182-7352-4086-AF18-785AEFD44979@trammell.ch> <559EB134.2090905@isi.edu> <CB3FEFD0-1FE0-49D4-A650-349218ABD00A@trammell.ch> <CALx6S37Xy1gg0O-OmkMMdxbJoQmHDS79Z9ZoU92-kAsDfUbTrQ@mail.gmail.com>
To: Tom Herbert <tom@herbertland.com>
X-Mailer: Apple Mail (2.2102)
Archived-At: <http://mailarchive.ietf.org/arch/msg/spud/z8gF_AU8a71N8418WQPdvLnNEcc>
Cc: Joe Touch <touch@isi.edu>, =?utf-8?Q?Mirja_K=C3=BChlewind?= <mirja.kuehlewind@tik.ee.ethz.ch>, spud@ietf.org
Subject: Re: [Spud] Putting Network-Layer Information in the Network Layer
X-BeenThere: spud@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Session Protocol Underneath Datagrams <spud.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spud>, <mailto:spud-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spud/>
List-Post: <mailto:spud@ietf.org>
List-Help: <mailto:spud-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spud>, <mailto:spud-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 20 Jul 2015 11:31:07 -0000

> On 10 Jul 2015, at 18:19, Tom Herbert <tom@herbertland.com> wrote:
> 
>> Coming back to the layering question:
>> 
>> It does seem to me that what we're (the we that wrote the two documents starting this thread) trying to do is explicitly reinforce the boundary between the network layer and the transport layer, where this is defined as "things the path needs to see versus things only endpoints need to see". Asking nicely (i.e., publishing RFCs) did not work in this case: the transport ports are de facto part of the network layer now, and short of blowing the Internet up and starting over I can't see a way to get them back. So now we are left with enforcing the boundary cryptographically, leaving some space in the "new network layer" (in this case, IP + UDP (for ports) + SPUD) for those things now commonly done within the network.
>> 
> This "new network layer" breaks down at fragmentation.

One can argue (indeed, I do) that in-network fragmentation is essentially a deprecated feature of the network layer. The current version of IP doesn't support it, and AFAICT avoiding fragmentation is current practice in modern transport protocol design.

> Only the first
> fragment carries port numbers and the embedded network layer
> information in the payload. Other fragments will carry neither, but
> still can carry IP options, DSCP, TTL, ECN marking, flow labels in
> IPv6.
> 
> An alternate possibility would be to embed IP options within UDP. So a
> packet might look like IP-UDP-IP options-payload.

This is an intriguing possibility, if there is an advantage to reusing IP options handling code.

> This allows us to
> use native options (say in our data center where we can control
> things), but maybe to use embedded IP options in UDP on paths in the
> Internet where we see options are being dropped. SFC-in-UDP
> (https://tools.ietf.org/html/draft-kumar-sfc-nsh-udp-transport-00)
> proposes a similar model,

It looks a lot like innerspace (http://tools.ietf.org/html/draft-briscoe-tcpm-inner-space-01), too.

> although I don't believe they allow
> middleboxes to modify or to be regularly looking the headers.

What does "allow" mean in this context?

>> If we can do this in the _current_ network layer (IPv6 (with options) with some alternate way to handle NAT + DTLS, or we find a portal to an alternate universe where end-to-end IPsec is widely deployable and manageable), then great, let's do that. I'm pessimistic enough to believe that that hasn't been a realistic prospect at any time during this century, though.
>> 
> I don't understand what the issue is with crypto here.

We want the transport protocol headers to be encrypted, in order to enforce the network/transport layer boundary. (That's what I would mean by "allow". :) )

> SSL/TLS are widely deployed with use of NAT,

...which allows mucking about in the transport layer, and using *all* transport layer metadata to track/fingerprint/etc.

> and we are certainly using encrypted
> tunnels over the Internet.

My understanding of most deployed encrypted tunnels which (also) use tunnel-mode IPsec is that it has a fallback to a UDP encap to handle NAT, but I could be mistaken there.

Cheers,

Brian