On 6/21/11 8:08 AM, Ivan Pepelnjak wrote:
From the "outside" perspective, a load-balanced service implemented with one or more redundant load balancers _MUST_ look like an IPv4 _OR_ an IPv6 address (where OR is not exclusive, but AND is not strictly necessary) distributing sessions to IPv4 or IPv6 inside nodes. It _SHOULD_ be able distribute sessions arriving to an outside address (IPv4 or IPv6) to a mixed cluster of IPv4 _AND_ IPv6 addresses.
Hi, OK, we need to get out to the mailinglist next revision od RIPE-501 followup document somewhere in next week. LB spec is the thing, that is not done yet, as there are N+1 opinions (N being the number of people I talk to about this matter :) ) Are there any RFCs describing the above requirements? Question is - how "deep" we need to go with the mandatory part of the spec? As far as network is concerned, LB is a host that receives connections and magically re-distributes them to end hosts. It's not a router and it breaks end2end. How to specify that? :)
How a LB device implements its magic (L4 passthrough with NAT, L4 termination, L7 proxy, whatever other tricks) is irrelevant (and seems there are no "obvious" RFCs documenting it). What is MANDATORY is that it supports connections from IPv6 clients to IPv4 and/or IPv6 servers and from IPv4 clients to IPv4 and/or IPv6 servers (see last sentence in the previous paragraph) to enable all possible migration scenarios.
So this looks like "host" spec could be the starting point of new spec?
However, I would recommend that for 6-to-4 functionality, we _RECOMMEND_ the load balancer adheres to the RFC6146 (stateful NAT64) - we should discourage (but not forbid) vendors from doing homebrew 6-to-4 translation when a standard exists specifying how to do it.
We could put all *NAT* and L4+ stuff in optional requirements. Probably the goal is to describe IPv6 load balancer, that would work in IPv6 only environment and IPv6 only clients and servers. Am I wrong? All this "put the balancer to serve v6 clients from v4 servers" rubbish makes this task nearly impossible.
On the IPv6 protocol side, the very minimum requirement is adherence to IPv6 host behavior. Some LB designs work without significant support for routing - single inside and outside /64 with RA-generated default route on the outside - or they could support some routing protocols. Those should (in my opinion) be made _OPTIONAL_.
So, "host" with added some routing options.
Oh, and I never claimed I know anything about load balancers, so I might be totally wrong ;) Ivan
We know you ;) Cheers, /jan