设为首页收藏本站language→→ 语言切换

鸿鹄论坛

 找回密码
 论坛注册

QQ登录

先注册再绑定QQ

查看: 2138|回复: 3
收起左侧

[分享] DNS报文格式

[复制链接]
 成长值: 62830
发表于 2017-11-24 16:14:00 | 显示全部楼层 |阅读模式
网络协议报文格式大全
http://bbs.hh010.com/thread-531884-1-1.html
(出处: 鸿鹄论坛)
DNS报文格式报文格式
DNS报文格式分为DNS查询和响应的报文格式。这个报文由12字节长的首部和4个长度可变的字段组成。报文中问题字段是由客户填入的,由服务器返回问题的回答、授权和附加信息字段。报文格式如下(RFC 1035):
图1 DNS报文封装格式

                               
登录/注册后可看大图

Header段是必须存在的,它定义了报文是请求还是应答,也定义了其他段是否需要存在,以及是标准查询还是其他。
头部字段格式如下:
图2 头部字段格式

                               
登录/注册后可看大图



字段长度描述
ID16 bit标识字段,客户通过标识字段来确定DNS响应是否与查询请求匹配。
QR1 bit操作类型:
  • 0:查询报文
  • 1:响应报文
OPCODE4 bit查询类型:
  • 0:标准查询
  • 1:反向查询
  • 2:服务器状态查询
  • 3~15:保留未用
反向查询是客户端请求服务器根据回答生成导致此回答的问题,这个查询类型的使用并不多。
AA1 bit若置位,则表示该域名解析服务器是授权回答该域的。
TC1 bit
若置位,则表示报文被截断。
使用UDP传输时,应答的总长度超过512字节时,只返回报文的前512个字节内容。
RD1 bit
客户端希望域名解析服务器采取的解析方式:
  • 0:表示希望域名解析服务器采取迭代解析
  • 1:表示希望域名解析服务器采取递归解析
RA1 bit
域名解析服务器采取的解析方式:
  • 0:表示域名解析服务器采取迭代解析
  • 1:表示域名解析服务器采取递归解析
Z3 bit全部置0,保留未用。
RCODE4 bit
响应类型:
  • 0:无差错
  • 1:查询格式错
  • 2:服务器失效
  • 3:域名不存在
  • 4:查询没有被执行
  • 5:查询被拒绝
  • 6-15: 保留未用
QDCOUNT16 bit无符号16位整数表示报文请求段中的问题记录数。
ANCOUNT16 bit无符号16位整数表示报文回答段中的回答记录数。
NSCOUNT16 bit无符号16位整数表示报文授权段中的授权记录数。
ARCOUNT16 bit无符号16位整数表示报文附加段中的附加记录数。

大多数查询中,Question段包含着问题(question),比如,指定问什么。这个段包含QDCOUNT(usually 1)个问题,每个问题为下面的格式:
图3 Question字段的格式

                               
登录/注册后可看大图



字段长度描述
QNAME变长域名被编码为一些labels序列,每个labels包含一个字节表示后续字符串长度,以及这个字符串,以0长度和空字符串来表示域名结束。注意这个字段可能为奇数字节,不需要进行边界填充对齐。
QTYPE2个字节表示查询类型,.取值可以为任何可用的类型值,以及通配码来表示所有的资源记录。
QCLASS2个字节表示查询的协议类,比如,IN代表Internet。

图4 资源记录字段的格式

                               
登录/注册后可看大图

应答,授权,附加段都共用相同的格式:多个资源记录,资源记录的个数由报文头段中对应的几个数值确定,每个资源记录格式如下:


字段长度描述
NAME不定长资源记录包含的域名。
TYPE2个字节表示资源记录的类型,指出RDATA数据的含义。
CLASS2个字节表示RDATA的类。
TTL4字节无符号整数,表示资源记录可以缓存的时间。0代表只能被传输,但是不能被缓存。
RDLENGTH2个字节无符号整数,表示RDATA的长度。
RDATA不定长字符串,表示记录,格式跟TYPE和CLASS有关。比如,TYPE是A,CLASS是IN,那么RDATA就是一个4个字节的ARPA网络地址。


报文示例图5 DNS query消息

                               
登录/注册后可看大图

图6 DNS Response消息

                               
登录/注册后可看大图


参考标准
标准描述
RFC 1034DOMAIN NAMES - CONCEPTS AND FACILITIES
RFC 1035DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION





发表于 2020-2-2 21:19:44 | 显示全部楼层
ddddddddddddddd
板凳 2020-2-2 21:19:44 回复 收起回复
回复 支持 反对

使用道具 举报

发表于 2020-2-2 21:19:53 | 显示全部楼层
ddddddddddddddddddddd
地板 2020-2-2 21:19:53 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2024-12-26 14:33 , Processed in 0.079000 second(s), 12 queries , Redis On.  

  Powered by Discuz!

  © 2001-2024 HH010.COM

快速回复 返回顶部 返回列表