We are using IIS SMTP to send out Email for a web application. If I stand up another server what would be the best way to load balance these internally so they both get used and if one goes down the other would keep going? From my understanding simply creating another Windows DNS record would not solve the issue due to caching. We are using SonicWall firewalls which can do external load balancing, I'm not sure if they could be used to do the same internally or if something else could be done, maybe NLB?

  • If your sonicwall can do external loadbalancing it can probably also do internal loadbalancing and I would go with that – HBruijn Feb 28 at 7:26

Are we speaking outgoing mail only here? (Incoming mail comes with an altogether much more complicated set of issues to solve.)

A TCP ("Layer 4") load balancer would solve your problem nicely. Perhaps, as @HBruijn mentioned, this may be possible using your existing SonicWalls. Otherwise my personally preferred tool is HAProxy (which does both Layer 7 and Layer 4 LB).

Windows' own NLB feature is, de facto, a Layer 4 LB too, so that's a possibility if you want to solve the problem with what you already have.

(Note, though, that if you whitelist senders based on their IP address rather than using authentication, that whitelist must exist and be managed on the LB if you use a separate one, unless the SMTP server respects the Proxy protocol. Otherwise the SMTP server will only see the currently active LB node as the originator, which kind of defeats the purpose of a whitelist.)

  • I am primarily concerned about outgoing and we are actually using NLB for something else so I think that will work, I am in the process of setting it up to test. As for inbound I can handle that with our firewall to load balance. – Thorin Feb 28 at 19:04
  • I went with NLB and it is working well, thanks. – Thorin Mar 13 at 17:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.