Re: [IPsec] AD VPN: discussion kick off

"Frederic Detienne (fdetienn)" <fdetienn@cisco.com> Fri, 08 November 2013 13:06 UTC

Return-Path: <fdetienn@cisco.com>
X-Original-To: ipsec@ietfa.amsl.com
Delivered-To: ipsec@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E71BC21E80C9 for <ipsec@ietfa.amsl.com>; Fri, 8 Nov 2013 05:06:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.089
X-Spam-Level:
X-Spam-Status: No, score=-10.089 tagged_above=-999 required=5 tests=[AWL=0.195, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8, SARE_MILLIONSOF=0.315]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lNDJ1xei1Vlj for <ipsec@ietfa.amsl.com>; Fri, 8 Nov 2013 05:06:15 -0800 (PST)
Received: from rcdn-iport-8.cisco.com (rcdn-iport-8.cisco.com [173.37.86.79]) by ietfa.amsl.com (Postfix) with ESMTP id ADB5F11E8147 for <ipsec@ietf.org>; Fri, 8 Nov 2013 05:06:10 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=13612; q=dns/txt; s=iport; t=1383915970; x=1385125570; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=4rHYKEeOW9PuS2CeCdLP1bQa2Ia0gd+4q0q1gmdrGHo=; b=l2wDQK9KUx3QHA/QSuGehZRjfx/SMkWgHdqoGVxu0Ply9si/ropJmrF2 In6gGw60GtiY8Ns1sFc7iTTNe/kVpbEE7B2+E/tfCDfMkA9N8j3jUv9dO x5Nrg2MDfY0087cUUNBV2xSwiXVNeMULrxqBSnqQkPwZpbdS1+81q75ha U=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AjcFABLhfFKtJV2c/2dsb2JhbABagwc4U78TgS0WdIIlAQEBAwFsDQUHBAIBCBEBAgEBASgHMhQDBggBAQQOBRkCh2AGvHeOHoEWMwcGgxqBEAOULoNhkguDJoFxOQ
X-IronPort-AV: E=Sophos;i="4.93,660,1378857600"; d="scan'208";a="282426096"
Received: from rcdn-core-5.cisco.com ([173.37.93.156]) by rcdn-iport-8.cisco.com with ESMTP; 08 Nov 2013 13:05:58 +0000
Received: from xhc-rcd-x13.cisco.com (xhc-rcd-x13.cisco.com [173.37.183.87]) by rcdn-core-5.cisco.com (8.14.5/8.14.5) with ESMTP id rA8D5wVq017987 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 8 Nov 2013 13:05:58 GMT
Received: from xmb-aln-x06.cisco.com ([169.254.1.132]) by xhc-rcd-x13.cisco.com ([173.37.183.87]) with mapi id 14.03.0123.003; Fri, 8 Nov 2013 07:05:58 -0600
From: "Frederic Detienne (fdetienn)" <fdetienn@cisco.com>
To: Praveen Sathyanarayan <praveenys@juniper.net>
Thread-Topic: [IPsec] AD VPN: discussion kick off
Thread-Index: Ac7Zch/ccvJ1By/2h0ikF2yPhA3xNAAVk6WAALtHvgA=
Date: Fri, 08 Nov 2013 13:05:57 +0000
Message-ID: <6D1C717E-B42F-41C3-96D0-5BB657100F5F@cisco.com>
References: <CE9D3781.1CA4AC%praveenys@juniper.net>
In-Reply-To: <CE9D3781.1CA4AC%praveenys@juniper.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.60.74.186]
Content-Type: text/plain; charset="Windows-1252"
Content-ID: <43F48F60BBEEE245ACD8F1F600CBC5B8@emea.cisco.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "Michael Guilford (mguilfor)" <mguilfor@cisco.com>, "draft-detienne-dmvpn@tools.ietf.org" <draft-detienne-dmvpn@tools.ietf.org>, "Mark Comeadow (mcomeado)" <mcomeado@cisco.com>, Michael Richardson <mcr+ietf@sandelman.ca>, "Mike Sullenberger (mls)" <mls@cisco.com>, IPsecme WG <ipsec@ietf.org>, "Stephen Lynn (stlynn)" <stlynn@cisco.com>
Subject: Re: [IPsec] AD VPN: discussion kick off
X-BeenThere: ipsec@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Discussion of IPsec protocols <ipsec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipsec>, <mailto:ipsec-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ipsec>
List-Post: <mailto:ipsec@ietf.org>
List-Help: <mailto:ipsec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipsec>, <mailto:ipsec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Nov 2013 13:06:33 -0000

Hi Praveen,

I think the discussion has been somewhat use case centric.

Like I said, we can take policy information from any source. The routing protocol captures a mindshare in some deployments but it is not the only one.

In our last iteration (product called FlexVPN but compliant with the draft we issued), we also support a prefix exchange mechanism over IKEv2 using config exchange (INTERNAL_IP4_ADDRESS/MASK and INTERNAL_IP6_ADDRESS/MASK). This turns out to be extremely friendly on the software client (Remote Access scenario) as well as for branch deployments having less requirements on dynamic routing.

We did not feel it necessary to document this since our proposal supports IKEv2 entirely as we repeatedly said. I guess we could...

The network discovery system based on a different protocol allows decoupling from IKE which also means it can be ported to SSL for instance.

This means the DMVPN proposal is suitable for both "small branches" (few prefixes or even PC client) and extremely large and complex networks alike.

regards,

	fred

On 04 Nov 2013, at 20:43, Praveen Sathyanarayan <praveenys@juniper.net> wrote:

> Hi Mike,
> 
> I am not sure when you refer to other proposal, you meant ours as well :-). Appreciate your review and feedback. 
> 
> You mentioned 4 points that DMVPN is capable of doing that other proposal falls short. I can speak for our proposal 
> 	• Routing protocol: Our proposal does not prevent running routing protocol either. You can definitely configuring any of the route protocol that supports NBMA or P2MP network (example OSPF, RIP, BGP etc). You need to setup right policies, which will allow routing protocol to exchange routing updates and forward the traffic efficiently. Along with Routing protocol support, it can be deployed without Routing protocol.  As an example, this removes requirement of implementing routing protocol on a mobile device, just for establishing a shortcut tunnel with other mobile device.
> 	• GRE tunneling: In our experience, IPsec tunneling does good job as tunneling protocol. IPsec provides all required structures and protocol extensions to support it. And as far as non-IP based traffic, our proposal does not prevent using GRE over IPSec. So if someone wants to use GRE to encap non-IP packet, they should be able to achieve.
> 	• NHRP Layer: NHRP is a nice protocol but that is defined ATM/FR network in mind. FYI,  Juniper did deploy this protocol to solve Spoke to Spoke shortcut tunnel with our AutoConnect VPN feature. But our experience is, this is nice protocol, but not designed with security in mind. It is a protocol that is not sufficient for IPsec.  This does not provide good authentication mechanism nor authorization mechanism. You can change NHRP protocol to support these Security specific feature, that exactly we did with AutoConnect VPN. At Juniper, before we came up with our proposal, we took a step back, and used our experience with AutoConnect VPN, asked our self, can we solve NHRP requirement with IKE. We found out that IKE has everything that was required to solve and NHRP was just hack to use.  
> 	• IPsec layer: As mentioned by you, IPSec does pretty good job of encryption. To add to that, it also does pretty good job of doing tunneling as well.
> 
> I feel, DMVPN is designed and organized in IOS/Security Gateway architecture in mind. Based on the requirements in RFC 7018 and for modern IPsec architecture requirements (Security Gateway, Mobile devices etc), I feel there is a requirement for new protocol, which can be solved without any complexity that DVMPN or ADS requires.
> 
> Thanks,
> Praveen
> 
> From: "Mike Sullenberger (mls)" <mls@cisco.com>
> Date: Monday, November 4, 2013 at 8:26 AM
> To: Michael Richardson <mcr+ietf@sandelman.ca>
> Cc: "Stephen Lynn (stlynn)" <stlynn@cisco.com>, "draft-detienne-dmvpn@tools.ietf.org" <draft-detienne-dmvpn@tools.ietf.org>, "Mark Comeadow (mcomeado)" <mcomeado@cisco.com>, "Mike Sullenberger (mls)" <mls@cisco.com>, "Michael Guilford (mguilfor)" <mguilfor@cisco.com>, IPsecme WG <ipsec@ietf.org>
> Subject: Re: [IPsec] AD VPN: discussion kick off
> 
> Michael,
>  
> I would say that DMVPN is much more than a "brilliant hack".  Of the three proposals it is the only one that uses layering to create a real VPN with emphasis on network. The other two proposals are just adding some dynamic functionality onto a collection of tunnels, but don’t actually form that collection into a network.
> If we look at the layers (which are based on standard protocols) from top-down we see:
> 	• Routing/forwarding layer over the VPN.  This uses standard routing protocols (EIGRP, OSPF, BGP, RIP) to advertise and propagate throughout the VPN the networks (subnets,…) that are available through the VPN.  If a new IP based routing protocol comes along no changes would be needed in the other layers to support it.  Also if more forwarding granularity is needed there are standard mechanism to do policy based forwarding, including SDN (or SDN like features). These could be implemented without changes to the other layers. 
> 	• GRE tunneling layer.  This provides standards based multi-protocol tunneling.  GRE can tunnel both IPv4, IPv6 and non-IP protocols over the same IPv4 or ipv6 infrastructure transport layer.  IPsec doesn't know nor need to know anything about the passenger protocols and therefore doesn't need to change.  Also in the future if a better standard tunneling protocol comes along, the GRE layer could be replaced with this new layer with minimal changes to the adjacent layers.
> 	• NHRP mapping layer.  In any dynamic network there needs to be the equivalent of ARP (like on an Ethernet).  When  you are talking about a collection of tunnels this ARP like protocol must be a bit more complex.  NHRP was specifically designed for "tunnel NBMA networks" (ATM, Frame Relay) and the VPN networks that we are talking about building here are the exact same thing. So it is best to go with a standard protocol that was specifically designed for this layer of the network.
> 	• IPsec encryption layer.  In this layer ISAKMP/IKEv2/IPsec is the correct standard protocol to use.  This is what IPsec does really well, encrypt traffic. The layers above greatly simplifies IPsec's job by presenting to it the tunnel to encrypt instead of all of the individual protocols/subnets/flows that are within the tunnel.  The IPsec selectors are now for the tunnel, which makes path redundancy and load-balancing  doable. IPsec doesn't deal well with the same set of selectors to encrypt traffic to more than one peer.  With DMVPN this is handled at the routing/forwarding and GRE tunnel layers.
>  
> The other proposals will have to reinvent one or more of these layers, which will end up being less efficient. There are also specific issues with IPsec, in particular, IPsec having to deal directly with the data plane flows.  With 10s of thousands of nodes and perhaps 100s of thousands of network/subnets reachable via the VPN the number of IPsec selectors across the VPN would get completely out of hand, especially if each different pair of subnets (selector) requires a separate encryption, between the same two nodes.  This doesn’t even count the fact that in order to run IPv4 and IPv6 between the same two nodes you have to use at least double the number of selectors. Routing protocols are already designed to scale to 100s of thousands and even millions of routes. So with DMVPN the forwarding and GRE tunneling of both IPv4 and IPv6 is handled within a single GRE tunnel and IPsec selector. NHRP for spoke-hub tunnels doesn’t have to do anything more, routing takes care of this.  NHRP for shortcut tunnels will have to pass and store (in the routing table) the individual subnets that are to be reachable through the shortcut tunnel, but this is much more lightweight then IPsec doing the same thing, which it would have to do with the other proposals.  Also, as mentioned above, IPsec is particular bad at supporting redundancy and load balancing of the same data subnets via different paths, without having to create an IPsec SA per data flow.
>  
> Note, with DMVPN at the routing/forwarding level you can use various static and dynamic features that “split-tunnel” traffic even down to the specific application or flow.  All without having to deal with possibly thousands of negotiated IPsec 5-tuples.   By dynamic a mean that application traffic flows can be measured over one path and flow by flow can be redirected over another path.  Since this is done at the routing/forwarding layer these are exactly the same mechanisms that are already in use over LAN and physical WAN networks.  My point here is that, why reinvent the same mechanism in IPsec when you don’t have to and are likely not going to be able to do as good a job as a mechanism that was designed just for that specific purpose.
>  
> As far as implementation is concerned, there are now at least 3 main vendors other than Cisco that claim they have support for DMVPN, and I pretty much believe their claim is likely to be true.  Once DMVPN is a standard then any differences will be quickly worked out.  As for hosts they can join the network in one of three ways.
> 	• As a non-encrypting node behind a gateway node that supports DMVPN.
> 	• As a pure IPsec node connecting into a gateway or hub node and thus gaining access to the DMVPN, but not able to support direct shortcut tunnels.
> 	• As a full node, in which case the node would have to support a routing protocol (possibly optional), GRE tunneling, NHRP mapping and IPsec.  Of this list the only new thing is NHRP mapping functionality. There will of course need to be some additions to the code for the layers to work cleanly with each other.  Many host stacks already have a level of support for the other three layers (routing, GRE, IPsec).
>  
> As for the draft-mao-ipsecme proposal, I think the ADS is the wrong way to go.  The ADS is going to be a single point congestion and failure in the VPN.  Even if you have multiple ADSs in the network they will have to all keep their databases in sync, which adds more problems when trying to scale these networks to 10s of thousands of nodes and larger.
>  
> Mike.
>  
>  
> Mike Sullenberger, DSE
> mls@cisco.com            .:|:.:|:.
> Customer Advocacy          CISCO
>  
>  
>  
>  
> > -----Original Message-----
> > From: ipsec-bounces@ietf.org [mailto:ipsec-bounces@ietf.org] On Behalf
> > Of Michael Richardson
> > Sent: Saturday, November 02, 2013 12:18 PM
> > To: IPsecme WG
> > Subject: Re: [IPsec] AD VPN: discussion kick off
> >
> >
> > {Sorry about that, the email configuration my tablet had a \n in a header
> > that did not belong}
> >
> > I have read all three proposals, although I missed the Q&A in Berlin.
> > I am looking forward to further Q&A in Berlin.
> >
> > When I read the NBMA protocol (DMVPN, I think) version what I saw was a
> > very brilliant hack that managed to take two code bases (IPsec and ATM)
> > that were likely already present in that vendor's firmware and connect
> > them.  Likely, it took only a few weeks of brilliant hacking, and it was ready
> > for customer use.
> >
> > I find that this solution for anyone else involves the most amount of new
> > code, and I think it will the most difficult to support on various mobile and
> > laptop platforms as it requires new encapsulation modes.
> >
> > draft-mao-ipsecme is architecturally the closest to me, and I like the ADS
> > idea: it seems that it be implemented without any new kernel code, and I
> > think that if we are trying  to get remote warrior and branch office RTP
> > traffic to take a more direct route, then  eliminating the need for a more
> > network plumbing, and just doing things in IKE is the right answer.  (%)
> >
> > I don't like having a new protocol: I want it in IKE.  While it can and should
> > run inside the tunnel, I don't see why adding a new port to my IKE daemon
> > makes my life easier.
> >
> > I *do* like the way that DMVPN uses probe packets to discover the end
> > points of the shorter routes, and I would look forward to including that
> > mechanism somehow.  I don't know how to do that without hacks to the
> > data plane, which I'd like to avoid.  I can imagine some ways to do this with a
> > traceroute process, but it seems kludgy and brittle. (really, that's still
> > dataplane, but it's using an existing mechanism)
> >
> > I don't like that DMVPN does not let http traffic continue to travel via HQ's
> > virus/trojan/netnanny while RTP takes the shortcut.
> >
> >
> > (%)- the plumbing might need a way to sample 5-tuple flows to see if there
> > is traffic that should be shortcut. However, various schemes to put more
> > specific SPD entries in that cause key requests might accomplish this
> > without new kernel code.
> >
> > --
> > Michael Richardson
> > -on the road-
> >
> > --
> > Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works
> >
>  
>