Further to my last post some time ago about how to automate your INE lab config deployment I thought I’d share my updated method.
This tutorial is based on INE’s CCIE v5 lab topology using CSR routers;
I’ve further optimised my method to use telnet as I found configuring via the console was a little slow and unpredictable. So, a quick reminder – essentially what this script does, is to enumerate the configurations from the INE files, and uses expect scripting to apply it to your routers and switches.
The biggest change is that I now use interface Gig4 which doesn’t exist in the INE configurations and so their config’s won’t overwrite the interface when you merge them into your base configuration.
This is what your lab should look like at the end of this tutorial
The same requirements stand as my previous post, you will need;
– An ESXi Server with minimum 32GB RAM
– Cisco CSR100v OVA from Cisco.com
– A Linux Server (I use CentOS 6.4 ISO)
– A set of 4x WS-C3560-24TS running 15.0(2)SE6 and some GLC-T’s
– A separate switch with at least 5 network ports (any old unmanaged switch will do)
First things first, we need to disable Large Pages on the ESXi Host. Disabling Large Pages will allow vmwares memory sharing (TPS) to kick in, and allow you to spin up 20 of the CSR routers without it gobbling up all your RAM!
Reboot your host after changing this setting for good measure! Not sure if its actually required though.
Next You need to create a new Virtual Network for all your routers.
Create a new ‘Virtual Machine’ Network, name It CCIE-LAB or some other relevant name, and make sure you set the VLAN ID to ‘ALL VLAN’s’
Now we need to deploy the CSR1000v, rather than re-invent the wheel there is a great article on how to do it here.
When following Rogers guide, after you’ve created the VM make sure to add an extra network card to EVERY CSR so that theres 4 in total and attach the first 3 to the new CCIE-LAB network, and add the additional 4th nic to your existing lab network (in my deployment this is on the same network as my ESXi Management and linux server). This is the interface we will use to telnet to the CSR’s and apply the configuration.
Once you have twenty of them deployed, power them on and test your console access. Using the telnet via the ESXi host method as described on Rogers blog will work best for the next step.
Next, you need to connect your switches up based on the INE topology drawing, but in addition you need to connect up each switches Gi0/1 port to your management switch. See the drawings at the top of this post for how they should be connected up.
Configure Base Config
So, now we need to apply a base config to the routers AND switches.
Download the base config pack for the initial console sessions from here console-configs.zip
Use the telnet method to access the CSR console’s and apply the base configuration (just copy and paste) to each of the CSR router’s, you’ll also need to use a console cable to program your 4 switches.
The base config include’s,
– Standard username/password
– VRF for management
– Gi4 interface IP details
– HTTP get source interface for copying the configs
Change the ip addressing and routes as required to match your own addressing/network if deviating from the addressing used here.
You can of course stop here at this point, and manually take the INE configurations and apply them to your routers and switches one at a time…. Yeah it is a pain, major effort to start even the simple labs.
As there are a lot of labs, and as you’ll likely have to deploy them multiple times during your study, automation can work for us here which will save you time setting up, therefore giving you more actual lab time!
Linux Server Setup
Install Linux as a VM, I use CentOS 6.4 and I’m not going to bore you with how to install it, theres plenty other guides online, just make sure during setup you select to make this server a WEBSERVER, and connect it to the same network that the Gi4 interface of the CSR’s are connected to.
Next we need to SSH to your server (using root is fine) and we need to install telnet, yum, unzip, make sure the firewall is disabled, ensure httpd starts on boot and install expect
yum install telnet
yum install wget
yum install unzip
service iptables stop
chkconfig iptables off
service httpd start
chkconfig httpd on
yum install expect
you should now be able to validate your web server is working by browsing to its ip http://192.168.101.41
Now your in a position to download and setup the scripts;
Download the lab scripts from here lab-latest Updated Oct2018 onto your Linux server
Alternatively, copy the zip file ‘lab-latest.zip’ to your linux box in your /root folder using something like winSCP;
However you get the zip onto your linux server, the next step is to unpack the script into the correct directory, and set the permissions to execute;
unzip -j lab-latest.zip -d /var/linevty-lab/
chmod +x /var/linevty-lab/start-lab.sh
chmod +x /var/linevty-lab/exp-start-lab.exp
chmod +x /var/linevty-lab/prepare-configs.sh
Next we need to load in the base configs and your INE pack.
Download the base config pack from here linevty-configs-v2 FIXED Oct2018 to your Linux server
Alternatively download the zip to your PC and use WinSCP to copy the ‘linevty-configs.zip’ file below to your /root folder.
Now we have the zip on the Linux server, we need to extract its contents into the root of the web server folder
unzip -j linevty-configs.zip -d /var/www/html/
Next you need to download the INE config pack from their website, and place them in the /var/www/html/ine folder.
Now, as some of the INE configs are of differing file types, some are binary and whatnot, we need to sanitise them. Its a shame INE didn’t do this, but never mind, they are easy fixed with a small script I’ve included in the zip. This ensures the files are formatted correctly, and removes some unnecessary commands from the INE configs.
!! IMPORTANT !!
If you’ve made any changes to IP addressing etc, now is the time to change the scripts, use VI, or edit the scripts in WinSCP. The only script to update is the exp-start-lab.exp with the ip address’s of your devices and of your web server.
And were done!
We are now ready to start a lab,
SSH to your linux box, and run this command;
You will be asked what lab you want to run, and the script will then proceed to telnet to each device in turn, re-apply the base configuration from the web server, and then merge the selected INE configuration into the running config!
Grab a quick cuppa and when you get back you can simply telnet to each of your devices and begin your labs!
Any questions please feel free to ask and good luck with your studies!