DNS迭代查询,递归查询

相信很多人都对DNS协议有所了解,你肯定会说,不就是根据域名转换成IP地址再访问吗.那你知道它是如何查询的吗?
第一,主机向本地域名服务器的查询一般为递归查询,所谓递归查询就是如果本地域名服务器不知道被查询域名的IP地址,就会以DNS客户的身份向其他根域名服务器查询(即代替主机进行查询).
第二,本地域名服务器向根域名服务器的查询一般为迭代查询,当根域名服务器接收到本地域名服务器的查询请求时,会告诉本地域名服务器下一步应该去请求哪一个域名服务器.然后本地域名服务器再进行后续查询.
在这里插入图片描述
证明主机向本地域名服务器的查询为递归查询:
1)查找本地域名服务器:
如果是windows环境,win+r打开cmd,输入命令ipconfig /all查看本地域名服务器ip
在这里插入图片描述
wireshark抓包内容
在这里插入图片描述
通过分析抓包内容可以看出, 主机向本地域名服务器的查询为递归查询
查询信息:

在这里插入图片描述
应答消息:
在这里插入图片描述
图中圈出的部分为DSN flag的信息,共2个字节,18比特.
DNS报文格式:
在这里插入图片描述
第二行为flags信息,其中RD为期望递归设置,如果为0表示希望域名服务器进行迭代查询,为1则表示进行递归查询.

查询报文中flags的16进制为0100,转换成二进制为0000000100000000,而RD标志位为第八个比特,即1(即主机向本地域名服务器执行递归查询)
响应报文中的flags的16进制为8180,二进制为1000000110000000,RA标志位为域名服务器是否支持递归查询,1代表可用,0代表不可用.(本地域名服务器回应主机)
由此可以证明主机到本地域名服务器的查询确实为递归查询,执行递归查询还是迭代查询取决于DNS报文flags中的RD字段.
由于我没有搭建DNS服务器,无法直接截获本地DNS服务器与根服务器之间的报文,感兴趣的朋友可以自己搭建一台本地DNS服务器,看看本地DNS服务器与根域名服务器通信使用的是递归查询还是迭代查询.

欢迎大家关注我的微信个人公众号WCTW,不定期分享各种计算机知识干货.进群交流技术,唠家常.(_)

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值