技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 网络系统 --> DNS解析过程及DNS TTL值

DNS解析过程及DNS TTL值

浏览:4567次  出处信息

   经常说DNS劫持,也常常说域名解析不正确。那么DNS解析的过程究竟如何?在阅读《HTTP权威指南》缓存一章时,提到缓存文档过期采用“生存时间技术”与DNS类似。所以抽空学习了解了一下DNS的解析过程,以及DNS TTL值的概念!

DNS相关知识

  • 根域名服务器(root-servers.org)是互联网域名解析系统(DNS)中最高级别的域名服务器,全球仅有13台根服务器。

  • 部分根域名服务器在全球设有多个镜像服务器

  • 任何域名解析都要经过这13台根服务器获得顶级索引,并不是说您访问 .com 会经过这些服务器,访问 .cn 就不经过这些服务器

  • 每一个顶级域,不管是gTLD(通用顶级域),还是ccTLD(国别顶级域),它们都有自己的域名服务器(即该顶级域的NS记录)

  •    根域名服务器全球分布图——Google Maps

    域名解析的步骤

       在输入网址后,域名解析通常所需步骤如下:

  • 第一步:客户机提出域名解析请求,查找本地HOST文件后将该请求发送给本地的域名服务器。

  • 第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。

  • 第三步:如果本地DNS缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址(例如请求域名为.com域,则返回负责.com域解析的主域名服务器——辅助服务器)。

  • 第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。

  • 第五步:重复第四步,直到找到正确的纪录。

  • 第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

  •    文字可能很难理解,网民们是伟大的,看到这张图应该很形象的演示了上述过程:

       dns_resolving_2409

       本地DNS向其他DNS服务器发送的查询请求可能有:递归查询和迭代查询两种,示例如下:

       递归查询

       dns_resolving_2409

       迭代查询

       dns_resolving_2409

    DNS TTL值

       通过前文的说明,DNS会将最终域名解析的结果缓存至本地。那么当域名对应的解析IP变化时,如何保证用户的缓存快速过期?

       这就涉及到一个问题,域名在解析时设置的DNS缓存过期时间是多少——TTL(Time-To-Live)。

       TTL(Time-To-Live),简单的说它表示一条域名解析记录在DNS服务器上缓存时间.当各地的DNS服务器接受到解析请求时,就会向域名指定的DNS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向DNS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。

       所以一般更新域名解析的步骤如下:

  • 先查看域名当前的TTL值。

  • 修改TTL值为可设定的最小值,建议为60秒。

  • 等待一天,保证各地的DNS服务器缓存都过期并更新了记录。

  • 设置修改DNS解析到新的记录,这个时候各地的DNS就能以最快的速度更新到新的记录。

  • 确认各地的DNS已经更新完成后,再TTL值设置成常用的值(如: TTL=86400)。

  •    不过为毛公司切换域名解析时速度飞快?这个明天得咨询一下孔总!

       看一下我这个xiaoxiaozi.com域名,在dnspod后台设置的ttl值示意图:

       dns_resolving_2409

    参考资料:

       维基百科——根域名服务器

       百度百科——域名解析词条

       百度知道——dns域名解析过程

       SOSO百科——根域名解析服务器

       DNS域名解析过程

       TTL值的含义以及与域名DNS TTL值的区别

建议继续学习:

  1. 自建DNS以防止GFW干扰    (阅读:11926)
  2. 强制刷新本地 DNS 缓存记录    (阅读:9266)
  3. 2014年1月21日中国互联网DNS瘫痪事件原因分析    (阅读:6888)
  4. 关于 SOCKS 代理的远端 DNS 解析    (阅读:6457)
  5. DNS 隧道    (阅读:5705)
  6. 什么是DNS劫持和DNS污染?    (阅读:4990)
  7. nslookup通往DNS的桥梁    (阅读:4789)
  8. CentOS下通过Webmin管理BIND实现DNS轮询    (阅读:4702)
  9. dig挖出DNS的秘密    (阅读:4652)
  10. public DNS servers    (阅读:4105)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1