digraph G { node [ shape=box ] rankdir=LR; label="ungleich Dynamic IP access" client [ label="IPv6 client" ]; vpnserver [ label="ungleich Server" ]; v6net [ label="IPv6 Internet" ]; v4net [ label="IPv4 Internet" ]; v4ip1 [ label="IPv4 address #1\nProvider 1" ] v4ip2 [ label="IPv4 address #2\nProvider 2" ] v4ipn [ label="IPv4 address #n\nProvider x" ] dnsserver [ label="ungleich DNS Server\nSource based DNS routing" ] client->vpnserver [ label="Establishes VPN" ] vpnserver->client [ label="Routes 2001:db8::/48 IPv6 network" ] vpnserver->{v4ip1, v4ip2, v4ipn} [ label="Outgoing connection" ] client->v4ip1 [ label="Access IPv4 Internet\nvia 2001:db8:0:1:0:1::/96" style=dashed ] client->v4ip2 [ label="Access IPv4 Internet\nvia 2001:db8:0:1:0:2::/96" style=dashed ] client->v4ipn [ label="Access IPv4 Internet\nvia 2001:db8:0:1:0:n::/96" style=dashed ] {v4ip1, v4ip2, v4ipn}->v4net [ label="Specific IPv4 Source" ] client->v6net [ label="Source: 2001:db8:2::/64" style=dashed ] client->dnsserver [ label="(Optional) Request AAAA address" style=dotted ] dnsserver->client [ label="Source address based answer" style=dotted ] }