When would you need this: When you want to create a secure tunnel to transfer data between two sites without the use of VPN concentrator or other security devices.
Special Requirements: The routers used must support IPSec. Most of Cisco routers do. Another need is that both sides use a static public IP address to connect to the Internet.
We will go through the steps to be done on one side and the same steps must be repeated on the other side too. The encryption of data will depend on a shared-key. This way, we will not need specialized CAs or RSA methodologies. If you have a hub-and-spoke topology, refer to the note in the bottom.
1. Create Internet Key Exchange (IKE) key policy. The policy used for our case is policy number 9, because this policy requires a pre-shared key.
Router(config)#crypto isakmp policy 9
Router(config-isakmp)#hash md5
Router(config-isakmp)#authentication pre-share
2. Setup the shared key that would be used in the VPN,
Router(config)#crypto isakmp key VPNKEY address XXX.XXX.XXX.XXX
where,
VPNKEY is the shared key that you will use for the VPN, and remember to set the same key on the other end.
XXX.XXX.XXX.XXX the static public IP address of the other end.
3. Now we set lifetime for the IPSec security associations,
Router(config)#crypto ipsec security-association lifetime seconds YYYYY
where YYYYY is the associations lifetime in seconds. It is usually used as 86400, which is one day.
4. Configure an extended access-list to define the traffic that is allowed to be directed through the VPN link,
Router(config)#access-list AAA permit ip SSS.SSS.SSS.SSS WIL.DCA.RDM.ASK DDD.DDD.DDD.DDD WIL.DCA.RDM.ASK
where,
AAA is the access-list number
SSS.SSS.SSS.SSS WIL.DCA.RDM.ASK is the source of the data allowed to use the VPN link.
DDD.DDD.DDD.DDD WIL.DCA.RDM.ASK is the destination of the data that need to pass though the VPN link.
5. Define the transformations set that will be used for this VPN connection,
Router(config)#crypto ipsec transform-set SETNAME BBBB CCCCC
where,
SETNAME is the name of the transformations set. You can choose any name you like.
BBBB and CCCCC is the transformation set. I recommend the use of “esp-3des esp-md5-hmac”. You can also use “esp-3des esp-sha-hmac”. Any one of these two will do the job.
6. After defining all the previous things, we need to create a cypto-map that associates the access-list to the other site and the transform set.
Router(config)#crypto map MAPNAME PRIORITY ipsec-isakmp
Router(config-crypto-map)#set peer XXX.XXX.XXX.XXX
Router(config-crypto-map)#set transform-set SETNAME
Router(config-crypto-map)#match address AAA
where,
MAPNAME is a name of your choice to the crypto-map
PRIORITY is the priority of this map over other maps to the same destination. If this is your only crypto-map give it any number, for example 10.
XXX.XXX.XXX.XXX the static public IP address of the other end
SETNAME is the name of the transformations set that we configured in step 5
AAA is the number of the access-list that we created to define the traffic in step 4
7. The last step is to bind the crypto-map to the interface that connects the router to the other end.
Router(config-if)#crypto map MAPNAME
where MAPNAME is the name of the crypto-map that we defined in step 6.
Now, repeat these steps on the other end, and remember to use the same key along with the same authentication and transform set.
Note: If you want to implement multiple VPN connections to multiple sites (i.e. Hub-and-Spoke topology), you can do this by repeating the steps 2 to 7 (except step 3) for each VPN connection. The different crypto-maps and their assignments differentiate between the different VPN connections.
For troubleshooting purposes, you can use the following commands,
show crypto isakmp sa
show crypto ipsec sa
show crypto engine connections active
and show crypto map


Kjell Inge
November 30th, 2011 at 21:21
Thank for this excellent blog entry. Well written and to the point.
You are assuming both endpoint have static addresses. What if one endpoint use dynamic addresses?
Mohammed Alani
December 1st, 2011 at 13:12
I haven’t got such a situation before. I’ll look into it and get back to you.
Topper
December 13th, 2011 at 18:37
And what about one CISCO router in HQ and few others in branch offices?
In my case I’v got one VPN site-to-site already, but want to make second one to new office?
It is possible, but how to do it?
Null0
December 18th, 2011 at 22:38
You could try DMVPN to remote offices, would give connectivity to your central office and also allow dynamic tunnels between branch offices saving bandwidth at the central site..
Topper
December 13th, 2011 at 19:11
Sorry, miss the Note
Another crypto map
Naga
December 14th, 2011 at 11:21
What is the meaning of WIL.DCA.RDM.ASK?
Naga
December 14th, 2011 at 11:23
WIL.DCA.RDM.ASK = Wild Card Mask Ok thanks…
Sorry
Tcpip
December 23rd, 2011 at 12:05
Please can you show the configuration for ASA.
Thanks
Sam
December 24th, 2011 at 02:57
Hello,
Well done ofr above writen. Could you check with Hub and Spokes VPN IPSec with 3 Cisco 1841 routers??
I have to ask you to add voice config in other to allow it at defined hours of day.
THANK A LOT FOR N !!!!!!
Sam