graph "ring-4-duts" { layout="neato"; overlap=false; esep="+20"; splines=true; size=10; node [shape=record, fontname="DejaVu Sans Mono, Book"]; edge [color="cornflowerblue", penwidth="2", fontname="DejaVu Serif, Book"]; host [ label=" { host | { mgmt4 | data4 | mgmt1 | data1 | data2 | mgmt2 | data3 | mgmt3 } }", pos="150,200!" requires="controller", ]; R1 [ label="{ { mgmt | data } | \n R1 \n 10.0.0.1/32 \n(lo) } | { ring1 | cross | ring2 }", pos="50,150!", requires="infix", ]; R4 [ label="{ { mgmt | data } | \n R4 \n 10.0.0.4/32 \n(lo) } | { ring1 | cross | ring2 }", pos="50,50!" requires="infix", ]; R2 [ label="{ ring2 | cross | ring1 } | { { data | mgmt } | \n R2 \n10.0.0.2/32 \n(lo) }", pos="250,150!" requires="infix", ]; R3 [ label="{ ring2 | cross | ring1 } | { { data | mgmt } | \n R3 \n10.0.0.3/32 \n(lo) }", pos="250,50!" requires="infix", ]; host:mgmt1 -- R1:mgmt [requires="mgmt", color="lightgray"] host:mgmt2 -- R2:mgmt [requires="mgmt", color="lightgray"] host:mgmt3 -- R3:mgmt [requires="mgmt", color="lightgray"] host:mgmt4 -- R4:mgmt [requires="mgmt", color="lightgray"] // host-Dut links host:data1 -- R1:data [color="darkgreen"] host:data2 -- R2:data [color="darkgreen"] host:data3 -- R3:data [color="darkgreen"] host:data4 -- R4:data [color="darkgreen"] // Ring R1:ring1 -- R2:ring2 [color="blue",headlabel=".2", label="10.0.12.1/30", taillabel=".1", labeldistance=1, fontcolor="blue"] R2:ring1 -- R3:ring2 [color="blue",headlabel=".2", label="10.0.23.0/30", taillabel=".1", labeldistance=1, fontcolor="blue"] R3:ring1 -- R4:ring2 [color="blue",headlabel=".2", label="192.168.4.0/24", taillabel=".1", labeldistance=1 fontcolor="blue"] R4:ring1 -- R1:ring2 [color="blue",headlabel=".2", label="10.0.41.0/30", taillabel=".1", labeldistance=1, fontcolor="blue"] // Cross R1:cross -- R3:cross [color="black", label="10.0.13.0/30\n\n"] R2:cross -- R4:cross [color="brown", label="\n\n10.0.24.0/30", fontcolor="brown"] }