cname 记录和 mx 记录的“超级不解”

2018-09-06 13:40:42 +08:00
 dreamflyman
我知道 cname 记录和 mx 记录是不可以共存的,但是网上看到一个可以提供临时邮箱的,就是这个: http://free365.tw/ ,这是什么原理?

可以随机配发邮箱或者自定义一个邮箱,如: abcd@free365.tw ,然后用自己的 QQ 邮箱、126 等邮箱给它发邮件,能收到邮件!奇怪的,查询了 free365.tw 的 MX 记录,竟然是不存在的,只有一个 cname 记录指向 mail.0du.win !好神奇,cname 记录除了普通的 web 访问,还直接包含了邮件发送功能的 MX 了吗?

还有按照该网站下面的提示,假设你有一个域名:laotie666.com ,那么你只需要把 laotie666.com 解析 cname 记录到 mail.0du.win ,同样可以得到以你域名 laotie666.com 为后缀的邮箱,如: wssb@laotie666.com


真心期盼大佬答疑!!!
3219 次点击
所在节点    程序员
10 条回复
yukiww233
2018-09-06 13:47:00 +08:00
isyes
2018-09-06 14:51:50 +08:00
mx 记录和 a 记录的目的都是一样的,dig mx 无非就是为了找到一个 ip 地址,然后邮箱服务往这个 ip 地址发信就可以,可以把 mx 记录和 a 记录对应的 ip 地址配成一样的
cname 跟 web 服务没有关系,为什么存在 cname ?主要还是管理方便,楼上的场景就是这样子,free365.tw 可能不是自己提供邮件服务,例如腾讯企业邮箱,是托管在 mail.0du.win 邮件服务提供上,当然最原始的方法是 mail.0du.win 邮件服务提供商直接把邮件服务器所以 ip 地址告诉 free365.tw ,然后 free365.tw mx 记录配置上去,但是 mail.0du.win 的邮件服务器地址可能经常变化,不可能变化一次,就通知 free365.twfree365.tw 就更改解析记录,free365.tw 不累死了么,所以 mail.0du.win 就告诉 free365.tw ,你 cname 到 mail.0du.win 就可以,这样邮件服务器地址发生变化,free365.tw 的解析记录就不用做任何修改。
大概就这样子
mytsing520
2018-09-06 15:04:59 +08:00
@isyes 这种做法是可以,但不是一种规范化的操作
qiayue
2018-09-06 15:14:15 +08:00
@mytsing520 你说哪个操作不是规范化的操作?
raysonx
2018-09-06 15:25:35 +08:00
CNAME 是域名别名,并不局限于 A 记录。
mytsing520
2018-09-06 20:20:03 +08:00
@qiayue 通过 CNAME 指向其他域名,在其他域名上设置 MX 记录属于不规范操作,很多邮局不认可这是一个正常地址,丢件概率比较高
orzfly
2018-09-06 22:00:38 +08:00
@mytsing520 “很多邮局不认可这是一个正常地址”[citation required]
dreamflyman
2018-09-07 01:56:02 +08:00
@isyes 大佬,其它邮箱如 10000@qq.com 给 wssb@laotie666.com 这样的地址发邮件是怎么实现的? qq.com 邮件服务器通过 mx 记录查不到收件服务器 ip,就通过 cname 的记录查询背后的收件服务器 ip 是吧?网上经常有人说 cname 不能和 mx 共存,是不是也是这个原因?
mytsing520
2018-09-07 07:08:50 +08:00
@orzfly CNAME 本身具有唯一性、排他性,参考 RFC1034 3.6.2。
很多邮件服务商在检查收信人域名时,仅按该邮件所在的域是否存在 MX 记录作为是否能有效收信的标准。(差不多是这个样子)

@dreamflyman CNAME 与 MX 不能共存,详见 RFC1034 3.6.2。
isyes
2018-09-07 11:35:36 +08:00
qq.com 邮件服务器会通过公共 DNS 查询 laotie666.com 的 mx 记录,DNS 服务器会看 mx 记录有没有,cname 这个记录很特殊,没有 mx 记录,DNS 权威服务器就会看有没有 cname 记录,然后返回 cname 记录给公共 DNS,然后公共 DNS 会帮你查到这个 cname 之后域名的对应的 IP 地址,然后返回发件服务器,发件服务器对于他来说只要拿到一个 ip,然后往这个 ip 的 smtp 端口发消息就可以,后面就是 smtp 协议干的事情了。

cname 和 mx 记录不能共存,cname 的中文意思是规范名称,看这样一条 cname 记录,www.baidu.com cname a.shifen.comwww.baidu.com 是标准说法是别名,a.shifen.com 是正儿八经的名字,所以 rfc 是这样说的,只有正儿八经的名字可以继续有解析记录,www.baidu.com 不能再有 RR,因为你本身就是别名,不知道这个解释合理么

标准的 DNS 权威软件像 bind,nsd,powerdns,knotdns 都是遵循 RFC 规范,当然不共存,但是自研的 DNS 软件一般都是共存的,因为给公共 dns 同时返回一个 cname 和 mx 记录,也没有坏处。a 记录和 cname 记录共存更是最基本的需求

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/486716

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX