With the depletion of the IPv4 address space, many people are migrating to IPv6. The knowledge of how it works and how to set it up is still limited though.
To experiment and learn how IPv6 works, we set up our own IPv6 internal network in our laboratory. The lab's network was already running with an IPv4 private IP range routed via a gateway performing network address translation (NAT/masquerading) towards the internet. Our only access to the internet is via a HTTP proxy and therefore we used an openVPN tunnel to a VPS (Virtual Private Server, a VM hosted by an ISP on the internet) to get routed internet access.
Adding IPv6 to this setup meant getting a 6to4 tunnel to the VPS. We used Hurricane Electric's Tunnelbroker for this. They also provided us with a /64 and /48 IPv6 range we may use.
Our current setup is as follows:
The best thing to see after all this trouble:
jpmeijers@shannon:~$ ping6 ipv6.google.com
PING ipv6.google.com(2c0f:fb50:4001:800::1013) 56 data bytes
64 bytes from 2c0f:fb50:4001:800::1013: icmp_seq=1 ttl=56 time=531 ms
--- ipv6.google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 463.276/521.435/569.208/43.873 ms
The latency is a little high, but compared to our normal IPv4 internet it is not that much worse. Being able to access the IPv6 internet weighs much more.
For some reason I did not get an IPv6 IP today, but I restarted the radvd (router advertising daemon) on the VPS to fix it.