We currently migrate to MediaWiki from our old installation, but not all content has been migrated yet. Take a look at the Wiki Team page for instructions how to help or browse through our new wiki at wiki.linux-vserver.org to find the information already migrated.

Private networking

Lets imagine, you have only one external IP -- $EXTIP.

You want to have several vservers running without worrying about port overlapping.

Example:

Two vservers run a default webserver, running on port 80. If each "guest" vserver shares an IP with the host, then the two webservers will confict.

One solution is:

This is how to set it up:

1. Set up dummy0 interface on the parent host

# /etc/network/interfaces on a Debian box, 
# configure on other distros with your preferred way
auto dummy0
iface dummy0 inet static
    address 192.168.1.250
    netmask 255.255.255.0

2. Set up each guest vserver:

cd /etc/vservers/$VSERVER/interfaces/0
echo dummy0 > dev
echo 192.168.1.1 > ip
echo 1 > name
echo 24 > prefix

I suggest you use value of name equal to last digit of the IP -- for easy separation.

3. Now, configure the host to act as a router.

3a: For internal packets going outside, pretend each packet came from our external IP:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d ! 192.168.1.0/24 -j SNAT\
--to-source $EXTIP

3b: For each service that runs on a vserver, map it to an external port. Vserver local address $VHOST and port $INTPORT you select one external port $EXTPORT and run the following:

iptables -t nat -A PREROUTING -s ! 192.168.1.0/24 -m tcp -p tcp\
--dport $EXTPORT -j DNAT --to-destination $VHOST:$INTPORT

That's all!

Try ping pool.ntp.org from your vserver -- it should ping fine.

Try to connect to your $EXTIP:$EXTPORT (from another external host) -- you will successfully connect to service running on a guest vserver.