Guides and Review Apr 12, 2023

Parse, Audit, Query, Build, and Modify Cisco IOS-style configurations.

Download now Introduction: What is ciscoconfparse? Short answer: ciscoconfparse…
Download now

Introduction: What is ciscoconfparse?

Short answer: ciscoconfparse is a Python library that helps you quickly answer questions like these about your Cisco configurations:

  • What interfaces are shutdown?
  • Which interfaces are in trunk mode?
  • What address and subnet mask is assigned to each interface?
  • Which interfaces are missing a critical command?
  • Is this configuration missing a standard config line?

It can help you:

  • Audit existing router / switch / firewall / wlc configurations
  • Modify existing configurations
  • Build new configurations

Speaking generally, the library examines an IOS-style config and breaks it into a set of linked parent / child relationships. You can perform complex queries about these relationships.

Usage

The following code will parse a configuration stored in ‘exampleswitch.conf’ and select interfaces that are shutdown.

The next example will find the IP address assigned to interfaces.

Are there private copies of CiscoConfParse()?

Yes. Cisco Systems maintains their own copy of CiscoConfParse(). The terms of the GPLv3 license allow this as long as they don’t distribute their modified private copy in binary form. Also refer to this GPLv3 License primer / GPLv3 101. Officially, modified copies of CiscoConfParse source-code must also be licensed as GPLv3.

Dear Cisco Systems: please consider porting your improvements back into the github ciscoconfparse repo.

Is this a tool, or is it artwork?

That depends on who you ask. Many companies use CiscoConfParse as part of their network engineering toolbox; others regard it as a form of artwork.

What if we don’t use Cisco IOS?

Don’t let that stop you.

As of CiscoConfParse 1.2.4, you can parse brace-delimited configurations into a Cisco IOS style (see Github Issue #17), which means that CiscoConfParse can parse these configurations:

  • Juniper Networks Junos
  • Palo Alto Networks Firewall configurations
  • F5 Networks configurations

CiscoConfParse also handles anything that has a Cisco IOS style of configuration, which includes:

  • Cisco IOS, Cisco Nexus, Cisco IOS-XR, Cisco IOS-XE, Aironet OS, Cisco ASA, Cisco CatOS
  • Arista EOS
  • Brocade
  • HP Switches
  • Force 10 Switches
  • Dell PowerConnect Switches
  • Extreme Networks
  • Enterasys
  • Screenos

Pre-requisites

The ciscoconfparse python package requires Python versions 3.7+ (note: Python version 3.7.0 has a bug – ref Github issue #117, but version 3.7.1 works); the OS should not matter.


ANNOUNCEMENT

Dear Guests and Freinds !

Remember that Tape Project is NOT responsible for other forums and markets!

Tape is NOT responsible for sites which buy advertising from us!

We are NOT responsilbe for vendor's and admin's actions from other sites!