请求报文解析_原创:UDP协议应用详解-域名服务器DNS(三)报文格式与分析

本文详细介绍了DNS报文的格式,包括标识位、标志位、问题数位、回答数位等关键字段,以及DNS报文在请求和响应过程中的应用。通过实例分析了DNS请求和响应报文,阐述了DNS如何通过UDP和TCP端口53进行通信,并解释了在响应报文大于512Byte时切换到TCP的情况。
摘要由CSDN通过智能技术生成

1、 DNS报文格式

79f8dcc8551b181856c73b9472fbdf0f.png

1.1标识位:即ID位,共16位,2个字节,客户端发送一个ID位为1的请求,DNS服务器会响应此ID为1的请求,ID为还为1。ID为是为了对应请求与响应报文。

1.2标志位:共16位,2个字节,16位。内容如下图所示:

260f22728c08d19304997579981985bd.png

1.2.1、QR位,共1位,为0时表示该DNS报文为请求报文,为1时表示该DNS报文为响应报文。

1.2.2、opcode为,共4位,为0时表示该DNS报文为正向查询,为1时表示该DNS报文为反向查询。

1.2.3、AA(authoritative answer)位,共1位,表明该DNS响应是否为首选回答,为0时表示该DNS报文为非授权回答,即DNS服务器从缓存中获取的解析地址,为1时表示该DNS报文为授权回答,即查询域名服务器后获取的解析地址。

1.2.4、TC(truncated)位,截断位,共1位,为0时表明不截断,为1时表示该响应报文大于512Byte,需要使用TCP进行传输。

1.2.5、RD(recursion desired),期望递归位,共1位,DNS请求中出现,为1时表示期望使用递归查询的方式进行DNS查询,但域名服务器基本不会响应递归查询,递归查询会消耗域名服务器的性能。

1.2.6、RA,为RD的响应,共1位,DNS响应报文中出现,为1时表示DNS服务器可用递归查询方式。

1.3问题数位:共16位,出现在DNS请求报文中,表示报文中询问域名的数量。

1.4回答数位:共16位,出现在DNS响应报文中,表示报文中回答请求相应域名解析的数量。

1.5授权资源记录数位:共16位,基本不会出现在用户和DNS服务器之间,一般出现在DNS服务器与域名服务器之间。

c4cfd66e0a0a1004d8a7e12fb50e6c26.png

如上图2、3步骤:当DNS服务器向根域名服务器查询一个FQDN时,由于根域名服务器没有对应的域名,只有.Com域名服务器的解析地址时,会告知DNS服务器寻找去这个.com服务器的域名(如上图666.dns.com)来查询响应FQDN,此时就授权资源记录数位将设置为1。如果根域名服务器中记录了多个.Com域名服务器的解析地址时,会告知DNS服务器可以去多个.com域名服务器的响应域名去查询相应的FQDN,此时授权资源记录数位将设置为"多个.com域名服务器"的数量。

1.6额外资源记录数位:共16位,与授权资源记录数相对应,授权资源记录数是告知DNS服务器寻找去这个.com服务器的域名来查询响应FQDN,并没有告知.Com服务器相应的IP地址为2.2.2.2,额外资源记录就是告知.Com服务器相应的IP地址的,即告知666.dns.com的地址为2.2.2.2,响应报文中有一个额外资源的告知,则额外资源记录数位加1。

知识扩展:DNS协议端口号UDP和TCP的53端口,大家应该都知道UDP53号端口,那TCP53号端口是什么作用呢?TCP53号端口用于主备两台DNS服务器之间同步记录(DNS服务器间的区域传送)时使用,还有就是当DNS响应的报文大于512Byte时,也将使用TCP53号端口发送DNS报文。

d2c9dcb62001d43c58a9d7014baa951b.png

如图所示,如果DNS服务器的响应报文大于512Byte时,该蓝底的标志位将会被置为1,告知客户端报文大于512Byte,将使用tcp53端口进行DNS响应报文的传输。

2、 DNS报文分析

下面我们通过抓包详细分析一个常见的DNS的请求报文和对应的响应报文:

DNS请求报文:请求www.baidu.com的A记录,即请求解析www.baidu.com的IP地址。

021e11b274d34a91d08cd987e9af5620.png

DNS响应报文:响应用户对于www.baidu.com解析的请求。

41ee31ae37c3de47ef9591106d77b71e.png
16481e6a4db66a30f3c566e135ac9eb8.png

此时,用户即可通过解析的相应IP地址访问www.baidu.com。

2fc5c785f8054ca7f0dcd82350a109d7.png

以上内容均为本人对所掌握知识总结归纳所创作的原创文章,希望能给大家的学习过程带来帮助,如有技术理解错误希望能够得到大家的指正,大家共同学习,共同进步。

欢迎关注我的头条号,私信交流,学习更多网络技术!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值