Recently I’ve been working on a
quick and dirty small C program that would generate a DOT file describing connectivity of a real ISP’s IP/MPLS backbone.
Connectivity data was gathered through SNMP and stored on several CSV files (later I’ll have to use a DBMS). LLDP isn’t enabled, so L2 link discovery is actually quite hard…
After lots and lots of attempts tweaking twopi, I could not even get close to what I was expecting in terms of layout:
Manual post-processing work is also very huge… so I decided to try another approach, computing the exact position of each node (so as to get multiple circles of different ranks) then use neato instead of twopi, this is much less flexible but the result is quite good:
This work was mainly inspired by the following example of a real-world network containing 300 sites over 40 countries, rendered using twopi, however it seems like they added some dummy nodes in order to get such a nice layout… I’ll have to dig a little deeper into this too.