Microsoft Exchange 2000 Infrastructure Design: Co-existence, Migration, and Connectivity

Before we discuss Exchange 2000 routing and connectivity, let's look at the way routing was handled in the earlier versions of the product. We've mentioned that X.400 was the transport protocol used in earlier versions of Exchange, but how did that transport service determine how to route messages through its network? The algorithm for prior versions of Exchange was based on a distance vector routing algorithm. Specifically, pre-Exchange 2000 systems used the Gateway Address Resolution Table (GWART) to determine routing. This routing approach was flawed at the first release of Exchange 4.0 because of its use of distance vector routing. Distance vector routing is susceptible to routing loops in certain cases and these surfaced for many customers with early versions of Exchange. In fact, customers went through a series of "hacks" from Microsoft to fix various routing problems. The initial patches fixed message looping. Once that was fixed, many customers found out that looping wasn't their only problem. The other major issue was dubbed the "ping-pong" effect. This occurred when a route was tried, failed, another path was tried, failed, and then the message was resubmitted to the original path. So, if you were actually watching the message flow, it was like watching a Ping-Pong or tennis match back and forth, back and forth between servers. Needless to say, other less than optimal routing issues showed up with Exchange 5.5, and it was time to move forward with a better algorithm. Being the bright guys that they are, Microsoft...