Você deve olhar para o HAProxy. O HAProxy geralmente é executado no modo HTTP, mas também pode manipular conexões TCP brutas. Ele suporta o balanceamento de carga entre servidores e pode usar o Heartbeat para detectar se uma instância está inativa.
Se você configurar precisa ser totalmente transparente (servidores obtendo os IPs de origem versus o do servidor HAProxy), você pode ter que corrigir seu kernal Linux para TProxy ou encontrar uma distribuição Linux que suporte TProxy dentro do kernel ou como um módulo .
Essa é a melhor solução de código aberto. Se você precisa de algo mais abrangente do que isso, você teria que olhar para ofertas comerciais como Citrix Netscaler para BigIP da F5.