At home, we have a small guest wired/wireless network for the guest addicted (nearly everyone is addicted including myself) to plug their laptop into the global Internet. Willing to validate the reality of IPv6 with Free Software, I move that network to an IPv6-only network. I took some notes about the installation and the various tests. Of course, the network is only IPv6 but we didn't want to put them on an island without accessibility to the majority of services available in IPv4 only.
First of all, you need a good connectivity to the IPv6 Internet. Bad luck in Belgium, there are no providers supporting natively IPv6 until now. So, we used the sixxs IPv6 tunnel broker service and use the a part of the /48 subnet allocated to me by sixxs. I split the subnets and use a simple /58 (still big enough ;-) subnet for the guest network. I have a gateway machine running a standard Ubuntu 7.10 and running the sixxs tunnel client (until Belgacom Skynet is providing IPv6 to their customers). The sixxs tunnel client works great behind a NAT of the IPv4 traffic. An Ethernet interface is allocated for that guestnet and doing the routing with the ipv6 tunnel interface. That's great with that setup my guest can access all the IPv6 internet and everyone can reach them (real public IP addresses for the client). I have also setup on the gateway machine an ISC bind 9 nameserver answering queries in IPv4 or IPv6 (that's the standard nameserver in Ubuntu without custom configuration). Great… but in such scenario, they have only access to services available in IPv6.
So we are going back to the initial chicken-egg problem for the IPv6-to-IPv4 transition… I didn't want to have a dual-stack guest network and really want to provide a full-blown connectivity in IPv6. So the compromise is to provide an HTTP proxy supporting IPv6 seamlessly. My first thought was to go with Squid but they only introduced IPv6 in their HEAD branch the 16th Dec. 2007. I compiled it (--enable-ipv6) but it works but I had some issue with the behavior of "tcp_outgoing_address" feature to reach IPv6 accessible without using the IPv4 connectivity. Then I discovered an alternative proxy, written by Juliusz Chroboczek and called Polipo (also available in any recent GNU/Linux distribution) with a good and coherent IPv6/IPv4 support. With that my IPv6 guests are now able to talk natively to the IPv6 Internet and use the proxy to reach the IPv4 Internet (mainly HTTP,FTP or TLS/SSL).
Beside that IPv6 development is quite old, the real roll out of IPv6 in common (free and non-free) operating system is now a reality. That offers the possibility to have an IPv6 connectivity in place quite quickly without changing the underlying operating system. There are still some glitches in some top application managing network connectivity without knowing the existence of the IPv6 connectivity but it works. The IPv4 Internet can be easily reached using a proxy. The main advantage of having a native IPv6 connectivity is to have real routable addressing and starts to provide services to the IPv6 internet (e.g. just imagine distributed network sensors).
After my very little success for the guest network, why not providing the IPv6 service to the whole village ? I just need to extend the reachability of my wireless network (not impossible looking at the size of the village). Digging a little bit of an allocation plan using DHCPv6 (better than the a simple "autoconfiguration" lacking network service information) and doing some promotion…
Tags: ipv6 networking freesoftware village ipv4