This section covers the installation of IPv6 software onto a Linux machine. It is aimed at the experienced Linux user - you may have to hack a Makefile, a header file or some source in order to get things to work. However, it assumes no IPv6-specific knowledge.
Under each package's name is a link to its home site (the place the authors put the newest version). Please see the next section, "Software Mirrors" for other places to download; going to a mirror first is always a good idea.
This is the stuff that you have to have in order to get your Linux box running IPv6 over the 6bone.
In the words of Craig Metz:
I develop IPv6 applications using Linux libc 5.4.26 and the drop-in replacement headers and libinet6 from inet6-apps. Philip develops IPv6 applications using the current GNU libc 2.1, which includes the appropriate headers and some of the needed functions because he has merged them in. Presumably, either of these configurations would be a reasonable base for someone wanting to use IPv6 applications. Other configurations may or may not work.
You need either libc5 with libinet6, a patched glibc 2.0, or glibc 2.1.
libinet6 can be found in the inet6-apps package mentioned below.
The base of the NET-3 Linux distribution, this package contains ifconfig, hostname, route, arp, rarp, netstat, and ipfw. As of this writing, the latest version is 1.41.
As of this writing, the newest version of inet6-apps is 0.24.
Note that you need to use an actual FTP client to get this package; a web browser won't work. That's why there's no hyperlink directly to them.
Also, Craig Metz has an aging scheme built into his FTP sites. As he says:
Things are first released on ftp.ipv6.inner.net, which is an IPv6-only FTP server. After a version is aged one week, it's copied onto ftp.inner.net, which is accessable by IPv4. If a version gets replaced within a week, that version never makes it to the IPv4 FTP server. This means that the IPv6 server can be thought of as carrying public beta versions while the IPv4 server can be thought of as carrying more baked versions. If you have any trouble with either FTP server, you can whine about it or you can explain your problem to me and ask me to fix it. One way is a lot more likely to result in getting your problem solved.
This is stuff that you don't need, but that's real handy to have.
Several common BSD utilities, ported to IPv6 (finger, ftp, telnet, etc...). Netkit is perhaps the most useful non-mandatory IPv6 software out there - picking up at least some of these packages is HIGHLY recommended.
There are two reasons to install BIND. If you don't have an up-to-date glibc (2.1.x), you need to install BIND's resolver libraries so that you can build IPv6 apps. This is not necessary if you have an up-to-date glibc. The second reason is that the newer BINDs support AAAA records, which are part of the IPv6 DNS spec. You need to do this if you want to run an IPv6-aware nameserver.
RADVD is the Router ADVertisement Daemon. It is used for autoconfiguration by IPv6 hosts. More info is available here.
A sample script that shows how to bring up IPv6 support on your machine.
fdsniff, fingerd, and netd (inetd/tcp_wrappers replacement) written from scratch to support IPv6.
Patches to INN to make it IPv6-aware.
A network benchmarking program, lmbench is useful for, well, benchmarking networks. It's the program that lets you show your friends that your IPv6 Linux machine is faster than their IPv4 box!
The start of an RSVP port for Linux.
This is a list of all the IPv6 soft ware mirror sites that I know of. Currently, there's no central organization that tracks all these mirrors - this means that some sites may have the latest versions of things, while some may not. The FAQ should always have pointers to the home sites of the most up-to-date software; it's probably a good idea to check the mirrors close to you first, and go to the home sites last.
The following is from Craig Metz.
In response to some questions I've been getting: 1. Install the latest working IPv6-capable kernel. 2. Install the latest net-tools kit from ftp.ul.pt 3. Install the latest inet6-apps kit from ftp.inner.net 4. Install the latest radvd from ftp.cityline.net 5. Compute your prefix using the algorithm in RFC 1897. Read the document carefully. If you don't know why to do otherwise, compute a 64-bit prefix. 6. Find your connection point. You want somewhere that is the topologically closest transit site that is clueful enough to be depended on. 7. Ask them to set you up a tunnel. You will need to provide them with your prefix (from step 5) and the IPv4 address of your IPv6 router. 8. Install the skeleton rc.inet6 from ftp.inner.net and fill in the appropriate blanks. 9. Make sure the tunnel moves bits (ping). 10. Ask your connection point to get routing set up for you. 11. Put an entry in the IPv6 routing registry on ftp.ripe.net. 12. Install BIND >4.9.5. 13. Set up an IPv6 forward DNS domain (I recommend you call it ipv6.foo.com, where foo.com is your normal IPv4 domain) with AAAA records. 14. Test the above on-site and off-site. 15. Set up an IPv6 reverse DNS domain. 16. Test the above on-site. 17. Request a reverse DNS delegation. 18. Test the above off-site. While this sounds involved, it really isn't so difficult. It does take a mostly-constant network connection, some clues, and some time.