开发者社区> 艾贺> 正文

DNS域名解析

简介: 这个知识点已经是老生常谈,快被写烂了,但是为了自己能理解的更清楚一点,还是选择整理出一篇自己的文章。 DNS( Domain Name System)是“域名系统”的英文缩写,主要作用就是将便于人类记忆的单词组合(如www.taobao.com),解析成不太容易记忆的数字组合(61.154.126.109)。
+关注继续查看

这个知识点已经是老生常谈,快被写烂了,但是为了自己能理解的更清楚一点,还是选择整理出一篇自己的文章。

DNS( Domain Name System)是“域名系统”的英文缩写,主要作用就是将便于人类记忆的单词组合(如www.taobao.com),解析成不太容易记忆的数字组合(61.154.126.109)。

我觉得这是互联网发展的必须结果,想一想如果没有DNS系统,平时我们想要访问百度,淘宝,腾讯的网站,都要在浏览器中输入一长串的数字,耗时又不方便,并且一旦想要访问的网站增多了,很多人也不愿意记这么多的数字在脑袋中。

然后好一点的办法就是把那些数字记录到一个清单里,对应是那个网站。仅供个人使用的时候还挺方便,但是一旦与网民互相交流的时候,每个人的清单列法不一样,讨论起来也不一致,所以规范很重要。

DNS就相当于整个网站映射的规范,适应与全球的网站,国内GFW即利用了DNS污染使得我们无法访问一些国外的网站。

过程

DNS解析过程可以分为有缓存的解析与无缓存的解析,一般都是有缓存的,虽然情况更复杂一些,但更贴近实际。

  1. 如果是在浏览器中输入域名, 检测浏览器是否有解析过的IP地址缓存,有的话直接使用上次解析的IP结果。

  2. 浏览器无缓存,则检查系统缓存。*nix下会检查/etc/hosts文件中是否有对应的缓存。Windows下会检查C:\Windows\System32\drivers\etc\hosts中内容。

    注意:黑客可以在解析的任一流程中修改解析对应的IP,将解析的IP指向黑客的服务器,导致域名被劫持。

  3. 本地缓存如果都没有的话,会将要解析的域名(www.taobao.com)发送到本地设置的 DNS服务器。即LDNS
    Linux下的NameServer配置信息在/etc/resolve.conf.

    这个专门的域名解析服务器性能都会很好,它们一般都会缓存域名解析结果,80%的域名解析到这里基本已经完成了,所以LDNS主要承担了域名的解析工作。

  4. 如果LDNS没有命中结果,就直接到Root Server域名服务器请求解析

  5. 根据域名服务器返回给本地域名服务器一个所查询域的主域名服务器,(gTLD Server)地址。gTLD是国际顶级域名服务,如.com, .cn, .org。

  6. 本地域名服务器LDNS再向上一步返回的gTLD服务器发送请求。

  7. 接受请求的gTLD服务器查找并返回对应Name Server域名服务器的地址。Name Server通常是注册的域名服务器。
    假如这是你再某个域名服务提供上申请的域名,那么这个域名的解析任务由这个域名提供商的服务器来完成。

  8. Name Server域名服务器会查询存储域名和IP的关系映射表,正常情况下都根据域名得到目标IP记录,连同一个TTL值返回给DNS Server域名服务器。

  9. 根据返回该域名对应的IP和TTL值,本地DNS服务器,LDNS会缓存这域名和IP的对应关系,缓存时间由TTL值来控制。

  10. 把解析的结果返回给用户,用户根据TTL值缓存在本地系统缓存中,域名解析过程结束。

最后

DNS域名解析过程在面试中也是经常问到的问题,做个整理,希望能帮助到大家,以后自己也方便查看。

参考

  • 深入理解Java Web 技术内幕

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
14278 0
域名dns的解析原理
DNS域名解析是互联网上非常重要的一项服务,上网冲浪(还有人在用这个词吗?)伴随着大量DNS服务来支撑,而对于网站运营来说,DNS域名解析的稳定可靠,意味着更多用户的喜欢,更好的SEO效果和更大的访问流量。
2272 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
29156 0
国外注册的域名dns服务器换回国内dns服务器的详细教程!
国外注册的域名dns服务器换回国内dns服务器的详细教程! 其他国外域名也类似:   今天据网友反映打不开网站,了解之后才知道是域名ping不通了,   在论坛里了解到Godaddy的域名容易出现国内ping不通的情况。
5079 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20698 0
+关注
艾贺
专注开发,架构知识
327
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载