Have you ever struggled comparing two network configuration files?
Of course there exist numerous diff scripts and tools (Unix “diff” command, WinMerge…) but they are well suited for programming code or articles. When used on Cisco configuration files, they tend to flood relevant exception in a large amount of false positives, which might lead to mistakes and impact your productivity.
This tool addresses the problem with an approach that understands the hierarchical structure of Cisco configuration files and an output that facilitates comparison by reordering and aligning the files such that matching parts and corresponding sections are facing each other.
How to interpret the output:
Red lines are different or missing in the other file
Orange lines are headers or footers of sections containing red lines. They do have a matching line in the other configuration. Yet, they are highlighted because you have to type them to enter the right configuration context to configure or fix red lines (in other words, orange highlights the location of red lines in the configuration hierarchy)
Blue icons are warnings about reordered lines: while the order of line in a given section is most of the time not meaningful, there are a few exceptions such as old IOS access-lists or IOS-XR route-policies, to which you must pay attention (hence the warning)
At the top, two text zones give the raw unformatted diff (just red and orange lines) which you can easily copy/paste
NB: this tool infers the hierarchical structure of configurations from their indentation (spaces at the beginning of the line), so it is essential that indentation of input files follows the format of a show run.
Comparing versions of the configuration for a given device and assess the evolution over time
Verifying the changes performed in the network during a maintenance window
Comparing configurations of devices with similar roles to work towards better standardisation
Comparing the actual show run to the expected configuration (for example generated from the initial network design)
Because it is based almost only on indentation, this tool is platform agnostic: it can be used for configuration files of IOS, IOS-XE, IOS-XR, NX-OS...