IPv6 load balancing

From LVSKB
Revision as of 17:33, 6 November 2008 by JuliusVolz (Talk | contribs) (What is not supported with IPv6)

Jump to: navigation, search

IPv6 load balancing support was added to IPVS by Julius Volz and Vince Busam at Google. The kernel patches were mainly written by Julius Volz, the new ipvsadm version by Vince Busam. Please note IPv6 support is experimental and has only had limited testing.

Status

The first IPv6 support for IPVS load balancing was released in Linux kernel 2.6.28-rc3. Go to the IPVS Software Page to download the latest version of ipvsadm, which is needed to use these new features.

What works with IPv6

  • forwarding mechanisms: NAT, DR, maybe Tunnel (not fully tested yet)
  • protocols: TCP, UDP, ESP, AH (last two not tested)
  • manipulation and inspection of both IPv4 and IPv6 entries with ipvsadm
  • 6 out of 10 schedulers (10/10 in latest net-next dev tree)

What is not supported with IPv6

  • handling fragmentation or other extension headers
  • FTP application helper (can be loaded, but only operates on v4)
  • sync daemon (can be started, but only operates on v4)
  • probably some incorrect handling of ICMPv6 or other corner cases

Since fragmentation and extension headers should not occur very often, things should "mostly" work. I (Julius) tested HTTP and DNS over NAT and DR with various supported schedulers without encountering any problems. But we didn't test any exotic situations. Also, there are some TODOs in the code for things that haven't been tested or implemented yet.

Examples

Adding an IPv6 TCP service with two real servers:

ipvsadm -A -t [fc00::1]:80
ipvsadm -a -t [fc00::1]:80 -r [fc00::2]:80 -g
ipvsadm -a -t [fc00::1]:80 -r [fc00::3]:80 -g

Adding an IPv6 fwmark service with one real server:

ipvsadm -A -f 1 -6
ipvsadm -A -f 1 -6 -r [fc00::2]:80 -m