了解 Exchange 2007 SP1 和 SP2 中的 DNS 查询失败敏感度

 

适用于: Exchange Server 2007 SP2, Exchange Server 2007 SP1

上一次修改主题: 2009-05-20

本主题对 Microsoft Exchange Server 2007 Service Pack 1 (SP1) 和 Exchange 2007 Service Pack 2 (SP2) 中引入的 DNS 查询的几个改进进行说明。这些改进可降低对搜索 Exchange 组织外部的目标消息服务器期间遇到的域名系统 (DNS) 错误的敏感度。可以为目标域调整 DNS 查询敏感度,以便遇到 DNS 错误时能更快地进行邮件传递。 但是,在某些情况下该调整可能导致传递失败,具体取决于 DNS 错误。

DNS 查询和远程邮件传递

在典型的 Exchange 2007 组织中,已订阅该组织的边缘传输服务器负责将邮件传递到外部收件人。此边缘传输服务器负责接收来自组织中的集线器传输服务器的传出邮件。已订阅的边缘传输服务器必须能够找到为外部收件人接收邮件的目标消息服务器。邮件在等待传递到远程收件人过程中,根据目标,被放入到一个或多个远程传递队列中。有关传递队列的详细信息,请参阅管理队列

边缘传输服务器查询配置的外部 DNS 服务器,以查找传递邮件所需的 DNS 记录。可以在 Exchange 管理控制台的传输服务器属性的“外部 DNS 查找”选项卡上,或通过使用 Exchange 命令行管理程序中的 Set-TransportServer cmdlet 来配置外部 DNS 服务器设置。有关详细信息,请参阅配置传输服务器属性

按其列出顺序查询为外部 DNS 查找配置的 DNS 服务器。如果某一 DNS 服务器不可用,则查询会转到列表上的下一 DNS 服务器。对 DNS 服务器查询下列信息:

  • 外部收件人域部分的邮件交换 (MX) 记录   MX 记录包含负责为该域接收邮件的消息服务器的完全限定域名 (FQDN),以及该消息服务器的首选项值。较低的首选项值表示首选消息服务器。如果域有多个 MX 记录,则首选项值非常重要。为了优化容错能力,大多数组织都使用多个消息服务器和具有不同首选项值的多个 MX 记录。

  • 目标消息服务器的地址 (A) 记录   MX 记录中使用的每个消息服务器都应具有一个对应的 A 记录。该 A 记录用于查找目标消息服务器的 IP 地址。已订阅的边缘传输服务器使用该 IP 地址来打开与目标消息服务器的简单邮件传输协议 (SMTP) 连接。尽管从技术上来说,可以在 MX 记录中使用规范名称 (CNAME) 记录的 FQDN,但此做法违反了 RFC 974、RFC 1034、RFC 1912 和 RFC 2181,因此不为多数消息服务器所支持。

    将以根 DNS 服务器开始的迭代 DNS 查询和递归 DNS 查询根据需要组合起来,使用这种组合将 MX 记录中发现的消息服务器的 FQDN 解析为 IP 地址。

在 Exchange 2007 中,每个 DNS 服务器的 DNS 查询限制为 5 秒,整个 DNS 查询限制为 1 分钟,这是不可配置的。

潜在的 DNS 问题

即使正确配置了 Exchange 传输服务器上的外部 DNS 设置,特定域的 DNS 记录或用于查找特定域权威 DNS 服务器的任何 DNS 服务器仍可能发生问题。通常,您无法控制这些问题。这些问题您无法自己解决。这些与 DNS 有关的错误可能是由下列一个或多个条件引起的:

  • 无效的目标域 DNS 记录

  • DNS 服务器使用方面的问题

  • DNS 服务器复制方面的问题

在 Exchange 2007 的正式发布 (RTM) 版本中,当特定域具有首选项值相同的有效 MX 记录和无效 MX 记录组合时,会出现问题。消息服务器的 FQDN 可以解析为有效 IP 地址时,MX 记录有效。消息服务器的 FQDN 无法解析为有效 IP 地址时,MX 记录无效。在 Exchange 2007 RTM 中,DNS 查询在达到 1 分钟限制时间后,会丢弃所有的 MX 记录,而不是使用有效的 MX 记录而丢弃无效的 MX 记录。远程传递队列进入重试状态。达到配置的邮件重试间隔后,才会重试邮件传递。有关详细信息,请参阅管理邮件重试间隔、重新提交间隔和过期间隔

修改 Exchange 2007 SP1 和 SP2 中的 DNS 查询失败敏感度

在 Exchange 2007 SP1 和 SP2 中,DNS 查询行为得到了改进。如果 DNS 查询导致错误,则只有在该 DNS 服务器没有对当前查询返回错误时,才会继续查询下一个 DNS 服务器。

Exchange 2007 SP1 和 SP2 还在 EdgeTransport.exe.config 应用程序配置文件中包含了一个名为 DnsFaultTolerance 的参数。此参数具有下列值:

  • Lenient   当 DNS 查询遇到有效 MX 记录和无效 MX 记录组合时,DNS 查询将继续进行,直到达到 1 分钟的 DNS 查询超时值为止。丢弃无效的 MX 记录。同时使用首选项值最低的有效 MX 记录将邮件传递到目标消息服务器。

  • Normal   当 DNS 查询首先遇到无效 MX 记录时,立即丢弃其首选项值大于或等于无效 MX 记录的任何已解析 MX 记录。使用具有最低首选项值的剩余 MX 记录不需等待至整个 DNS 查询超时即可将邮件传递到目标消息服务器。尽管这种行为可以更快地进行邮件传递,但此行为的潜在缺点是,如果下列条件为真,则 DNS 查询可能没有有效的 MX 记录。

    • 无效 MX 记录是目标域的第一个 MX 记录。

    • 有效 MX 记录具有与无效 MX 记录相同的优先级值。

在 Exchange 2007 SP1 和 SP2 中,集线器传输服务器或边缘传输服务器上的 DnsFaultTolerance 参数的默认值是 Lenient

Normal 模式和 Lenient 模式下,从不缓存无效 MX 记录的 DNS 查询结果。下一次执行 DNS 查询时,会尝试解析目标域的 MX 记录。

EdgeTransport.exe.config 应用程序配置文件位于 C:\Program Files\Microsoft\Exchange Server\Bin 目录中。EdgeTransport.exe.config 文件是与 EdgeTransport.exe 文件关联的 XML 应用程序配置文件。EdgeTransport.exe 和 MSExchangeTransport.exe 是 Microsoft Exchange 传输服务所使用的可执行文件。此服务在每台集线器传输服务器或边缘传输服务器上运行。保存到 EdgeTransport.exe.config 文件的更改在 Microsoft Exchange 传输服务重新启动之后应用。如果符合下列条件之一,将强制使用默认值:

  • 缺少配置选项。

  • 存在配置选项,其中包含默认值。

以下示例显示 EdgeTransport.exe.config 文件的典型结构:

<configuration>

<runtime>

<gcServer enabled="true" />

</runtime>

<appSettings>

<add key=" 配置选项 " value=" " />

...

</appSettings>

</configuration>

可以在 <appSettings> 部分中添加新的配置选项或修改现有的配置选项。

对 EdgeTransport.exe.config 应用程序配置文件的更改在 Microsoft Exchange 传输服务重新启动之后生效。