graph "2x2" { layout="neato"; overlap="false"; esep="+20"; size=10 node [shape=record, fontname="DejaVu Sans Mono, Book"]; edge [color="cornflowerblue", penwidth="2", fontname="DejaVu Serif, Book"]; PC [ label="PC | { mgmt1 | data | mgmt2 }", pos="20,80!", requires="controller", ]; R1 [ label="{ mgmt | data | link} | R1 \n 192.168.100.1/32 \n(lo)", pos="250,80!", requires="infix", ]; R2 [ label="{ link | mgmt } | R2 \n 192.168.200.1/32 \n(lo)", pos="250,30!", requires="infix", ]; PC:mgmt1 -- R1:mgmt [requires="mgmt", color="lightgray"] PC:mgmt2 -- R2:mgmt [requires="mgmt", color="lightgray"] PC:data -- R1:data [headlabel=".1", taillabel=".2", label="192.168.10.0/24", fontcolor="black", color="black"] R1:link -- R2:link [headlabel=".2", taillabel=".1", label="192.168.50.0/24", labeldistance=1, fontcolor="black", color="black"] }