Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

So I have a small business network mainly consisting of two routed layer-2 domains with a total of ca. 100 devices spread over ca. 2000m² production and office spaces. Typical problems to solve using the graph would be: Over what (cable) path is a PC connected to the server? Where to expect devices connected to a switch port?

I want to generate a graph of the physical network topology: Nodes are endpoint devices, switch ports, wall outlets, patch panel ports etc. Edges are cable connections. Ideally, grouping edges (or segments) that pass through the same bundle could be grouped.

Also I would like to augment the graph data with automatically gathered data (monitoring state, MAC address, Switch port <-> MAC entries to build up parts of the map).

At the moment I use graphviz for this inside a Confluence wiki like that:

layout = "neato"
overlap = scale
subgraph {
    rankdir = "TB"
    subgraph cluster_r1pf1 {
    r1pf1 [label="{ Rack 1 PF 1 | { <p1>P1 | <p2>P2 | <p3>P3} }", shape=record]

subgraph cluster_switch1 {
    switch1 [label="{ Rack 1 Switch 1 | { <p1> P1 | <p1> P1 | <p3> P3} }", shape=record]

r1pf1:p1 -> switch1:p1

(obviously there are dozens of entries omitted here)

Problem is: I have a hard time to influence graphviz to generate a bearable layout. Edges overlap so bad that you can't read the diagram anymore.

The question is: What other tools (be it interactive like Visio, Omnigraffle or I/O-oriented like graphviz) exist that would allow an easily versionable (as in: Operates on a text file) documentation that is both machine and human readable and editable?

Why not OmniGraffle or Visio? Well we don't have Macs and Visio is not available at the moment. To buy it I would need good arguments. Automation would be one of that. But last time I looked, versioning Visio files or even thinking about automatic handling was a nightmare.


share|improve this question
keeping an eye on this. Have a very similar problem, with a very similar outcome using graphviz. hopefully someone will know a silver bullet package. So far i've had no luck. –  Sirex Dec 31 '10 at 9:09

1 Answer 1

up vote 0 down vote accepted

Maybe have a look at yed (Java based). It uses different XML dialects as file format, so it's kind of human-readable.

OmniGraffle uses the GraphViz layout engine, so if GraphViz fails, you likely wouldn't get far with OG either.

share|improve this answer
Just taken a look at yed. Its not bad and you can create the files by hand as its simlpe xml-ish, but the licence for it (and faq) specifically disallows its use as part of an automated script. This makes converting the file into something usable on the fly not possible. –  Sirex Dec 31 '10 at 9:55
I have the saddening feeling that this is the end of conventional wisdom. So: Accepted. –  Paul Jan 7 '11 at 10:15

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.