Re: Multiprotocol tunneling over UDP using AERO

<l.wood@surrey.ac.uk> Tue, 02 December 2014 22:26 UTC

Return-Path: <l.wood@surrey.ac.uk>
X-Original-To: routing-discussion@ietfa.amsl.com
Delivered-To: routing-discussion@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 28FE61A1AAF; Tue, 2 Dec 2014 14:26:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.202
X-Spam-Level:
X-Spam-Status: No, score=-4.202 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] 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 oBbEpsjODpUt; Tue, 2 Dec 2014 14:26:45 -0800 (PST)
Received: from mail1.bemta14.messagelabs.com (mail1.bemta14.messagelabs.com [193.109.254.112]) (using TLSv1.2 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 770291A0030; Tue, 2 Dec 2014 14:26:44 -0800 (PST)
Received: from [193.109.255.147] by server-8.bemta-14.messagelabs.com id 4E/07-03148-2AC3E745; Tue, 02 Dec 2014 22:26:42 +0000
X-Env-Sender: l.wood@surrey.ac.uk
X-Msg-Ref: server-6.tower-72.messagelabs.com!1417559201!14232901!1
X-Originating-IP: [131.227.200.39]
X-StarScan-Received:
X-StarScan-Version: 6.12.4; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 17631 invoked from network); 2 Dec 2014 22:26:42 -0000
Received: from exht012p.surrey.ac.uk (HELO EXHT012P.surrey.ac.uk) (131.227.200.39) by server-6.tower-72.messagelabs.com with AES128-SHA encrypted SMTP; 2 Dec 2014 22:26:42 -0000
Received: from EXHY011V.surrey.ac.uk (131.227.200.103) by EXHT012P.surrey.ac.uk (131.227.200.39) with Microsoft SMTP Server (TLS) id 8.3.348.2; Tue, 2 Dec 2014 22:26:41 +0000
Received: from emea01-am1-obe.outbound.protection.outlook.com (131.227.200.4) by EXHY011v.surrey.ac.uk (131.227.200.103) with Microsoft SMTP Server (TLS) id 14.3.195.1; Tue, 2 Dec 2014 22:26:41 +0000
Received: from DB4PR06MB458.eurprd06.prod.outlook.com (10.141.238.19) by DB4PR06MB174.eurprd06.prod.outlook.com (10.242.155.148) with Microsoft SMTP Server (TLS) id 15.1.26.15; Tue, 2 Dec 2014 22:26:41 +0000
Received: from DB4PR06MB457.eurprd06.prod.outlook.com (10.141.238.15) by DB4PR06MB458.eurprd06.prod.outlook.com (10.141.238.19) with Microsoft SMTP Server (TLS) id 15.1.26.15; Tue, 2 Dec 2014 22:26:39 +0000
Received: from DB4PR06MB457.eurprd06.prod.outlook.com ([10.141.238.15]) by DB4PR06MB457.eurprd06.prod.outlook.com ([10.141.238.15]) with mapi id 15.01.0026.003; Tue, 2 Dec 2014 22:26:39 +0000
From: l.wood@surrey.ac.uk
To: Fred.L.Templin@boeing.com, tsvwg@ietf.org, int-area@ietf.org, routing-discussion@ietf.org
Subject: Re: Multiprotocol tunneling over UDP using AERO
Thread-Topic: Multiprotocol tunneling over UDP using AERO
Thread-Index: AdAOcPTIUlvuyiTrTg+MXp53XC95kQAB0fjf
Date: Tue, 02 Dec 2014 22:26:39 +0000
Message-ID: <1417559198240.10209@surrey.ac.uk>
References: <2134F8430051B64F815C691A62D9831832DA7C70@XCH-BLV-504.nw.nos.boeing.com>
In-Reply-To: <2134F8430051B64F815C691A62D9831832DA7C70@XCH-BLV-504.nw.nos.boeing.com>
Accept-Language: en-AU, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [122.200.59.254]
x-microsoft-antispam: BCL:0;PCL:0;RULEID:;SRVR:DB4PR06MB458;UriScan:;
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:;SRVR:DB4PR06MB458;
x-forefront-prvs: 0413C9F1ED
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(199003)(585484001)(189002)(377454003)(19580405001)(19580395003)(117636001)(2656002)(15975445006)(74482002)(46102003)(101416001)(97736003)(2501002)(36756003)(99396003)(21056001)(1720100001)(15198665003)(62966003)(122556002)(4396001)(120916001)(87936001)(77156002)(40100003)(68736005)(20776003)(2201001)(64706001)(92566001)(66066001)(92726001)(15395725005)(15202345003)(86362001)(95666004)(105586002)(106356001)(107046002)(107886001)(31966008)(76176999)(77096005)(50986999)(54356999)(7059030); DIR:OUT; SFP:1102; SCL:1; SRVR:DB4PR06MB458; H:DB4PR06MB457.eurprd06.prod.outlook.com; FPR:; SPF:None; MLV:sfv; PTR:InfoNoRecords; A:1; MX:1; LANG:en;
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OrganizationHeadersPreserved: DB4PR06MB458.eurprd06.prod.outlook.com
X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;SRVR:DB4PR06MB174;
X-OriginatorOrg: surrey.ac.uk
X-CrossPremisesHeadersPromoted: EXHY011v.surrey.ac.uk
X-CrossPremisesHeadersFiltered: EXHY011v.surrey.ac.uk
Archived-At: http://mailarchive.ietf.org/arch/msg/routing-discussion/55mGTn4OqhvhLJCOwnwrLcfWFQ8
X-BeenThere: routing-discussion@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Routing Area General mailing list <routing-discussion.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/routing-discussion>, <mailto:routing-discussion-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/routing-discussion/>
List-Post: <mailto:routing-discussion@ietf.org>
List-Help: <mailto:routing-discussion-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/routing-discussion>, <mailto:routing-discussion-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 02 Dec 2014 22:26:48 -0000

Fred,

I see Adrian mentioned checksums in his reply to you. To elaborate on his point:

http://datatracker.ietf.org/doc/draft-templin-aerolink/
says:

   The AERO interface
   also sets the UDP checksum field to zero (see: [RFC6935][RFC6936])
   unless an integrity check is required (see: Section 3.12.2).

This misses the more subtle implications of zero checksums. As RFC6936 says:
   The current recommendation
   is to use or fall back to using UDP with full checksum coverage.

RFC6935 is written from the perspective of tunnelled traffic that can have its own checks, rather than from the larger perspective of what is good for the network; the zero checksum was inconvenient for tunnellers, hence RFC6935. (While RFC6936 is rather academic and nuanced in its tone, as it steps through the necessary safeguards that that use of zero checksums requires of everything else; sometimes 'don't do that, stupid!' is the clearer and simpler approach to both writing and engineering.)

A zero UDP checksum means:

- in IPv4, potential delivery to any port on the destination device if there is UDP header corruption. (the IPv4 header checksum can prevent host misdelivery). This is port pollution.

- in IPv6, potential delivery to anywhere if there is IP/UDP header corruption (as there is no IP header checksum, and using a zero UDP sum turns off the endhost pseudoheader check - and tunnels often terminate on routers that forward packets...). This is network pollution.

So, use a zero UDP checksum, and the IPv6 traffic you generate can be potentially injected anywhere to affect anything, modulo all the careful nuance in RFC6936 to start guarding against this - guards required by everything else. But your tunnel traffic can have its own checks and its own repeat/replay, so you're alright.

(UDP-Lite provides a minimal interface to build on with necessary endhost pseudo-header check and low computation cost for application designers; shame it's not more prevalent.)

Analogies with nice clean factories pumping into dirty rivers fit nicely here. It's a tragedy that people downstream were relying on the river water, but it's clearly not the factory designer's fault. As if. Those people just didn't implement the safeguards in the small print. And environmental protection wasn't a design goal. Why care about the commons?

My take here is that IPv6 was not well-designed in this regard. An IP header checksum across non-mutable fields, excluding QoS/TTL etc., that did not need to be recomputed, would have been preferable. A mandatory endhost pseudoheader check would have been preferable. Expecting protocol designers to do the right thing above IP and do the necessary pseudo-header check has been repeatedly demonstrated to presume too much knowledge in those that follow. Hardly the only IPv6 mistake, but not one we should be compounding.

Please fix AERO, and follow RFC6936's recommendation.

Lloyd Wood
http://about.me/lloydwood

you'll notice I'm not also asking you to fix the bundle protocol. Lost cause.
________________________________________
From: tsvwg <tsvwg-bounces@ietf.org> on behalf of Templin, Fred L <Fred.L.Templin@boeing.com>
Sent: Wednesday, 3 December 2014 7:57 AM
To: tsvwg@ietf.org; int-area@ietf.org; routing-discussion@ietf.org
Subject: [tsvwg] Multiprotocol tunneling over UDP using AERO

Hello,

I am replaying a message below that was originally posted on the routing-discussion
list yesterday. Follow-up discussion was then posted in two additional messages. The
messages are here:

http://www.ietf.org/mail-archive/web/routing-discussion/current/msg01949.html
http://www.ietf.org/mail-archive/web/routing-discussion/current/msg01950.html
http://www.ietf.org/mail-archive/web/routing-discussion/current/msg01951.html

I am cross-posting to transport area and int area now, because there seems to be
an overlap of interests with respect to UDP tunneling that may transcend traditional
area boundaries. Original message appears below; please post comments to the lists.

Thanks - Fred
fred.l.templin@boeing.com

---

Hello,

I am working on a spec for generic tunneling of any protocol over UDP, including
MPLS, GRE, IPsec, etc. The spec is called "AERO", and it includes:

  - an encapsulation format
  - a fragmentation and reassembly capability for MTU mitigation
  - a virtual link model
  - a control messaging mechanism
  - a routing and addressing system based on BGP

https://datatracker.ietf.org/doc/draft-templin-aerolink/

I understand that there have been discussions regarding protocol-specific
GRE and MPLS encapsulations within UDP, but I would like to offer up AERO
as a protocol-independent way of accommodating UDP encapsulations. I
also believe the routing system and other aspects of AERO should be of
interest to the routing area.

This work is derived from an earlier experimental RFC (RFC6706) which was
originally briefed to the routing area several years ago and published as an
AD-sponsored Individual Submission RFC. The current document can be
considered as a second edition of AERO, and the goal is to advance it to
standards track. Please send any comments or questions to the list.

Thanks - Fred
fred.l.templin@boeing.com