WinRoute Explained


Letztes Änderungsdatum des Themas: 2006-02-09

By Paul Flaherty

WinRoute (Winroute.exe) is a Microsoft® Exchange Server 2003 and Exchange 2000 Server tool used to determine the link state routing information as known to the server that the information was taken from.

The WinRoute (Winroute.exe) tool connects to the link state port, TCP port 691, on a server running Exchange Server 2003 or Exchange 2000 Server and extracts the link state information for an organization. The information is a series of GUIDs that WinRoute (Winroute.exe) matches to objects in the Active Directory® directory service, connectors, and bridgehead servers, and presents in a format that can be read by people.

WinRoute (Winroute.exe) requests an organization information packet of a specific server running Exchange Server 2003 or Exchange 2000 Server and renders it in friendly tree form. This format provides a tree view of organizational topology and link state as seen by a specific Exchange Server 2003 or Exchange 2000 Server host, based on organization information packet contents.

The upper pane of the window shows the interpreted data, the lower pane shows the raw information from the link state port, and the middle pane contains the address spaces, connectors, and the respective routing groups they belong to.

To install WinRoute (Winroute.exe) with Exchange 2000 Server, run the Microsoft Exchange 2000 Server Resource Kit Setup program. You can also use the following procedure to install the tool.

Installing WinRoute (Winroute.exe)
  1. Insert the Microsoft Exchange 2000 Server Resource Kit CD and navigate to \Exreskit\Tools\Admin\WinRoute.

  2. Copy WinRoute to the \Program Files\Exchsrvr\Bin directory on your local disk.

    The following .dll files must be present in the \Exchsrvr\Bin directory. These files should be installed when you install Exchange 2000 Server:

    • Dsaccess.dll
    • Pttrace.dll
    • Exchmem.dll
WinRoute (Winroute.exe) can also be found in the \Support\Utils\i386 directory in the Exchange 2000 Server CD or at Microsoft Exchange Server WinRoute.

You can use the following procedure to start WinRoute (Winroute.exe).

Starting WinRoute
  1. Double-click WinRoute.exe.

  2. From the File menu, click New Query.

  3. Type the server name and bind options that you want to use to connect to an Exchange Server 2003 or Exchange 2000 Server-based server.

    After requesting a copy of the organizational routing table, WinRoute (Winroute.exe) uses the context of the user who is logged on, and uses Exchange Server Domain Name System (DNS) code to resolve the GUIDs contained in the routing table to a more easily viewable form. The servers are assigned _D|_S guid names in the Exchange Server DNS Resolver sink.

  4. If necessary, use Bind Options to specify a specific Active Directory domain controller or different credentials.

  5. After you load a routing table from the routing server, you can save it for future reference or send it to a support professional for analysis. To save the information that is displayed by WinRoute (Winroute.exe), click Save As on the File menu. Save this file with an .rte extension so that it may be opened remotely by WinRoute (Winroute.exe).

If you start WinRoute (Winroute.exe), and the screen is blank, the Routing Engine service (RESvc) may not have been initialized or started. If this is the case, ensure that RESvc, the Simple Mail Transfer Protocol (SMTP) service, and the Microsoft Exchange MTA Stacks service have been started.

The following describes the WinRoute UI:

  • Top pane shows interpreted data.
  • Middle pane shows address spaces.
  • Lower pane shows raw information from the link state port.
Screenshot WinRoute - Hauptbildschirm

The top pane contains the data as interpreted by WinRoute (Winroute.exe) after resolving as much as possible in Active Directory, where the Exchange Server configuration that is read by routing is held.

If the information is not available, for example, if the object has been deleted or if Active Directory is unable to be contacted, the objects display as [object_not_found_in_DS].

To be certain, run WinRoute (Winroute.exe) under the local system account using the AT Interactive command. Lack of adequate read permissions in Active Directory can result in a false positive [object_not_found_in_DS].

To refresh the information from Active Directory, from the Options menu, click Refresh Information in Active Directory (Alt+R).

Routing Engine Version: This is determined by the Routing Engine binaries.

Digest: Determines if two or more Exchange servers are in sync. If this number changed, something in the entire organization changed. The digest is an MD5 hash of the routing organization.

Organization DN: This is the organization distinguished name taken from Active Directory.

WinRoute provides the following routing group information:

  • RG DN   This is the distinguished name of the routing group.
  • RG Master   This shows the designated routing group master, which is the server that has the writeable copy of the routing table for the routing group, or the server that is responsible for connector link arbitration.
  • RG Master DN   This is the distinguished name of the RG Master.
  • Routing Group Master   This coordinates changes to link state that are learned by servers within its routing group.

By having one single server coordinate change, it is possible to treat a routing group as a single entity, for the purposes of computing a least-cost path between routing groups.

All servers in the routing group advertise and act upon the same information.

In the case of link state updates tunneled through SMTP, messages are not used. Instead, when there is an update, a connection is created to the neighboring routing group and during the course of that connection, the link state information is transferred.

All versions are in hexadecimal. WinRoute provides the following version information:

  • Major Version   This is incremented by changes (add, delete, or modify) to the Connections container contained in the Routing Group object. For example, changes to connector: "CN=SMTP Connector to,CN=Connections,CN=First Routing Group,CN=Routing Groups,CN=AG1 with a space,CN=Administrative Groups,CN=OrganizationD,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=sergiod,DC=extest,DC=microsoft,DC=com". A 0 value indicates a pure Exchange Server version 5.5 routing group, or an isolated Exchange 2000 Server routing group.
  • Minor Version   This is incremented by changes to the state of a connector. For example, if a connector state is changed from UP to DOWN, only a minor version increment is executed, and there is no major version increment.
  • User Version   This is incremented by changes to the Routing Group object like a rename of the routing group name, setting the master of the routing group, or adding or moving a server to or from a routing group. The state of Microsoft Windows® Management Instrumentation (WMI) clients connecting to the Routing Engine service can also affect this. These services are the Inetinfo.exe, Esmsta.exe, Store.exe, and Wmiprvse.exe services.

The RG Addresses object contains the routing group addresses that are used internally by Exchange Server and should contain an SMTP, X.400, and X.500 address or an address triplet. Each routing group is uniquely identified by these addresses.

All addresses will have the same GUID number, which represents the GUID for the entire routing group.

This is a list of all the routing group members, and includes the following:

  • Member Server DN   This is the distinguished name of the server.
  • Connected to Master   This shows whether the routing service has opened a connection to the master, including the master itself. A NO value indicates problems connecting with the routing service on port 691, except for legacy Exchange Server 5.5 servers.
  • Server Version   This version number is per routing group member. It is incremented when you move such a server into a routing group. When a member server is moved to another routing group, there is a possibility that such a member server exists in two routing group member lists. To determine which member entry is the latest one, the server version is incremented, and the highest version number is considered the current entry. A 0 value indicates an Exchange Server 5.5 server.
  • Build Version   This is the server's build version.
  • User Data   This should be the same on all routing group members and shows that they are in sync.

WinRoute provides the following connector support:

  • Connectors node   This shows the different types of connectors configured. Types of connectors include SMTP connectors, routing group connectors, X.400 connectors, and connectors to third-party mail systems, such as Lotus Notes connector and the Novell GroupWise connector.
  • Connector DN   The distinguished name of the connector.
  • Type   The type of connector, including SMTP (which includes SMTP, RGC, and Site), Exchange Development Kit, Lotus cc:Mail, Lotus Notes, MS, or X400.
  • Source BH Address   For legacy connectors, this is the name of the bridgehead message transfer agent (MTA) server. For SMTP and routing group connectors, this is the GUID representation of the bridgehead of that connector.
  • Destination BH Address   For legacy connectors, this is the name of the remote target bridgehead MTA server. For routing group connectors, this is the GUID representation of the bridgehead server on that connector. For SMTP connectors, this will either be blank to indicate the connector is using DNS to resolve the domains (DNS) or the smart host.
  • Legacy DN   Similar to the connector distinguished name but listed for backward compatibility.
  • Schedule ID   Generally in routing and Active Directory, a schedule ID of 1 means that there is a schedule on the connector and 0 means no scheduling.

The restrictions node contains the information about the configuration of the connector, including the scope of the connector, allowed message priorities, allowed message types, maximum message size, oversized message size, whether public folder referrals are allowed, the default access to this connector, allowed originators, denied originators, allowed distribution lists, and denied distribution lists.

Look for Special Restrictions when debugging a misrouted message. This string means that there is a non-default Exchange 2000 Server restriction on the connector. Exchange Server 5.5 has a different default. For example, it is possible for a connector to have a routing group scope, or some other restriction type that makes it ineligible for the solution to a particular address.

Triggered Delivery: This is determined by your setup of ETRN.

Address Spaces: Address spaces define the cost and type of address space, the mechanism by which routing matches the address space of the recipient to the destination connector. The address space and cost of a connector are important considerations in routing over that connector. Routing will always prefer to send to a connector with the most closely matching address space.

WinRoute provides the following bridgehead and connector status:

  • Source Bridgeheads   This is the bridgehead server for the connector.
  • Virtual Server FQDN   If the connector is an SMTP or a routing group connector, this is the SMTP virtual server fully qualified domain name (FQDN) defined on the properties of the SMTP virtual server. If all servers in the routing group are allowed to send directly, this will be blank.
  • Target Bridgeheads   This is the target or destination bridgehead for the connector. The only connectors that should have this are routing group connectors and site connectors.
  • BH Status   This can have the following values:
    • CONN_AVAIL (Connector available)
    • CONN_NOT_AVAIL (Connector not available)
    • VS_NOT_STARTED (Virtual server not started)
  • Status: This can have the following states:
    • STATE UP
    Status is determined by the link state information propagated about that connector or its bridgeheads.
    Each routing group propagates link state information to the adjacent routing groups that it is connected to through the bridgeheads on the routing group connector. Presumably, most multi-routing group routing organizations will have a few hubs and many satellites. This aids in scaling the link state propagation traffic.
    The method for that propagation is SMTP. When an inter-routing group connection is made, the connected server advertises its link state capability with the X-LINK2STATE in the list of returned ESMTP verbs. There is an OrgInfo digest exchange between the two sides, and a mismatch of these two GUIDs will trigger a full link state exchange through the SMTP protocol.
    Within the routing group, routing information is propagated through communication on port 691. The following describes the states:
    • STATE UP   Exchange Server 5.5, legacy connectors, and SMTP connectors (DNS) should always be in this state, because they do not understand link state routing.
    • STATE DOWN   Routing group connectors and SMTP connectors (smart host) can be marked as down by the Advanced Queuing engine. If you are investigating why a connector should be marked as down, you should go to the SMTP Queue viewer snap-in in Exchange System Manager or review Event Viewer.

The middle pane shows all the address spaces that the server knows, along with the type, cost, restrictions (yes or no), connector, source routing group, and administrative group. This is the most useful pane to look at first. It is possible to sort by any of the fields by clicking the label. If you need additional information about a particular object, switch to the top pane.

Look for the most specific address space matching the recipient address. Any connector with an exact match will be preferably used. For example, matches connector, even though it might cost more than to use than * Exchange Server always routes messages through a connector with an address space that most closely matches. Cost is not a determining factor unless two connectors use the exact same address space.

The lower pane shows the raw routing information that Exchange uses and is displayed for informational purposes. As you highlight various objects in the top pane, you will see the appropriate section in the lower pane highlighted.

Consider the following issues and suggested solutions:

  • Issue   E-mail messages are misrouted.
    Possible solutions   Look at the final connector in the expected path. Does it have any restrictions?
    Look at the address space pane. Is there a more specific connector whose address space matches the recipient e-mail domain?
  • Issue   Changes to objects in a routing group are not acknowledged by the master.
    Possible solutions   Verify who the master is in the Exchange System Manager. Query that server with WinRoute. Look at the members information list. Is the master or any other server disconnected?
    Does the major version increment after adding or changing a connector?
  • Issue   Routing groups are not found in the Directory Service.
    Possible solutions   For information, see Microsoft Knowledge Base article 330279, "Deleted routing groups are listed in the WinRoute tool; fix requires Exchange 2000 SP3."
    This issue can be caused by bad objects that are stuck in the routing memory of all Exchange servers in the organization. This can be caused by deleted a routing group or routing group connector. The only way to flush is by restarting all servers.
    Install the Exchange 2000 Server post-Service Pack 3 rollup described in Knowledge Base article 813840, "XGEN: March 2003 Exchange 2000 Server Post-Service Pack 3 Rollup." After applying the post-Service Pack 3 rollup, shut down all Exchange Server services simultaneously across the organization to remove the routes.
    Run Regsvr32 /u xlsasink.dll in your exchsrv\bin directory for every inbound and outbound bridgehead, and stop the MTA on every inbound and outbound X.400 bridgehead. If the size of the routing groups is small, from two to four computers, and there are multiple bridgeheads, the easiest method is to run Regsvr32 /u xlsasink.dll on each computer.