首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DNS解析

DNS解析

作者头像
IMWeb前端团队
发布于 2017-12-29 10:16:30
发布于 2017-12-29 10:16:30
38.6K00
代码可运行
举报
文章被收录于专栏:IMWeb前端团队IMWeb前端团队
运行总次数:0
代码可运行

用户在浏览器的地址栏中敲入了网站的网址 ,会发生哪些事情呢?

  • 用户在浏览器的地址栏中敲入了网站的网址
  • 浏览器查找域名的IP地址
  • 找到ip地址后,浏览器给web服务器发送一个HTTP请求
  • 服务器“处理”请求
  • 服务器发回一个HTML响应
  • 浏览器开始显示HTML

大概就是这样的过程,下面我们来仔细的分析下浏览器是如何查找到域名对应的ip地址的。

DNS域名解析过程

  当用户在浏览器中输入ke.qq.com并按下回车键后:

  • 第1步,查找浏览器缓存。 浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几小时不等。这个缓存时间太长和太短都不好,如果缓存时间太长,一旦域名被解析到的IP有变化,会导致被客户端缓存的域名无法解析到变化后的IP地址,以致该域名不能正常解析,这段时间内有可能会有一部分用户无法访问网站。如果时间设置太短,会导致用户每次访问网站都要重新解析一次域名。
  • 第2步,查找系统缓存。 如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。其实操作系统也会有一个域名解析的过程,在Windows中可以通过C:\Windows\System32\drivers\etc\hosts文件来设置,你可以将任何域名解析到任何能够访问的IP地址。如果你在这里指定了一个域名对应的IP地址,那么浏览器会首先使用这个IP地址。例如,我们在测试时可以将一个域名解析到一台测试服务器上,这样不用修改任何代码就能测试到单独服务器上的代码的业务逻辑是否正确。正是因为有这种本地DNS解析的规程,所以黑客就有可能通过修改你的域名解析来把特定的域名解析到它指定的IP地址上,导致这些域名被劫持。
  • 第3步,查找路由器缓存。 如果系统缓存中也找不到,那么查询请求就会发向路由器,它一般会有自己的DNS缓存。
  • 第4步,查找ISP DNS 缓存。 运气实在不好,就只能查询ISP DNS 缓存服务器了。在我们的网络配置中都会有"DNS服务器地址"这一项,操作系统会把这个域名发送给这里设置的DNS,也就是本地区的域名服务器,通常是提供给你接入互联网的应用提供商。这个专门的域名解析服务器性能都会很好,它们一般都会缓存域名解析结果,当然缓存时间是受域名的失效时间控制的,一般缓存空间不是影响域名失效的主要因素。大约80%的域名解析都到这里就已经完成了,所以ISP DNS主要承担了域名的解析工作。
  • 第5步,递归搜索。  最无奈的情况发生了, 在前面都没有办法命中的DNS缓存的情况下,(1)本地 DNS服务器即将该请求转发到互联网上的根域(即一个完整域名最后面的那个点,通常省略不写)。(2)根域将所要查询域名中的顶级域(假设要查询ke.qq.com,该域名的顶级域就是com)的服务器IP地址返回到本地DNS。(3) 本地DNS根据返回的IP地址,再向顶级域(就是com域)发送请求。(4) com域服务器再将域名中的二级域(即ke.qq.com中的qq)的IP地址返回给本地DNS。(5) 本地DNS再向二级域发送请求进行查询。(6) 之后不断重复这样的过程,直到本地DNS服务器得到最终的查询结果,并返回到主机。这时候主机才能通过域名访问该网站

DNS有关的安全问题

1、DNS欺骗:DNS欺骗即域名信息欺骗是最常见的DNS安全问题。当一个DNS服务器掉入陷阱,使用了来自一个恶意DNS服务器的错误信息,那么该DNS服务器就被欺骗了。DNS欺骗会使那些易受攻击的DNS服务器产生许多安全问题,例如:将用户引导到错误的互联网站点,或者发送一个电子邮件到一个未经授权的邮件服务器。网络攻击者通常通过两种方法进行DNS欺骗。

  • 缓存感染:黑客会熟练的使用DNS请求,将数据放入一个没有设防的DNS服务器的缓存当中。这些缓存信息会在客户进行DNS访问时返回给客户,从而将客户引导到入侵者所设置的运行木马的Web服务器或邮件服务器上,然后黑客从这些服务器上获取用户信息。
    • DNS信息劫持:入侵者通过监听客户端和DNS服务器的对话,通过猜测服务器响应给客户端的DNS查询ID。每个DNS报文包括一个相关联的16位ID号,DNS服务器根据这个ID号获取请求源位置。黑客在DNS服务器之前将虚假的响应交给用户,从而欺骗客户端去访问恶意的网站。
    • DNS重定向:攻击者能够将DNS名称查询重定向到恶意DNS服务器。这样攻击者可以获得DNS服务器的写权限

2、拒绝服务攻击   黑客主要利用一些DNS软件的漏洞,如在BIND 9版本(版本9.2.0以前的 9系列)如果有人向运行BIND的设备发送特定的DNS数据包请求,BIND就会自动关闭。攻击者只能使BIND关闭,而无法在服务器上执行任意命令。如果得不到DNS服务,那么就会产生一场灾难:由于网址不能解析为IP地址,用户将无方访问互联网。这样,DNS产生的问题就好像是互联网本身所产生的问题,这将导致大量的混乱。

3、分布式拒绝服务攻击   DDOS 攻击通过使用攻击者控制的几十台或几百台计算机攻击一台主机,使得服务拒绝攻击更难以防范,更难以通过阻塞单一攻击源主机的数据流,来防范服务拒绝攻击。

4、缓冲区漏洞溢出攻击   黑客利用DNS服务器软件存在漏洞,比如对特定的输入没有进行严格检查,那幺有可能被攻击者利用,攻击者构造特殊的畸形数据包来对DNS服务器进行缓冲区溢出攻击。如果这一攻击成功,就会造成DNS服务停止,或者攻击者能够在DNS服务器上执行其设定的任意代码。

DNS有关的网络性能优化

1、减少DNS查找,避免重定向   浏览器DNS缓存 、计算机DNS缓存、 服务器DNS缓存、使用Keep-Alive特性 来减少DNS查找。考虑影响DNS缓存的因素:

  • 服务器可以设置TTL值表示DNS记录的存活时间。本机DNS缓存将根据这个TTL值判断DNS记录什么时候被抛弃,这个TTL值一般都不会设置很大,主要是考虑到快速故障转移的问题。
  • 浏览器DNS缓存也有自己的过期时间,这个时间是独立于本机DNS缓存的,相对也比较短,例如chrome只有1分钟左右。
  • 浏览器DNS记录的数量也有限制,如果短时间内访问了大量不同域名的网站,则较早的DNS记录将被抛弃,必须重新查找。不过即使浏览器丢弃了DNS记录,操作系统的DNS缓存也有很大机率保留着该记录,这样可以避免通过网络查询而带来的延迟。

2、DNS的预解析

  • 可以通过用meta信息来告知浏览器, 我这页面要做DNS预解析

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <meta http-equiv="x-dns-prefetch-control" content="on" />
  • 可以使用link标签来强制对DNS做预解析:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <link rel="dns-prefetch" href="http://ke.qq.com/" />
  • 当客户端的DNS缓存为空时,DNS查找的数量与Web页面中唯一主机名的数量相等。减少唯一主机名的数量就可以减少DNS查找的数量。较少的域名来减少DNS查找(2-4个主机)

本文是前端与计算机网络培训的一点总结,关于DNS解析过程做了简短的介绍,相关的安全防范和网络性能优化,还需要更多的学习。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
在软件开发、Java、后端的面试中,浏览器中输入URL到页面返回的全过程 是一道非常经典的面试题,更是经常被作为面试的压轴题出现。有时也会通过其他方式来问,譬如:
寻求出路的程序媛
2024/11/05
5680
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
DNS是如何被劫持的?DNS劫持会造成什么样的后果?
DNS劫持是很多站长或企业网站运维人员常遇到的网络攻击事件,网站遭到‍DNS劫持轻则影响网速,重则不能上网,而且很有可能被可能会被恶意指向各种钓鱼网站,严重影响客户个人信息账户泄密的风险。今天墨者安全就来给大家说说DNS是如何被劫持的?会造成什么样的后果?
墨者盾
2019/01/23
6.1K2
DNS是如何被劫持的?DNS劫持会造成什么样的后果?
通过Wireshark抓包分析谈谈DNS域名解析的那些事儿
本文主要想通过动手实际分析一下是如何通过DNS服务器来解析域名获取对应IP地址的,毕竟,纸上得来终觉浅,绝知此事要躬行。
朱季谦
2021/09/26
11.5K2
通过Wireshark抓包分析谈谈DNS域名解析的那些事儿
教你学木马攻防 | 隧道木马 | DNS反弹shell
在上一篇文章中,我们讲解了木马通信协议中的ICMP协议,并通过ICMP实现了一个反弹shell,本篇接着讲解一下DNS隧道,也实现一个反弹shell。
七夜安全博客
2019/04/28
3.9K0
教你学木马攻防 | 隧道木马 | DNS反弹shell
DNS的解析原理和过程
Denmark
2017/12/03
9.3K0
DDOS攻击攻击种类和原理
不过这3种攻击方法最厉害的还是DDoS,那个DRDoS攻击虽然是新近出的一种攻击方法,但它只是DDoS攻击的变形,它的唯一不同就是不用占领大量的“肉鸡”。这三种方法都是利用TCP三次握手的漏洞进行攻击的。
用户3267951
2018/09/07
4.6K0
DNS原理及其解析过程(转)
1、在浏览器中输入www.qq.com域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。 2、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。 3、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/ip参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。 4、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。 5、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址(qq.com)给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www.qq.com主机。 6、如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
大学里的混子
2019/03/08
2.6K0
DNS劫持详解
DNS是Domain Name System的缩写, 我们称之域名系统。首先它是远程调用服务,本地默认占用53端口,它本身的实质上一个域名和ip的数据库服务器,他要完成的任务是帮我们把输入的域名转换成ip地址,之后通过ip寻址连接目标服务器。
用户1462769
2019/08/08
4.9K0
DNS劫持详解
Web页面解析过程(浅)
​ 请求第一时间会查询本地主机的DNS缓存表ipconfig/displaydns,若本地DNS缓存表有对应的IP地址则返回浏览器进行访问,如果没有则会向DNS域名服务器发出查询请求(上一级的DNS服务器)
Mirror王宇阳
2020/11/12
2.3K0
DNS
版权声明:本文为博主原创文章,转载请注明博客地址: https://blog.csdn.net/zy010101/article/details/86572041
zy010101
2019/05/25
11K0
万字长文给“DNS”带绿帽
我们先想想一个问题,我们打开一个微信或者一个XX音乐,一个网页,到底会开几个进程。
我是程序员小贱
2020/06/05
2.2K0
域名解析的全过程
IP地址是互联网上计算机唯一的逻辑地址,通过IP地址实现不同计算机之间的相互通信,每台联网计算机都需要通过IP地址来互相联系和区分。
Johns
2022/09/01
4.6K0
深入分析Java Web技术内幕读书笔记(二)浅析DNS域名解析过程
下面DNS解析步骤进行讲解,后面将采用命令行的形式来跟踪DNS解析过程。当用户在地址栏键入www.baidu.com并敲下回车键之后,域名解析就开始了。
itlemon
2020/04/03
2.5K0
深入分析Java Web技术内幕读书笔记(二)浅析DNS域名解析过程
DNS域名解析
以用户输入开源中国的域名www.oschina.net为例,DNS解析大约有以下几个步骤:
SuperHeroes
2019/03/12
55.4K0
ARP欺骗&IP欺骗&TCP劫持攻击&DNS攻击&邮件攻击|网络攻防课堂笔记
在《网络攻击与防御》这门课第第五章欺骗攻击与防御还是很值得去好好听一下的, 在这章里面主要讲了下面五个欺骗:
h0cksr
2023/05/18
1.1K0
灵魂拷问,你真的了解DNS吗?
遇到问题我们通常会打开浏览器,输入 www.google.com 回车,然后搜索我们的问题,获取到我们想要的内容后,我们又会心满意足的关闭浏览器。
蔡不菜丶
2022/12/19
1.7K0
灵魂拷问,你真的了解DNS吗?
SeedLab——DNS Attack Lab
DNS(Domain Name System)是一个用于将域名转换为与之关联的IP地址的分布式命名系统。它充当了互联网上的电话簿,将人类可读的域名(例如example.com)映射到计算机可理解的IP地址(例如192.0.2.1)。
Andromeda
2023/12/14
1.4K0
SeedLab——DNS Attack Lab
深入学习 DNS 域名解析
在平时工作中相信大家都离不开 DNS 解析,因为 DNS 解析是互联网访问的第一步,无论是使用笔记本浏览器访问网络还是打开手机APP的时候,访问网络资源的第一步必然要经过DNS解析流程。
用户11531739
2025/03/19
1.6K0
跟DNS相关的常见攻击类型有哪些?
什么是DNS?DNS是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS自出现以来,一直被认为是最重要的互联网服务之一,几乎所有的网络服务都依托于DNS服务将域名解析为IP地址。DNS如此重要,但很多企业对DNS安全却并不是很重视,导致DNS经常被不法分子利用,发起各种网络攻击。今天墨者安全就来说说跟DNS相关的常见攻击类型有哪些?
墨者盾
2019/03/09
3.6K0
跟DNS相关的常见攻击类型有哪些?
万字长文爆肝 DNS 协议!
试想一个问题,我们人类可以有多少种识别自己的方式?可以通过身份证来识别,可以通过社保卡号来识别,也可以通过驾驶证来识别,尽管我们有多种识别方式,但在特定的环境下,某种识别方法可能比另一种方法更为适合。因特网上的主机和人类一样,可以使用多种识别方式进行标识。互联网上主机的一种标识方法是使用它的 主机名(hostname) ,如 www.facebook.com、 www.google.com 等。但是这是我们人类的记忆方式,路由器不会这么理解,路由器喜欢定长的、有层次结构的 IP地址。
用户6543014
2021/01/25
8770
万字长文爆肝 DNS 协议!
相关推荐
浏览器中输入URL返回页面过程(超级详细)、DNS域名解析服务,TCP三次握手、四次挥手
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档