Jun 092011

ipv6 ready OK, i’m 1 day late but now also http://linuxaria.com is IPv6 ready.

1 day late for what ?

Yesterday was the WORLD IPV6 DAY, but i’m sure that you have noticed it, i saw a lot of news about it in many Tech-related news sites.

Now linuxaria.com is hosted on a VPS on Linode and i must say that the setup it’s been “enough” easy, the more problems i got come from nginx, mainly for my lack of knowledge of IPv6 and this web server.

This is a summary of the operations done to get IPv6 working, naturally if you don’t have a VPS on Linode this is partially useful, but give a general idea on the operation necessary to get a IPv6 stack on your machine.

Linode.com has recently added native IPv6 support and i must say it’s really trivial to add it, “simply navigate to your Linode’s “Remote Access” subtab and then click “Enable IPv6″. You will be prompted to reboot your Linode”.

I rebooted and after the start i got:

root@linuxaria:~# ifconfig
eth0      Link encap:Ethernet  HWaddr f2:3c:91:93:b7:b3  
          inet addr:  Bcast:  Mask:
          inet6 addr: 2600:3c03::f03c:91ff:fe93:b7b3/64 Scope:Global
          inet6 addr: fe80::f03c:91ff:fe93:b7b3/64 Scope:Link

The IPv6 address has been given automatically, all done with a couples of clicks and a reboot. Amazing.


This is has been a bit longer, but thanks to Kromey’s blog i solved an error about having a process already listening on port 80 :

ipv6 nginx bind() to [::]:80 failed

I’ve 2 virtualhosts on my VPS, removing 1 it worked fine, but when adding back the second i had that error.

Kromey gave a great explanation :

From reading the documentation, I believe that this solution will not work on BSD-based systems, nor will it work on certain Linux-based systems where net.ipv6.bindv6only parameter has been changed from the default. Specifically, the solution I am posting here relies upon your networking stack using hybrid ports instead of separate ports for IPv6 and IPv4; that is, opening a hybrid port will accept traffic on both IPv4 and IPv6, whereas you would have to explicitly open separate ports for each version of the protocol. However, adapting this hybrid port-based solution to a separate port-based system is trivial, and I’ll show that, too.

I suggest to read the whole solution on his blog, but to make it short i can tell you that:

On my Debian 6 the default it’s:

root@linuxaria:~# sysctl net.ipv6.bindv6only
net.ipv6.bindv6only = 0

And so solve my problem i added to the {server} section of my VH:

to VH1

listen 80;
listen [::]:80 default_server ipv6only=on;

to VH2

listen 80;
listen [::]:80;

And with these options a /etc/init.d/nginx restart worked fine.


So far IPv6 it’s been for me a theoretical solution that one day would have been necessary, but now the day is come.
And you, are you ready for IPv6 ?

Popular Posts:

Flattr this!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>