Re: [Int-area] Some thoughts on draft-yong-intarea-inter-sites-over-tunnels

Joe Touch <touch@isi.edu> Tue, 06 December 2016 18:39 UTC

Return-Path: <touch@isi.edu>
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 2252E129A9C for <int-area@ietfa.amsl.com>; Tue, 6 Dec 2016 10:39:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.796
X-Spam-Level:
X-Spam-Status: No, score=-9.796 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-2.896] 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 dYueUG50G-bj for <int-area@ietfa.amsl.com>; Tue, 6 Dec 2016 10:39:12 -0800 (PST)
Received: from boreas.isi.edu (boreas.isi.edu [128.9.160.161]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9C6FE129A64 for <int-area@ietf.org>; Tue, 6 Dec 2016 10:39:07 -0800 (PST)
Received: from [192.168.1.189] (cpe-172-250-251-17.socal.res.rr.com [172.250.251.17]) (authenticated bits=0) by boreas.isi.edu (8.13.8/8.13.8) with ESMTP id uB6Icg7C022102 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 6 Dec 2016 10:38:44 -0800 (PST)
To: "Templin, Fred L" <Fred.L.Templin@boeing.com>, Lucy yong <lucy.yong@huawei.com>, Brian E Carpenter <brian.e.carpenter@gmail.com>, "int-area@ietf.org" <int-area@ietf.org>
References: <2a8ef418-91dc-b0c5-1384-203b4fde3830@gmail.com> <d711f321-e8c9-8d69-33d6-4008789b4de9@isi.edu> <93f8d61c9b6343b9b70b887c43e3aaee@XCH15-06-08.nw.nos.boeing.com> <d4e08982-03f8-fe5e-0c67-aa5cd7f26275@isi.edu> <e4096f9729474e00915432aa5c3af300@XCH15-06-08.nw.nos.boeing.com> <b82247d0-5221-ad60-3c4f-6e3287ef1fa9@isi.edu> <f54cd95a4f974ca189e2b3fb24864b97@XCH15-06-08.nw.nos.boeing.com> <a3f0ade1-2145-ee28-31cf-d5a4878b507c@isi.edu> <1707aa63f4e4424e85a8933a79b43dfe@XCH15-06-08.nw.nos.boeing.com> <982c4212-34cb-21f1-c8a8-a23df18d5c30@isi.edu> <1ced07df7e8c453f8c0821363bc5604e@XCH15-06-08.nw.nos.boeing.com> <137debc3-eb11-5c13-884e-d8f6598e8ec9@isi.edu> <30ad1018463746b3b7ef5d864abc9ff3@XCH15-06-08.nw.nos.boeing.com> <e23fc6bd-c95d-9d38-74e1-c040bffe653f@isi.edu> <25503919e279426eb5fd827acf14d9c4@XCH15-06-08.nw.nos.boeing.com> <ceaf3563-ec86-8fe0-f67d-f50e9b9586ae@isi.edu> <05616d07ab3f420a8c0bd5556837d788@XCH15-06-08.nw.nos.boeing.com>
From: Joe Touch <touch@isi.edu>
Message-ID: <de82e183-f6dd-b872-eb21-981d57218a81@isi.edu>
Date: Tue, 06 Dec 2016 10:38:41 -0800
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1
MIME-Version: 1.0
In-Reply-To: <05616d07ab3f420a8c0bd5556837d788@XCH15-06-08.nw.nos.boeing.com>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Archived-At: <https://mailarchive.ietf.org/arch/msg/int-area/N9qvHQCZ4dmKd53nX2nNyEARP48>
Subject: Re: [Int-area] Some thoughts on draft-yong-intarea-inter-sites-over-tunnels
X-BeenThere: int-area@ietf.org
X-Mailman-Version: 2.1.17
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: Tue, 06 Dec 2016 18:39:15 -0000


On 12/6/2016 10:19 AM, Templin, Fred L wrote:
> Hi Joe,
>
>> ...
>>>> 6706 is within the context of authenticated origin.
>>> Yes, that is correct. And, RFC6706 applies to all link types that support
>>> Redirection (i.e., and not just tunnel NBMA links).
>> It requires AERO tunneling, though - it doesn't apply to other sorts of
>> IPv6 links, tunneled or not.
> No it doesn't require AERO tunneling - as is said many times over in RFC6706,
> it can be applied to any link type which can use the ordinary Redirect function
> and can provide sufficient trust basis. Ethernet is an example link type where
> RFC6706 can be applied.
We're going in circles. AERO provides the authenticated origin. Most
other IPv6 environments do not. So this isn't a generic mechanism. It
applies only where authenticated origin info is available.

>
>>>> It's a problem in the more general case where that's not known - e.g.,
>>>> where host redirect is already used.
>>> I don't understand the point you are trying to make here, but it
>>> might not even matter.
>> 6706 proposes to use the redirect where source authentication is
>> available - notably within AERO. When that's not available (which is the
>> typical case for most IPv6 fabrics), subnet redirect becomes an
>> efficient attack vector.
> RFC6706 expects a trusted intermediate router so that Redirects cannot
> be spoofed. But again, that trust basis can be established on any link
> type (e.g., Ethernet) and not just tunnels.
Agreed - CAN be  but typically is not.

> ...
>>> RFC6706 specifies subnet redirect for any link type that can support
>>> ordinary Redirect. RFC6706(bis) updates that spec.
>> See above; if it does so on links that don't use AERO tunnels (and thus
>> source authentication), then it's a big security hazard.
> Not true. On a campus Ethernet, if the source and destination can both
> trust an intermediate router then there is a trust basis for the exchange
> of Predirect/Redirect messages. The attack vector is spoofed Predirect
> and Redirect messages, but the trusted intermediate router eliminates
> the attack vector. Again, RFC6706 can be used on any link type.
That supports trusted sources of such messages. On a campus ethernet,
that would require per-packet source authentication which is expensive.
...
>> IP forwarding is supposed to pick outgoing interface and next-hop *IP*.
>> The neighbor cache is supposed to map next-hop IP to L2, but if it does
>> just that it has no way to differentiate packets (e.g., based on QOS).
> In linux at least, there is a "Route to Interface" capability. For example,
> "send all packets with destination covered by 2001:db8::/32 to interface
> aero0". The interface then gets to decide what to do with them, and
> exactly as you say the neighbor cache maps the next-hop IP to L2.
Yes, on Linux there is code that implements a workaround to the fact
that you could - and IMO should - have used separate virtual interfaces.

>
>> The only solution using this (ISATAP) model is to have another instance
>> of IP QOS forwarding happen inside the interface too, so different QOS
>> can have different mappings.
> QoS-base traffic engineering  is accommodated within the AERO interface.
> Also mobility management, security, etc. It works, and I have the code to
> prove it.

I'm not debating whether you CAN solve it this way, but whether you
SHOULD (and whether you even need to).

>> That's why I think this model is incorrect. The simpler approach
>> considers each L2 encapsulation as a separate (virtual) interface to the
>> IP forwarding. In that case, the (one) IP forwarding can pick different
>> outgoing interfaces (with different or similar next-hop IPs), which
>> result in different encapsulations.
> AERO works, Joe. Just because it doesn't look like X-Bone does not
> make it flawed.
The X-Bone works too, and didn't need any of that specialized code
above. That's why I consider the AERO approach to be flawed - it
requires IP routing at a layer that is below IP. That cannot be
correctly integrated with all the other things happening at the main IP
forwarding layer in AERO - but can (and was) in the X-Bone.


>
>>>
>>> All tunnel drivers have code that operates at the sub-IP layer, i.e., and not
>>> just OpenVPN. Look at the linux kernel sit.c, ipip.c, ip_gre.c, etc. drivers, and
>>> look at any apps that use the TUN/TAP interface. This code is not flawed.
>> They should not have IP forwarding mechanisms in that code.
> They can do anything they want inside the interface. Pick the packet up,
> twirl it around, bounce it off the wall, etc. etc. As long as it eventually
> gets encapsulated and shipped off to the correct L2.
They CAN, but IMO they should not. Doing IP forwarding inside an
interface has the potential to interfere (or at least not be integrated
with) primary IP forwarding (that picked that interface).

...

> Joe, I am sorry if the AERO model offends you - perhaps because it differs
> from X-Bone. But, that does not make it wrong. Besides, aren't there any
> number of other existing and emerging tunnel types (e.g., LISP) that don't
> look exactly like X-Bone? 
There's a long list. One of the earliest was the fact that IPsec tunnel
mode buried IP forwarding inside as well - which is why we wrote
RFC3884. Another is the need for two layers of encapsulation to do
tunnels completely. That model is bourne out of a set of capabilities
that none of the current systems - AERO, LISP, etc. - support, all of
which the X-Bone supported nearly 20 years ago - without needing any of
the related "hacks" of replicating IP forwarding anywhere new.

I think AERO adds a few useful things - a better frag/reassembly
mechanism and security - to conventional IP-in-IP or even most other
IP-in-X-in-IP tunnels, but I do not consider it a complete network model.

But we can have the rest of that discussion off--list. We're fall afield
of the origin of this thread.

Joe