DNS & CDN & HTTPDNS 原理简析

DNS & CDN & HTTPDNS 原理简析

背景:

域名系统 DNS (Domain Name System ): 作为域名和 IP 地址相互映射的一个分布式数据库,通过 DNS 可以将域名迅速解析为对应的 IP 地址,从而方便我们访问 Internet 上的任意一台主机(或网站)。

CDN(Content Delivery Network): 其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。

HTTPDNS: 使用 HTTP 请求来模拟 DNS 请求

0x00 DNS 原理

DNS 服务器类型:

  • 内部 DNS :位于内网中,提供内网 DNS 服务,也具备 Internet DNS 缓存与转发能力
  • 外部 DNS:位于 Internet 中,提供 Internet 的 DNS 服务(包括 DNS 缓存与转发)
  • 主 DNS:提供 DNS 服务(包括查询,缓存写入)
  • 辅 DNS:只提供 DNS 查询服务,与主 DNS 同步数据库
  • 唯缓存 DNS:自身不具备 DNS 解析能力,但具有 DNS 缓存数据库
  • 转发 DNS:具备转发特性,能将 DNS 请求转发给其他 DNS 服务器
  • 权威 DNS: 自身数据库中存在与 DNS 请求相对应的映射
  • 非权威 DNS:不存在相对应的映射,而存在对应缓存查询结果

本地 DNS: 即在主机的 DNS 设置值

域名组成: [ 主机名 ].[ 二级域名 ].[ 顶级域名 ],因此可以根据域名来在 树形结构 中找到一条从根到叶的路径,叶节点即是权威 DNS

树型DNS结构.PNG

DNS 服务器的功能:

  • 权威 DNS,自身具备解析能力
  • 转发 DNS
  • 缓存 DNS

在由路由器组成的局域网中,本地 DNS 设置为自动获取(路由器),路由器 DNS 设置为(ISP 提供的 DNS),主机通过浏览器访问 http://www.jianshu.com 时 DNS 请求-响应情况:

dns-process.png

上图的文字描述如下:

  1. 192.168.110.252 在浏览器访问 http://www.jianshu.com
  2. 192.168.110.252 检查本地 hosts 文件中是否存在 www.jianshu.com 对应的 IP
  3. 若无,192.168.110.252 继续检查本地 DNS 缓存中是否存在 www.jianshu.com 对应的 IP
  4. 若无, 192.168.110.252 向本地 DNS 服务器发起 DNS 查询请求
  5. 路由器接收到 DNS 查询请求后,检查路由器 DNS 缓存
  6. 若无,路由器以外网地址 202.202.202.202 向本地 DSN 服务器 (ISP DNS)发起 DNS 查询请求
  7. ISP DNS 接收到 DNS 查询请求后,发现自己不是权威 DNS ,且无对应的缓存数据,于是将请求转发给 其他 DNS 服务器 :happy:
  8. 其他 DNS 服务器 接收到请求后,一样发现自己不是权威 DNS,且无对应的缓存数据,于是开始进行 DNS 迭代查询:将请求发送给 根域名服务器
  9. 根域名服务器 接收到请求后,将 顶级域名服务器 (.com) IP 发送给 其他 DNS 服务器
  10. 其他 DNS 服务器 根据 IP 将 DNS 查询请求发送给 顶级域名服务器
  11. 顶级域名服务器 接收到请求后,将 二级域名服务器 (jianshu.com) IP 发送给 其他 DNS 服务器
  12. 其他域名服务器 根据 IP 将 DNS 查询请求发送给 二级域名服务器
  13. 二级域名服务器 接收到请求后,发现自己是权威 DNS 服务器,于是将 www.jianshu.com 映射的 IP 120.132.92.21 发送给 其他域名服务器
  14. 其他域名服务器 接收到解析结果后,将 120.132.92.21 逐层返回传递下去,最终直至 192.168.110.252
  15. 192.168.110.252 接收到 www.jianshu.com 解析结果 120.132.92.21 ,根据 IP 与 www.jianshu.com 建立 TCP 连接,然后发起 HTTP 请求主页内容

0x01 DNS 协议结构

具体详见:结合Wireshark分析DNS 协议

wireshark-dns.PNG
wireshark-cname.PNG

根据上面的 wireshark 分析结果可以看出:DNS 服务器返回的不一定是 IP ,在 DNS 请求中域名为别名时,则 DNS 服务器会返回其 A 记录;

如上图中 cdn-qn0.jianshu.io 域名解析返回的是 CNAME 类型结果 cname iduvrz0.qiniudns.com ,这表明 cdn-qn0.jianshu.io 是别名,其 cname 指向(A 记录)是 iduvrz0.qiniudns.com

因为 A 记录与 IP 映射,于是主机又向 DNS 服务器 发起 iduvrz0.qiniudns.com DNS 请求

0x02 DNS 循环与 CDN

DNS循环: 当权威 DNS 发现一个域名映射多个 IP 时,会使用 IP 轮询的方式来将 IP 平均分配给多个 DNS 请求,从而达到负载均衡的效果

CDN: 由于 DNS 循环时平均分配,不能根据不同服务器的负载情况优化分配,甚至如果有一台服务器宕机了,DNS 不能及时了解到该情况把该服务器的 IP 分配出去,便会造成无法访问;因此,在权威 DNS 和 服务器之间加上一个 CDN 层就显得很必要了;CDN 在具备调度分配服务器能力的基础上,能够同步服务器运行情况,然后根据该情况及时适当调整调度策略,从而使得负载均衡能力大大提高;

CDN功能:

  • 调度分配主机;负载均衡,根据 IP,网络流量情况分配最靠近,网络最通畅的 CDN 节点实现加速
  • 反向代理
  • 静态缓存;缓存静态资源(html,图片,音乐,视频等)
  • 防止 DDOS 攻击

CDN原理图:

cdn.PNG

通过在权威 DNS 服务器中配置 images.jianshu.com 的 cname 指向(A 记录)为 abc.qiniudns.com

在 CDN DNS 中将 abc.qiniudns.com110.110.110.110, 220.220.220.220, 330.330.330.330 三个 IP 映射

就可以实现通过 CDN 给域名images.jianshu.com 加速

更多 CDN 知识参见: CDN 知识

0x03 HTTPDNS

为了防止传统 DNS 解析过程中出现的 DNS 劫持,DNS 缓存版本过旧,因 DNS 服务器转发功能而造成的无法精准定位用户位置的情况,于是通过使用 HTTPDNS 为主,传统DNS为辅 的机制来实现快速,实时,精准的 DNS 解析,从而提供给用户快速,安全稳定,最新的网站访问体验

一篇很好的文章来解释 HTTPDNS : HttpDNS 服务详解

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容