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 | data } | 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 [color="black", headlabel="192.168.10.1/24", taillabel="192.168.10.2/24", fontcolor="black"] R1:link -- R2:link [headlabel="10.0.0.2/32", taillabel="10.0.0.1/32", labeldistance=1, fontcolor="black", color="black"] }