与 Exchange Server 5.5 的向后兼容性

 

上一次修改主题: 2005-05-23

Exchange Server 5.5 依赖网关地址路由表 (GWART) 在 Exchange 组织中选择路由路径。此方法使用距离矢量路由算法,这种算法在某些情况下可能产生路由循环。但是,Exchange Server 2003 使用存储在内存中的链路状态表与 Dijkstra 的最短路径算法来选择路由路径。但是,为实现向后兼容,Exchange 2003 必须产生一个 GWART,以使 Exchange 5.5 服务器能够使用 Exchange 2003 连接器。此外,路由引擎必须将现有的 Exchange 5.5 连接器合并到链路状态表中,以使 Exchange Server 2003 服务器能够使用这些传输路径。

GWART 由 Exchange MTA 生成。Exchange MTA 通过路由接口包装 MTARoute.dll 与路由引擎通信,以获取路由信息。然后,将该信息写入到原有 GWART 对象(驻留在 Exchange 服务器的管理组中)的 gatewayRoutingTree 属性中。MTA 还更新 GWARTLastModified 属性以指示最新的变化。站点复制服务 (SRS) 将 GWART 对象复制到 Exchange 5.5 目录中。之后,Exchange 5.5 服务器在选择传输路径时便可以考虑 Exchange Server 2003 连接器。

站点复制服务还将 Exchange Server 5.5 连接器信息复制到 Active Directory 中。因此,运行 Exchange Server 2003 的服务器可以通过 Exchange Server 5.5 连接器路由邮件。这使得 Exchange Server 2003 用户可以通过现有的任何连接器(例如,Exchange Server 2003 中没有的连接器)来发送邮件。其中包括 Microsoft Mail for PC Networks 连接器。在有些服务器运行 Exchange Server 2003 或 Exchange 2000 Server,而其他服务器运行 Exchange Server 5.5 的混合模式环境中,路由组的功能存在如下限制:

  • 路由组不能跨越多个管理组。这是因为 Exchange Server 5.5 中的路由拓扑是通过站点来定义的。Exchange Server 5.5 中的站点同时提供 Exchange Server 2003 中的管理组功能和路由组功能。路由拓扑的这一不同限制了混合模式环境中的路由组的功能。
  • 不能在存在于不同管理组中的路由组之间移动服务器。
  • 组织中的所有 Exchange 2003 用户都能够使用作用域为本地的 Exchange Server 5.5 连接器,因为该连接器作用域在 Exchange Server 2003 中没有对应的作用域。在 Exchange Server 5.5 中,可以在三个不同的级别指定连接器可用性:组织、站点和服务器位置。在 Exchange Server 2003 中,只能使用组织作用域和路由组(站点)作用域。

由于 Exchange Server 5.5 服务器不使用链路状态表,因此路由组主服务器运行 Exchange Server 5.5 的路由组(也就是没有 Exchange Server 2003 服务器的站点)不发送拓扑更新。为解决此问题,路由组主服务器定期从 Active Directory 中获取 Exchange Server 5.5 控制的所有路由组的路由组拓扑,然后在整个 Exchange Server 2003 路由拓扑中复制此信息。

可以在路由组主服务器上配置下列注册表项,以确定路由引擎何时从 Active Directory 中读取拓扑信息。

 

位置

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RESvc\Parameters\

ReloadOsInterval

类型

REG_DWORD

数值数据

从 Active Directory 中重新加载拓扑信息所间隔的时间(秒)。

Exchange 2003 服务器预计 Exchange 5.5 服务器不与其交换链路状态信息。但是,当 Exchange 路由组中的 Exchange 5.5 桥头服务器被 Exchange 2003 服务器取代,并且后者也被指定为桥头服务器时,该路由组开始参与链路状态信息的传播。它的主版本号不再为零。主版本号为零意味着服务器不参与链路状态信息交换,或者不交换链路状态信息。所有 Exchange 5.5 服务器的版本号都为零,因为它们不交换链路状态信息。

当路由组传播链路状态信息时,其主版本号增加。其他路由组中的桥头服务器预计从该路由组中接收链路状态变化。但是,将桥头服务器重新恢复到 Exchange Server 5.5 会出现问题,因为之后桥头服务器便没有了链路状态表。其他服务器仍然预计运行 Exchange Server 5.5 的桥头服务器(以前是运行 Exchange Server 2003 的桥头服务器)参与链路状态传播。因此,其他服务器将等待该服务器向其提供更新后的链路状态信息。这时,该路由组便成为了孤立的路由组,不参与组织中的动态链路状态更新。

下图说明了一种孤立路由组可能有问题的情况。具体来说,由于 Exchange 5.5 路由组中的 Exchange 5.5 桥头服务器以前是 Exchange 2000 或 Exchange 2003 桥头服务器,因此其他服务器希望它参与链路状态传播。在图 5.13 中,Exchange Server 5.5 Internet 邮件连接器和 Exchange 2003 SMTP 连接器均使用一台智能主机来向 Internet 路由邮件。当智能主机不可用时,运行 Exchange Server 2003 的桥头服务器将经过其 SMTP 连接器的路由路径标记为不可用。但是,由于该桥头服务器预计 Exchange 5.5 服务器会发送有关其路由组和连接器的链路状态信息,因此它假定经过 Internet 邮件连接器的路由路径可用,并尝试通过该路由路径传递邮件。出现一次失败后,运行 Exchange 2003 的服务器检测到可能存在循环,而不尝试通过该路由传递邮件。

c06c745e-6a42-435d-abc6-961a93b7f8a5

如果将正在阻止链路状态传播的防火墙添加到系统中,链路状态传播也可以断开。例如,端口 25 和 691 在路由组中是必需的,并且端口 25 在路由组之间是必需的。而且,扩展简单邮件传输协议 (ESMTP) 命令 X-LINK2STATE 不能被防火墙阻止。

为解决此问题,可以采用如下解决方案:

  • 将 Exchange 5.5 桥头服务器升级到 Exchange 2000 或 Exchange 2003 服务器,或者使用另一台 Exchange 2000 或 Exchange 2003 服务器再次发送该路由组的链接状态信息。其中的每一种方法都是首选解决方案,也是最简单的解决方案。
  • 若要将未连接的路由组重置为链路状态主版本号 0,请同时关闭组织中的所有 Exchange 服务器,再重新启动所有 Exchange 服务器。
  • 配置防火墙,以便不阻止链路状态传播。

有关孤立或未联结的路由组和主版本号的详细信息,请参阅 Microsoft 知识库文章 842026“Routing status information is not propagated correctly to all servers in Exchange 2000 Server or in Exchange Server 2003”(英文)。

 
显示: