使用双 WAN 时在 Exchange 中切换智能主机

使用双 WAN 时在 Exchange 中切换智能主机

我想知道是否可以根据当前使用的 WAN 连接设置 Exchange 2003/2007 在智能主机之间切换。

示例场景:我有两个与不同 ISP 的 WAN 连接。Exchange 在双 WAN 路由器后面运行。路由器设置为在主 WAN 发生故障时回退到辅助 WAN。Exchange 中设置的智能主机是主 ISP 的 SMTP 服务器。由于 Exchange 中设置的智能主机仅允许从主 WAN 的 IP 进行中继,因此当路由器回退到辅助 WAN 时,发送邮件将不起作用。

直接通过 DNS MX 查找发送邮件是一种选择,但 ISP 拥有大量被列入黑名单的动态 IP。

提前致谢!

答案1

Exchange 2003 或 2007 中没有内置任何功能可以为您执行此操作。但是,Exchange 2007 可以通过 Powershell 进行管理,控制智能主机的组件是 Exchange 2007 中的发送连接器,您可以编写一个 Powershell 脚本来更改该属性,而无需付出太多努力。您是否希望以某种方式自动运行将决定这需要多复杂。

答案2

#Adding Exchange Snap In to execute Exchange CmdLets in this script
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin

#Enter an IP to use as the monitor, you may need to put a static entry on your router
$Srvname = "4.2.2.2"
$ping = new-object System.Net.NetworkInformation.Ping

#enter your primary smarthost IP
$primary = "1.1.1.1"

#enter your failover smarthost IP
$failover = "2.2.2.2"

$test = $ping.send($Srvname)

if (!$test)
 {
  Set-SendConnector "INDENTITY OF SEND-CONNECTOR" -SmartHosts $failover
  Write-host "Changed outbound send connector to $failover"
 }
elseif ($test.status -eq "Request timed out.")
 {
  Set-SendConnector "INDENTITY OF SEND-CONNECTOR" -SmartHosts $failover
  Write-host "Changed outbound send connector to $failover"
 }
elseif ($test.status -eq "Success")
 {
  Set-SendConnector "INDENTITY OF SEND-CONNECTOR" -SmartHosts $primary
  Write-host "$primary is up, no changes were made"
 }
Else
 {
  Write-Host "Failed with status..."
  $test.status
 }

答案3

我假设您指的是 ISP 分配给您的动态 IP。如果是这样,那应该不会影响您的 Exchange 服务器使用 DNS 执行 MX 查找以查找外发电子邮件的能力。来自 ISP 的可疑 IP 可能会导致您被列入黑名单,但不会导致您的 Exchange 服务器在查找 MX 记录或建立出站 SMTP 连接时出现问题。

答案4

不。不过这里有个小窍门 - 你应该可以在路由器上这样做。在这样的设置中,exchange 会转发到路由器的内部 IP。然后路由器会根据 WAN 连接的状况进行转发。

至少 RouterOS 是具有这种可能的配置的。

相关内容