LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: load balancing between firewall/vpn boxes

To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: load balancing between firewall/vpn boxes
From: Matthias Weidle <matt@xxxxxx>
Date: Tue, 30 Jan 2001 13:14:27 +0100

--On Monday, January 29, 2001 11:06:19 AM -0500 Joseph Mack <mack.joseph@xxxxxxx> wrote:


(This isn't neccessarily a good solution, but it's a first step).
Howabout: each fw box also does NAT. Packets coming out of each fw box
have the IP on the inside of the fw box as the source addr.
(These fw boxes are going to be fairly busy CPU wise).
You could then use a regular (non martian) VS-DR director for DR-2 and the
real-servers
for LVS-2 (eg host B) would only have 3 host routes (to the 3 fws, which
are the only machines they know about, since they are only getting
packets with src_addr of the fw machines).

I assume changing the IP's on the packets is going to mess up the key
exchange a bit. ;-\

yes, absolutely. doing NAT is no option at all since it would break the VPN stuff.

if the src MAC address of the incoming packet is not any of the
configured fw boxes, then the packet came from the attached internal LAN
and a load balancing decision has to be made  if there is NOT yet an
entry in the connection tracking table. if we already got a matching
entry (same src and dst ips) we have to use the already associated fw
box for this connection (means forwarding the packet for further
processing to the MAC of the fw box).

are you saying -
packets from the local LAN are processed by the LVS in the normal way
(ie without consideration of fw boxes etc)

no, i think you got me wrong on that.

1. for the communicating hosts A and B the number of involved fw boxes is completely transparent. they don't know that there is a load balancing mechanism between them. host B on the local LAN only knows its default GW for sending packets to the outside: this is the VIP of the fw cluster (i.e. the VIP on DR2 = VIP2). host A on the other hand knows that there is something between A and B whis has to be used to establish the secure tunnel: this is VIP1 (the VIP of the fw cluster on DR1).

2. since the fw boxes don't share any key information we have to go sure that all packets for a particular connection between A and B only travel over exactly _one_ fw box (this includes of course both directions A->B and B->A).

3. the only instances which know about the involved fw box for the communication between A and B are the two LVS directors DR1 and DR2. for both DR's i would chose the persistant mode, so that a load balancing decision (i.e. which fw box to use) has to be made only for the very first packet from A to B (this happens on DR1). all the following packets will be just forwarded to the choosen fw box. DR2 doesn't do any load balancing for incoming traffic from A to B - it only has to remember which fw box the packet came from (i.e. which SRC MAC the packet had), so that the response traffic from B to A can flow over the same fw box. for connections initiated on host B the mechanism works the other way round. that means DR2 makes a load balancing decision and DR1 has to remember the fw box the packet arrived from.



as i understand the LVS for now there is not any mechanism already included which can handle the response traffic the way i do need it in my specific application. so what i do need to know is whether there are already similar mechanisms (maybe for LVS-NAT) which do inspect those return packets and how much effort you guys think it would take to include such behaviour for that special case of LVS-DR (if at all possible).


best regards,
-- matt.




<Prev in Thread] Current Thread [Next in Thread>