rConfig update - March 2013

Hi All,

Welcome to the March 2013 installment of the rConfig monthly update. I write this stuffed with chocolate and cake, so wherever you are Happy Easter.

Another great month for rConfig and open source software. Since release, rConfig has been downloaded a sum total of 237 times and has been downloaded 73 downloads this month alone. rConfig is currently released on v1.2.5 and with no bug reports this month, I am putting this one out as a stable release.

Last month I asked all registered users to participate in three polls located at Thanks to all who voted. The results are in and I will share them shortly. I have removed all voting ability at this time. The results are still online so you can see them for another few weeks. So, on with the results...

Device Types Poll - What devices types are you using rConfig for?
    - Cisco IOS - 36.4%
    - Cisco ASA/PIX - 18.2%
    - Cisco IOS XE/XR - 18.2%
    - rConfig is also being used to download F5 configurations (Excellent!)
rConfig usage Poll - Where are you using rConfig?
    - Company Use - 60%
    - Personal Use - 30%
Features Poll - What is the next feature you would like to see in rConfig?
    - Bulk Configuration Update - 28.6%
    - Configuration Policy Check - 28.6%
    - Virtual Appliance - 21.4%
A few comments come to mind. I am pleased to see Network Engineers using rConfig for more than just Cisco devices. The fact that someone voted F5 pleases me very much, as this is a vendor I have recently started working with myself. I am also very happy that 60% those that voted use rConfig in a professional company environment. This means that rConfig is becoming a tool that can assist Network Engineers in their jobs in every day management and operation of production networks.

The last and most important Poll was to ascertain from the rConfig community what feature you would like to see in the next rConfig release. Well... as you can see from the results, it's a tie. Because of this, I will need to choose either 'Bulk Configuration Update' or a 'Configuration Policy Check'. At this point I am undecided as each is quite complicated to code into rConfig. I am leaning towards 'Configuration Policy Check'. I will work on a prototype of each and decide which is more suitable and stable for the next major rConfig release - Version2.

rConfig Tip

rConfig is a free, open source Network Configuration Management utility to assist Network Engineers in the backup, archive and management
of network device configurations. I have more than 12 years network management experience. Sometimes I have found that downloading configurations
from many hundreds or thousands of devices can take some time. Especially if (as in rConfigs case) you have multiple commands to run on each
device. I have seen cases (and this was only download running and start-up configuration) where the downloads of all your devices can take up to 6 hours+.

In some cases this maybe too long for your operations - or for whatever you would like to spread the load. With rConfig you can! How? Spin up an new instance of rConfig. Remember rConfig is free, and so is the software that it sits on. CENTOS Linux, PHP, MYSQL etc... So why not create a new rConfig server and configure it to download a subet of devices. For example, in an ISP network rConfig-client could download all client configurations and rconfig-core could download all core network configurations. This can also lead to the added benefit of security. Keeping client and core network device configurations on separate systems potentially leads to increased configuration management security and data integrity.


Thanks to

As always, thanks for choosing open source software and using a Network Management Utility like rConfig for your network device configuration archive needs. I am looking forward to working up the new features in rConfig. rConfig is for the network engineering community so should be driven by the community.

As always, send any bugs to This email address is being protected from spambots. You need JavaScript enabled to view it.

Stephen Stack

This email address is being protected from spambots. You need JavaScript enabled to view it.

Click here to see online version if you cannot see images

rConfig update - January 2013

Its been quite a month both personally and professionally for me. rConfig 1.2.4 was released on January 6th with bug fixes and features galore. It's now up to nearly 25 downloads a week. For a niche area like Network Configuration Management and only 8 weeks after release, I'm pleased with this download count.

I really hope your finding it useful in you Cisco lab or production network. And hopefully your starting to add CLI commands beside the ubiquitous 'show run' and 'show start' that other NCM products seem to be restricted by. For your benefit I've added an example below of how you can leverage rConfig to archive historical interface error information for later analysis and troubleshooting.

rConfig Use Case

The basic idea here is to get the interface output related to error count for our rConfig managed devices. We will do this using the 'show interface | include line|error' Cisco IOS command. Note, i have only used this command on Cisco IOS based routers. Please see documentation for other devices like switches and firewalls.

Add the command to the Routers Category



After the next scheduled task has run, go click on the device to view its download configurations


Click on the new configuration file on the devices page

The output will be presented to you

It's difficult enough to replicate actual interface errors. Who would want to? So my counters show 0 errors. But hopefully you get the idea. Over time someone may well have an issue with a particular interface. You may find an error count, but it's difficult to know how recent the error count can be. rConfig can assist you because you can review historical output information.

Was that useful? If not  then at least you may start to see how rConfig can be customized and used for your specific needs.

As always, thanks for choosing open source software and using a Network Management Utility like rConfig for your configuration archive needs.

In the next month I'll run a poll to decide what new features we can add to rConfig. I have a few ideas of my own but by all means contact me if you have your ideas you feel would benefit your Network Management needs. rConfig is for the network engineering community so should be driven by the community.

Send any bugs to This email address is being protected from spambots. You need JavaScript enabled to view it.

Stephen Stack

This email address is being protected from spambots. You need JavaScript enabled to view it.

Click here to see online version if you cannot see images

rConfig v1.2 released

rConfig version 1.2.4 is now available for download on

This release contains bug fixes and some new features, most notably an easy update feature. You can now update rConfig using a built-in updater, streamlining the process for future rConfig releases.

If you have already downloaded and are using rConfig v1.0.0 or 1.0.3, you will need to either start a fresh install, or manually upgrade to v1.2.4. Manual upgrade instructions are below.

Manual Upgrade

To manually upgrade from 1.0.0 or 1.0.3 to v1.2.4 follow these instructions

1. Take a backup of rConfig using the built-in backup utility in the settings section
2. Download the above backup zip file to a safe location
3. From the command line of the rConfig server, backup your main config file per the following command

cp /home/rconfig/config/ /home/rconfig/

4. Download the v1.2.4 from to your desktop and extract it
5. The update only affects 4 directories. Overwrite all of the contents of these directories on your rConfig server with the ones from the update file.

  • "rconfig/classes/"
  • "rconfig/config/"
  • "rconfig/lib/"
  • "rconfig/www/"

 6. Once the above is complete, replace the config file by running the following command

cp /home/rconfig/ /home/rconfig/config/

7. Last step is to manually update the rConfig version in the config file. Open the file per above step and change the line

$config_version = "1.0.0";


$config_version = "1.2.4";

Save the file, and open rConfig to ensure it is up to date and functioning as expected. You can view a full change log under "/home/rconfig/www/CHANGELOG"

Thanks for continuing to support rConfig.


Stephen Stack


in the beginning...

Well, it's finally released. rConfig made it, and I am pretty ecstatic. From original concept 16 months ago to fully fledged V.1 release – it’s been an amazing journey, full of challenges and obstacles with the final realization of an actual release. These are great times!

The elevator pitch

What is it? A Free, and Open Source, Network Configuration Management tool. Web based, fast, and customizable. Installs on CentOS and written completely in PHP/MySQL.
You can download the running-configs, cdp neighbor table, OSPF Neighbor table, BGP prefix table, routing table for routers, as well as show route for firewalls and show spanning-tree for switches easily... actually... whatever show command you care to choose for a given category of network devices.
Why? Well, for me, a 'show run' and 'show start' from my network device configuration management tool wasn't enough. I needed more. I needed to see what my routers routing table looked like last week. I needed to know how many hits were on a particular ACL entry on my edge firewall two months ago and compare it to today. I wanted to know, which interface was the root bridge path (spanning-tree) on my one of my core switches yesterday. That's why!

So, in this blog post, I’d like to take you through the past, present and future of rConfig so you can understand what it is you are getting.

Firstly, it’s free. It’s free because I owe so much of my career and learning to free software and free stuff (video, learning materials etc..) from the internet and it’s time to give back. Also, because I don’t like paying over-priced fees for bloated, feature poor, slow, clunky and badly written software. With rConfig, Network Engineers decide how it’s going to look, feel and function. We will decide it’s features, and we can add the features we need.


A little about me first. I am network engineer firstly (CCNP, CCDP, and more) and IT enthusiast second. Anything IT interests me, but I chose Cisco Networking specifically as a discipline. I’ve worked on many networks large and small, and have vast experience with network management systems. I’ve worked on a few of the available network configuration management tools out there, and have found them either feature lacking, clunky and slow, expensive or difficult to use. I also noticed that when asking for new features, more often than not, I was told a core re-writeof the application would be needed and the new feature was not possible. I was not pleased! So, i decided to do something about it.


So, while thinking about a new personal challenge for myself in terms of learning a new IT skill and having completed some Cisco exams a few months previous, I decided learning to write software was for me. I have always dabbled in web design, so HTML came easy to me, and PHP/ MySQL problems were easy to overcome with some clever googling as and when required. No need to go into the evaluation process of why I chose it, but PHP seemed like a natural progression from my amateur web design days. PHP has a lot to offer besides dynamic web pages. rConfig is testament to this.

While researching some PHP Scripts online I came across Ray Soucys ‘Cisco for PHP’ ( telnet script. I reviewed it and found that it was a most excellent and suitable PHP script as a core PHP class for a potential Configuration Management tool. Also, while learning some of PHPs functions and features (reading and writing files, and running exec commands from PHP etc..), It slowly came to me, that it was possible to write a full Cisco Configuration Management tool from standard web development languages. In particular PHP.

I started working out the component parts, and features and basically framed them up into working components. For example, the script that was needed to connect to a device and download text from it via telnet. The script that was needed to write that text to a file. The script that was needed to run multiple commands against a device and save the output of each to different files. Over a few months in part-time development, I had worked up and tested all of the components sections – Downloader, Comparison Script, Scheduler, Search Script, etc…


Now I had something tangible to work with… What was I going to do with it? What kind of configuration management tool would I like, as an engineer? Well, for me, it had to be a fast application, and web based. It had to be easy to use with enough features to make it worth my while. One key trade off was the fact that it had to be installed on a Linux server (CentOS 6+). I am aware not all engineers have Linux skills but a well-written CentOS installation guide would offset this issue easily.

The design of the rConfig console is built from the ground up. I added as much AJAX/ Web 2.0 stuff as functionality would allow to make the use of rConfig more fluid. Most code behind rConfig is hand written and designed from the ground up. A few PHP Classes and Libraries were brought in to the mix for convenience – no point in re-inventing the wheel.


The journey was awesome. PHP, MYSQL, Javascript, JQuery, Shell scripting, AJAX Concepts, Software Development concepts, OOP, Apache configuration, PHP Configuration, CentOS/ Linux Installs and configuration. That was just some of what I learned. Stackoverflow, Google, countless blog posts, forums and the internet in general all contributed to the project and I am forever grateful to those who have uploaded all of their material and given their help to others who were also trying to learn.It helped me immensely.

As this was my first venture into software design and coding, I expect any seasoned web/PHP developer to come back with enhancements, better ways of coding rConfig etc.. But I have carried out extensive testing and right now, even though I know the code could be optimized – rConfig is running well and has all the features I feel a version 1 would need. Code can be optimized and features added as the user base grows.


Well, as this is Version1, I deliberately left out some features which I would like to see added myself. I just felt I had to have an end to this development run and get it out there for people to download and try out. If for no other reason so see if there would be a take up or if it is to be a complete failure. (Hopefully the former). At this point, I want to rely heavily on community feedback for new features and bug fixes. If people want to get involved with the future development of the project, you can mail me at This email address is being protected from spambots. You need JavaScript enabled to view it. to get involved.

Final Word

Right now, i am very early in the release life cycle for this project and yet another learning curve. Stick with this project and help me grow it into a valuable tool for this and future generations of network engineers. I'll be posting mroe notes as the weeks and months pass by, so stay tuned to