Experiment: FreeBSD 9.1 IPv6-only installation
Installing FreeBSD 9.1 from a bootonly ISO image without IPv4 connectivity
Motivation
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.
A 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 2001:4860:4860::8888
.
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
bsdinstaller overview.
Conclusion: Success
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