With Windows, we can setup load balancing for arbitrary IP services just by installing NLB and selecting which nodes we want in the cluster. It does some MAC address changing, then has algorithms to decide which node handles an incoming request.
Is there a production grade equivalent for Linux? I don't want something that requires a front server to sit physically (network-wise) in front of the machines (like certain hardware LBs do, and Linux Virtual Server does, AFAIK). I want something that'll act similar to Microsoft's NLB -- pick N nodes, they all listen on the same IP, and divvy up the incoming requests.