Configuring Lan-To-Lan Ipsec VPNS: Cisco Asa Series Cli Configuration Guide
Configuring Lan-To-Lan Ipsec VPNS: Cisco Asa Series Cli Configuration Guide
Note The ASA supports LAN-to-LAN IPsec connections with Cisco peers, and with third-party peers that
comply with all relevant standards.
This chapter describes how to build a LAN-to-LAN VPN connection. It includes the following sections:
• Summary of the Configuration, page 1-2
• Configuring Site-to-Site VPN in Multi-Context Mode, page 1-2
• Configuring Interfaces, page 1-3
• Configuring ISAKMP Policy and Enabling ISAKMP on the Outside Interface, page 1-4
• Creating an IKEv1 Transform Set, page 1-6
• Creating an IKEv2 Proposal, page 1-7
• Configuring an ACL, page 1-7
• Defining a Tunnel Group, page 1-8
• Creating a Crypto Map and Applying It To an Interface, page 1-9
Step 2 Configure a context and make it a member of the configured class that allows VPN licenses. The
“Configuring a Security Context” section on page 1-19 provides these configuration steps. The
following is an example configuration:
context context1
member ctx1
allocate-interface GigabitEthernet3/0.2
allocate-interface GigabitEthernet3/1.2
allocate-interface Management0/0
config-url disk0:/sm_s2s_ik1_ip4_no_webvpn.txt
join-failover-group 1
Step 3 Configure connection profiles, policies, crypto maps, and so on, just as would with single context VPN
configuration of site-to-site VPN.
Configuring Interfaces
An ASA has at least two interfaces, referred to here as outside and inside. Typically, the outside interface
is connected to the public Internet, while the inside interface is connected to a private network and is
protected from public access.
To begin, configure and enable two interfaces on the ASA. Then, assign a name, IP address and subnet
mask. Optionally, configure its security level, speed, and duplex operation on the security appliance.
Note The ASA’s outside interface address (for both IPv4/IPv6) cannot overlap with the private side
address space.
To configure interfaces, perform the following steps, using the command syntax in the examples:
Step 1 To enter Interface configuration mode, in global configuration mode enter the interface command with
the default name of the interface to configure. In the following example the interface is ethernet0.
hostname(config)# interface ethernet0/0
hostname(config-if)#
Step 2 To set the IP address and subnet mask for the interface, enter the ip address command. In the following
example the IP address is 10.10.4.100 and the subnet mask is 255.255.0.0.
hostname(config-if)# ip address 10.10.4.100 255.255.0.0
hostname(config-if)#
Step 3 To name the interface, enter the nameif command, maximum of 48 characters. You cannot change this
name after you set it. In the following example the name of the ethernet0 interface is outside.
hostname(config-if)# nameif outside
hostname(config-if)##
Step 4 To enable the interface, enter the no version of the shutdown command. By default, interfaces are
disabled.
hostname(config-if)# no shutdown
hostname(config-if)#
Step 2 Set the authentication method. The following example configures a preshared key:
Step 3 Set the encryption method. The following example configures 3DES:
hostname(config-ikev1-policy)# encryption 3des
hostname(config-ikev1-policy)#
Step 4 Set the HMAC method. The following example configures SHA-1:
hostname(config-ikev1-policy)# hash sha
hostname(config-ikev1-policy)#
Step 5 Set the Diffie-Hellman group. The following example configures Group 2:
hostname(config-ikev1-policy)# group 2
hostname(config-ikev1-policy)#
Step 6 Set the encryption key lifetime. The following example configures 43,200 seconds (12 hours):
hostname(config-ikev1-policy)# lifetime 43200
hostname(config-ikev1-policy)#
Step 7 Enable IKEv1 on the interface named outside in either single or multiple context mode:
hostname(config)# crypto ikev1 enable outside
hostname(config)#
Step 2 Set the encryption method. The following example configures 3DES:
hostname(config-ikev2-policy)# encryption 3des
hostname(config-ikev2-policy)#
Step 3 Set the Diffie-Hellman group. The following example configures Group 2:
hostname(config-ikev2-policy)# group 2
hostname(config-ikev2-policy)#
Step 4 Set the pseudo-random function (PRF) used as the algorithm to derive keying material and hashing
operations required for the IKEv2 tunnel encryption. The following example configures SHA-1 (an
HMAC variant):
hostname(config-ikev12-policy)# prf sha
hostname(config-ikev2-policy)#
Step 5 Set the encryption key lifetime. The following example configures 43,200 seconds (12 hours):
hostname(config-ikev2-policy)# lifetime seconds 43200
hostname(config-ikev2-policy)#
Tunnel Mode is the usual way to implement IPsec between two ASAs that are connected over an
untrusted network, such as the public Internet. Tunnel mode is the default and requires no configuration.
To configure a transform set, perform the following site-to-site tasks in either single or multiple context
mode:
Step 1 In global configuration mode enter the crypto ipsec ikev1 transform-set command. The following
example configures a transform set with the name FirstSet, esp-3des encryption, and esp-md5-hmac
authentication. The syntax is as follows:
crypto ipsec ikev1 transform-set transform-set-name encryption-method authentication-method
hostname(config)# crypto ipsec transform-set FirstSet esp-3des esp-md5-hmac
hostname(config)#
To configure an IKEv2 proposal, perform the following tasks in either single or multiple context mode:
Step 1 In global configuration mode, use the crypto ipsec ikev2 ipsec-proposal command to enter ipsec
proposal configuration mode where you can specify multiple encryption and integrity types for the
proposal. In this example, secure is the name of the proposal:
hostname(config)# crypto ipsec ikev2 ipsec-proposal secure
hostname(config-ipsec-proposal)#
Step 2 Then enter a protocol and encryption types. ESP is the only supported protocol. For example:
hostname(config-ipsec-proposal)# protocol esp encryption 3des aes des
hostname(config-ipsec-proposal)#
Configuring an ACL
The ASA uses access control lists to control network access. By default, the adaptive security appliance
denies all traffic. You need to configure an ACL that permits traffic.
The ACLs that you configure for this LAN-to-LAN VPN control connections are based on the source
and translated destination IP addresses. Configure ACLs that mirror each other on both sides of the
connection.
An ACL for VPN traffic uses the translated address.
To configure an ACL, perform the following steps:
Step 1 Enter the access-list extended command. The following example configures an ACL named l2l_list that
lets traffic from IP addresses in the 192.168.0.0 network travel to the 150.150.0.0 network. The syntax
is access-list listname extended permit ip source-ipaddress source-netmask destination-ipaddress
destination-netmask.
hostname(config)# access-list l2l_list extended permit ip 192.168.0.0 255.255.0.0
150.150.0.0 255.255.0.0
hostname(config)#
Step 2 Configure an ACL for the ASA on the other side of the connection that mirrors the ACL. In the following
example, the prompt for the peer is hostname2.
hostname2(config)# access-list l2l_list extended permit ip 150.150.0.0 255.255.0.0
192.168.0.0 255.255.0.0
hostname(config)#
Note To use VPNs, including tunnel groups, the ASA must be in single-routed mode. The commands to
configure tunnel-group parameters do not appear in any other mode.
Step 1 To set the connection type to IPsec LAN-to-LAN, enter the tunnel-group command. The syntax is
tunnel-group name type type, where name is the name you assign to the tunnel group, and type is the
type of tunnel. The tunnel types as you enter them in the CLI are:
• remote-access (IPsec, SSL, and clientless SSL remote access)
• ipsec-l2l (IPsec LAN to LAN)
In the following example the name of the tunnel group is the IP address of the LAN-to-LAN peer,
10.10.4.108.
hostname(config)# tunnel-group 10.10.4.108 type ipsec-l2l
hostname(config)#
Note LAN-to-LAN tunnel groups that have names that are not an IP address can be used only if the
tunnel authentication method is Digital Certificates and/or the peer is configured to use
Aggressive Mode.
Step 2 To set the authentication method to preshared key, enter the ipsec-attributes mode and then enter the
ikev1 pre-shared-key command to create the preshared key. You need to use the same preshared key on
both ASAs for this LAN-to-LAN connection.
The key is an alphanumeric string of 1-128 characters.
In the following example the IKEv1 preshared key is 44kkaol59636jnfx:
hostname(config)# tunnel-group 10.10.4.108 ipsec-attributes
hostname(config-tunnel-ipsec)# pre-shared-key 44kkaol59636jnfx
In the next example, the IKEv2 preshared key is configured also as 44kkaol59636jnfx:
hostname(config-tunnel-ipsec)# ikev2 local-authentication pre-shared-key 44kkaol59636jnfx
Note You must configure ikev2 remote-authentication pre-shared-key or a certificate to complete the
authentication.
To verify that the tunnel is up and running, use the show vpn-sessiondb summary, show vpn-sessiondb
detail l2l, or show cry ipsec sa command.
For IPsec to succeed, both peers must have crypto map entries with compatible configurations. For two
crypto map entries to be compatible, they must, at a minimum, meet the following criteria:
• The crypto map entries must contain compatible crypto access lists (for example, mirror image
access lists). If the responding peer uses dynamic crypto maps, the entries in the ASA crypto access
list must be “permitted” by the peer’s crypto access list.
• The crypto map entries each must identify the other peer (unless the responding peer is using a
dynamic crypto map).
• The crypto map entries must have at least one transform set in common.
If you create more than one crypto map entry for a given interface, use the sequence number (seq-num)
of each entry to rank it: the lower the seq-num, the higher the priority. At the interface that has the crypto
map set, the ASA evaluates traffic against the entries of higher priority maps first.
Create multiple crypto map entries for a given interface if either of the following conditions exist:
• Different peers handle different data flows.
• You want to apply different IPsec security to different types of traffic (to the same or separate peers),
for example, if you want traffic between one set of subnets to be authenticated, and traffic between
another set of subnets to be both authenticated and encrypted. In this case, define the different types
of traffic in two separate access lists, and create a separate crypto map entry for each crypto access
list.
To create a crypto map and apply it to the outside interface in global configuration mode, perform the
following steps in either single or multiple context mode:
Step 1 To assign an access list to a crypto map entry, enter the crypto map match address command.
The syntax is crypto map map-name seq-num match address aclname. In the following example the
map name is abcmap, the sequence number is 1, and the access list name is l2l_list.
hostname(config)# crypto map abcmap 1 match address l2l_list
hostname(config)#
Step 2 To identify the peer (s) for the IPsec connection, enter the crypto map set peer command.
The syntax is crypto map map-name seq-num set peer {ip_address1 | hostname1}[... ip_address10 |
hostname10]. In the following example the peer name is 10.10.4.108.
hostname(config)# crypto map abcmap 1 set peer 10.10.4.108
hostname(config)#
Step 3 To specify an IKEv1 transform set for a crypto map entry, enter the crypto map ikev1 set transform-set
command.
The syntax is crypto map map-name seq-num ikev1 set transform-set transform-set-name.
In the following example the transform set name is FirstSet.
hostname(config)# crypto map abcmap 1 set transform-set FirstSet
hostname(config)#
Step 4 To specify an IKEv2 proposal for a crypto map entry, enter the crypto map ikev2 set ipsec-proposal
command:
The syntax is crypto map map-name seq-num set ikev2 ipsec-proposal proposal-name.
In the following example the proposal name is secure.
With the crypto map command, you can specify multiple IPsec proposals for a single map index. In that
case, multiple proposals are transmitted to the IKEv2 peer as part of the negotiation, and the order of the
proposals is determined by the administrator upon the ordering of the crypto map entry.
Note If combined mode (AES-GCM/GMAC) and normal mode (all others) algorithms exist in the
IPsec proposal, then you cannot send a single proposal to the peer. You must have at least two
proposals in this case, one for combined mode and one for normal mode algorithms.
Step 1 Enter the crypto map interface command. The syntax is crypto map map-name interface
interface-name.
hostname(config)# crypto map abcmap interface outside
hostname(config)#