One of the common use cases for the CSR 1000v is a secure VPN gateway in the cloud to terminate VPN tunnels. So if you run some applications in the cloud and you want to allow your branch offices to access those application over a secure network, you can run IPsec tunnels between those branch offices and the CSR 1000v in the cloud. From performance perspective this would work much better than back hauling the traffic to the data center (HQ) and then to the cloud.
In this post I will show you how to set up a VPN tunnel between Cisco CSR 1000v and a branch office router using Cisco Easy VPN. You may also use standard IPSec VPN but in my configurations I use Easy VPN because it’s, well, easier 🙂
The following configurations are part of a demo I gave at Cisco Live 2013 in Orlando where the CSR 1000v was the VPN server and the branch server (Cisco 2900 in this case) was the VPN client.
You will also need to open UDP port 500 and IP protocol ID 50 (ESP) on all firewalls sitting between the CSR 1000v and the branch router for the IPSec tunnel to be established successfully. Additionally depending on your design you may need to configure NAT.
In my setup, I’m using:
Cisco CSR 1000v with IOS XE 3.9x running in Verizon Terremark Enterprise Cloud
Cisco 2900 running IOS 153.2.T (branch office)
Here are the configs of the CSR 1000v (VPN Server). Only relevant configs are shown:
CSR-1#sh run hostname CSR-1 ! aaa new-model ! ! aaa authentication login hw-client-groupname local aaa authorization network hw-client-groupname local ! ! aaa session-id common ! ! username myusername password 0 mypassword ! ! crypto isakmp policy 1 encr 3des authentication pre-share group 2 crypto isakmp client configuration address-pool local dynpool ! crypto isakmp client configuration group hw-client-groupname key hw-client-password dns 188.8.131.52 domain domain.com pool dynpool save-password ! ! crypto ipsec transform-set transform-1 esp-3des esp-sha-hmac mode tunnel ! ! ! crypto dynamic-map dynmap 1 set transform-set transform-1 reverse-route ! ! crypto map dynmap client authentication list hw-client-groupname crypto map dynmap isakmp authorization list hw-client-groupname crypto map dynmap client configuration address respond crypto map dynmap 1 ipsec-isakmp dynamic dynmap ! ! ! interface GigabitEthernet2 description WAN ip address 10.22.36.71 255.255.255.224 negotiation auto crypto map dynmap ! interface GigabitEthernet3 description LAN ip address 10.22.39.91 255.255.255.240 negotiation auto ! ip local pool dynpool 192.168.1.1 ! ! ip access-list extended split_t permit ip 10.22.39.0 0.0.0.255 any ! end
Here are the configs for the Cisco 2900 router (VPN client).
no aaa new-model ! ip cef ! ! username vpntest password 0 vpntest ! ! crypto ipsec client ezvpn hw-client connect auto group hw-client-groupname key hw-client-password mode client peer 10.22.36.71 username myusername password mypassword xauth userid mode local ! ! interface GigabitEthernet0/0 description WAN ip address 10.35.120.104 255.255.255.0 duplex auto speed auto crypto ipsec client ezvpn hw-client ! interface GigabitEthernet0/1 description LAN ip address 172.16.4.102 255.255.255.0 duplex auto speed auto crypto ipsec client ezvpn hw-client inside ! ip route 0.0.0.0 0.0.0.0 10.35.120.1 ! end
The Cisco Cloud Services Router (CSR) 1000v is Cisco’s first virtual router and it runs as a VM on x86 virtualized server. The CSR 1000v runs Cisco IOS XE and brings many benefits to a cloud environment where it can operate as a secure VPN gateway to terminate site-to-site IPSEC tunnels. Other use cases of the CSR 1000v include MPLS WAN termination and control & traffic redirection. You can find more information n this virtual router on the Cisco CSR 1000v page.
In this post I’m going to show you how to install the CSR 1000v on the Verizon Terremark eCloud. If you are not familiar with the Verizon Terremark cloud console, you can go here for some video tutorials.
Download A Free Trial Image
Go to the Cisco Download Center and log in using your Cisco credential. Select the latest software release from the left pane and then download the .iso package from the right pane to your desktop. Don’t download the OVA or BIN packages. This free trial should be good up to 6 months.
You can purchase a license from Cisco and upgrade to a full version after you install the CSR.
Create the VM
Go over to the Verizon Terremark Enterprise Cloud (eClould) page and log in using your credential.
The first step here is to create a blank server. A blank server is just a container inside the VMware environment that will hold the Cisco IOS later. So go to Devices -> Create Server -> Blank Server to launch the wizard.
On the next screen select Linux for the OS Family, Other 2.6x Linux (64-bit) for the Version. Give the server a name and a description (optional). Then choose an INT network andchoose in which Row and Group you want to place the router.
On the next screen choose 4 or more for the Processors and 4096 MB or more for Memory.
On the next screen enter 8 for the Disk size or choose a Detached Disk that’s at least 8GB. Click Next.
From the next window you can optionally assign tags or just click Next if you don’t want any tag.
On the next window review your configurations, check the Agreement box, and click Deploy. Give it about 2 minutes and the server should be ready. If you go to the row and group where you placed the router you should see a greyed out icon (powered off) there.
If you recall we attached only one network to the server earlier, however the CSR requires a minimum of 3 interfaces to run so next we are going to create two additional networks and attach them to the blank server. Right click on the server and go to Configure to launch the wizard.
On the next screen choose Configure the Server and click Next.
On the next screen click on Network Settings from the top. At this point you should see only one INT network under the Current Connection. Click Add a Connection from the top right to add a new DMZ Network.
Go click again on Add a Connection and this time choose an INT network (INT_XXX). Choose a unique INT network different from the one you have used when you created the blank server. Click Save.
Now the VM will take a minute or so to reconfigure itself.
Once the wheel stops spinning and VM is ready, right click on it and go to Power On. Powering on this VM should take a minute or so and while the machine is powering on an icon with gear spinning is presented. The greyed out icon should turn into an icon with “blue light” once the server is completely powered on.
Console to the VM
In order to console to the blank server you must VPN first and use the VMware remote console plugin in Firefox or Internet Explorer to connect to the server for the first time. So for the following steps make sure you are using either Firefox or IE. Once the CSR is up and running you can switch back to your favorite browser or use a Telnet/SSH client to connect it directly instead of using the console.
Click on the VPN Connect link from the top of the page. This will install the Cisco AnyConnect Mobility Client on your machine if you don’t already have it and connect you via secure SSL VPN to eClould. If the browser prompts you to install any Java or ActiveX plugin during this step make sure to accept.
Now click on the router icon and then click on Connect from the bottom pane. This will start installing the VMware remote console plugin if it’s not already installed on your machine and will connect you to the server console to install the CSR.
By now you should see “Operating system not found” message on the console screen. Go to Devices-> CD/DVD drive -> Connect to Disk Image File ISO. This will open a new window for you to locate the ISO package.
Select the ISO package from your local machine and click OK. The system will start uncompressing/unzipping the package and installing software. Depending on the file size and your network speed this process may take up to 2 or 3 hours. Come back in 3 hours to check on the install process. If the console session times out, reconnect again as you did previously.
Once the CSR is successfully installed, you should see the traditional Cisco router prompt and you can then log in and start configuring it.
Assigning IP Addresses
In this section we will assign IP addresses to the CSR 1000v interfaces. When we created the VM we added 3 interfaces for the CSR 1000v to use (INT_XXX, DMZ_XXX, and INT_XXX). Each CSR interface will map to a logical vNIC assigned by the VMware hypervisor. The vNIC in turn is mapped to a physical MAC address.
The following steps are very important and you should not begin configuring any features on the CSR 1000v before you execute all of them.
First we need to find the CSR interface to vNIC mappings so go ahead and create the following table on a piece of paper. You will be populating its fields along the way:
Log in to the CSR console and issue the following command:
show platform software vnic-if interface-mapping
You should see three interfaces with their vNIC and MAC addresses mapping. If you are running IOS XE 3.10S or earlier the first interface from the top should be GigabitEthernet0 and it’s the management interface. On the other hand if you are running 3.11S or higher the first interface is usually GigabitEthernet1. Start populating the table you have created n the previous step with the information from the command you just executed (IP information will come in the next steps) .
Go back to the eClould portal, click on the router and go then to Administrative Tasks -> Manage PIs
From the Networks section, click on the drop-down menu and select your DMZ network. Then from the left pane Available IPs select one IP address and click on the rightgreen arrow to assign it to the server. Click Save.
Repeat the previous step to assign IP addresses for the INT (internal) interfaces.
Go back to the table and fill out the IP addresses, mask, gateway sections before you move on.
Now that you have the IP addresses, masks, and interface mappings start configuring the DMZ and INT interfaces of the CSR by issuing the following commands for each interface:
config t int gX ip add <ip> <mask> description <Outside or LAN interface>
Configure A Default Route
The final step here is to assign a default route so that the CSR can reach the internet. The CSR must use the DMZ default gateway to reach the internet because only the DMZ network can reach the internet because the INT networks are not visible from the outside. So copy from the table you have created the default gateway IP address for the DMZ network.
Go back to the CSR console and issue the following commands. Make sure that you replace the text in italic with the IP address of the default gateway
ip route 0.0.0.0 0.0.0.0 <DMZ_Default_gateway>
Try now pining the default gateway, you should get a response:
At this point, the CSR should be able to reach the internet. Issue the following ping to make sure:
If you don’t get a response then something is wrong and you should revisit the previous steps.