This page has some information on the current state of LVS/IPVS IPv6 support which we worked on at Google and which is now in Linux mainline. The kernel patches were mainly written by Julius Volz, the new ipvsadm version by Vince Busam. Please note that these patches are experimental and have only had limited testing.
The IPVS IPv6 patches went into Linux mainline in October 2008. The first stable release expected to contain the IPv6 support is Linux 2.6.28.
Note: To activate IPv6 support for IPVS, CONFIG_IP_VS_IPV6 (Networking support -> Networking options -> Netfilter -> IP virtual server support -> IPv6 support for IPVS) needs to be set to Y!
To use the new kernel features, a new version of ipvsadm is required. You may get the latest version from subversion:
svn co http://svn.linuxvirtualserver.org/repos/ipvsadm/trunk/ ipvsadm
or download it from here:
http://sixpak.org/vince/google/ipvsadm/
To compile the new ipvsadm, you will need at least version 1.1 of libnl-dev.
Some ipvsadm IPv6 examples:
# Add IPv6 TCP service with one real server:
ipvsadm -A -t [fc00::1]:80
ipvsadm -a -t [fc00::1]:80 -r [fc00::2]:80 -g
# Add an IPv6 fwmark service
ipvsadm -A -f 1 -6
Since fragmentation and extension headers should not occur very often, things should "mostly" work. I 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.