DNS解析原理

DNS解析


Client 
--> 本地hosts文件 
--> Client DNS Service Local Cache 
--> DNS Server recursion (递归) 
--> DNS Server Cache 
--> DNS iteration (迭代) 
--> 根域
--> 顶级域名DNS
--> 二级域名DNS...

在这里插入图片描述

常规流程简述

  1. 客户端首先查找本机 /etc/hosts文件,若无匹配进入下一步
  2. 客户端向本地DNS服务器(nameserver)发起查询请求,若无匹配的缓存则进入下一步(递归)
  3. 本地DNS服务器中保存了根域DNS服务器的信息,消息转发给根域DNS服务器(开始迭代)
  4. 根域查询不到,但根据域名结构可以判断这个域名属于 com 域(例),因此根域DNS服务器会返回它所管理的 com域中的DNS服务器的 IP地址
  5. 本地DNS服务器又会向 com 域的DNS服务器发送查询消息,获得下级域信息
  6. 同理再向下一级DNS服务器转发,若无匹配,获得下级域信息再次发起查询
  7. 以此类推,就可以顺藤摸瓜找到目标 DNS服务器

迭代与递归

递归查询
  • 一般客户机和本地DNS服务器之间属于递归查询
  • 当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果之后转交给客户机
  • 此查询的源和目标保持不变,为了查询结果客户端只需要发起一次查询
迭代查询
  • 一般情况下本地的DNS服务器向其它DNS服务器的查询属于迭代查询
  • 若对方不能返回权威的结果,则它会(参考前一个DNS服务器返回的结果)向下一个DNS服务器再次发起进行查询,直到返回查询的结果为止
  • 此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询

智能DNS之CDN服务

是基于DNS解析方式实现 Global Server Load Balance(全局负载均衡)的一种方式

在这里插入图片描述

工作原理
  1. 用户向浏览器输入www.a.com这个域名,首先发送到本地DNS服务,若无缓存,则发送到根域服务器
  2. 通过根域迭代查询,找到权威DNS服务器,发现解析记录是CNAME,指向了www.a.tbcdn.com
  3. www.a.tbcdn.com是CDN网络中的智能DNS负载均衡系统
  4. 智能DNS根据本地nameserver的地址就近分配,将对用户响应速度最快的IP节点返回给用户
  5. 用户向返回的 IP节点发出请求,此节点即为CDN服务服务商提供的服务器
  6. CDN服务器会通过内部节点专用DNS解析得到此域名的真正IP(源web站点IP)
  7. 将解析结果返回本地nameserver,实现访问

注:第6步中,若所有CDN节点都没有解析记录,也能自动去源网站进行解析再返回,此情况极少

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值