美文网首页信息安全
什么是DNS、DNS劫持及DNS缓存

什么是DNS、DNS劫持及DNS缓存

作者: 发愤图强的敏敏子 | 来源:发表于2020-05-28 15:13 被阅读0次

前言

作为刚开始学习计算机的朋友,经常会听到DNS域名转发、DNS缓存、DNS劫持等等和DNS相关的专业术语,那么到底什么是DNS呢?实际上DNS就是是一个域名系统,是万维网上作为域名和IP地址相互映射的一个分布式数据库。还是不好理解,那么我们来举个栗子。

什么叫做域名和IP地址之间的映射?

在我们使用浏览器访问一个网站的时候,通常会输入“www.baidu.com”,这个非常利于记忆的代号,但实际上我们知道无论是计算机终端、还是每一台服务器都有一个IP地址,这个IP地址可以看做是一个唯一的“电话号码”。而当计算机和计算之间,或者计算机终端访问服务器上的某个应用,都需要输入这唯一的“电话号码”。可是电话号码不仅不形象而且太长了,那么我们该怎么记住那么多号码呢?这个时候我们就需要一个“电话簿”。

当我们输入域名,那我们要去哪里的“电话簿”找对应的IP呢,例如,当我们输入http://www.baidu.com,该去哪里查IP是14.215.177.39呢?其实在我们本地就有这个东西,即hosts文件,hosts文件的路径是:C:\windows\system32\drivers\etc文件夹下,这个本地的“电话簿”记录着每一个域名对应的IP地址,当你输入域名而不是IP的时候,他就会在这个电话本里找到对应的域名,然后把他转化成IP地址。

什么又叫做DNS解析服务器?

大家不妨打开自己的host文件看一下,Hosts文件中存储的域名和IP之间的映射是有限的,就比如我们不可能拥有这个世界上所有人的电话号码一样。那么当我们要找一个陌生人的时候我们该去哪里找到他的电话号码呢?我们可以找一个有这个电话号码的人,找他去问询,这个人呢就专门负责收集各种各样的电话号码,保证任何人找他帮忙都能得到回应。在域名和IP的映射关系中,这个万能的人就是“DNS解析服务器”。

什么是DNS劫持

在实际访问中,在浏览器中输入一个域名后,浏览器将会优先到host文件中查找对应的IP地址,如果没有查到,那么将会访问DNS域名解析服务器,该服务器在数据库中进行查找之后,就会把对应的IP地址返回给浏览器。浏览器再对该IP地址进行访问,就可以获取想要的资源。

那么,如果A网站的IP地址是A,B网站的IP地址是B,浏览器访问A网站时,如果DNS服务器没有按照预期发挥A对应的IP地址,而是发送了B网站对应的IP地址,那么这就是我们听到的“DNS劫持”。

DNS劫持案例图

补充:DNS缓存

当浏览器访问一个网址,将首先访问DNS解析服务器,DNS服务器把IP地址返回到浏览器,紧接着浏览器才对IP地址进行访问。那么问题来了,如果我们经常访问的网址,是不是每次都要去DNS域名解析服务器拿IP呢?有没有相对简单的方法?答案当然是有的,这就是我们要讲的“DNS缓存”。

DNS缓存指的是DNS返回了正确的IP之后,系统就会将这个结果临时储存起来。并且它会为缓存设定一个失效时间 (例如N小时),在这N小时之内,当你再次访问这个网站时,系统就会直接从你电脑本地的DNS缓存中把结果交还给你,而不必再去询问DNS服务器,变相“加速”了网址的解析。当然,在超过N小时之后,系统会自动再次去询问DNS服务器获得新的结果。

所以,当你度修改了 DNS 服务器,并且不希望电脑继续使用之前的DNS缓存时,就需要手动去清除本地的缓存了。

那么问题又来了,DNS缓存和host什么关系?当访问一个网站时系统将从DNS缓存中读取该域名所对应的IP地址,当查找不到时就会到系统中查找hosts文件,如果还没有那么才会向DNS服务器请求一个DNS查询。并且DNS缓存是内存里的东西,每次关机就会被释放。

相关文章

网友评论

    本文标题:什么是DNS、DNS劫持及DNS缓存

    本文链接:https://www.haomeiwen.com/subject/jquoahtx.html