我们正在迁移电子邮件托管从服务器-A(在HOSTING_CO-A) 到服务器-B(在HOSTING_CO-B)。
服务器-A将继续发挥作用,直到过渡完成,并且HOSTING_CO-A有自己的 DNS 服务器,因为我们的记录目前显示的内容如下:
mx1.hosting_co-a.示例
ns1.hosting_co-a.示例
和HOSTING-CO-B大概也有自己的 DNS 服务器(即 Google/GSuite)。
我读过 [1],DNS 更改可能需要长达 72 小时。
在此期间发送的电子邮件的最坏情况是什么?
他们要么去服务器-A或者服务器-B(也就是说,使用未更新 DNS 记录的电子邮件提供商是否能够访问服务器-A或者服务器-A根据更新的 MX 记录拒绝还是转发?
它们会被“丢弃”吗(即发送者和接收者都不会意识到消息没有发送)?
发件人是否会收到邮件未送达的通知?
我们正在切换各种域/帐户,对于某些域,我们宁愿丢弃消息也不愿返回,而对于其他域,我们宁愿返回也不愿丢弃消息 - 如果这甚至是可以控制的。
[1]https://support.google.com/a/answer/45679?hl=en还指出提前减少记录的 TTL(这是否意味着 TTL 的最大停机时间?)
答案1
如果您提前更改 MX 记录的 TTL 值,我认为您的过时记录在切换后 72 小时内不会继续存在。接下来,如果您的旧邮件服务器关闭,它将不再接受任何电子邮件,发件人将在 X 小时内重试 Y 次。我相信总共可能需要几天时间才能放弃发送电子邮件。在重新尝试时,它肯定会再次查询 MX 记录,找到您的新邮件服务器,之后邮件投递就会成功。
答案2
一般来说,这是一种可行的方法,因为具体细节取决于您未提供的太多细节:
- 您设置新的邮件交换器:为您的域配置它们,您手动验证直接向它们发送电子邮件是否具有预期的结果,等等。
- 例如,您可以将当前记录的 TTL 降低
MX
到 5 分钟,同时降低 SOA 中的刷新值。然后等待延迟,该延迟不应超过(之前的 TTL,之前的刷新)的最大值加上一些安全裕度(无论如何,不应匆忙进行此类基础设施更改,等待额外的时间不会有任何损失,相反,您可以让自己遇到更少的问题)。您可以在许多公共 DNS 服务器上尝试,看看它们是否捕获了更改(新的 TTL 应该出现在回复中),例如1.1.1.1
,8.8.8.8
或9.9.9.9
80.80.80.80
- 此时,如果可以选择,您可以重新配置当前的邮件交换器,将其收到的所有内容转发给新的邮件交换器
- 你更改
MX
区域中的记录以指向新的电子邮件交换器 - 如果你监控与旧主机的连接,它们应该会迅速消失,但如果发件人不更新其 DNS 解析,则某些远程队列中任何其他先前卡住的电子邮件都可能会重试;无论如何,如果你能够从上一步配置它们,以便将在那里收到的消息发送到新主机,那么让它们运行几天也没什么坏处
- 当您对不再有任何内容影响旧服务器感到满意时,您可以记得再次更改区域中的 TTL,并为正在进行的操作设置一个更合理的值,例如 24 小时。
如果您无法执行第 3 步,上述方法仍然有效,只是意味着您必须手动处理切换后继续发送到旧服务器的少量电子邮件。这完全取决于他们如何处理这些电子邮件、用户邮箱的存储位置和方式等。
至于您的具体问题:
它们会转到服务器 A 还是服务器 B(也就是说,使用未更新的 DNS 记录的电子邮件提供商是否能够到达服务器 A,或者服务器 A 是否会根据其更新的 MX 记录拒绝或转发它)?
是的,在切换MX
记录后,无论您设置了多少 TTL(如果您试图设置“1 秒”,这在技术上是可行的,但在现实生活中行不通,因为许多缓存不遵守它们认为太低的 TTL,即使这有点违反标准,它们也会使用自己的默认版本 - 这就是为什么任何低于 5 分钟的 TTL 都不是一个好主意),一些电子邮件可能仍会到达旧主机。这就是为什么不要过早关闭它们很重要的原因。并准备对这些到达这里的电子邮件做“一些事情”(因此我在上述场景中采取了第 3 步)
MTA 不会咨询 DNS 以了解它们是否与它们收到的电子邮件相关,它们只是根据其配置进行操作。如果您的旧主机仍配置为接受邮箱的电子邮件@example.com
,那么即使在更改后,它们仍会这样做。这与上述场景的第 1 步完全相同:您可以在 DNS 更改之前配置新主机并验证它们是否正确接收电子邮件。
它们会被“丢弃”吗(即发送者和接收者都不会意识到消息没有发送)?
不,至少不是因为 MX 更改。这完全取决于旧主机的电子邮件配置。
发件人是否会收到邮件未送达的通知?
同上。通常不会发生这种情况。如果旧主机退回电子邮件,则发件人会收到通知,但这是通用的电子邮件处理,与 MX 更改没有特别的关系。
答案3
如果客户端使用未更新的 DNS 记录,电子邮件将继续流向服务器 A。
电子邮件投递失败时用户是否会收到通知取决于 SMTP 服务器的配置,但如果目标服务器无法解析或无法连接,该服务器肯定会注意到。
答案4
配置良好的名称服务器可以非常快速地应用更改。谈到 MX 记录更改,如今只有配置不佳的服务器需要数小时才能进行更新。
我最近移动了一个邮件服务器,但一条邮件消息都没丢失。说实话,上面只有几个注册用户,但是……MX 记录更改在一分钟内应用,邮件在几分钟内就开始投递
干杯,
查夫达