firewall sandwich load balancing (fwd)

Roberto Nibali ratz at drugphish.ch
Fri Jul 7 20:34:14 BST 2006


>> how do they do that?
> 
> I was assuming that LVS would do this, I would like to have the options of
> round robin
> least connections
> failover (send it to the primary unless it's down, then send to the 
> backup, it's not load balancing but it makes troubleshooting much easier)

Have VRRP running on the internet-side of your network path with a VSR 
using persistent binding and RR scheduler. On the outgoing path of the 
packet filters you won't exactly need a load balancer, the routing takes 
care of it.

>> Here's my take on what you've got.
>>
>>           A
>>          / \
>>        FW1 FW2
>>          \ /
>>           B
>>
>> Machinew A and B want to talk. They can talk through either of two 
>> routes, both of which contain firewalls. The packets of interest are 
>> allowed through the firewalls. As far as A and B are concerned the 
>> firewalls aren't there. The rules of IP routing are such that any 
>> packet between A and B can pick either route. You want packets between 
>> A and B to choose a route dependant on the route chosen by previously 
>> transmitted packets.
> 
> right

... at least for a session. Which might put you into the suboptimal 
position of the different session timing expiration regarding TCP 
sessions between what the LB thinks is a session and what the PF thinks 
is a session.

>> o firewalls are designed to operate in a spot where all traffic goes 
>> through them. They can then do their accounting
>> etc. Firewalls are not designed (at least yet) to cooperate.
>> They need to be fast, they can't be talking to other
>> firewalls to make decisions on what to do with a packet.
>>
>> o your design is being wagged by the tail of the firewall. The 
>> firewall is supposed to help you. Your firewall
>> doesn't work in the current setup. You could get one
>> that does, presumably by turning off stateful matching.
>>
>> o you could rewrite IP routing.
> 
> or I can go and buy a commercial load balancing appliance (radware, 
> BigIP, nortel, foundry, etc) that supports this feature. Just about all 
> of them that aren't based on LVS do support this.

And they also do not work correctly, as I've seen in numerous ways. Just 
right now I'm debugging an active/hotstandby firewall cluster system 
implemented using 2208 NAS from Nortel. Same issue with F5 from BigIP, 
although their session synchronisation is somewhat improved ... until 
you go up to 1Gbit/s of filtering. I've never used radware, and I reckon 
we don't have to talk about Cisco :).

Are you talking about a setup as described for example in chapter 19 of 
this:

http://www116.nortelnetworks.com/docs/bvdoc/alteon/appl_switch/315394-J.00.pdf

> I am trying to find an option that doesn't have the firewall being a 
> single point of failure. yes, if these were linux firewalls I could use 
> heartbeat (linux-ha) to provide failover, but that can't load balance, 
> and it doesn't work if I use commercial firewalls instead of linux

If you buy a commercial firewall, you will most probably have some sort 
of built-in failover.

> Oh well, I was hopeing that LVS would support this now (it didn't in 
> 2001 when the first post happened). at least now it's in the list

If back then it didn't support it, I would go as far as to stating that 
it is not possible now either. I would say that all attempts to load 
balance firewalls (be it based on commercial or OSS) using LVS ends up 
being a hackerish setup which is prone to weird failures or features. 
This is just my opinion, but then again I've intensively worked on the 
LVS code and also wrote a packet filter :).

> archives that LVS will not support this with a later date then the 'yes 
> it does, just search the archives'. hopefully this will save someone 
> else time hunting for it.

Fair enough.

Regards,
Roberto Nibali, ratz
-- 
echo 
'[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq' | dc

Search lvs-users Archives
Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort

More information about the lvs-users mailing list