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.
Optional Utilities

There are several optional utilities that you can install on your system that extend their support for IPv6. For the purpose of this article we mention only three packages: libpcap, tcpdump and xinetd.

libpcap and tcpdump

If you need to understand what is happening at the packet level of your IPv6 network/connection, you need to have IPv6 with libpcap and tcpdump. libpcap is a system-independent interface for user-level packet capture that provides a portable framework for low-level network monitoring. On the other hand, tcpdump is a tool that provides network monitoring and data acquisition.

If you want these functionalities, you need to download the latest versions and install them on your system. The versions we tested were tcpdump 3.6.2 and libpcap 0.6.2. First, download the packages from and move them to /usr/src. Then unpack them with:

tar -xzf libpcap-0.6.2.tar.gz
tar -xzf tcpdump-3.6.2.tar.gz

After unpacking, you will have two directories, one for each package. Next, you need to follow these steps for each package; however, you need to apply them first to libpcap and then to tcpdump. First, run the configuration script while enabling IPv6:

./configure --enable-ipv6
Then compile with make clean and make. Lastly, install the binaries with make install.

After following these steps, you need to adjust your path to include the new binaries that support IPv6. You also may want to edit /etc/profile and include /usr/local/sbin and /usr/local/bin within your PATH variable, and reload /etc/profile for the new changes to take effect:

source /etc/profile
xinetd with IPv6 Support

If you want to be able to telnet6 to your system, you need to compile xinetd with inet6 support. Normally, the installed inetd dæmon isn't ready to handle IPv6 addresses. Therefore, you need to upgrade to xinetd. To download the latest version of xinetd go to Our setup was tested with xinetd-

Download xinetd- (or latest) into /usr/src and unpack it with:

tar -xzf xinetd-

Next, run the configuration script:

./configure --with-inet6 --prefix=/usr/local/bin
The --prefix=/usr/local/bin is used to specify that the resulting binaries should go under /usr/local/bin. Then compile and install:
make clean
make install
Next, you need to create a configuration file from your old inet.conf:
/usr/sbin/ < /etc/inetd.conf > /etc/xinetd.conf
where /usr/sbin is the path to the xinetd executable.

As a side note, you need to make sure that in the script, the first line contains the right path to the Perl binary to be able to execute.

Next, you need do some very minor changes in /etc/xinetd.conf to reflect the usage of the telnet6d and tftp6d, instead of the usual IPv4 Telnet and TFTP dæmons. Having done that, you will be set to Telnet and FTP to your system over IPv6.

IPv6 Applications

There is a wide range of applications that support IPv6. However, we are going to mention only one server application, the Apache web server. Apache is the most popular web server on the Internet (source: The latest beta release, Apache 2.0.16 beta, includes support for IPv6, which makes it a good application for testing your IPv6 setup. If you download the latest version of the Apache web server and install it on your system, you will be able to serve web pages over IPv6.

Figure 6 presents a screenshot of the Mozilla browser when trying to access “http://[::1], which is the IPv6 local loopback.

Figure 6. A Request for ::1

For your convenience, you may want to update /etc/hosts file to include:

::1     ip6-localhost   ip6-localhost

Then, instead of using ::1, you can use ip6-localhost.

Don't forget to check the /etc/protocols. If the below-mentioned entries are not there, you need to append them for IPv6-protocol support:

ipv6   41 IPv6             # IPv6
ipv6-route 43 IPv6-Route   # Routing Header for IPv6
ipv6-frag  44 IPv6-Frag    # Fragment Header for IPv6
ipv6-crypt 50 IPv6-Crypt   # Encryption Header
                           # for IPv6
ipv6-auth  51 IPv6-Auth    # Authentication Header
                           # for IPv6
ipv6-icmp  58 IPv6-ICMP  icmpv6 icmp6M   # ICMP for
                                         # IPv6
ipv6-nonxt 59 IPv6-NoNxt   # No Next Header for IPv6
ipv6-opts  60 IPv6-Opts    # Destination Options
                           # for IPv6


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.