IPVS

IPVS (IP Virtual Server) implements transport-layer load balancing inside the Linux kernel, so called Layer-4 switching. IPVS running on a host acts as a load balancer at the front of a cluster of real servers, it can direct requests for TCP/UDP based services to the real servers, and makes services of the real servers to appear as a virtual service on a single IP address.

The IP Virtual Server Netfilter module for kernel 2.6

Status: The ipvs 1.2.1 is the latest stable version, it is in the official kernel 2.6.10 released on December 24, 2004.

IPv6 support for IPVS was included in the Linux kernel 2.6.28-rc3 on November 2, 2008. See the wiki page of IPv6 load balancing for the status of IPv6 support.

Go to http://kernel.org/ to get a clean copy of kernel 2.6.10 or later, and download the ipvsadm utility at https://www.kernel.org/pub/linux/utils/kernel/ipvsadm/ to administer the IP Virtual Server inside the Linux kernel. See the article Compiling ipvsadm on different Linux distributions at wiki.

Your testings, comments and bug report/fixes are very welcome. The ChangeLog is available here.

The IP Virtual Server Netfilter module for kernel 2.5

Status: The ipvs 1.1.x is development version for kernel 2.5.

Your testings, comments and bug report/fixes are very welcome. The ChangeLog is available here.

If you like a single kernel patch, you don't need to download the tar ball, just download a kernel patch and a separate ipvsadm srpm here.

The 1.1.x development branch

The IP Virtual Server Netfilter module for kernel 2.4

Status: If you want to ipvs for kernel 2.4 in production, we highly recommend you to use stable version 1.0.x. The version 0.9.x was for development, and 0.8.x was old stable version.

The ipvs 1.0.12 was in the offical Linux kernel 2.4.28 released on November 17, 2004. It has one bug fix.

Your testings, comments and bug report/fixes are very welcome. The ChangeLog is available here.

If you want to use ipvs 1.0.12, go to http://kernel.org/ to download a clean copy of kernel 2.4.28 or later, and download the ipvsadm utility here to administer the IP Virtual Server inside the Linux kernel. See the article Compiling ipvsadm on different Linux distributions at wiki.

If you like a single kernel patch, you don't need to download the tar ball, just download a kernel patch and a separate ipvsadm srpm here.

The 1.0.x stable branch

The 0.9.x development branch

The 0.8.x stable branch

The old development versions

The IP Virtual Server patch for kernel 2.2

The IP Virtual Server patch status: The IP Virtual Server patch version 1.0.8 is a stable version for production. The virtual server patch v0.9.13+ for kernel 2.2 are also stable, but may be lack of some features. The ChangeLog is available here.

  • The IPVS patch for Linux 2.2.19 - Version 1.0.8 - May 14, 2001
  • The IPVS patch for Linux 2.2.19 - Version 1.0.7 - April 19, 2001
  • The IPVS patch for Linux 2.2.19 - Version 1.0.6 - March 27, 2001
  • The IPVS patch for Linux 2.2.18 - Version 1.0.5 - February 8, 2001
  • The IPVS patch for Linux 2.2.18 - Version 1.0.4 - February 2, 2001
  • The IPVS patch for Linux 2.2.18 - Version 1.0.3 - December 30, 2000
  • The IPVS patch for Linux 2.2.18 - Version 1.0.2 - December 17, 2000
  • The IPVS patch for Linux 2.2.17 - Version 1.0.2 - December 3, 2000
  • The IPVS patch for Linux 2.2.17 - Version 1.0.1 - November 23, 2000
  • The IPVS patch for Linux 2.2.17 - Version 1.0.0 - November 16, 2000
  • The IPVS patch for Linux 2.2.17 - Version 1.0.0beta1 - November 2, 2000
  • The IPVS patch for Linux 2.2.17 - Version 0.9.16 - September 5, 2000
  • The IPVS patch for Linux 2.2.16 - Version 0.9.15 - June 28, 2000
  • The IPVS patch for Linux 2.2.16 - Version 0.9.14 - June 17, 2000
  • The IPVS patch for Linux 2.2.15 - Version 0.9.13 - May 25, 2000
  • The IPVS patch for Linux 2.2.15 - Version 0.9.12 - May 10, 2000
  • The IPVS patch for Linux 2.2.14 - Version 0.9.12 - May 2, 2000
  • The IPVS patch for Linux 2.2.14 - Version 0.9.11 - April 17, 2000
  • The IPVS patch for Linux 2.2.14 - Version 0.9.10 - April 9, 2000
    Here is the little patch to fix the bug about trash lookup and new destination for fwmark service.
  • The IPVS patch for Linux 2.2.14 - Version 0.9.9 - March 16, 2000
  • The IPVS patch for Linux 2.2.14 - Version 0.9.8 - March 13, 2000
  • The IPVS patch for Linux 2.2.14 - Version 0.9.7 - January 19, 2000
    Here is a little patch to fix negative counter bug for persistent services.
  • The IPVS patch for Linux 2.2.13 - Version 0.9.7 - December 22, 1999
  • The IPVS patch for Linux 2.2.13 - Version 0.9.6 - December 7, 1999
  • The IPVS patch for Linux 2.2.13 - Version 0.9.5 - November 28, 1999
  • The IPVS patch for Linux 2.2.13 - Version 0.9.4 - November 10, 1999
  • The IPVS patch for Linux 2.2.13 - Version 0.9.3 - November 7, 1999
  • The IPVS patch for Linux 2.2.12 - Version 0.9.2 - October 17, 1999
  • The IPVS patch for Linux 2.2.12 - Version 0.9.1 - October 6, 1999
  • The IPVS patch for Linux 2.2.12 - Version 0.9.0 - September 24, 1999
  • The IPVS patch for Linux 2.2.12 - Version 0.8.3 - September 8, 1999

The SRPMS and tar ball of ipvsadm are available for ipvs-0.9.10 (kernel 2.2) or later (already included in the ipvs tar ball)

The IPVS patch for kernel 2.0

Note that the IP virtual server patch for kernel 2.0 is a little bit old.

  • the IPVS patch for Linux 2.0 - Version 0.9 - May 1, 1999
  • the IPVS patch for Linux 2.0 - Version 0.8 - March 6, 1999

Source code via Subversion

What's Subversion? Subversion is a system for revision control, and is designed to be a modern replacement of CVS. Start at subversion.tigris.org to learn more and read the Subversion Book.

The ipvs kernel code was already included in kernel 2.4 and 2.6. The source code of ipvsadm is available via Subversion. Anyone can check out the sources via Subversion, but only certain people have the ability to check in.

To browse around or download a few individual files, click http://svn.linuxvirtualserver.org/repos/ipvsadm/.

To check out the sources, you need to be running Subversion client. For example, you can enter the following commands for checking out the latest source code of ipvsadm:

svn co http://svn.linuxvirtualserver.org/repos/ipvsadm/trunk/ ipvsadm

To check out ipvsadm source code for kernel 2.4, need to use the branch "ipvs-1-0-stable" in the Subversion checkout command.

svn co http://svn.linuxvirtualserver.org/repos/ipvsadm/branches/ipvs-1-0-stable/ ipvsadm

Once you've checked out a copy of the source tree, you can update your source tree at any time so it is in sync with the latest one by running the command:

svn update

If you make some changes of the source code, please generate the diff file and submit it to the mailing list or me for inclusion.

svn diff