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

Joe Touch <touch@isi.edu> Mon, 05 December 2016 22:47 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 69B67129610 for <int-area@ietfa.amsl.com>; Mon, 5 Dec 2016 14:47:12 -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 3Mfzvl85vhmx for <int-area@ietfa.amsl.com>; Mon, 5 Dec 2016 14:47:10 -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 110CF129613 for <int-area@ietf.org>; Mon, 5 Dec 2016 14:47:10 -0800 (PST)
Received: from [128.9.184.165] ([128.9.184.165]) (authenticated bits=0) by boreas.isi.edu (8.13.8/8.13.8) with ESMTP id uB5Mkckl019820 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Mon, 5 Dec 2016 14:46:39 -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> <950cf5fb-3c71-f428-cea1-ab44849147bb@isi.edu> <daf5035c7fad45eaa577c4e7e08a81cc@XCH15-06-08.nw.nos.boeing.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>
From: Joe Touch <touch@isi.edu>
Message-ID: <ceaf3563-ec86-8fe0-f67d-f50e9b9586ae@isi.edu>
Date: Mon, 05 Dec 2016 14:46:37 -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: <25503919e279426eb5fd827acf14d9c4@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/_j7RCINYTA-flz4kjv5rzJYPcXM>
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: Mon, 05 Dec 2016 22:47:12 -0000


On 12/5/2016 2:29 PM, Templin, Fred L wrote:
> Hi Joe,
>
>> -----Original Message-----
>> From: Joe Touch [mailto:touch@isi.edu]
>> Sent: Monday, December 05, 2016 1:25 PM
>> 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
>> Subject: Re: [Int-area] Some thoughts on draft-yong-intarea-inter-sites-over-tunnels
>>
>> Hi, Fred,
>>
>>
>> On 12/1/2016 12:52 PM, Templin, Fred L wrote:
>>> Hi Joe,
>>> ...
>>> Can you say why you think redirecting an entire subnet is potentially more
>>> problematic (noting that RFC6706 has been published since 2012 and so the
>>> notion of subnet redirection is already well known)?
>> 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.

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


>
>>>> Yes, buried in 6706 are the issues that might be in such a rev, but we
>>>> can't expect IPv6 ND implementers to dive into a large spec that has no
>>>> clear relation to IPv6 and doesn't update 4861 to find it. If there is a
>>>> way for this approach to be generally useful, it really needs to be in a
>>>> 4861bis update.
>>> Not an RFC4861bis, no, but possibly in a document that updates RFC4861.
>>> Is that what you meant
>> I was thinking of a single doc focused on the subnet redirect. That
>> could be in a 4861bis or a single doc that updates 4861, but should not
>> be a small part of a much larger doc that does many other things
>> concurrently IMO.
> 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.



>
>>>>>> It acts exactly like one NMBA link on which your endpoint has multiple
>>>>>> virtual interfaces.
>>>>> This is from RFC4861:
>>>>>
>>>>>      Inbound load balancing - Nodes with replicated interfaces may want
>>>>>            to load balance the reception of incoming packets across
>>>>>            multiple network interfaces on the same link.  Such nodes
>>>>>            have multiple link-layer addresses assigned to the same
>>>>>            interface.  For example, a single network driver could
>>>>>            represent multiple network interface cards as a single
>>>>>            logical interface having multiple link-layer addresses.
>>>>>
>>>>> AERO is not talking about inbound load balancing, but it is talking about
>>>>> a single logical interface having multiple link-layer addresses in exactly
>>>>> the same spirit as implied by this text.
>>>> Which is what I said - one link with multiple interfaces. The example
>>>> given explains that this can be done through interface virtualization,
>>>> which I also noted.
>>> No, it agrees with what I said: "a single network driver could represent
>>> multiple network interface cards as a single logical interface having multiple
>>> link-layer addresses". One interface; multiple link-layer addresses; one link.
>> The only difference is whether you can use vanilla IP forwarding (to
>> pick the outgoing virtual interface) or need some sort of additional
>> mechanism (that allows multiple IP forwarding entries to use the same
>> interface and next-hop IP, but needs additional fields to differentiate
>> the L2 source/dest). With virtual interfaces, you can use existing code.
> To be completely clear, with AERO the tunnel interface itself (i.e., the
> AERO interface) is the virtual interface. Within the AERO interface there
> are one or more underlying interfaces (physical or virtual), with each
> interface having one or more addresses. The underlying interface
> addresses are seen as link-layer addresses of the AERO interface.
>
> The AERO interface is the node's point of connection to the AERO link,
> where the AERO link is the entire underlying network. The AERO
> interface therefore has multiple link-layer addresses but it connects
> to a single link. This is consistent with the link model for ISATAP which
> was published as RFC4214/RFC5214.
>
> With this model, the inner IP layer uses vanilla IP forwarding to pick
> the (singular) AERO interface as the outgoing interface. Once inside
> the AERO interface, the inner IP destination address is mapped to
> the correct corresponding AERO interface neighbor cache entry,
> then encapsulation is applied, and then the encapsulated packet
> is shipped out the correct underlying interface.
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).

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.

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.

>
>>>> Whether you use them for input or output reasons is up to the forwarding
>>>> plane; it shouldn't be buried inside the tunnel mechanism. That's a flaw
>>>> of many other tunnel approaches.
>>> I disagree with any implications of a flaw. There is one forwarding table entry,
>>> but the neighbor cache entry has multiple link-layer addresses. So, IP forwarding
>>> does its normal thing at the IP layer, but inside the interface the packet is
>>> forwarded to the correct link-layer address of the neighbor among multiple
>>> candidates at the sub-IP layer. I can demonstrate this in running code today.
>> I agree this works, but you need your new code to accomplish this for
>> the very reason you cite.
> 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.

>
>> If you treat these as different interfaces, then existing forwarding
>> code would have sufficed.
> Existing IP forwarding code does suffice with a single interface. It is the
> same as on any multipoint interface (e.g., Ethernet).
Multipoint interfaces don't generally allow different encapsulations for
the same destination IP address.
(I claim that those that do aren't multipoint interfaces; they're hack
implementations of multiple interfaces as if they were one).

...
>
>>>>>  But, by allowing multiple S/TLLAOs
>>>>> on IPv6 ND messages, AERO nodes can tell their neighbors about their
>>>>> multiple link-layer address and how they prefer to have those link-layer
>>>>> addresses used for inbound traffic.
>>>> In my terminology, they affect the forwarding table. Sure.
>>> They do not affect the forwarding table at the IP layer.
>> They should. You're effectively using a different link source/dest.
> I'm not sure if this statement is born from a misunderstanding of the
>  AERO interface/link model or some kind of preconceived notions you
> may have from some other context. But, it is one (virtual) interface
> connected to one (virtual) link the same way as Ethernet has one
> (physical) interface connected to one (physical) link.
An ethernet interface has one "dest IP" -> "dest L2" map entry.
When you have multiple dest L2s for the same dest IP, you are doing IP
routing (IMO incorrectly) inside the link layer.

>
>>> The IP layer sees only
>>> a single next-hop while the sub-IP layer gets to see the multiple link-layer
>>> addresses in the neighbor cache entry.
>> That's the flaw, IMO - it's not needed of you use VIFs (we demonstrated
>> this in the X-Bone).
> Not adhering to the X-Bone model does not necessarily constitute a flaw.
Of course, but you should consider that the tunnel doc that has taken
years to converge is largely based on the X-Bone's model.

Joe