digraph G { node [ shape=box ] rankdir=LR; label="IPv6 proxies by ungleich.ch" proxyv6 [ label="ungleich\nIPv6-IPv4 Proxy" ]; proxyv4 [ label="ungleich\nIPv4-IPv6 Proxy" ]; serverv4 [ label="IPv4 only\nServer" ]; serverv6 [ label="IPv6 only\nServer" ]; noipv4here [ label="No IPv4-\nhere-service" ]; clientv4 [ label="IPv4 only\nclient" ]; clientv6 [ label="IPv6 only\nclient" ]; clientv4->serverv4 [ label="Direct IPv4 access" ]; clientv6->serverv6 [ label="Direct IPv6 access" ]; clientv4->proxyv4 [ label="Connect by IPv4" ]; clientv6->proxyv6 [ label="Connect by IPv6" ]; proxyv6->serverv4 [ label="Translate to IPv4" ]; proxyv4->serverv6 [ label="Translate to IPv6" ]; proxyv4->noipv4here [ label="If IPv4 translation is disabled" ]; subgraph cluster_legacyserver { label="Enable legacy IPv4 servers to be reachable by IPv6"; proxyv6; serverv4; } subgraph cluster_v6net { label="Enable legacy IPv4 clients to access IPv6 only servers"; proxyv4; serverv6; noipv4here; } subgraph cluster_clients { label="Clients"; clientv4; clientv6; } }