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.com ,
www.baidu.com 是标准说法是别名,
a.shifen.com 是正儿八经的名字,所以 rfc 是这样说的,只有正儿八经的名字可以继续有解析记录,
www.baidu.com 不能再有 RR,因为你本身就是别名,不知道这个解释合理么
标准的 DNS 权威软件像 bind,nsd,powerdns,knotdns 都是遵循 RFC 规范,当然不共存,但是自研的 DNS 软件一般都是共存的,因为给公共 dns 同时返回一个 cname 和 mx 记录,也没有坏处。a 记录和 cname 记录共存更是最基本的需求