Re: [tsvwg] Multiprotocol tunneling over UDP using AERO

Tom Herbert <therbert@google.com> Tue, 02 December 2014 22:40 UTC

Return-Path: <therbert@google.com>
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 B75AD1A1ACE for <routing-discussion@ietfa.amsl.com>; Tue, 2 Dec 2014 14:40:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.389
X-Spam-Level:
X-Spam-Status: No, score=-1.389 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=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 JIOipV0s2tGo for <routing-discussion@ietfa.amsl.com>; Tue, 2 Dec 2014 14:40:04 -0800 (PST)
Received: from mail-ie0-x230.google.com (mail-ie0-x230.google.com [IPv6:2607:f8b0:4001:c03::230]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5C2221A1A97 for <routing-discussion@ietf.org>; Tue, 2 Dec 2014 14:40:04 -0800 (PST)
Received: by mail-ie0-f176.google.com with SMTP id tr6so12595502ieb.21 for <routing-discussion@ietf.org>; Tue, 02 Dec 2014 14:40:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=WhTVd3EkwIcNR3Q2aYBZlSlgJl/dlxPsDdiSvy0Wjiw=; b=ersED/3R9XLT8uPuWuE+hAHQWLtyEZjesNHbMvexBC71wKwaeve96OdSogMxtqVtZ8 bCw0VdNiWigerd0p/NwXTLswoFjTw/aRSixtfug6gTvt+s9pTUwtg7agVm0V1NieionU C2gaDccLLZRnFm3W67B3B0B89Ttg3f750e+N9uaxl0/d96SVlDEQCxQfjvtx3YXfpKXc RR/aNDSw8cs3iSlGhIDWqbxcLFgNKRwk0DYIUsJuoE8fzL4bip4NiLMJwfkMASxqPCkd LE3pk2y395O52I/kFVStyui9ZRjGLGJdZrdSlkdF87HS96AZ3qzLP9/DfdOGwbqcDz/8 WIFA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=WhTVd3EkwIcNR3Q2aYBZlSlgJl/dlxPsDdiSvy0Wjiw=; b=jqQVqSSGF8QckE+kw62irvMXbrC3BpWaM4XsTY3kuaXSnr6JiVgp1OOvwy6T8he1MR CrMPBkVMuqCqjXQhnKjUO27x5/Pg2TkhI6xqakld5rW44CuTaDVuCwcTXmY4scbR9PQv qh7lNS9RL8ftsKntw4H0hMeuF2+MJPmbPWDF4heIZh1drlaWuoWDJhIB7sNwc8MtgHpK tPcrOeBjv1KRhK1BjwVh7EyTJ73DkDCncWsTVMXuzVx3rPjU9P9dcDBmWk+Bxsk44sXx KCb7/sSRTNrp6AWiKYnFekS5k2Q0E4jl56heV6eb0pGkKgGyUjXnuX3Fx7mxpuuajWuP J38w==
X-Gm-Message-State: ALoCoQkyxzoqA7098RGy/90dJo1v5qa+/EkLxVfKVjz3mUfmIryzUQtbEy194F6hamWr7kIO4aaM
MIME-Version: 1.0
X-Received: by 10.42.255.72 with SMTP id nh8mr4650489icb.1.1417560003262; Tue, 02 Dec 2014 14:40:03 -0800 (PST)
Received: by 10.64.98.167 with HTTP; Tue, 2 Dec 2014 14:40:03 -0800 (PST)
In-Reply-To: <1417559198240.10209@surrey.ac.uk>
References: <2134F8430051B64F815C691A62D9831832DA7C70@XCH-BLV-504.nw.nos.boeing.com> <1417559198240.10209@surrey.ac.uk>
Date: Tue, 02 Dec 2014 14:40:03 -0800
Message-ID: <CA+mtBx9kuDoarkdPHeZCLEDZUW2PThc13hjkNtmf9va1G_XF=g@mail.gmail.com>
Subject: Re: [tsvwg] Multiprotocol tunneling over UDP using AERO
From: Tom Herbert <therbert@google.com>
To: l.wood@surrey.ac.uk
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: http://mailarchive.ietf.org/arch/msg/routing-discussion/0TI76C0Yoffm8fsW1FTzJ--doZU
X-Mailman-Approved-At: Tue, 02 Dec 2014 14:46:21 -0800
Cc: int-area@ietf.org, tsvwg@ietf.org, routing-discussion@ietf.org
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:40:07 -0000

On Tue, Dec 2, 2014 at 2:26 PM,  <l.wood@surrey.ac.uk> wrote:
> 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.
>
Another alternative might be to include a checksum in the
encapsulation header that includes a pseudo header covering ports and
addresses. This is what we intend to do in Generic UDP Encapsulation
(draft-herbert-guecsum-00).

> 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
>
>