执行 Microsoft Exchange 2010 到 2016 的迁移,除了这个问题之外,一切都已准备好进行过渡。
我有一个内部 CNAME DNS 记录 mail.domain.tld,它指向 Exchange 2010 服务器 192.168.0.10。Exchange 2016 服务器是 192.168.0.20。
当我尝试通过 Exchange 2016 服务器上的 POP3 进行身份验证时(使用 OpenSSL 命令“openssl s_client -connect 192.168.0.20:995”),无论用户邮箱是 2010 版还是 2016 版,服务器都会对我进行身份验证,当我终止连接时,我知道这一点,因为我收到了“+OK Microsoft Exchange Server 2016 POP3 服务器注销。”或“+OK Microsoft Exchange Server 2010 POP3 服务器注销。”的响应,具体取决于邮箱所在的位置。
当我尝试通过 Exchange 2010 服务器上的 POP3 进行身份验证时只能使用 2010 服务器上的邮箱进行身份验证,我知道这是正常功能。
然而,当我将指向 Exchange 2010 服务器 192.168.0.10 的内部 CNAME DNS 记录 mail.domain.tld 更改为 Exchange 2016 服务器 192.168.0.20 时当我尝试通过 POP3 在 Exchange 2016 上对 2010 上的邮箱进行身份验证时,服务器会给我一个身份验证错误“-ERR 登录失败:未知用户名或密码错误”。我只能假设无法确定邮箱属于哪个 Exchange 服务器并正在对我的 Exchange 2016 服务器(而不是 2010 服务器)进行身份验证。
我可以在哪里检查 Exchange 2016 的配置,以了解它如何确定邮箱属于哪个邮箱数据库?我最好的猜测是,Exchange 2016 看到邮箱属于 Exchange 2010 并指向 mail.domain.tld,认为这是 2010 服务器,而实际上它是 2016 服务器,然后给我这个身份验证错误,因为邮箱不在这个数据库中。
值得注意的是,在 Exchange 2016 EAC 的“服务器 --> 数据库”下,列出的每个邮箱数据库都以服务器 FQDN 作为服务器名称,而不是 CNAME 记录 mail.domain.tld
编辑:
我能够解决这个问题并确定问题的原因。Exchange 2016 的 POP3 InternalConnectionSettings 和 ExternalConnectionSettings 的代理设置以及 Exchange 2010 的 POP HELO 响应均设置为 mail.domain.tld
发生的情况是,当我将 mail.domain.tld 的 CNAME 记录从 Exchange 2010 更改为 Exchange 2016 时,当 Exchange 2016 被设置为主 CAS 时,它会尝试将 2016 上以外的邮箱的连接发送到 mail.domain.tld,并且会陷入尝试自我验证的循环中。
我将 CNAME 记录更改为指向 Exchange 2016,并在 Exchange 2016 上的 hosts 文件中设置 DNS 记录以将 mail.domain.tld 指向 Exchange 2010 服务器,这样就解决了该问题。
现在我可以开始将邮箱从 2010 迁移到 2016 了。
答案1
我能够解决这个问题并确定问题的原因。Exchange 2016 的 POP3 InternalConnectionSettings 和 ExternalConnectionSettings 的代理设置以及 Exchange 2010 的 POP HELO 响应均设置为 mail.domain.tld
发生的情况是,当我将 mail.domain.tld 的 CNAME 记录从 Exchange 2010 更改为 Exchange 2016 时,当 Exchange 2016 被设置为主 CAS 时,它会尝试将 2016 上以外的邮箱的连接发送到 mail.domain.tld,并且会陷入尝试自我验证的循环中。
我将 CNAME 记录更改为指向 Exchange 2016,并在 Exchange 2016 上的 hosts 文件中设置 DNS 记录以将 mail.domain.tld 指向 Exchange 2010 服务器,这样就解决了该问题。
现在我可以开始将邮箱从 2010 迁移到 2016 了。