我正在尝试估计一下,在一夜之间更改邮件服务器的 IP 是否现实,或者这是否会对第二天人们检索电子邮件造成影响。基本上,邮件服务器所在的设施将更改其 IP 池,这迫使我必须更改邮件服务器的 A 和 MX 记录。由于我没有更改 DNS 服务器本身(没有将记录移动到其他权威服务器),更改是否会几乎立即完成,还是由于最近可能查询过的不同非权威 DNS 服务器上的缓存,仍需要长达 48 小时?
感谢您的见解,
米
答案1
每条 DNS 资源记录都会被缓存;DNS 服务器本身是否移动并不重要。正如 Yahia 所说,记录的缓存时间取决于记录的 TTL。在执行 DNS 更改之前,通常的做法是将 TTL 从常规值(通常为一天或更长时间)降低到非常小的值,例如 5 分钟。
使此过程复杂化的事实是,一些行为不当的 DNS 缓存解析器会忽略指定的 TTL 并替换自己的值。(运行这些系统的人应该死于火灾,如果我当选互联网大霸主,他们就会这样)。因此,如果它是一个重要的系统或由您直接控制之外的人使用的系统,建议您在要迁移的系统上设置 DNAT 规则,以将发送到以前 IP 地址的流量重定向到新 IP 地址。
答案2
您是否已经知道新的 IP 地址?如果知道,那么您很幸运!设置一条新A
记录,为您的域设置子域,指向新 IP,然后将其添加为额外MX
记录;将新记录的优先级设置为高于旧记录MX
。在新 IP 应该激活的几天前执行此操作。新 IP 地址激活后,删除旧记录MX
,保留新记录。每次编辑时,MX
请记住更新您的序列号。SOA
以下是一篇概述故障转移/备份MX
记录的文章: http://www.zytrax.com/books/dns/ch9/mail.html
答案3
您场景中最重要的设置是TTL
相应的 DNS 记录。
设置得越低越好TTL
- 通常你不会得到“即时”结果,因为所有的 DNS 服务器都有不同的缓存行为,但TTL
设置得越低,结果就会越好……
答案4
DNS 更改应该在您的权威服务器上相对即时生效。但是,由于 DNS 缓存,更改需要一段时间才能传达给客户端。对于频繁使用的客户来说,这个问题比偶尔使用的客户更严重。您可以通过预先填充数据来解决这个问题。
已经发布的各种答案涵盖了您需要担心的所有内容。
- 将 TTL 设置为一个较低的值。比如说在更改前几天设置为 1H。尝试至少在更改前的当前 TTL 上执行此操作,最好是 TTL 的 2 倍。
- 为使用旧地址和新地址的邮件服务器添加两个新的 A 记录。为每个记录创建一个 MX 记录,并将旧服务器地址的优先级设为最高。切换后立即删除旧地址的 MX。将这两个记录的优先级设置为低于现有记录。(发送服务器不应检查横幅使用的名称。
- 使用当前名称为邮件服务器添加新的 A 记录。并为新地址设置 PTR 记录。A 记录将返回两个地址。这将允许 rDNS 验证对任一地址起作用。(许多接收服务器关心这一点,如果 rDNS 失败,可能会拒绝邮件或将其归类为垃圾邮件。)
现在,您可以切换到新地址了。切换后,您可以进行清理。
- 删除新名称的 MX 记录和旧地址的 A 记录。
- 等待几个小时并删除新名称的 A 记录。
这应该对您的用户完全透明。您遇到的任何问题都应仅限于不符合标准的服务器。
您可以将双 A 记录技术用于其他服务,但是当客户端尝试没有响应的地址并等待其超时时会出现延迟。