Network configurations are a valuable source of information about the intent of a network’s design, but just analyzing configurations is not sufficient for detecting and resolving common network problems. A set of configurations may tell one story while the operational state of the network tells a different story. Let’s look at an example: spanning tree configuration. The great thing about transparent bridging (which uses spanning tree) is that devices just work when connected to the network (it’s transparent to the device). The bad thing about such networks is that when there’s a problem, the transparency can make it difficult to determine what’s really happening. Let’s say that you have two switch configurations and each configuration contains the following (using Cisco syntax):
vlan 411 name VoiceVLAN spanning-tree vlan 411 priority 8192
All by itself, you might say that the switch would be the root bridge in VLAN 411 (the Voice VLAN). Let’s look at two scenarios whose outcomes depend on the operational intent of the installation of a second switch that uses the same confguration.
After the deployment in the network, someone adds another switch to the VLAN and copies the above configuration, forgetting to change the priority. Now you have two switches in the VLAN with the same priority. The lowest MAC address will be used to select the root bridge, potentially creating an undesirable topology. If the second switch has limited capacity, it may cause the VLAN to fail or become unstable.
The second switch, using the identical configuration, is installed in a different VLAN. This is a valid configuration and everything is working correctly. However, just checking the configuration against best practices or other configurations won’t tell you whether it is correct or faulty.
There are multiple ways to check the configuration of a new device to determine if its configuration will cause a problem when it is added to the network. The ‘guess and test’ approach is to install the new device and collect the operational data that tells you if two bridges have the same priority and which one has become the root bridge. In scenario one above, the operational data would show that two switches in one VLAN had the same priority and that the root bridge was selected by lowest MAC address. In scenario two above, the operational data would tell you that the two devices were in separate subnets/VLANs and that the configurations were valid.
Another way to check the configurations is to manually provide some meta-data prior to installing the devices. This meta-data would require the identification of devices that would be operational neighbors of the new device (in this case other switches that will be in the same VLAN). It may be necessary to identify where the new device would be connected for the configuration to be correctly validated. There is a small amount of additional effort required, but that is a small price to pay to keep the network running smoothly.
There are similar scenarios in various technologies. Take the case of OSPF in determining the router ID of a virtual link. A new configuration may add a loopback interface, which would then change the OSPF Router ID, causing any virtual link that used the old router ID to fail. Here, configurations of a neighboring device (the other end of the virtual link in this case) depends on the existance of a loopback interface in the configuration.
In summary, configuration analysis must incorporate operational data and the configurations of neighboring devices in order to accurately determine the correctness of a device’s configuration.
Re-posted with Permission
NetCraftsmen would like to acknowledge Infoblox for their permission to re-post this article which originally appeared in the Applied Infrastructure blog under http://www.infoblox.com/en/communities/blogs.html