Lets think, that you have only one external IP -- $EXTIP.
And you want to have several vservers runned without think about port overlapping. The one solution is: * You put all vservers into "virtual lan", say 192.168.1.x * Every vsever have it own IP * Control port forwarding on host like on real server. |
Lets imagine, you have only one external IP -- $EXTIP.
You want to have several vservers running without worrying about port overlapping. |
So, what you doing:
1. Set up dummy0 iface on host |
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: * All vservers are contained in a "virtual lan", say 192.168.1.x * Each vserver has its own IP * Control port forwarding on "parent" host. That is, run a router. This is how to set it up: 1. Set up dummy0 interface on the parent host |
# /etc/network/interfaces on debian box, |
# /etc/network/interfaces on a Debian box, |
2. Set up your vserver: |
2. Set up each guest vserver: |
# Contents of /etc/vservers/<vserver>/interface/0/
dev: dummy0 ip: 192.168.1.1 name: 1 prefix: 24 |
cd /etc/vservers/$VSERVER/interfaces/0
echo dummy0 > dev echo 192.168.1.1 > ip echo 1 > name echo 24 > prefix |
I suggest you to use value of name equal to last digit of ip -- for easy separation
3. Now, configure firewall on server: |
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: |
And for each service that runned on vhosts local address $VHOST and port $INTPORT you select one external port $EXTPORT and map it by running |
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: |
Thats all! |
That's all! |
Try to connect to your $EXTIP:$EXTPORT (from other server) -- you will successfully connect to service at your vserver. |
Try to connect to your $EXTIP:$EXTPORT (from another external host) -- you will successfully connect to service running on a guest vserver. |