I use tinc VPN [0] to connect a bunch of separated LANs together, and a built-in configuration directive
GraphDumpFile = /etc/tinc/network/graph.viz
will generate a real-time network graph using the Graphviz DOT language. It's a cool feature that I find quite useful.