Supporting IPv6 on a Linux Server Node

This article provides a technical tutorial on setting up IPv6 on a Linux server and connecting it to the IPv6 Internet.
IPv6 Binaries and Tools

Once the kernel supports IPv6, you need to install some tools to test your setup and to use IPv6 transport with other systems. First, you need the basic network utilities to support IPv6 to be able to configure your interface, in addition to some other IP utilities such as ping6, telnet6, etc., and to be able to do some basic IPv6 testing.

There are three packages that provide these utilities: net-tools, iputils and the NetKit utilities. The must-have packages are the first two; NetKit is optional. In addition, if you want to have the ability to debug potential IPv6 network problems that may arise, you need to have support for IPv6 in tcpdump and libpcap. In the following sections, we cover the installation of all the above-mentioned packages.


net-tools is a collection of programs to control Linux's networking, which includes commands such as arp, hostname (domainname, dnsdomainname, nisdomainname), ifconfig, ipmaddr, iptunnel, netstat, rarp, route and plipconfig. This package is available for download from

To install the package on your system first download the packages directly into /usr/src. Then enter these commands separately:

cd /usr/src
tar xIvf net-tools-1.60.tar.bz2
cd net-tools-1.60

The configuration will ask a few questions that you need to answer to be able to configure net-tools. It is suggested that you answer yes to the following questions:

INET6 (IPv6) protocol family (HAVE_AFINET6) [n]    y
SIT (IPv6-in-IPv4) support (HAVE_HWSIT) [n]        y
Build iptunnel and ipmaddr (HAVE_IP_TOOLS) [n]     y
Then, you need to compile and install net-tools:
make install
The binaries will be installed in /sbin and /bin, and you can start using them assuming that you have rebooted into an IPv6-enabled kernel.


This package includes the following tools: ping, ping6, traceroute6, rdisc, clockdiff, tftpd, tracepath, tracepath6 and arping. It may be that the installed IP utilities on your system do not support IPv6. The first step is to check if the currently installed version is IPv6-compliant by typing the following at the command shell:

rpm -q --qf "%{NAME}-%{VERSION}\n" iputils

If the outcome is iputils-20000121 or newer, then you do not need to perform the installation of the latest iputils package. Otherwise, you need to follow these steps to install the utilities on your system. First, download the package from For our setup, we used iputils-ss001110.tar.gz. Next, untar the package in /usr/src:

tar -xzf iputils-ss001110.tar.gz
Finally, compile iputils with make.

The package does not provide a make install. Therefore, you are free to place the binaries in a directory of your choice. However, you need to make sure that the old versions of the tools you have do not conflict with the newer versions in your path. Save the new binaries in /usr/local/iputils/bin/. The package provides man pages for every tool. You also need to move the new man pages into a directory that man searches; to check which directories are in the man path, type manpath.

NetKit Utilities

These utilities are basic tools to work with and test your new IPv6 configuration. NetKit includes the following tools: ping, finger, telnet, rwho and their respective dæmons. These are very useful utilities because we can compile them with IPv6 support. The package is available for download from The version we tested was nkit-0.5.1.tar.gz.

Here are the steps you need to follow to install these utilities on your Linux server. First, download the latest NetKit package from the referenced web site. Then move the downloaded file to /usr/src. Unpack the package with:

tar -xzf nkit-0.5.1.tar.gz

Next, run ./configure. Compile with make clean and make, and copy the binaries to /usr/local/bin:

cp telnet/telnet /usr/local/bin/telnet6
cp telnetd/in.telnetd /usr/local/sbin/in.telnetd6
cp finger/finger /usr/local/bin/finger6
cp ping/ping /usr/local/bin/ping6
cp fingerd/in.fingerd /usr/local/sbin/in.fingerd6
At this moment, you should have basic functionalities, as you can, for instance, ping6 your local IPv6 loopback (Figure 5).

Figure 5. ping6 in Action

Please note that if you are using Red Hat 7.x, you need to apply a patch to the NetKit package. The patch is available from



Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

find the IP address for

jim karter's picture

find the IP address for host1. From host1 only has a v4 protocol stack, only IPv4 is for the search service names. So try to get to host1 host2 using IPv4-mapped address. An IPv4 packet will be sent by host1 host2. watch anime online | Good Night SMS

If you want to talk to host1

Anonymous's picture

If you want to talk to host1 host2 will create a power V6. Next, locate the IP address for host1. Since host1 has only a v4 protocol stack, only IPv4 are no records in the name lookup service. So try to reach host1 host2 using an IPv4-mapped. An IPv4 packet will be sent by host1 host2 and think that it is communicating with a client v4.
frases para orkut | Mensagens para Orkut | watch anime online

Linux servers...

lara.smith's picture

Linux servers are the most safest servers among all the operating servers so I personally prefer it.

Real Estate Investing

Really Informatic

Anonymous's picture

Really Informatic post.
Thanks for sharing
Real Estate Investing |

The link does not work

rapaz's picture

the link to do de same in debian does not work
so re post the new link


Re: Supporting IPv6 on a Linux Server Node

Anonymous's picture

I just read a similar howto on the same subject, but focusing more on Debian. In case anyone is interested :

Re: Supporting IPv6 on a Linux Server Node

Anonymous's picture

iam doing project on ipv4-ipv6 we need help .we should knoe how to ping6 with an ipaddress.