DNS域名解析原理及CDN(内容网络分发)

DNS域名解析原理及CDN原理解析

Posted by wang chong on March 16, 2019

DNS

DNS(Domain Name System),域名解析,用于将域名转换成IP。

为什么要进行域名解析

一般我们在访问一个网站的时候,我们在地址栏里面输入的是域名,很少有人去输入IP来访问。比如说blog.ctomorrow.top,当我们把这段域名输入到地址栏中后,因为域名是字符串,浏览器是无法解析字符串的,所以要把域名解析成IP地址才可以进行访问。

如何配置域名

当我们在买了云服务器和域名之后,要向让域名与服务器对应必须要进行相关的配置,通常配置面板就会提供商那里。

例如阿里云,在阿里云的域名控制台中就可以看到解析

在这里就可以配置服务

域名资源记录有很多中,分别代表者不同的类型。

DNS域名解析

DNS服务器内部是有一个大数据库的,主要的字段就两列,相当于key-value结构。key是域名,value是IP。在进行域名解析的时候,把域名投到DNS服务器,然后DNS根据域名找到对应的IP。

DNS采用迭代查询的方式进行域名解析。首先看下图。

先来解释一下图上的几台主机。

  • 1号电脑就是我们的客户端,输入url。
  • 2号主机就是DNS服务器。
  • 3号主机是DNS 根服务器,存放顶级域名后缀与相应TLD服务器的IP,用于映射顶级域名后缀的TLD服务器的IP。
  • 4好主机是DNS TLD服务器,存放顶级域名与相应Name服务器的IP,用于映射顶级域名的Name服务器的IP。
  • 5号主机是DNS Name服务器,真正存放IP与域名的映射关系在这里,用于映射客户端所访问域名的IP。

以上图www.google.com为例,我们来走一下解析流程。

  1. 首先客户端在浏览器地址栏中输入www.google.com,会先把解析请求发送给DNS服务器。
  2. 然后DNS进行迭代查询,先向Root Server发起请求,返回.com后缀的TLD Server的IP。
  3. 然后DNS服务器再向TLD Server发起请求,返回.google.com顶级域名的Name Server的IP。
  4. 然后DNS服务器再向Name Server发起请求,返回www.google.com域名的IP。
  5. 最后DNS服务器把所查询到的IP返回给客户端,客户端进行相应。

CDN(内容分发网络)

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。(CDN网络是在用户和服务器之间增加Cache层,如何将用户的请求引导到Cache上获得源服务器的数据,主要是通过接管DNS实现)

CDN是基于DNS域名解析在网络上的一种优化策略。

曾经的集中式

在很久以前上网的时候,网站服务器只有一个,客户端很多,每次请求都要走很长很长的网络,访问网站效率很慢。

分布式

分布式的出现就是为了解决在访问网站的时候走很长网络的问题。在全球各地都放服务器,在请求的时候判断客户端的地理位置,找到离客户端最近的那台服务器,把请求资源返回给客户端。

CDN原理

  1. 当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。
  2. CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。用户向CDN的全局负载均衡设备发起内容URL访问请求。CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备(边缘节点),告诉用户向这台设备发起请求。均衡设备把服务器的IP地址返回给用户。
  3. 用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务(多级缓存)器请求内容,直至追溯到网站的源服务器将内容拉到本地(回源)。