内部邮件路由
适用于: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
上一次修改主题: 2007-08-21
本主题说明内部邮件传递的路由过程。内部邮件传递将通过以下方式进行电子邮件中继:
将电子邮件从 Microsoft Exchange Server 2007 集线器传输服务器传递到位于不同的 Active Directory 目录服务站点的集线器传输服务器
将电子邮件从集线器传输服务器传递到位于同一 Active Directory 站点的邮箱服务器
将电子邮件从集线器传输服务器传递到运行 Microsoft Exchange Server 2003 或 Exchange 2000 Server 的服务器,然后该服务器将邮件传递到位于 Exchange 2003 或 Exchange 2000 计算机上的收件人邮箱中。
接收电子邮件并进行路由
可以通过下列任何方式将邮件传送到集线器传输服务器:
通过面向 Internet 的简单邮件传输协议 (SMTP) 服务器接收电子邮件,并将其传送到 Exchange 组织中的收件人或内部中继接受域中的收件人那里。
通过 Exchange 组织中的另一个集线器传输服务器接收电子邮件,并将其传送到 Active Directory 站点中邮箱服务器上的收件人邮箱中。
通过 Exchange 2003 或 Exchange 2000 服务器接收电子邮件,并将其传送到位于 Exchange 2007 邮箱服务器上的收件人邮箱中。
通过集线器传输服务器检索 Exchange 2007 邮箱服务器中的电子邮件。
在提交队列中开始对集线器传输服务器接收的所有电子邮件进行分类处理。
检索邮箱服务器中的邮件
在本方案中,运行于邮箱服务器上的 Microsoft Exchange 邮件提交服务向位于同一 Active Directory 站点上的集线器传输服务器发出通知,指示准备从发件人邮箱中检索邮件。每个邮箱服务器保留了位于同一 Active Directory 站点中的集线器传输服务器列表。此集线器传输服务器列表也称为提交服务器列表。服务器探查过程会每隔 10 分钟更新一次该列表。
如果多个集线器传输服务器与提交通知(指示准备检索邮件)的邮箱服务器位于同一 Active Directory 站点中,则会出现下列几种情况:
如果本地邮箱服务器同样也在运行集线器传输服务器角色,则会向本地服务器发出通知。如果未运行本地 Microsoft Exchange 传输服务或者本地集线器传输服务器由于反压无法处理新的邮件提交,则会向另一个可用的集线器传输服务器发出通知。有关反压的详细信息,请参阅了解反压。
如果本地邮箱服务器未运行集线器传输服务器角色,则会使用轮循机制在集线器传输服务器中发出负载平衡通知。
如果无法联系所选的集线器传输服务器,则 Microsoft Exchange 邮件提交服务会将故障转移到同一 Active Directory 站点中的其他集线器传输服务器上。此时,故障服务器将被标记为非活动状态,并从提交服务器列表中选择下一个集线器传输服务器。如果本地 Active Directory 站点中没有可用的集线器传输服务器,则提交服务器列表为空。在这种情况下,会记录事件日志,并暂时终止邮件提交通知。5 分钟后,将尝试重新连接标记为非活动状态的集线器传输服务器。
默认情况下,Microsoft Exchange 邮件提交服务会在站点中的集线器传输服务器中通知负载平衡事件,这样每个集线器传输服务器都会接收到同等分发数量的通知事件进行处理。在某些情况下,提供同等数量的分发可能并不是最佳的解决方案。并不是所有的集线器传输服务器都具有相同的处理能力,有些邮件需要进行其他处理。例如,集线器传输服务器在处理含有很大附件或许多收件人的邮件时,其处理时间要比处理只寄往一个收件人的小邮件要长。如果要创建邮箱服务器应该通知的集线器传输服务器的静态列表,可以在 Exchange 命令行管理程序中使用 Set-MailboxServer cmdlet。使用 SubmissionServerOverrideList 参数可以指定在本地邮箱服务器具有要检索的邮件时,该服务器要通知的集线器传输服务器的列表。有关如何配置此设置的详细信息,请参阅 Set-MailboxServer。
在集线器传输服务器收到来自邮箱服务器的邮件提交通知后,它将使用存储驱动程序检索邮箱数据库中的邮件,并将其放入集线器传输服务器上的提交队列中。邮件从邮箱服务器传输到集线器传输服务器是通过 Exchange 远程过程调用 (RPC) 来实现的。
路由邮件以将其传递到 Exchange Server 2007
在集线器传输服务器收到邮件后,会将其传递到提交队列中。邮件又从提交队列移动到分类程序中。当邮件被分类后,收件人的电子邮件地址会解析为 Active Directory 中的对象。此查询会确定与该电子邮件地址有关的邮箱,以及哪个邮箱服务器在驻留该邮箱。
当解析了收件人信息后,下一步会将邮箱服务器解析到 Active Directory 站点。会在邮件上将此 Active Directory 站点信息标记为 NextHopSolutionKey 属性。Microsoft Exchange 传输服务的 DNS 增强组件会访问此拓扑信息,以确定哪个集线器传输服务器与目标邮箱服务器位于同一站点中。然后会引用 Active Directory 站点中的集线器传输服务器列表,以确定路由邮件的目标位置。如果目标邮箱服务器与查询集线器传输服务器位于同一站点中,则集线器传输服务器会将邮件列入队列进行本地传递。如果目标邮箱服务器位于不同的站点中,则本地集线器传输服务器会将邮件列入队列以远程传递到 Active Directory 站点。
本地队列传递的邮件将使用存储驱动程序提交到目标邮箱存储中。邮件从集线器传输服务器传送到邮箱服务器是通过 Exchange RPC 来实现的。
远程队列传递至 Active Directory 站点的邮件将使用 SMTP 进行传输。在中继此邮件之前,分类程序的路由组件必须选择开销最低的路由路径。
选择开销最低的路由路径
通往远程 Active Directory 站点的最低开销路由路径是通过计算分配给 Active Directory IP 站点链接(位于两个站点之间)的所有开销来确定的。通过桥接这些链接达到直连的目的。Exchange 2007 集线器传输服务器始终会选择一条确定的、开销最低的路由路径。在选择路由路径时,将不考虑基本连接或目标服务器的可用性,也不考虑备选的路由路径。
通过计算开销最低的路由路径,以确定在将邮件传递到下一个跃点失败时的回退路径。在 Exchange 2007 中,当直接中继由于任何原因(例如网络问题或服务器脱机)而失败时,使用“回退”机制在开销最低的路由路径上的某个过渡跃点传递邮件。路由组件尝试通过回退机制,一个跃点接一个跃点地沿着开销最低的路由路径将邮件传递到与目标尽可能接近的位置,直至连接建立。首先,会尝试与目标 Active Directory 站点中的每个集线器传输服务器建立连接。如果 Active Directory 站点中没有任何集线器传输服务器做出响应,将检查开销最低的路由路径,以确定如何开始从传递站点回退。目标是将邮件传递到与目标尽可能近的位置,并使邮件在该 Active Directory 站点的某个集线器传输服务器上排队。
使用下列逻辑选择开销最低的路由路径:
首先,通过将通向目标必须经过的 IP 站点链接的开销相加,计算出开销最低的路由路径。如果有多个可能的路由路径,则只使用总开销最低的路由路径。
如果多个路由路径的总开销相同,则会计算每个路由路径中的跃点数,并使用跃点数最少的路由路径。
如果仍有多个可用的路由路径,则会考虑在目标之前分配的 Active Directory 站点或路由组连接器的名称。将使用与目标最近的,按字母数字排序位列最低的 Active Directory 站点的路由路径。如果所有被评估的路由路径中与目标最接近的站点都相同,则考虑前一个站点名。
下图显示了 Exchange 组织的路由拓扑。将在下面的示例中使用此拓扑,以说明路由算法在选择开销最低的路由路径时所使用的逻辑。
Exchange 2007 路由拓扑
示例 1 从 Site A 中继到 Site D 的邮件可以采用下列两种可能的路由路径:Site A-Site B-Site D 和 Site A-Site C-Site D。将为每个路由路径中的 IP 站点链接分配的开销加在一起,以确定路由邮件的总开销。在此示例中,路由路径 Site A-Site B-Site D 的总开销为 20,路由路径 Site A-Site C-Site D 的总开销为 10。路由组件将选择路径 Site A-Site C-Site D。
示例 2 将邮件从 Site B 中继到 Site D。存在三种可能的路由路径:Site B-Site D 的开销为 15,Site B-Site E-Site C-Site D 和 Site B-Site A-Site C-Site D 的开销也为 15,由于多个路由路径产生的开销相同,路由组件将选择 Site B-Site D 作为开销最低的路由路径。因为此路由路径的跃点数最少。
示例 3 将邮件从 Site A 中继到 Site E。存在两种可能的路由路径:Site A-Site B-Site E 的开销为 10,Site A-Site C-Site E 的开销为 10。两个路由路径的开销和跃点数相同。将比较 Site E 之前的 Active Directory 站点的字母数字顺序。Site B 的字母数字值小于 Site C。因此,路由组件将选择 Site A-Site B-Site E 路由路径。
确定了开销最低的路由路径之后,Exchange 2007 路由组件不会考虑备选路由路径。
路由组件无法识别未部署集线器传输服务器的 Active Directory 站点,并且此类站点不参与 Exchange 拓扑。但是,如果部署了集线器传输服务器的站点之间开销最低的路由路径上存在此类站点,则在计算开销最低的路由路径时,会考虑连接该站点与其他站点的链接的 IP 站点链接开销。
选择了开销最低的路由路径后,路由组件将确定该路由路径中是否有中心站点。中心站点会覆盖直接连接,并将邮件强制交由集线器站点中的集线器传输服务器来处理。您可以在 Exchange 命令行管理程序中使用 Set-AdSite 命令将 Active Directory 站点配置为中心站点。
在连接的过程中,当无法在站点之间进行直接 SMTP 中继传输时,此配置非常有用。只要开销最低的路由路径上存在用于传递邮件的中心站点,邮件就将排队并由中心站点中的集线器传输服务器进行处理,然后再中继到最终目标。如果开销最低的路由路径上有多个中心站点,邮件将在该路由路径的每个中心站点上停留。有关如何配置中心站点的详细信息,请参阅如何配置集线器网站。
控制 IP 站点链接的开销
如果您确定 Active Directory IP 站点链接开销和通信流模式对于 Exchange 2007 来说不是最佳的,则可以调整 Microsoft Exchange 评估的开销。作为 Exchange 管理员,您不能也不应使用 Active Directory 工具修改为 IP 站点链接分配的开销,而应使用 Exchange 命令行管理程序中的 Set-ADSiteLink cmdlet 为 IP 网站链接分配特定于 Exchange 的开销。例如,若要为 IP 站点链接 SITELINKAB 设置不同的开销以用于邮件路由,请在 Exchange 命令行管理程序中运行以下命令:
Set-AdSiteLink -Identity SITELINKAB -ExchangeCost 25
为 IP 站点链接分配了 Exchange 开销后,Exchange 开销将覆盖 Active Directory 开销以用于邮件路由,并且路由组件在评估开销最低的路由路径时仅考虑 Exchange 开销。否则,将使用 Active Directory 复制开销。有关详细信息,请参阅如何设置 Active Directory IP 网站链接上的 Exchange 开销。
Exchange 2007 Service Pack 1 中的新增功能
Exchange 2007 Service Pack 1 (SP1) 为 Active Directory IP 站点链接提供了有关最大邮件大小限制的配置支持。默认情况下,Exchange 2007 不对在不同的 Active Directory 站点中的集线器传输服务器之间中继的邮件进行最大邮件大小限制。如果使用 Set-AdSiteLink cmdlet 对 Active Directory IP 站点链接配置最大邮件大小,则路由会为大于最大邮件大小限制(在开销最少的路由路径中的任何 Active Directory 站点链接上配置的值)的邮件生成未送达报告 (NDR)。不考虑备选路由路径。此配置对限制发送到必须通过低带宽连接进行通信的远程 Active Directory 站点的邮件的大小很有用。如果您为 Active Directory 站点链接配置了最大邮件大小限制,则还应该为该站点链接配置更大的 Exchange 开销以防止优先在具有大小限制的路由路径而不是无大小限制的路由路径上进行路由。有关详细信息,请参阅如何配置内部路由的邮件大小限制。
路由邮件以将其传递到 Exchange Server 2003 或 Exchange Server 2000
必须通过路由组连接器,才能将邮件从集线器传输服务器中继传输到 Exchange 2003 或 Exchange 2000 服务器,并通过该服务器将邮件传递到位于 Exchange 2003 或 Exchange 2000 服务器上的收件人邮箱中。所有 Exchange 2007 服务器都与一个名为 Exchange 路由组 (DWBGZMFD01QNBJR) 的路由组相关联,以便在 Exchange 2007 与 Exchange 2003 或 Exchange 2000 共存于同一组织时可以路由到早期版本的 Exchange Server 中,目前不支持将 Exchange 2007 和早期版本的 Exchange Server 置于同一个路由组中。因此,至少需要一个路由组连接器将 Exchange 2007 服务器与 Exchange 2003 或 Exchange 2000 服务器分隔开来。
警告: |
---|
请不要将 Exchange 2007 服务器移出 Exchange 路由组 (DWBGZMFD01QNBJR) ,并且不要使用低级目录编辑器重命名 Exchange 路由组 (DWBGZMFD01QNBJR)。Exchange 2007 必须使用此路由组与早期版本的 Exchange Server 进行通信。不支持将 Exchange 2007 服务器移出 Exchange 路由组 (DWBGZMFD01QNBJR),也不支持重命名 Exchange 路由组 (DWBGZMFD01QNBJR)。 |
注意: |
---|
您必须在 Exchange 命令行管理程序中使用 New-RoutingGroupConnector cmdlet 创建路由组连接器,该连接器将包含作为源或目标服务器的 Exchange 2007 集线器传输服务器。使用 Set-RoutingGroupConnector cmdlet 可以修改路由组连接器的配置,该连接器用于将 Exchange 2007 路由组与早期版本的 Exchange Server 连接在一起。有关详细信息,请参阅如何创建从 Exchange 2007 至 Exchange Server 2003 的路由组连接器。 |
Microsoft Exchange 传输服务的路由组件在确定通往早期版本 Exchange Server 的最低开销路由路径时,首先会评估到达目标 Exchange 2003 服务器的可行路由路径,只考虑到达该目标必须通过的所有路由组连接器的总开销。其次,使用本主题前面部分“选择开销最低的路由路径”所述的算法来确定到达所选路由路径中第一个路由组连接器所用的开销。始终使用穿过路由组连接器所用开销最低的路由路径。同时,当两个穿过路由组连接器的路由路径具有相同的开销时,则只考虑到达第一个路由组连接器的开销。
可以使用下列算法,选择到达该运行早期版本的 Exchange Server 计算机的最低开销路由路径:
检查穿过路由组连接器的所有可行路由路径,然后选择具有最低总开销的路由路径。
如果多个路由路径具有相同的开销,则需要检查所有通过 IP 站点链接到达第一个路由组连接器的路由路径,然后选择具有最低 IP 站点链接总开销的路由路径。
如果多个路由路径具有相同的路由组开销和相同的 IP 站点链接开销,则应选择包含最少跃点数的路由路径。
如果多个路由路径具有相同的路由组开销,以及相同的 IP 站点链接开销和相同的跃点数,则选择目标站点之前的上一个 Active Directory 站点的名称具有最小字母数字值的路由路径。
下图显示了 Exchange 2007 与 Exchange 2003 共存的路由拓扑示例。
Exchange 2007 和 Exchange 2003 共存的路由拓扑
在本示例中,邮件正从 Site A 中的集线器传输服务器路由到位于路由组 2 中的 Exchange 2003 服务器。可以使用两个可行的路由路径到达路由组 2:
第 1 种选择:从路由组连接器 A3(开销为 10)到路由组连接器 2-3(开销为 20)的路由,此路由路径的总开销为 30。
第 2 种选择:从路由组连接器 C1(开销为 10)到路由组连接器 1-2(开销为 10)的路由,此路由路径的总开销为 20。
在本示例中,第 2 种选择的路由组连接器总开销最低,并且该邮件是从 Site A 中的集线器传输服务器路由到 Site C 中的集线器传输服务器的,然后在 Site C 通过路由组连接器 C1 进行队列传递。
在下图中,路由组连接器 2-3 的开销已变为 10。
Exchange 2007 和 Exchange 2003 共存的 E 路由拓扑(包含修改的路由组连接器开销)
再次出现两个可行的路由路径到达路由组 2:
第 1 种选择:从路由组连接器 A3(开销为 10)到路由组连接器 2-3(开销为 10)的路由。此路由路径的总开销为 20。
第 2 种选择:从路由组连接器 C1(开销为 10)到路由组连接器 1-2(开销为 10)的路由,此路由路径的总开销为 20。
在本示例中,这两种选择的路由组连接器的总开销相同。因此在路由的过程中,还要评估到达第一个路由组连接器所通过的 IP 站点链接的开销。从 Site A 来看,到达路由组连接器 A3 的 IP 站点链接开销为 0,而到达路由组连接器 C1 的开销为 20。因此,应该选择第 1 种选择中所述的路由路径。
要点: |
---|
Exchange 2007 的正式发布 (RTM) 版本不支持为 Active Directory 站点链接或路由组连接器(包含作为源或目标服务器的 Exchange 2007 集线器传输服务器)设置最大的邮件大小限制。同时,Exchange 2007 RTM 还无法识别在 Exchange Server 早期版本创建的路由组连接器上设置的任何邮件大小限制。因此,当 Exchange 2003 或 Exchange 2000 收到了从 Exchange 2007 中继来的邮件时,Exchange 2003 或 Exchange 2000 服务器会重新评估路由路径以提供邮件大小限制。这会将邮件路由传送回 Exchange 2007,导致路由循环。为了避免这种情况,建议您向组织中引入 Exchange 2007 时删除所有路由组连接器的邮件大小限制。 |
Exchange 2007 SP1 新增功能
Exchange 2007 SP1 为路由组连接器上最大邮件大小限制的配置提供支持。默认情况下,Exchange 2007 不会对在集线器传输服务器与 Exchange 2003 或 Exchange 2000 之间中继的邮件进行最大邮件大小限制。如果您使用 Set-RoutingGroupConnector cmdlet 为路由组连接器配置最大邮件大小,则在路由的过程中,将为任何超过最大邮件大小限制(为开销最低的路由路径中的任何路由组连接器进行配置)的邮件生成 NDR。不考虑备选路由路径。
此配置对限制发送到远程路由组(必须通过低带宽连接进行通信)的邮件大小很有用。如果您为路由组连接器配置了最大邮件大小限制,则还应该为该路由组连接器配置更大的开销以防止优先在具有大小限制的路由路径而不是无大小限制的路由路径上进行路由。有关详细信息,请参阅如何配置内部路由的邮件大小限制。
Exchange 2007 RTM 也无法识别在 Exchange Server 早期版本上配置的用于连接路由组的非 SMTP 连接器。在计算到达 Exchange 2003 或 Exchange 2000 路由组的最低开销路由路径时,尚未考虑过使用非 SMTP 连接器。但 Exchange 2007 SP1 提供了如下支持:即在计算开销最低的路由路径时,允许 Microsoft Exchange 传输服务的路由组件识别非 SMTP 连接器。
详细信息
有关详细信息,请参阅下列主题: