This is an old revision of the document!
I'll update this with notes and links to websites I find as I'm working on the project that might be handy later on. The notes here may also be the foundation for the IPv6 documentation later on.
- Pedigree's network stack with IPv6 support (new BSD license)
- Developing on branch 'develop'
- Will bring commits into master when they are ready for upstream merging. This way I can rebase them and merge several related commits into one larger commit for submission upstream (or mix several “oops” commits into the commit that originally contained the mistake).
- Can bring upstream changes into develop branch via master
- Can't get network interface's MAC address within a TCPIP protocol (eg ICMP, UDP). Will need to have a user begin the process of autoconfiguration for a link-local address manually!
- Link-local address must always be present, globally routed address can be obtained via router advertisements or DHCPv6 (and may not exist). How do we manage this for potential users?
- Probably worth fixing DNS to use AAAA records earlier rather than later.
- Packet Dumps and relevant notes.
To work with IPv6 in gPXE on your network, you will need both an IPv6 prefix and a router advertisement daemon. DHCPv6 support is coming soon!
The best place to get an IPv6 is your ISP, but if your ISP does not offer IPv6, Hurricane Electric offers a fairly stable and easy-to-use tunnel. HE also provides configuration commands for a wide range of operating systems.
Once your network is IPv6-enabled, you will need a router advertisement daemon to advertise the prefix you have been assigned. These router advertisements allow hosts to autoconfigure themselves where a DHCPv6 server is not present.
Note that currently IPv6 in gPXE will not work properly on IPv6 networks with DHCPv6 servers.
You can use the following script to test gPXE's HTTP boot over IPv6:
#!gpxe kernel http://ipv6.theiselins.net/gpxe/bz2bzImage root=100 initrd http://ipv6.theiselins.net/gpxe/initrd.bz2 boot
This should boot a Linux kernel.