Virtual Private Networks (VPNs) are a classic resource designed to securely and inexpensevely extend the reach of corporate networks. Several options available are built on top of IPSec, a framework that deals with the tasks of ensuring Confidentiality, Integrity, Authentication of origin and secure key distribution for VPNs.
Some of the notable strengths of IPSec are its independence of the transport (UDP, TCP or raw IP) and the provision for easy replacement of one or more of its components (such as the hash functions and cryptographic algorithms) so that it can keep up with hardware evolution and what it means in terms of feasibility of brute force attacks.
If you are familiar with Cisco IOS software, you probably heard terms such as Classic IPSec, IPSec/GRE, Virtual Tunnel Interface (VTI), EasyVPN, Dynamic Multipoint VPN (DMVPN)… But, which of these site-to-site VPN options available on Cisco IOS software should you select ? Well, I will start by saying that each of the technologies was developed to solve specific problems:
- Crypto Maps are the initial/legacy solution that was devised before IPsec was even an RFC. Although the services available are very basic they do help on interoperability.
- VTI brings a logical interface to IPSec deployments without the need of using Generic Routing Encapsulation (GRE).
- EasyVPN allows branch routers (or other types of VPN appliances) to behave as hardware clients that are centrally configured by a VPN concentrator.
- DMVPN provides the capability of dynamically establishing tunnels between spokes on a hub-and-spoke scenario.
The good news is that Cisco now offers a unified way of dealing with all these options, allowing your network to be prepared to simultaneously handle the different VPN models. The new approach is called Flex VPN and, as the name suggests, is really flexible in terms of configuration possibilities:
- A router implementing Flex VPN may be configured to expect connections in any of these site-to-site forms: VTI, EasyVPN, GRE/IPSec, DMVPN (and even Classic IPSec tunnels, in case you need to guarantee interoperability with other vendors or older Cisco routers).
- Flex VPN can deal with remote access either using the Windows 7 native client or a dedicated client such as Cisco AnyConnect.
- Flex VPN supports both IPv4 and IPv6 implementations.
- Authentication and Authorization may be performed by means of a local database or using RADIUS (more convenient for Service Provider environments, which typically require multi tenancy).
A critical point in which Flex VPN does not allow flexibility, though, is for Security Association (SA) negotiation and establishment. Flex VPN requires the use of the version 2 of the Internet Key Exchange protocol (IKEv2), a more secure option than the original implementation (IKEv1). But, instead of getting frustrated with the obligation of moving to IKEv2, I hope that you become motivated to start learning Flex VPN. After all, the return on investment is significant: you will not only have a much better control plane protocol in place but also will have just one VPN to support !
It is relevant to emphasize that IKEv2, by design, is not backward compatible with IKEv1. And, as such, if you want to benefit from the increased security in IKEv2, you will need to reconfigure your IPSec VPNs anyway…
To finish this quick post, I present a figure that shows some possibilities associated with the Flex VPN approach. Future articles will cover specific deployment scenarios… Stay tuned !
- Backward compatibility may sound attractive for network protocols (remember the example of RIPv1/RIPv2) but for security features it is rather questionable. If IKEv2 was allowed to interoperate with its v1 counterpart, you would be giving up the flexibility and security that v2 provides.
- Even though it is not possible to enable IKEv1 as part of the Flex VPN framework, you can gradually migrate your IKEv1 configurations (crypto isakmp syntax) to IKEv2/FlexVPN.
** Further Reading:
- IKEv2 RFC: http://tools.ietf.org/html/rfc5996
- AnyConnect information: www.cisco.com/go/anyconnect
- Flex VPN and IKEv2 configuration guide: http://www.cisco.com/en/US/docs/ios-xml/ios/sec_conn_ike2vpn/configuration/15-2mt/sec-flex-vpn-15-2mt-book.pdf