From the version 2.2.19, the Linux kernel supports IPv6. In the series 2.4, new features have been incorporated to reach the current state of the IPv6 module, in experimental state.
Some features in this IPv6 module are:
The first thing you have to do is to download the kernel sources. You can use the typical way to install packages in Linux, using dselect o dpkg if your distribution is Debian or from the .rpm package (like in Red Hat). You can also dowload them from http://kernel.org/.
The default directory where the sources are installed is /usr/src/kernel-source-2.x.x/ (if you use Debian GNU/Linux).
Next, you need to connect to the Helsinki University of Technology and download the Mobile IPv6 version according to our kernel version. We use kernel version 2.4.7, so we download mipv6-0.9-v2.4.7.tar.gz.
A typical directory to unzip and untar the file is /usr/local/.
host:/usr/local# tar xvfz mipv6-0.9-v2.4.7.tar.gz
This command will create the /usr/local/mipv6-0.9-v2.4.7 directory. In this directory, there is the kernel patch we have to apply (mipv6-0.9-v2.4.7.patch) to the kernel sources. This patch works from kernel versions 2.4.4 to 2.4.7.
After untar, copy this mipv6-0.9-v2.4.7.patch file to the directory where you untar the kernel sources and apply the patch:
host:/usr/local/mipv6-0.9-v2.4.7#: cp mipv6-0.9-v2.4.7.patch ../../src/kernel-source-2.4.7 host:/usr/local/mipv6-0.9-v2.4.7#: cd /usr/src/kernel-source-2.4.7 host:/usr/src/kernel-source-2.4.7#: patch -p1 < mipv6-0.9-v2.4.7.patch
This command modifies the kernel sources to be able to support Mobile IPv6. Now, you have to recompile the kernel. Go to the kernel source directory and run one of the tools that allow you recompile it:
We prefer make xconfig. In the Networking Options section are placed the options for IPv6 and Mobile IPv6 support. The options you should select are the options that you can find in the README file included in the /usr/local/mipv6-0.9-v2.4.7/ directory. We use this testbed to test Mobile IPv4 too, so we select more options than the options specified in that README file.
The options are the following:
You should select the options like modules and not included into the kernel to prevent failures the first times you boot the new kernel.
The MIPv6: AH Support option offers support for IPSec Authentication Header (security mechanism in Mobile IPv6). If you select this option, PCs that have been compiled with the MIPv6: AH Support option can't interoperate with PCs that haven't been compiled with this option.
Finally, you have to save changes and compile the new kernel in the habitual way:
At this point, your kernel is ready to work with IPv6 and Mobile IPv6. If you are running Debian GNU/Linux, you have to update LILO: copy the new kernel to the directory that contains the kernel images (normally, in the /boot directory):
host:/usr/src/kernel-soruce-2.4.7/#: cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.7
and add an entry to the /etc/lilo.conf file like this:
... image=/boot/vmlinuz-2.4.7 label=Linux-2.4.7 readonly ...
If you correctly finished all these steps, you only need to run lilo from a terminal and reboot your PC. When LILO appers, select Linux-2.4.7 to boot the kernel with IPv6 and Mobile IPv6 support.
Before to reboot the PC, you have to run the next command to complete the Mobile IPv6 configuration:
host:~/: mknod /dev/mipv6_dev c 0xf9 0