Home ~ Locutus ~ Projects ~ Chat ~ IPv6 ~ Looking Glass ~ DNS Pollution ~ VPS ~ Downloads ~ Wallpapers ~ Links ~ Contact


Hosting Index :


Setting up IPv6 on Xen, KVM and OpenVZ

Some pointers

Hosting providers



There are different types of hosting, shared hosting, a buyed hosting plan, dedicated server, free hosting... but also a VPS. A VPS is short for Virtual Private Server. Virtual Private Serverr is a marketing term used by Internet hosting services to refer to a virtual machine for use exclusively by an individual customer of the service. The term is used to emphasize that the virtual machine, although running in software on the same physical computer as other customers' virtual machines, is functionally equivalent to a separate physical computer, is dedicated to the individual customer's needs, has the privacy of a separate physical computer, and can be configured to run as a server computer (i.e. to run server software). The term Virtual Dedicated Server or VDS is used less often for the same concept. The practice of partitioning a single server so that it appears as multiple servers has long been common practice on mainframe computers and mid-range computers. It has become more prevalent with the development of virtualization software and technologies for microcomputers.

The physical server typically runs a hypervisor which is tasked with creating, destroying, and managing the resources of "guest" operating systems, or virtual machines. These guest operating systems are allocated a share of resources of the physical server, typically in a manner in which the guest is not aware of any other physical resources save for those allocated to it by the hypervisor.

The Guest system may be fully virtualized, paravirtualized, or a hybrid of the two.

In a fully virtualized environment, the guest is presented with an emulated or virtualized set of hardware and is unaware that this hardware is not strictly physical. The hypervisor in this case must translate, map, and convert requests from the guest system into the appropriate resource requests on the host, resulting in significant overhead. Almost all systems can be virtualized using this method, as it requires no modification of the operating system, however a CPU supporting virtualization is required for most hypervisors that perform full virtualization.

In a paravirtualized environment, the guest is aware of the hypervisor and interfaces directly with the host system's resources, with the hypervisor implementing real-time access control and resource allocation. This results in near-native performance since the guest sees the same hardware as the host and can thus communicate with it natively. UNIX-like systems, such as Linux, some variants of BSD, Plan9, and OpenSolaris are currently known to support this method of virtualization. However, installing operating systems as paravirtualized guests tends to require more knowledge about the operating system in order to have it use special hypervisor-aware kernels and devices.

Some examples of paravirtualization-capable hypervisors are Xen, Virtuozzo, Vserver, and OpenVZ (which is the open source and development version of Parallels Virtuozzo Containers).

Hybrid or partial paravirtualization, is full virtualization, but in which the guest uses paravirtualized drivers for key components such as Networking and Disk I/O, resulting in greatly increased I/O performance. As such, it is a common solution for operating systems which cannot be modified (for various reasons) to support paravirtualization.

One example of a hybrid hypervisor is Kernel-based Virtual Machine (KVM).

Virtual private servers bridge the gap between shared web hosting services and dedicated hosting services, giving independence from other customers of the VPS service in software terms but at less cost than a physical dedicated server. As a VPS runs its own copy of its operating system, customers have superuser-level access to that operating system instance, and can install almost any software that runs on the OS. Certain software does not run well in a virtualized environment, including firewalls, anti-virus clients, and indeed virtualizers themselves; some VPS providers place further restrictions, but they are generally lax compared to those in shared hosting environments. Due to the number of virtualization clients typically running on a single machine, a VPS generally has limited processor time, RAM, and disk space.

Advantages of VPS Hosting

More information about XEN vs OpenVZ.


Setting up IPv6 on Xen, KVM and OpenVZ:

This example is for debian 5 with ipv6 module enabled and similar linux versions.

On Xen & KVM:

sauron:~# pico /etc/network/interfaces

auto ipv6
iface ipv6 inet6 v4tunnel
address <YOUR IPV6>
endpoint <POP IPV4>
ttl 64
up ip link set mtu 1280 dev $IFACE
up ip route add default via <POP IPV6> dev $IFACE
up ip addr add dev $IFACE <YOUR SECOND IPV6> sauron:~# ifup ipv6 sauron:~# traceroute6 www.sixxs.net
traceroute to www.sixxs.net (2001:960:800::2), 30 hops max, 40 byte packets
1 gw-1084.bru-01.be.sixxs.net (2001:6f8:202:43b::1) 10.915 ms 11.897 ms 11.878 ms
2 ge0-1-321.cr4.gdbru.be.easynet.net (2001:6f8:200:1003::1) 12.991 ms 13.925 ms 13.907 ms
3 ge3-5.br11.gdbru.be.easynet.net (2001:6f8:200:8::2) 13.876 ms 14.923 ms 14.909 ms
4 2001:6f8:1:2:87:86:71:168 (2001:6f8:1:2:87:86:71:168) 13.794 ms * *
5 2001:6f8:1:0:87:86:77:51 (2001:6f8:1:0:87:86:77:51) 13.731 ms * *
6 2001:6f8:1:0:87:86:77:53 (2001:6f8:1:0:87:86:77:53) 13.662 ms * *
7 2001:6f8:1:2:87:86:77:55 (2001:6f8:1:2:87:86:77:55) 15.875 ms * *
8 2001:6f8:1:0:87:86:77:69 (2001:6f8:1:0:87:86:77:69) 16.810 ms * *
9 amsix.pe01.gs.ipv6.network.scarlet.nl (2001:7f8:1::a501:2634:2) 17.000 ms 16.979 ms 16.342 ms
10 ge-1-3-0.pe02.intx.ipv6.network.scarlet.nl (2001:960:226::134) 18.131 ms 16.673 ms 16.761 ms
11 broker04.ams.nl.sixxs.net (2001:960:800::2) 15.505 ms 15.477 ms 15.461 ms

On OpenVZ:

For IPv6 on OpenVZ to work, TUN/TAP and net_admin have to be enabled. Ask your provider to do this.

balrog:~# wget http://tb-tun.googlecode.com/files/tb-tun_r18.tar.gz
balrog:~# tar xvfz tb-tun_r18.tar.gz
balrog:~# gcc tb_userspace.c -l pthread -o tb_userspace
balrog:~# setsid /root/tb_userspace ipv6 <POP IPV4> <YOUR IPV4> sit > /dev/null &
balrog:~# ifconfig ipv6 up
balrog:~# ifconfig ipv6 inet6 add <YOUR IPV6> balrog:~# ifconfig ipv6 mtu 1480
balrog:~# route -A inet6 add ::/0 dev ipv6 balrog:~# traceroute6 www.isc.org
traceroute to www.isc.org (2001:4f8:0:2::d), 30 hops max, 40 byte packets
1 locutus-3.tunnel.tserv12.mia1.ipv6.he.net (2001:470:4:417::1) 36.767 ms 37.451 ms 36.450 ms
2 gige-g2-3.core1.mia1.he.net (2001:470:0:8c::1) 37.381 ms 37.344 ms 37.323 ms
3 10gigabitethernet4-3.core1.atl1.he.net (2001:470:0:a6::2) 51.010 ms 51.018 ms 51.099 ms
4 2001:470:0:ce::2 (2001:470:0:ce::2) 50.947 ms 50.928 ms 50.351 ms
5 iana.r1.atl1.isc.org (2001:500:61:6::1) 50.354 ms 50.336 ms 51.717 ms
6 int-0-5-0-1.r1.pao1.isc.org (2001:4f8:0:1::49:1) 122.645 ms 123.174 ms 120.461 ms
7 www.isc.org (2001:4f8:0:2::d) 119.032 ms 119.025 ms 119.005 ms

On this wordpress blog, you can view a newer and maybe beter way to enable IPv6 on OpenVZ containers: http://www.cybermilitia.net

If you need help, contact me.


Some pointers ...

I personally prefer Xen or KVM, no easy possibility of overbooking of RAM and HDD space (Some providers overbook their RAM and HDD, an example: The physical server has 4 GB ram, the provider gives five customers 1 GB RAM, 5 times 1 GB is not 4 GB RAM, with OpenVZ, and some others it is possible). Xen & KVM will let you install a IPv6 tunnel very easy. Ask if there is native IPv6 available.

There are many providers that offer VPS, make sure you do not choose a provider that quickly wants to make money, only to disappear shortly thereafter, google arround, look on forums for there reputation. Choose a provider that already exists for some time. On www.webhostingtalk.com you can find many experiences and reviews of various providers, directly from there customers.

Buy a VPS that suits you, for a simple website, you do not need a super server. With little RAM, HDD and enough bandwidth you can do a lot. These kind of small Virtual Private Servers are called low-end boxes. Good low-end boxes can be found at www.lowendbox.com.

Use the correct operating system, if you don't need a 64bit OS, don't install it, but use a 32bit OS. The same software u use on a 64bit server, will use less resources on 32bit. Tweak the software you are going to use, search for alternatives that use less (for example: replace OpenSSH with dropbear SSH, use lighttpd or nginx instead of apache, djbdns or MaraDNS instead of BIND9, tweak mysql, php,... to save resources).

If you're an IRC user, be warned that most providers don't allow irc applications on there servers. Ask them if they allow it, this is usually writen in the AUP (Acceptable use policy).


Below is a list of providers that I have used and tested (or still use):

You may always contact me for advice!

Data here has been compiled from various sites.
No copyright infringement intended.