什么是DNS

“DNS”这个单字,想必那些经常使用计算机,尤其是经常手动配置IP和DNS服务器的人是非常熟悉的。也许其中的大部分人并没有深入了解过它的具体意义,只是对它有个简单的了解,然后习惯性地将主DNS服务器和备DNS服务器配置成 114.114.114.114 和 8.8.8.8 (因为比较好记忆~~)。

什么是DNS?

DNS 的全称是 Domain Name System(域名系统,或者常称为域名解析系统)。

我们在上网的时候,经常要通过浏览器去访问一些网站,实际上就是访问网站所在的服务器IP地址,但是让用户记住设备的IP地址是非常困难的。我们常用的方式就是在浏览器中输入要访问的网址链接(例如 www.example.com),然后浏览器就会通过解析这个域名地址,找到要访问的服务器,从而读取到需要访问的网站的数据。所以我们在因特网上,构建了域名和IP地址互相映射的分布式数据库,在IP地址和域名之间形成一种转换和查询机制。

所以,DNS工作的过程可以简单描述为:域名地址经过DNS服务器解析后,得到对应的IP地址,通过该IP地址访问到服务器获取我们要访问的内容。

DNS通信主要使用UDP,TCP为辅,使用端口号53。当然,端口号可以修改,但是默认是使用53端口;在某些情况下,也会采用TCP协议。DNS是网络分层里的应用层协议,事实上他是为其他应用层协议工作的。

DNS的工作过程

为了解析一个域名(www.baidu.com),应用程序会调用域名解析库函数,并将域名作为参数传入其中。
此解析库函数会提取本机所设置的上连DNS服务器地址,并向此地址发送一个域名解析请求。
上连DNS服务器接到域名解析请求后,在本机查询此域名,找到后将其对应的IP地址返回给解析库函数。
解析库函数接收到上连DNS服务器返回的信息后,将此信息返回给应用程序。

DNS查询之递归查询

这里我们以scs.bupt.deu.cn域名为例子

1、为了解析,浏览器会调用域名解析库函数,并将域名作为参数传入其中。
2、此解析库函数会提取本机所设置的上连DNS服务器地址,并向此地址发送一域名解析请求。
3、上连DNS服务器接到域名解析请求后,在本机查找此域名,但是若没找到对应信息。
4、这时上连的DNS服务器就会求助于根DNS服务器(root-server.net)
5、然后请求就会逐级转发,顺序是cn的DNS服务器——edu.cn的DNS服务器——bupt.edu.cn的DNS服务器。(就是逐渐缩小范围)
6、由于bupt.edu.cn一定是管理scs.bupt.edu.cn的资源记录的DNS服务器,于是,bupt.edu.cn的DNS服务器会将所查询域名对应的IP地址返回给上一级。
7、这个IP地址会按照逆序依次回传,顺序是edu.cn的DNS服务器——cn的DNS服务器——根DNS服务器。
8、最后根DNS服务器将这个信息返回给上连DNS服务器。
9、上连DNS服务器收到结果后,首先会将这个结果缓存到本机,同时,将其回传给用户浏览器。

这里有点很重要那就是上连的DNS服务器在收到结果后,不仅会把结果返回给调用者,还会自己缓存起来

面试会提到的相关问题

  1. DNS 是基于 TCP 还是 UDP 的?端口号是多少?
    DNS通信主要使用UDP,TCP为辅,使用端口号53

  2. 打开一个URL,在网络层面都发生了哪些事情?

  3. 什么是DNS劫持?

DNS劫持:DNS Hijacking。就是通过劫持了DNS服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。DNS劫持通过篡改DNS服务器上的数据返回给用户一个错误的查询结果来实现的。

DNS劫持症状:在某些地区的用户在成功连接宽带后,首次打开任何页面都指向ISP提供的“电信互联星空”、“网通黄页广告”等内容页面。还有就是曾经出现过用户访问Google域名的时候出现了百度的网站。这些都属于DNS劫持。

举个例子易于理解:说到劫持,我们可能联想到一个坏蛋劫持了DNS服务器,拿着刀架在脖子上。这时候你问DNS服务器,博主帅吗?(发出请求)。DNS服务器听到了,他心里的答案是,好帅哦(返回正确ip地址)。由于坏蛋控制了他,并且对他做了修改。所以DNS只好不情愿的说,你真丑(错误的ip地址)。这个过程中,你和DNS服务器之间,一来一回,流程上没有任何问题,唯一的问题就是,DNS服务器告诉了你错误的ip地址。DNS也不想啊,但是有人控制了他的权限,或者修改了他的记录值等等。我们称为DNS劫持。类似我们使用网络的时候,明明访问的是普通网站,却突然跳到什么电信什么宣传页面一样。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值