README of Virtual Server Patch for Linux
--------------------------------------------------------------------

Virtual Server Patch - Version 0.9 - May 1, 1999

Copyright (c) 1998,1999 by Wensong Zhang.
This is free software.  See below for details.

The ippfvs is port forwarding & virtual server program in Linux kernel,
which can be used to build a high-performance and highly available
server. Check out ippfvs's home page (Linux Virtual Server Project)
on the World Wide Web
	http://proxy.iinchina.net/~wensong/ippfvs/
for the most recent information and original sources about ippfvs and
recent kernel(if any).

We now call the Linux box running ippfvs LinuxDirector. Thank 
Robert Thomas <rob@rpi.net.au> for this name, I love it. :-)

This patch (Version 0.9) is for the Linux kernel 2.0.36. This is the 3rd
final beta version.:-) If I hear from users that it is stable, it will
be jumped to the verstion 1.0. So, if you make virtual server work
for you, give me a message.:-) See the ChangeLog for how the code 
has been improved and what new features it has now.

To rebuild a Linux kernel with virtual server support, first get a clean
copy of the Linux kernel source of the right version and apply the patch
to the kernel. The commands can be as follows: 
	cd /usr/src/linux
	cat <path-name>/patch-vs-2.0.36 | patch -p1 
Then make sure the following kernel compile options at least are selected
via "make menuconfig" or "make xconfig".

Kernel Compile Options:

Code maturity level options ---
	[*] Prompt for development and/or incomplete code/drivers
Networking options ---
        [*] Network firewalls
        ....
        [*] IP: forwarding/gatewaying
        ....
        [*] IP: firewalling
        ....
        [*] IP: masquerading
        ....
        [*] IP: ippfvs(LinuxDirector) masquerading (EXPERIMENTAL)
Virtual server request dispatching technique---
        ( ) VS-NAT
	(X) VS-Tunneling
	( ) VS-DRouting
Virtual server scheduling algorithm---
	(X) WeightedRoundRobin
	( ) LeastConnection
	( ) WeightedLeastConnection

	[ ] IP: enabling ippfvs with the local node feature

Finally, rebuild the kernel via "make dep; make clean; make zImage". Once
you have your kernel properly built, update your system kernel and reboot.

Note that there are three request dispatching techniques existing together
in the LinuxDirector, and there are also three scheduling algorithms
implemented. Both the VS via IP Tunneling and the VS via Direct Routing 
can greatly increase the scalability of virtual server. If the VS-Tunneling
is selected, it requires that all the servers must be configured with 
	ifconfig tunl0 <Virtual IP Address> netmask 255.255.255.255
If the VS-DRouting is chosen, it requires that all servers must be configured
with the following command:
	ifconfig lo:0 <Virtual IP Address> netmask 255.255.255.255
The localnode feature can make that the LinuxDiretor can not only redirect
packets to other servers, but also process packets locally. Thank Peter Kese 
<peter.kese@ijs.si> for the idea of "Two node Virtual Server"

Please visit the URL above for how to build an appropriate kernel for you
and how to apply it.

There is a mailing list for virtual server. You are welcome to talk about
building the virtual server kernel, using the virtual server and making
the virtual server better there. :-) To subscribe, send a message to
	majordomo@iinchina.net
with the body of "subscribe linux-virtualserver".


Wensong Zhang <wensong@iinchina.net>


--------------------------------------------------------------------

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

--------------------------------------------------------------------
