plotnetcfg is a tool that scans networking configuration on the machine and outputs a diagram of the configuration hierarchy.
By default, the output is in the dot language. The output can be converted by the dot(1) tool from graphviz(7) package to various formats such as PDF, PostScript or SVG.
plotnetcfg is able to scan different network name spaces and figure out relations that span name spaces. It supports all kinds of network interfaces and understands specifics of VLANs, bridges, veth pairs and Open vSwitch.
The tool has to be run under root or with both CAP_SYS_ADMIN and CAP_NET_ADMIN capabilities. See capabilities(7) for details.
plotnetcfg is lightweight with as few library dependencies as possible. Currently, the only dependencies are libc and libjansson. Optionally, it can be statically linked against the latter which allows the plotnetcfg binary to be copied to a target machine and run there (provided it has the same or newer version of glibc as plotnetcfg was compiled against).
See Examples for typical plotnetcfg usage.
- -f, --format=FORMAT
Set output format. When not specified, dot is used.
- -F, --list-formats
Print available output formats.
- -D, --ovs-db=PATH
Path to the socket used to communicate with Open vSwitch database server. Only UNIX sockets are supported. The default is /var/run/openvswitch/db.sock.
- -h, --help
Print short help and exit.
Print program version and exit.
Display network configuration of the local machine:
plotnetcfg | dot -Tpdf | okular -
Save network configuration to a file for later analysis:
plotnetcfg > file
Create PDF with network configuration of a remote machine:
scp /usr/sbin/plotnetcfg root@target:
ssh root@target ./plotnetcfg | dot -Tpdf > file.pdf
dot(1), graphviz(7), plotnetcfg-json(5)
plotnetcfg was written and is maintained by Jiri Benc <email@example.com>.