Experiment: FreeBSD 9.1 IPv6-only installation
Installing FreeBSD 9.1 from a bootonly ISO image without IPv4 connectivity
FreeBSD supports IPv6/IPv4 dual stack since March 2000 when the KAME stack was merged into the 4.0 release. I have done some experimenting with v6-only jails in FreeBSD and I thought it would be time to try installing a new base FreeBSD system without knowledge of the »old« IPv4 world.
With FreeBSD's recent 20th anniversary I, again, came to regret that I am not using FreeBSD on my desktop productivity workstation anymore. Since it had indeed been some time (2007'ish I think) I thought I might as well add a long-time component to that experiment, getting a feel for the end-user experience of IPv6-only networking while I use the newly installed system to Get Things Done™.
Network Environment and Setup
I didn't install the system on bare metal hardware but used Virtualbox to
host a VM (the host system was Mac OS X 10.7 »Lion«). The install media,
FreeBSD-9.1-RELEASE-amd64-bootonly.iso, was downloaded with
the host system from a IPv6-enabled mirror site.
My router was a AVM Fritz!Box 7270 (FW v74.05.50) with 6to4 tunneling and router advertisement enabled (in fact, the Fritz!Box seems to be using DHCPv6 but SLAAC works, too).
Bjoern A. Zeeb gave a
talk at EuroBSDcon 2011 about FreeBSD and the
World IPv6 Day 2011, detailing that they used a
custom kernel without
AF_INET (ie. v4) configured. I didn't go
that route and decided to just omit v4 configuration. However, my system will
still maintain a
lo0 device and thus the term »IPv6-only« is
technically not correct. Yet, let me stick with it for the rest of the article.
Virtualbox and Bridged Wifi Networking
Booting FreeBSD, not configuring IPv4 when prompted, getting a v6 address, a default router and a nameserver via SLAAC went easy enough. I chose a IPv6 enabled FTP server from the list (see below for more on v6 mirrors).
Problems would arise as soon as
bsdinstall(8) tried to connect
to the network: it would simply time out and complain about not being
able to resolve whatever FTP-server I chose from the list, yet I knew that
my router's DNS resolver wasn't misbehaving and was well available via v6.
tcpdump on the host system revealed lots of unanswered
ICMP6 neighbor solicitation request. Exiting the installer and going to the
shell, I realised I couldn't ping anything but the globally unique address
of the host system, eventually raising suspicions that it might have something
to do with the virtual network layer: indeed, there is a
ticket in Virtualbox
that has been open for four years already, describing that IPv6 via
bridged wifi networking is currently not working on Linux and Mac OS X.
Installation … at last
After that hour-long intermezzo and having plugged in a cable, installation worked
like a bliss. Well, almost: my Fritz!Box DNS resolver still wouldn't resolve
names and so I ended up pointing the system to
Google's public DNS at
Another word on DNS: out of the 9 listed IPv6 enabled mirrors, two couldn't be
reached (that's 22%). One didn't even have an AAAA address, the other closed
the connection immediately (might have been a temporary issue, though).
There are more IPv6 enabled mirror sites than documented: I ended up using
ftp4.de.freebsd.org which isn't shown as being v6-enabled in the
The virtualbox issue sure was a damper. Not only did it cost me two hours to isolate the problem. It also means I won't be able to use the installed system with wifi networking on the host system (which is what I normally use).
Still, it is safe to say that the IPv6-only net-installation of FreeBSD 9.1 was successful.comments powered by Disqus