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:66.228.45.214 Bcast:66.228.45.255 Mask:255.255.255.0 inet6 addr: 2600:3c03::f03c:91ff:fe93:b7b3/64 Scope:Global inet6 addr: fe80::f03c:91ff:fe93:b7b3/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 |
The IPv6 address has been given automatically, all done with a couples of clicks and a reboot. Amazing.
Nginx
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.
Conclusion
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:
- None Found