digraph G { node [ shape=box, fontcolor="#ffffff", color="#40a9e3", style="filled" ] label="The VIWVIB in action" node [ shape=box ] # rankdir=LR ipv6internet [ label="The IPv6 Internet" shape=oval ] ipv4internet [ label="The IPv4 Internet" shape=oval ] ipv6vpn [ label="IPv6VPN.ch\nIPv6 via wireguard" shape=oval ] lan [ label="Your regular LAN" shape=oval ]; lan_v6 [ label="IPv6 only lan" shape=oval ] lanclients [ label="Clients in the lan" ] lan_v6_clients [ label="IPv6 only clients" ] wificlients [ label="WiFi clients" ] wifi [ label="IPv6 only wifi\n'IPv6 everywhere'" shape=oval ] subgraph cluster_viwib { viwib [ label="The VIWIB" color="#ee1100" ]; viwib_lan [ label="LAN Port" color="#ee1100" ]; viwib_wan [ label="WAN Port" color="#ee1100" ]; viwib_wifi [ label="WiFi" color="#ee1100" ]; viwib->{viwib_lan,viwib_wan,viwib_wifi}; } viwib_wan->ipv4internet [ label="Connects to" ] ipv4internet->ipv6vpn [ label="Connected to" ] viwib_lan->lan_v6 [ label="Creating IPv6 only LAN" style=dashed ] viwib_lan->lan [ label="Enabling existing LAN with IPv6" style=dashed ] lan_v6_clients->lan_v6 [ label="Assign themselves IPv6" ] lanclients->lan [ label="Assign themselves IPv6" ] {lan_v6,wifi}->ipv4internet [ label="via DNS64/NAT64" style=dashed ] {lan_v6,wifi}->ipv6internet [ label="Direct access" ] ipv6vpn->viwib [ label="Gets /48 IPv6 network via VPN" ] viwib_wifi->wifi [ label="Provides IPv6 only WiFi" ] wificlients->wifi [ label="Assign IPv6 address themselves" ] wifi->ipv6internet [ label="Connect to" ] ipv6vpn->ipv6internet [ label="Is connected to" ] // ipv6internet->{wificlients,lanclients} [ // label="SSH, HTTP, HTTPS\nports are open" ] } # viwib_wan->lan [ label="1. Gets IPv4 via cable" ] # viwib->ipv6vpn [ label="Connect the VPN to IPv6VPN.ch" ]