0

Background: We will be using Exchange 2010 to deliver time-sensitive email alerts to known users outside of our organization (lets call our org 'internal.loc').

The project calls for some sort of failover capability but without the use of MS Clustering services.

We have two Windows Server 2008 Standard machines. Exchange is installed on both and both are configured as Hub Trasnports. Let's call these two machines EXCH-A and EXCH-B.

The email alerts will be generated by our own custom business application. We also have another domain (let's call it alerts.foo) which will act as the sender of the alerts and the recipient of return email.

So here's a basic diagram of the mail flow:

Biz App > EXCH-A > SMTP-A > TO: user@external.com FROM: alert@alerts.foo

If EXCH-A fails, then we have EXCH-B on standby. Our biz app would first poll EXCH-A for a heartbeat. If there's no activity then our biz app would use EXCH-B to deliver the alerts.

Here a more specific description of the mail flow:

1) Biz App checks EXCH-A health.

2) If EXCH-A ok then proceed to use SMTP-A to deliver TO: user@external.com FROM: alert@alerts.foo.

3) If EXCH-A is unavailable then use EXCH-B/SMPT-B to deliver to user@external.com.

QUESTION: How do we handle the return email? Specifically in regards to Mailbox setup and DC/AD configuration.

Assume both EXCH-A and EXCH-B have mailboxes and assuming we have one internal user - alert@alerts.foo - acting as the sender and the recipient for return email.

With one machine, it's a more or less a vanilla setup. With two machines (in our poor-mans failover setup) how would we route return mail if EXCH-A is not available. Is it possible to setup up two discreet mailboxes for the user alert@alerts.foo, one on each machine? Or perhaps the two mailboxes should be "synced"?

Would be grateful for any help and, of course, I'll be happy to elaborate as needed.

VikenY
  • 15
  • 3

2 Answers2

0

You could setup a group called alert@alert.foo and bounce copies of the messages to both servers.. The hub transport should attempt to deliver the messages to both and simply leave the messages in the queue on EXCH-B until EXCH-A came back up. Since you can send using the group email address, this might be one way to do it.. There might be other ways as well.

If you were using Enterprise, Exch would handle this for you using the built in Exch Clustering services. They work quite well to handle these scenerios..

MikeAWood
  • 2,566
  • 1
  • 13
  • 13
  • Could they not use a CAS array and DAG with their current setup? – Matt Aug 08 '11 at 21:20
  • @Matt - DAGs require Windows Failover Clustering, which is only included in the Enterprise version of Windows, which the OP doesn't have. – Ben Pilbrow Aug 08 '11 at 21:21
  • Another thought assuming you are using windows for the BizApp server. You could use SMTP Virtual Server on the BizApp server and have it send mail directly instead. Then use the return address of the mail group like I mentioned above as the return address. This way it would eliminate the reliance on the Exch boxes to send mail. Of course then, you are adding an additonal mouth to feed on the BizApp server. – MikeAWood Aug 08 '11 at 21:42
  • @Matt: Ben is correct. DAGs & Failover Clustering are not available for Windows Server 2008 Standard Edition. Hence our "Poor Man's Failover". – VikenY Aug 08 '11 at 22:27
  • @Mike: Many thanks for your "Groups" suggestion. It's quite intriguing. But as I read it, it implies a third Exchange server: the Hub Transport which "should attempt to deliver the [Return] messages to both". Am wonder if I'm reading it right. As it stands there will always be one of four possible configurations: 1) EXCH-A and EXCH-B Available, 2) Only EXCH-A Available, 3) Only EXCH-B Available 4) EXCH-A and EXCH-B Not Available. I wonder if you could elaborate if there's more information I can provide. – VikenY Aug 08 '11 at 22:35
  • No, it would return it to the group email address which would point to a mailbox on each server. Your existing hub transport servers would handle delivery to both servers based on group membership. So scenerio 1,2 and 3 are taken care of. If A and B are down, the sending domain would probably (maybe) hold onto the NDRs until one of the servers came back online. Then again, if both servers are off, something would have to accept mail for your domain in order to not loose emails. – MikeAWood Aug 08 '11 at 22:50
  • Another option might be to use an outside mail service like Postini or MXLogic to hang onto your mail in a mail queue until your server comes back online. The benefit here would be a you could use a single server and take it offline as needed and delivery would resume when the server came back online. Postini also allows you to view messages in the queue if needed. (No, I don't work for Postini, but I recommend using it to all my IT buddies). – MikeAWood Aug 08 '11 at 22:52
0

I personally would leverage a TCP Load balancing coupled with Database Availability Groups, something similar like using HAProxy to leverage the SMTP load balancing which would allow you to refine this failover pretty far to meet your needs.

This should give you a "poor" man's failover solution that you are looking for.

Eric Fouarge
  • 11
  • 1
  • 2
  • The OP explicitly states they only have Windows Server 2008 Standard edition, which doesn't include failover clustering, so rules out a DAG. – Ben Pilbrow Aug 08 '11 at 21:14