Visualizing Neutron Networking with GraphViz

I’ve put together a few tools to help gather information about your
Neutron and network configuration and visualize it in different ways.
All of these tools are available as part of my neutron-diag
repository on GitHub.

In this post I’m going to look at a tool that will help you visualize
the connectivity of network devices on your system.

mk-network-dot

There are a lot of devices involved in your Neutron network
configuration. Information originating in one of your instances has
two traverse at least seven network devices before seeing the light
of day. Understanding how everything connects is critical if you’re
trying to debug problems in your envionment.

The mk-network-dot tool interrogates your system for information
about network devices and generates dot format output showing how
everything connects. You can use GraphViz to render this into a
variety of output formats. The script must be run as root, so I
usually do something like this:

sudo sh mk-network-dot | dot -Tsvg -o network.svg

The dot language is a language designed for describing graphs, and
the syntax looks something like this:

digraph example {
A -> B
A -> C
C -> D
B -> D
}

Which would produce output like this:

When run on my laptop, with a simple all-in-one configuration and five
instances across two networks, the result of running mk-network-dot
looks like this:

There are a few caveats with this tool:

As of this writing, it doesn’t know about either bond interfaces or
VLAN interfaces.

It’s had only limited testing.

If you try this out and something doesn’t work as you expect, please
open a new issues on the GitHub issues page.