作者:唐俊华

日期:2018年1月25日

CDN 中的 DNS 功能及用途介绍_第1张图片

本文目的:介绍 CDN 中 的 DNS 功能及用途,以及如何运用工具软件观察它的运作。

我的目标是:读完此文后,你就能理解和大致判断出市场上的 CDN 厂商的服务质量和能力。


相关资料:
1.DNS原理
2.EDNS原理
3.CDN技术详解


一、CDN 中 DNS 功能及用途
CDN 中的 DNS 可用作调度,一般是做国家级、省市级和运营商级的调度。
简单来说,就是将互联网访问的客户的(页面、下载、点播、直播等)请求,通过DNS分析客户来源,将来源调度到本国就近本地运营商的CDN节点。

DNS调度:主要依赖于 IP 库与正确配制(算法),通常市面上能直接购买到的第三方IP库(IPIP,IP138和纯真IP库),普通CDN厂商均会采用外购第三方 IP 库进行调度,而 第三方IP库也不是完全准确。

2. CDN 的 DNS 数量及布局
2.1自建和外购:根据厂商规模、盈利目的及战略方向,会采用自己搭建DNS服务或者采购第三方解析服务(DNSpod等)。

自建:中国内地的 CDN 厂商(网宿、阿里,腾讯等)都会在全国各省市的骨干运营商机房内托管 DNS 服务器,用于将 DNS 的 权威服务器和调度服务器,以及用来预热("稍后重点解释DNS预热")。

外购:使用第三方购买的DNS解析服务,将可以利用API等方式提供调度,这类方式普遍适用于中小CDN厂商。(本文不做重点叙述)

自建+外购:权威服务器使用第三方,而边缘DNS使用自建的方式,这样可以做更多定制化功能,比如:DNS预热及302调度等功能复用。

2.2授权DNS(SOA DNS):主要是用来管理和下发 DNS 配制,一般国内厂商均只有内地授权服务器。如果客户同时需要对国内、海外的用户内容进行CDN加速,那么DNS的首次解析时间会比较长(海外客户的LocalDNS首先会去中国授权服务器获取NS信息,然后再将NS信息返回给海外的LocalDNS)

授权服务器数量:国内大部分是采用根据重点大区进行部署授权DNS,常见的是按大区部署:华东、华南、华北、西南。

边缘DNS(LocalDNS):主要是用于接收本地运营商的解析请求,将就近的CDN节点NS和A记录返回给最终客户。每个DNS节点只服务本地覆盖的区域,用来提高解析速度和准确性。

边缘DNS数量:主要根据不同运营商和地区机房的数量,人口密集程度来规划和部署节点(类似CDN节点的分布方式),具体数量根据厂商的规模而定。

DNS预热:用途就是为了加快某个地区的LocalDNS能缓存住一次正确的解析,采用自动化定时的方式去当地的运营商DNS请求,达到加快解析的目的。一般用途是用来做竞争对标时使用。

3. CDN 用来判断节点的常用命令
根据以上基本了解到DNS的用途,以下举例2条查看命令:
3.1 dig [domain]
以下红色方框处是CDN服务商返回的节点信息:
加速域名:www.163.com
CNAME:www.163.com.lxdns.com
线路名称:1stcncloud163.xdwscache.ourwebpic.com
节点信息:61.152.238.252
CDN 中的 DNS 功能及用途介绍_第2张图片
从图中可以观察到,本地区的加速是由国内厂商网宿科技加速,当地只用了一个机房的出口IP地址进行覆盖当地运营商的加速服务。

3.2 dig [domain] +trace
权威服务器信息:ns1.nease.net,ns3.nease.net,ns4.nease.net,ns5.nease.net,ns6.nease.net,
ns2.166.com,ns8.166.com
本次应答权威服务器:ns1.nease.net

CDN 中的 DNS 功能及用途介绍_第3张图片
应答到的权威服务器的具体信息:
CDN 中的 DNS 功能及用途介绍
4.总结:
根据DNS的权威服务和边缘服务,可分析出本地覆盖CDN的节点数量及调度是否正确。以此也可以用来评判一家CDN厂商的服务质量及规模。