首页 最新文章网站正文

域名DNS解析实战之CNAME

       域名解析在选定NS后就是DNS解析记录的添加了,这里重点说一下cname记录,在一次添加CNAME记录时,欲对顶级域名进行解析,使用CDN服务必须修改A记录为CNAME记录,但总是不成功,提示已有相同主机的TX记录,不能添加同主机名的CNAME记录,但dnspod却可以添加,让人好生不解,因为TX记录是企业邮箱的解析需要,曾试着联系云邮箱客服以确认是否可以删除该记录而对企业邮箱的解析无影响,得到的答案是否定的,于是废了点时间深入的了解了一下顶级域名的CNAME记录解析情况。

      先撇开顶级域名的问题,单纯的说一下CNAME,我理解的CNAME的作用类似于域名重定向,相当于将需要解析的域名设置了一个别名,这个别名可能指向另一个物理IP或者是另一个域名,而另一个域名的所有解析记录都会被继承,比如一个本站的域名liuxiangtao.com,我们给它的一个子域名 www.liuxiangtao.com 添加CNAME记录,记录值是 www.anquanbao.com.h1.aqb.so. ,那么,www.liuxiangtao.com 将会继承 www.anquanbao.com.h1.aqb.so 的各项记录,,包括A、MX、CNAME、TXT等等,但是不会包括NS记录,否则从逻辑显然无法解释,因为只有先知道NS才能知道CNAME是什么。NS记录首先应该存在于更高一级的DNS服务器上,liuxiangtao.com 的NS记录存在于负责解析 .com 根域的DNS服务器上。

      当访客访问 www.liuxiangtao.com 的A记录时,本地的DNS服务器将会根据 liuxiangtao.com 的NS记录找到负责解析 liuxiangtao.com 的DNS服务器,通过它查询 www.liuxiangtao.com 的A记录,如果有直接指向物理IP的A记录,则解析终止,如果 www.liuxiangtao.com 只有CNAME记录,那么这个负责解析 liuxiangtao.com 的DNS服务器就会向提返回其CNAME值:www.anquanbao.com.h1.aqb.so,也就是说,www.liuxiangtao.com 的A记录和 www.anquanbao.com.h1.aqb.so 的一样的,本地的DNS服务器就会以同样的步骤去查询 www.anquanbao.com.h1.aqb.so 的A记录,最后查出来的结果就作为 www.anquanbao.com.h1.aqb.so 的A记录返回给客户端。同理,如果 www.anquanbao.com.h1.aqb.so 恰好也是设置了CNAME的话,本地的DNS也会继续按上面的步骤根据www.anquanbao.com.h1.aqb.so 的CNAME值往下查。MX、TXT等其他记录项也是同样的道理。但无论有多少层查询,当中转多少个弯,最终查询到的A记录肯定是你意想中的那个熟悉的物理IP,否则你的应用情归何处呢!眼下众多的cdn分发,防ddos攻击产品均采用此机制来实现加速安全性防护的目的
     所以,如果一个域名添加了CNAME后,继承了CNAME值中域名的全部记录,那么这个域名本身也就没有必要存在除CNAME以外的其他记录了,只要一个CNAME记录就全都包括了。如果强行给一个已经添加了CNAME的域名再添加其他记录项,这些记录项很可能无效,甚至负责解析该域名的DNS服务器可能会出现错误导致死循环。

     国内一些域名解析服务商常常禁止给顶级域名添加CNAME记录,主要是因为顶级域名通常作为企业邮箱后缀需要添加MX记录,而如上所述CNAME和MX同时存在会出错,这种禁止造成了很多误解,很多人以为顶级域不可以添加CNAME,其实顶级域只要没有MX记录,是照样可以添加CNAME的。相比之下,国外一些DNS服务商对于这个问题处理的就很灵活,他们并不会禁止给顶级域添加CNAME,但是当已经存在CNAME时再添加MX记录,则会给出提示。易名中国就是如此,但是dnspod却可以顶级域名的CNAME和MX并存,到现在也没想明白,只能怀疑其中的mx记录根本没生效。

 

     普及一下DNS解析常见的记录类型:
A记录:地址记录,用来指定域名的IPv4地址(如:8.8.8.8),如果需要将域名指向一个IP地址,就需要添加A记录。
CNAME: 如果需要将域名指向另一个域名,再由另一个域名提供ip地址,就需要添加CNAME记录。
TXT:在这里可以填写任何东西,长度限制255。绝大多数的TXT记录是用来做SPF记录(反垃圾邮件)。
NS:域名服务器记录,如果需要把子域名交给其他DNS服务商解析,就需要添加NS记录。
AAAA:用来指定主机名(或域名)对应的IPv6地址(例如:ff06:0:0:0:0:0:0:c3)记录。
MX:如果需要设置邮箱,让邮箱能收到邮件,就需要添加MX记录。
显性URL:从一个地址301重定向到另一个地址的时候,就需要添加显性URL记录(注:DNSPod目前只支持301重定向)。
隐性URL:类似于显性URL,区别在于隐性URL不会改变地址栏中的域名。
SRV:记录了哪台计算机提供了哪个服务。格式为:服务的名字、点、协议的类型,例如:_xmpp-server._TCP

评论

觉得有用就打赏吧
关注本站公众号,享受更多服务!
联系方式
QQ:########
地址:中国·辽宁
Email:2727987445#qq.com
Copyright ©2015-2023.Powered by 云水客 | 网站地图 | 辽ICP备14000512号-5