Is internet ready for IPv6?

No, it’s not. Why?

I did an experiment as I was curious how various internet sites and service providers are ready for IPv6 by setting up a computer which supports IPv6 only. That means all sites which were not available through IPv6 just didn’t work.

It was pretty much every site that didn’t work, with few exceptions. Google, facebook and most of linux webpages (like work just fine. Except for these, even most major websites such as twitter don’t support IPv6 yet, being completely inaccessible without IPv4 protocol.

Here is a small list of few examples

Major websites that support IPv6:


Major websites that can’t be accessed without IPv4:


 What is IPv6 and why should servers support it? From wikipedia:

Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communications protocol that provides an identification and location system for computers on networks and routes traffic across the Internet. IPv6 was developed by the Internet Engineering Task Force (IETF) to deal with the long-anticipated problem of IPv4 address exhaustion. IPv6 is intended to replace IPv4.

In a nutshell: it’s a new version of internet protocol that will replace IPv4 someday, the main reason for it is the low number of IPv4 addresses, because its protocol was invented in 1980 by engineers who never expected internet to grow up into this size. IPv4 supports less than 4,294,967,296 network addresses, which may look as enough to some, but is actually very small number, given a number of network enabled devices out there (every modern TV, mobile phone or PC).

It’s totally possible to connect many more devices to IPv4 based internet, but only as long as they are grouped behind NAT servers with shared IP addresses. This will work for regular users who don’t need much from internet, but definitely will not for advanced users who want to use internet in order to provide some services to others, or those who want their devices to be easily reachable from anywhere through internet.

Right now, public IPv4 address is something that actually has some value. You have to pay for it, if you want to have it. IPv6 addresses are so cheap that most of ISP providers would give you whole range of public IPv6 addresses for free.

That means that sooner or later various people will start up services (web servers, game servers and so on) that would be available only over IPv6 because they would need to use public address(es), but they wouldn’t want to pay for them, because they don’t have to.

These IPv6 only servers would not just be available only to people with IPv6, but they would also be only able to connect to machines (and other servers) that support only IPv6. And that is the reason why your system should be IPv6 ready.

How do I check if my website works on IPv6?

It’s easy, just run this ipv6 test

If it doesn’t, don’t worry. Anything like “switchover” to IPv6 isn’t going to happen any time soon, so there is still plenty of time. Regular users will (have to) keep using IPv4 for a very long time…

How to setup debian build environment for both amd64 and x86 platform

This article describes how to setup environment in which you can build both amd64 as well x86 .deb packages. It’s assuming that you already have working debian on amd64 kernel.

First step: install debootstrap

sudo apt-get install debootstrap chroot
sudo mkdir /opt/jessie-386
sudo debootstrap --arch i386 jessie /opt/jessie-386/

Now you should have fully working x86 debian in /opt/jessie-386

Second step: make a script to switch into i386 version

Create a script anywhere you like, for example /bin/switch_32 with following content:

sudo mount -o bind /proc $r/proc
sudo mount -o bind /dev $r/dev
sudo mount -o bind /sys $r/sys
sudo chroot $r
echo "Unmounting the filesystems from x86 system"
sudo umount $r/sys
sudo umount $r/proc
sudo umount $r/dev

Then make it executable. Now running it would switch you into fully working debian x86 in which you can install all required packages using apt-get and build your x86 packages.