V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dreamflyman
V2EX  ›  程序员

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

  •  
  •   dreamflyman · 2018-09-06 13:40:42 +08:00 · 3002 次点击
    这是一个创建于 2031 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我知道 cname 记录和 mx 记录是不可以共存的,但是网上看到一个可以提供临时邮箱的,就是这个: http://free365.tw/ ,这是什么原理?

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

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


    真心期盼大佬答疑!!!
    10 条回复    2018-09-07 11:35:36 +08:00
    yukiww233
        1
    yukiww233  
       2018-09-06 13:47:00 +08:00
    isyes
        2
    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
        3
    mytsing520  
       2018-09-06 15:04:59 +08:00
    @isyes 这种做法是可以,但不是一种规范化的操作
    qiayue
        4
    qiayue  
       2018-09-06 15:14:15 +08:00
    @mytsing520 你说哪个操作不是规范化的操作?
    raysonx
        5
    raysonx  
       2018-09-06 15:25:35 +08:00 via Android
    CNAME 是域名别名,并不局限于 A 记录。
    mytsing520
        6
    mytsing520  
       2018-09-06 20:20:03 +08:00
    @qiayue 通过 CNAME 指向其他域名,在其他域名上设置 MX 记录属于不规范操作,很多邮局不认可这是一个正常地址,丢件概率比较高
    orzfly
        7
    orzfly  
       2018-09-06 22:00:38 +08:00
    @mytsing520 “很多邮局不认可这是一个正常地址”[citation required]
    dreamflyman
        8
    dreamflyman  
    OP
       2018-09-07 01:56:02 +08:00
    @isyes 大佬,其它邮箱如 [email protected][email protected] 这样的地址发邮件是怎么实现的? qq.com 邮件服务器通过 mx 记录查不到收件服务器 ip,就通过 cname 的记录查询背后的收件服务器 ip 是吧?网上经常有人说 cname 不能和 mx 共存,是不是也是这个原因?
    mytsing520
        9
    mytsing520  
       2018-09-07 07:08:50 +08:00
    @orzfly CNAME 本身具有唯一性、排他性,参考 RFC1034 3.6.2。
    很多邮件服务商在检查收信人域名时,仅按该邮件所在的域是否存在 MX 记录作为是否能有效收信的标准。(差不多是这个样子)

    @dreamflyman CNAME 与 MX 不能共存,详见 RFC1034 3.6.2。
    isyes
        10
    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 记录共存更是最基本的需求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5407 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:55 · PVG 15:55 · LAX 00:55 · JFK 03:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.