作者:{XJ}@ArkTeam
一、概述
CDN(Content Delivery Network或Content Distribute Network,内容分发网络)主要功能是将源站内容分发至接近用户的最优缓存服务器上,使用户就近获取所需内容,提高用户访问速度,减轻源站负载压力。CDN解决了因地理分布、网络带宽、服务器性能带来的访问延迟问题,被广泛用于站点加速、视频点播、网络直播等场景。
二、原理
在传统访问模式中,用户通过浏览器访问网站域名,浏览器向DNS服务器请求域名解析,得到所查域名对应的IP地址,并向该地址发送访问请求,最终获取站点内容。
图1 传统用户访问流程
与传统访问模式不同,CDN服务是在客户端与服务端之间增加大量缓存服务器,并通过全局负载均衡(GSLB)系统选择出接近用户的最优缓存服务器,以此最快地响应用户访问请求。GSLB最通用的是基于DNS解析方式,此外还有HTTP重定向、IP路由等方法。下面以访问code.abc.com为例,说明基于DNS解析的CDN用户访问流程,其中,GSLB和缓存服务器集群由CDN服务商提供,code.abc.com站点使用了其CDN服务:
1. 用户通过浏览器访问域名code.abc.com,浏览器向DNS服务器请求域名解析;
2.DNS服务器在code主机记录下设置了别名CNAME,指向GSLB的域名gslb.abc.xxcdn.com,DNS服务器将该域名返回给浏览器。
3. 浏览器发起对gslb.abc.xxcdn.com的解析请求;
4. gslb主机名下添加了多条A记录,对应多个缓存服务器IP。GSLB根据客户端源IP地址,如地理位置、接入网类型等信息通过一定的优先原则,如路由最短、位置最近、负载最轻,选择接近用户的最优缓存服务器(IP:1.1.1.1),并返回其IP地址;
5. 浏览器向该缓存服务器地址发送访问请求;
6. 若该缓存服务器已存储用户请求内容,则直接响应;若没有,则向源站点转发请求,将源站点响应内容返回给用户,并保存在本地。
图2 基于DNS解析的CDN用户访问流程
三、CDN带来的安全问题
CDN服务在被广泛使用的同时,也带来了一些安全问题。2017年,安全人员发现Rickydiva组织利用CDN厂商域名备案漏洞自动化进行大面积恶意软件投放的活动,攻击者通过抢注备案过期域名,在短时间使用这些备案过期域名来绕过监管,大范围地传播恶意软件。在其他攻击案例中,CDN配合域名前置技术可用以隐藏恶意通信流量。此外,CDN中各节点本身的安全性也面临着挑战,一旦被攻击者利用(例如缓存投毒、循环转发攻击等),将产生严重的安全问题。
四、参考
1.https://www.cnblogs.com/losbyday/p/5843960.html
2.http://blog.csdn.net/aosica321/article/details/51463258
3.http://www.freebuf.com/news/139358.html
4.https://www.fireeye.com/blog/threat-research/2017/03/apt29_domain_frontin.html