I am currently trying to find a way to Load Balance our 4 Mail Gateways ( Running Mail Cleaner). I was able to bring up HAProxy and use tcp mode to load balance without issue. The only real problem being my Source IP is always the HAProxy server, so some of my mail filter checks are useless now because I can not check if the mail is coming from a known bad relay. 

Is their any FLOSS Software out that could be used to handle this type of situation? I know HAProxy has this ability if I have the Mail Gateways use it as the Default Gateway, and compile some additional modules and configure iptables. I just dont want to start down that path if I am just missing an easier solution.