码迷,mamicode.com
首页 > 其他好文 > 详细

DNS消息格式

时间:2015-12-08 20:17:06      阅读:603      评论:0      收藏:0      [点我收藏+]

标签:

消息类型

DNS消息包含三种类型:

  • 请求
  • 响应
  • 更新

请求和响应在原始标准中定义,更新在RFC 2136中定义。

DNS通用消息格式

DNS通用消息格式如下:

技术分享

DNS消息头

DNS消息头包含以下字段:

字段名称描述
Transaction ID 16比特,标识一次DNS交互。由请求端生成,响应端返回,用于将响应报文对应到请求报文
Flags: 16比特,包含各种标记,标记定义如下:
Request/response 1比特,为0时表示请求,为1时表示响应
Operation code 4比特,表示操作码,0x0表示查询
Authoritative answer 1比特,表示响应者是域名的权威名字服务器
Truncation 截断标志位,1比特,为1时表示响应超过512字节,已被截断
Recursion desired 1比特,表示递归查询
Recursion available 1比特,为1时表示响应值可以处理递归查询
Reserved 3比特,保留字段,为0
Return code 4比特,返回码。0表示成功响应,0x3表示域名错误,域名在权威名字服务器上不存在
Question Resource Record count 16比特,表示问题个数
Answer Resource Record count 16比特,表示回答个数
Authority Resource Record count 16比特,表示权威资源记录个数
Additional Resource Record count 16比特,表示额外资源记录个数

问题字段

该字段表示查询的域名,包含以下三个字段:

  • Question Name:查询名,由一组labels组成,为length-value格式,1字节表示长度,尾随数据(即label)。例如对于域名www.baidu.com,表示为0x03www0x05baidu0x03com,其中十六进制数表示长度。
  • Question Type:16比特,表示查询类型,有以下类型:
    • 0x01 Host (A) record
    • 0x02 Name server (NS) record
    • 0x05 Alias (CNAME) record
    • 0x0C Reverse-lookup (PTR) record
    • 0x0F Mail exchange (MX) record
    • 0x21 Service (SRV) record
    • 0xFB Incremental zone transfer (IXFR) record
    • 0xFC Standard zone transfer (AXFR) record
    • 0xFF All records
  • Question Class:表示查询类

DNS资源记录

回答、授权、额外信息字段均采用资源记录(Resource Record)格式,定义如下:

字段名称描述
Resource Record Name DNS域名,其格式与问题字段中的查询名相同,但是为了节省数据,如果之前出现了相同的名字,则此处的值为之前相同名字相对报文中DNS起始数据的位置。如问题的查询名为www.baidu.com,回答字段中的资源记录名字与之相同,因此其值为0xc0 0x0c(0xc0表示引用,0x0c表示查询名相对DNS起始数据的位置是12)
Resource Record Type 16比特,资源记录类型,与问题字段中查询类型相同
Resource Record Class 16比特,资源记录类(IN: 0x0001)
Time-to-Live 32比特,TTL
Resource Data Length 16比特,资源数据长度
Resource Data 资源数据

DNS消息格式

标签:

原文地址:http://www.cnblogs.com/aurora-s/p/5030021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!