【以太网数据结构】系列文章链接
http://blog.csdn.net/u012819339/article/category/5849175
DNS数据包格式
DNS协议作用:解析出域名对应的IP
协议字段解释:
标识ID:每一次DNS查询数据包都会有自己一个ID,其应答包的ID和请求包的ID是一样的。
标识FLAG:该字段有点意思,如下:
位段 | 位置 | 解释 |
---|---|---|
QR | x000 0000 0000 0000 | 查询/响应的标志位,1为响应,0为查询 |
opcode | 0xxx x000 0000 0000 | 定义查询或响应的类型(若为0则表示是标准的,若为1则是反向的,若为2则是服务器状态请求)。 |
AA | 0000 0x00 0000 0000 | 授权回答的标志位。该位在响应报文中有效,1表示名字服务器是权限服务器 |
TC | 0000 00x0 0000 0000 | 截断标志位。1表示响应已超过512字节并已被截断 |
RD | 0000 000x 0000 0000 | 该位为1表示客户端希望得到递归回答 |
RA | 0000 0000 x000 0000 | 只能在响应报文中置为1,表示可以得到递归响应 |
zero | 0000 0000 0xxx 0000 | 保留字段,都为0 |
rcode | 0000 0000 0000 xxxx | 返回码,表示响应的差错状态,通常为0和3,各取值含义如下 |
rcode | 解释 |
---|---|
0 | 无差错 |
1 | 格式差错 |
2 | 问题在域名服务器上 |
3 | 域参照问题 |
4 | 查询类型不支持 |
5 | 在管理上被禁止 |
6 | – 15 保留 |
问题数、资源记录数、授权资源记录数、额外资源记录数 分别对应查询问题、回答、授权、额外信息
应答包还有问题区域:
查询名 + 查询类型 + 查询类
查询名:计数+标示符 组成
举例来说明,s.x.baidu.com在网络中的数据,如下
- | s | . | x | . | b | a | i | d | u | . | c | o | m | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x01 | 0x73 | 0x01 | 0x78 | 0x05 | 0x62 | 0x61 | 0x69 | 0x64 | 0x75 | 0x03 | 0x63 | 0x6f | 0x6d | 0x00 |
1 | ’s’ | 1 | ‘x’ | 5 | ‘b’ | ‘a’ | ‘i’ | ‘d’ | ‘u’ | 3 | ‘c’ | ‘o’ | ‘m’ | 0 |
查询类型:通常查询类型为A(由名字获得IP地址)或者PTR(获得IP地址对应的域名),类型列表如下
类型 | 助记 | 说明 |
---|---|---|
1 | A | IPv4地址 |
2 | NS | 名字服务器 |
5 | CNAME | 规范名称定义主机的正式名字的别名 |
6 | SOA | 开始授权标记一个区的开始 |
11 | WKS | 熟知服务定义主机提供的网络服务 |
12 | PTR | 指针把IP地址转化为域名 |
13 | HINFO | 主机信息给出主机使用的硬件和操作系统的表述 |
15 | MX | 邮件交换把邮件改变路由送到邮件服务器 |
28 | AAAA | IPv6地址 |
252 | AXFR | 传送整个区的请求 |
255 | ANY | 对所有记录的请求 |
查询类: 通常为1,指Internet数据
复杂的DNS应答包就不解释了,自个查。
实例抓包:
以blog.csdn.net为例,DNS请求报文如下
DNS应答报文如下
【以太网数据结构】系列文章见
http://blog.csdn.net/u012819339/article/category/5849175