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