Just looking at a "software" option to having a L4 load-balancer/health check
router/switch and exploring the possibility of ipfilter.

ipfilter can already do round-robin style load-balancing, but (AFAIK) it does
not do any health-checks (or otherwise does not notice a crash and keeps sending
requests to downed server).

You can also add and remove ipnat rules dynamically by using (-r). I am unsure
if it can be done without losing current sessions?

So it would not be particularly difficult to design a piece of software that
lets you define various clusters and service health-checks, and have it add in
rules when the service is deemed "up", and remove them when "down".

Has this already been done? To ad nauseum? Is there room for one more, if done
properly? (I somewhat imagine a few people have thrown together their own
sh/perl/xx scripts to do this).

I would imagine I could potentially also add rules to "log" any RST returned
from hosts in the cluster, and react when we receive these as well as the above
service checks.

Perhaps one day "weights" could be added to the round-robin lines for potential
sensing of how busy induvidual machine are, but this can not currently be done?

Nor would a content sensing L4 be feasable at the moment? (Some L4 devices let
you spread load based on content. Like with HTTP, send any image/cgi query to a
different cluster to that of static html server cluster). I think I can look at
data inside packets with some advanced ipfilter rules, but it doesn't feel very
realistic. Generally you can achieve the same seperation with some DNS work and
seperate VIP.

I wouldn't mind spending the day or so it would take me to write this, but if it
is of little use, or already been done far too many times, it could be a waste
of everyone's time.

Comments?

Lund

--
Jorgen Lundman       | <[EMAIL PROTECTED]>
Unix Administrator   | +81 (0)3 -5456-2687 ext 1017 (work)
Shibuya-ku, Tokyo    | +81 (0)90-5578-8500          (cell)
Japan                | +81 (0)3 -3375-1767          (home)



Reply via email to