用wireshark抓包分析DNS域名解析过程

1.什么是DNS

DNSDomain Name System的简称,即域名系统,是一个记录域名和IP地址相互映射的系统,主要作用是为了解决域名与IP之间的相互转换。DNS是一个网络服务,其端口为53号端口。通常DNS在查询时是以UDP协议来进行查询,一旦无法查询到完整信息时,再以TCP协议进行重新查询。因此,DNS服务启动时会同时开启UDPTCP协议的53号端口。

DNS的基本作用:把域名转换成IP地址。

DNS工作在应用层。

2.DNS域名结构

域名具有一定的层次结构,从上到下依次为:根域名、顶级域名(top level domain,TLD)、二级域名SLD、三级域名、四级域名等。根域名后面有一个小圆点。其树型结构如下:

3.DNS的工作过程

下图描述一次完整的DNS请求过程:

1)用户在Web浏览器中键入http://www.baidu.com,查询传输到Internet中,并被DNS递归解析器接收。

2)解析器查询DNS根域名服务器(Root Server)

3)根域名服务器把存储其域信息的顶级域(top-level domain,TLD)DNS服务器的地址返回该解析器。在搜索http://www.baidu.com时,根域名服务器返回.com TLD

4)解析器向.com TLD发出请求。

5)TLD服务器把存储该域(http://www.baidu.com)的域名服务器的IP地址返回给DNS解析器。

6)递归解析器把查询发送到存储该域(http://www.baidu.com)的域名服务器。

7)http://www.baidu.comIP地址而后从域名服务器返回解析器。

8)DNS解析器把最初请求的域(http://www.baidu.com)的IP地址返回给Web浏览器。

9)浏览器向该IP地址发出HTTP请求。

10)位于该IP的服务器返回将在浏览器中呈现的网页。

4.DNS的查询过程

递归查询:域名服务器帮助用户进行名字解析,并返回最后的结果。【老好人】

迭代查询:域名服务器进迭代访问,反复多次,直到最后找到结果。【踢皮球】

DNS缓存的目的是将数据临时存储在某个位置,从而提高数据请求的性能和可靠性。

DNS高速缓存将数据存储在更靠近请求客户端的位置,以便能够更早的解析DNS查询,并且能够避免在DNS查找链中进一步向下的额外查询,从而缩短加载时间并减少带宽/CPU的消耗。DNS数据可缓存到各种不同的位置上,每个位置均将存储DNS记录并保存由生存时间(TTL)决定的一段限制。

  • 浏览器缓存:浏览器在获取网站域名的实际IP地址后会对其进行缓存,减少网络请求的损耗。

  • 操作系统缓存:操作系统的缓存是用户自己配置的hosts文件

所以上面提到的DNS查询过程中,当客户端提交一个域名请求时,先查询浏览器的DNS缓存信息,如果没有,再找操作系统的DNS缓存信息,如果还没有,则开始从本地DNS查起。

5. 利用wireshark进行DNS协议抓包

下面在浏览器中输入https://www.baidu.com,进行访问,然后同时利用wireshark进行抓包,抓包后,通过显示过滤器显示DNS协议:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值