DNS之CNAME

DNS之CNAME,第1张

DNS 的原理就是一层层从根域名递归查询,其中让我觉得有疑问的就是 CNAME

反复使用命令查询七牛的官网,我知道他们一定会使用 CDN,CDN 也是 CNAME 使用最多的场景。

可以看到路径是这样子的 qiniu.com. => mid-lvs-public.qiniu.com. => jjh-lvs-public.qiniu.com. =>给了一个 A 记录 180.97.147.243 。

最终我们的请求肯定也都是发到 A 记录上,也就是将 qiniu.com 交到 180.97.147.243 ,这个 IP 对应的服务接受到请求才开始往客户端吐数据。

CNAME 提供一个窍门将解析 A 记录的权利交到下一个域名上,具体下一个域名对应的 ip 可能以后会变,但是对于上一个域名所对应的域名不会变,这个点很像 JAVA 中的一个接口,接口的实现可能会变,但是接口名和方法名提前就确定好了。

域名解析过程

第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器

第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。

第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。

第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。

第五步:重复第四步,直到找到正确的纪录。

第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

一、DNS域名解析:( Domain Name System)是“域名系统”的英文缩写, www.qq.com ==>192.168.1.1 域名方便记忆

二、CDN内容分发网络:

假设通过CDN加速的域名为 www.a.com ,接入CDN网络,开始使用加速服务后,当终端用户(北京)发起HTTP请求时,处理流程如下:

1.当终端用户(北京)向 www.a.com 下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。

2.LDNS检查缓存中是否有 www.a.com 的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。

3.当授权DNS解析 www.a.com 时,返回域名CNAME www.a.tbcdn.com 对应IP地址。

4.域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。

5.LDNS获取DNS返回的解析IP地址。

6.用户获取解析IP地址。

7.用户向获取的IP地址发起对该资源的访问请求。

8.如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户,例如,图中步骤7和8,请求结束。

9.如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。

10.获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点,例如,图中的北京节点,并返回给用户,请求结束。

总结:(1)CDN的加速资源是跟域名绑定的。

(2)通过域名访问资源,首先是通过DNS分发查找离用户最近的CDN节点(边缘服务器)的IP

(3)通过IP访问实际资源时,如果CDN上并没有缓存资源,则会到源站请求资源,并缓存到CDN节点上,这样,用户下一次访问时,该CDN节点就会有对应资源的缓存了。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/480258.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-08
下一篇2023-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存