我想知道是否可以根据当前使用的 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 是具有这种可能的配置的。