Understanding Routing Components
Topic Last Modified: 2005-05-04
Routing determines how messages flow between servers within your Microsoft® Exchange organization and to users outside of your organization. For internal and external message delivery, Exchange uses routing to determine first the most efficient path and then the least expensive and available path for message delivery. Internal routing components make this determination based on the routing groups and connectors that you configure and the address spaces and costs that are associated with each path.
Routing is responsible for the following functions:
Determining the next hop (the next destination for a message en route to its final destination) based on the most efficient path.
Exchanging link state information (the status and availability of servers and connections between servers) within routing groups and between routing groups.
This topic explains how routing groups, connectors, and link state information enable efficient message delivery.
Routing components make up the topology and the routes that are used to deliver mail internally and externally. Routing relies on the following components that you define within your routing topology:
Routing groups Logical collections of servers that are used to control mail flow and public folder referrals. Routing groups share one or more physical connections. Within a routing group, all servers communicate and transfer messages directly to one another.
Connectors Designated paths between routing groups, to the Internet, or to another mail system. Each connector specifies a one-way path to another destination.
Link state information Information about routing groups, connectors, and their configurations that is used by routing to determine the most efficient delivery path for a message.
Internal routing components Internal routing components, in particular, the routing engine, that provide and update the routing topology for Exchange servers within your organization. For more information about internal routing components, see Understanding Internal Transport Components.
In its default state, Exchange Server 2003, like Exchange 2000 Server, functions as though all servers in an organization are part of a single, large routing group. Therefore, any Exchange server can send mail directly to any other Exchange server within the organization. However, in environments with special administrative requirements, varying network connectivity and geographical distribution, you can increase message flow efficiency by creating routing groups and routing group connectors in accordance with your network infrastructure and administrative requirements. By creating routing groups and routing group connectors, servers within a routing group still send messages directly to each other, but they use the routing group connector on those servers with the best network connectivity to communicate with servers in another group.
For more information about the creation of routing groups and the considerations involved, see Deployment Scenarios for Internet Connectivity.
In Exchange Server 2003 and Exchange 2000 Server, the administrative and routing functions are divided into different units:
Administrative groups define the logical administrative boundary for Exchange servers.
Routing groups define the physical routes that messages travel over the network.
If your Exchange organization is in native mode, where all servers are running Exchange 2000 Server or later, this division between administrative groups and routing groups enables you to create routing groups that span administrative groups and move servers between routing groups that exist in different administrative groups. This functionality also allows you to separate routing and administrative functions. For example, you can administer servers in two central administrative groups, placing servers from each administrative group in different routing groups, based on your network topology and usage requirements.
However, the functionality of routing groups in a mixed-mode environment, where some servers are running Exchange Server 2003 or Exchange 2000 Server while others are running Exchange Server 5.5, is different than in native mode. In mixed mode, you:
Cannot have a routing group that spans multiple administrative groups.
Cannot move servers between routing groups that exist in different administrative groups.
This situation exists because the routing topology in Exchange Server 5.5 is defined by sites—logical combinations of servers connected by a high-bandwidth reliable network. Sites provide the functionality of both the administrative group and routing group in Exchange Server 2003 and Exchange 2000 Server. This difference in routing topology limits the functionality of routing groups in a mixed-mode environment.
Connectors provide a one-way path for message flow to a specific destination. The primary connectors in Exchange Server 2003 are:
Routing group connectors Routing group connectors provide a one-way path through which messages are routed from servers in one routing group to servers in a different routing group. Routing group connectors use a Simple Mail Transfer Protocol (SMTP) connection to enable communication to servers in the connected routing group. Routing group connectors are the preferred method of connecting routing groups.
SMTP connectors SMTP connectors are used to define isolated paths for mail that is destined for the Internet or an external address or non-Exchange mail system. Using the SMTP connector to connect routing groups is neither recommended nor preferred. SMTP connectors are designed for external mail delivery.
X.400 connectors X.400 connectors are designed primarily to connect Exchange servers with other X.400 systems or servers running Exchange Server version 5.5 outside of the Exchange organization. An Exchange Server 2003 server can then send messages using the X.400 protocol over this connector.
|X.400 connectors are only available in Exchange Server 2003 Enterprise Edition.|
Each connector has an associated cost and address space or a connected routing group that is designated as the destination point for the connector. When determining the most efficient route for a message, Exchange's routing logic first examines the address space or connected routing group defined on each connector to find the destination that most closely matches the message's destination, and then routing evaluates the cost that is associated with each connector. Routing only uses costs when the defined address space or connected routing groups are the same on two connectors. The following section explains how Exchange uses this information.
Exchange Server 5.5 relied on the Gateway Address Routing Table (GWART) to determine route selection within an Exchange organization. This method uses a distance vector routing algorithm, which can be susceptible to routing loops in certain situations. Exchange Server 2003, like Exchange 2000 Server, uses a link state routing algorithm and a routing protocol to propagate link state information in the form of a link state table that is stored in memory on all Exchange 2000 Server and Exchange Server 2003 servers in the organization.
A link state algorithm provides the following advantages:
Each Exchange server can select the optimum message route at the source instead of sending messages along a route where a link (or path) is unavailable.
Messages no longer bounce back and forth between servers because each Exchange server has current information about whether alternate or redundant routes are available.
Message looping no longer occurs.
The link state table contains information about the routing topology of the entire Exchange organization and whether each connector within the topology is available (up) or unavailable (down). Additionally, the link state table contains costs and address spaces associated with each available connector. Exchange uses this information to determine the route with the lowest cost for the destination address. If a connector along the lowest cost route is unavailable, Exchange determines the best alternate route, based on cost and connector availability. Between routing groups, link state information is communicated dynamically by using the extended SMTP verb, X-LINK2STATE.
To understand how link state information and connector costs work, consider a routing topology, in which four routing groups exist: Seattle, Brussels, London, and Tokyo. The connectors exist between each routing group and are assigned costs based on the network speed and available bandwidth.
Routing topology and costs
If all connections between the routing groups are available, a server in the Seattle routing group always sends a message to the Brussels routing group by sending the message first through the London routing group. This route has a cost of 20, the lowest cost route available. But, if the bridgehead server in London is unavailable, messages originating in Seattle and destined for Brussels travel through the Tokyo routing group, which has a higher cost of 35.
An important concept to understand is that for a connector to be marked as unavailable, all bridgehead servers for this connector must be down. If you have configured your routing group connector to use the default option of Any local server can send mail over this connector, the routing group connector is always considered in service. For more information about configuring routing group connectors, see "Connecting Routing Groups" in Defining Routing Groups.
For external mail delivery, routing uses the information in the link state table to first evaluate the connector with the address space that most closely matches the destination, and then routing evaluates the cost. The following diagram illustrates a company with the following topology:
One SMTP connector with an address space of *.net and a cost of 20.
One SMTP connector with an address space of *, encompassing all external addresses and a cost of 10.
How Exchange uses address space to route mail
In this topology, when mail is sent to an external user with an e-mail address of firstname.lastname@example.org, routing first looks for a connector with an address space that most closely matches the destination of treyresearch.net. The SMTP connector with the address space of *.net most closely matches the destination, so routing uses this connector regardless of cost.
However, if mail is sent to an external user with an address of email@example.com, routing uses the SMTP connector with the address space of * because it is the closest match. Routing does not evaluate cost. If two SMTP connectors exist and both have an address space of * but each have different costs, routing uses the information in the link state table and selects the SMTP connector with the lowest cost. Routing only uses the connector with the higher cost if the lower cost connector is unavailable.
|For more information about link information and how it is propagated, see Advanced Link State Concepts.|
Routing does not fail over from a connector with a specific address space to a connector with a less specific address space. In the scenario above, if all users can use both connectors and a user attempts to send mail to a user at treyresearch.net, routing views the connector with the .net address space as its destination. If this connector is not in service or is unavailable, routing does not attempt to find a connector with a different, less restrictive address space such as * because it considers this a different destination.
However, in this same topology, assume that restrictions exist on the connector with the *.net address space, and the restriction permits only users of the sales department to send through this connector. In this situation, if this connector is not in service, routing will not reroute mail that is sent by a user in the sales department and destined to a .net address through the connector with the * address. Mail queues until the connector with the *.net address becomes available. However, users outside of the sales department are never affected when this connector becomes unavailable because their mail is always routed through the SMTP connector with the * address space.