我有点困惑我的一个客户的电子邮件帐户发生了什么事。
我的客户在 dotster.com 注册了一个域名。在我们建立她的网站之前,她想开始使用该域名的电子邮件,因此我通过 Google Apps 邮件为她设置了邮箱,并将相应的 MX 记录添加到了她的 dotster 帐户。
当她的网站准备就绪后,我将它托管在 dreamhost 上,并将 dotster 帐户中的域名指向 Dreamhost 的名称服务器。(例如,托管在 dotster 上的域名指向用于网络托管的 Dreamhost 名称服务器)。MX 记录与以前一样,一段时间内一切都运行正常。
今天,她告诉我她的电子邮件开始被退回。”另一台服务器返回的错误是:554 554 5.7.1:收件人地址被拒绝:访问被拒绝(状态 14)“。当我执行跟踪路由时,MX 记录没有显示,但文本记录显示了(也设置在 dotster)。
于是我去了 Dreamhost 并在那里添加了 MX 记录。现在她的电子邮件又可以使用了。
我的问题:
1) MX 记录是否必须在名称服务器指向的位置设置?我以为它们是独立的。
2) 我还非常确定,在我将域名服务器指向 dreamhost 后,她的电子邮件在相当长的一段时间内都能正常工作。那么,为什么它会突然停止工作呢?
我是一名前端网页设计师/开发人员,所以请记住,根据你认为我已经知道多少。:)(与服务器相关的东西通常比其他任何东西都更难我)。
答案1
1) 绝对如此。当进行 DNS 查找时(在本例中,是为了查看邮件的发送位置),该查找是从名称服务器进行的。因此,如果您的名称服务器没有列出 MX 记录,则查找将不会有任何结果。
它和电话簿一样——只不过想象一下你只能在里面列出你的电话号码一一次只能查看一个电话簿。因此,您告诉您的朋友“在 Acme 电话簿中查找我”。这样,当他们想联系您时,他们会在 Acme 电话簿中查找您的电话号码,找到您的列表,然后给您打电话。但是,如果您将您的列表移至“OtherGuys 电话簿”,但不告诉 OtherGuys 您的电话号码,当您的朋友在 OtherGuys 中查找您时,他们将看不到您的电话号码——因为它列在 Acme 电话簿中。
2) 这是因为您的客户端域的名称服务器记录被缓存了一段时间(通常为几个小时,也可能长达几天——超时时间是可配置的)。这意味着(大致)任何在您切换名称服务器之前进行过 MX 查找的人都会将旧信息保留在内存中一段时间,这样他们就不必再次查找。但最终,这些信息会过期,因此当他们尝试再次查找信息时——这次是从新服务器——他们“什么也没有”,所以邮件开始被退回。
答案2
- 是的
- DNS 缓存。一旦超时,事情就开始变得糟糕。
每个域都有一个SOA 记录. 它定义了其他服务器应该缓存多长时间的信息在哪里请求该域名的记录。
举个例子:
@ IN SOA nameserver.place.dom. postmaster.place.dom. (
1 ; serial number
3600 ; refresh [1h]
600 ; retry [10m]
86400 ; expire [1d]
3600 ) ; min TTL [1h]
一旦对 place.dom 上的某些内容(MX、TXT 等)进行查询,所有未来请求的位置都会被缓存最多 1 天。 在您的情况下,它要长得多,所以您没有注意到,因为 SOA 已被缓存。
要获取有关域的 SOA 记录的更多信息,请从命令行尝试执行以下操作:
~$ nslookup
> set type=soa
> set debug
> zaplabs.com
Server: 192.168.1.1
Address: 192.168.1.1#53
------------
QUESTIONS:
zaplabs.com, type = SOA, class = IN
ANSWERS:
-> zaplabs.com
origin = dns1.name-services.com
mail addr = info.name-services.com
serial = 2002050701
refresh = 10001
retry = 1801
expire = 604801
minimum = 181
AUTHORITY RECORDS:
ADDITIONAL RECORDS:
------------
Non-authoritative answer:
zaplabs.com
origin = dns1.name-services.com
mail addr = info.name-services.com
serial = 2002050701
refresh = 10001
retry = 1801
expire = 604801
minimum = 181
Authoritative answers can be found from:
>