`
Joson_Coney
  • 浏览: 57521 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

【转】DNS报文格式

 
阅读更多

(转自:http://hi.baidu.com/hcq11/blog/item/5e3a1bed2ef1ced8b21cb179.html/cmtid/3d8f1b9074f6cb80a877a4f6


总结:DNS报文格式
2010-04-08 10:13
DNS报文格式(借个图贴过来):

【转】DNS报文格式

    说明一下:并不是所有DNS报文都有以上各个部分的。图中标示的“12字节”为DNS首部,这部分肯定都会有,首部下面的是正文部分,其中查询问题部分也都会有。除此之外,回答、授权和额外信息部分是只出现在DNS应答报文中的,而这三部分又都采用资源记录(Recource Record)的相同格式,这个稍后会提到。下面逐个字段地分析DNS报文。

    标识(2字节):这个字段网上的解释有点不清楚:“由客户程序设置并有服务器返回结果。”看了下实验室的程序和文档,原来这个字段可以看作是DNS报文的ID,对于相关联的请求报文和应答报文,这个字段是相同的,由此可以区分DNS应答报文是哪个请求报文的响应。

    标志(2字节):这部分非常重要,需要逐比特分析。再借个图:

【转】DNS报文格式

    QR(1比特):查询/响应的标志位,1为响应,0为查询。

    opcode(4比特):定义查询或响应的类型(若为0则表示是标准的,若为1则是反向的,若为2则是服务器状态请求)。

    AA(1比特):授权回答的标志位。该位在响应报文中有效,1表示名字服务器是权限服务器(关于权限服务器以后再讨论)

    TC(1比特):截断标志位。1表示响应已超过512字节并已被截断(依稀好像记得哪里提过这个截断和UDP有关,先记着)

    RD(1比特):该位为1表示客户端希望得到递归回答(递归以后再讨论)

    RA(1比特):只能在响应报文中置为1,表示可以得到递归响应。

    zero(3比特):不说也知道都是0了,保留字段。

   rcode(4比特):返回码,表示响应的差错状态,通常为0和3,各取值含义如下:

0          无差错

1          格式差错

2          问题在域名服务器上

3          域参照问题

4          查询类型不支持

5          在管理上被禁止

6          -- 15 保留

 

    标志段说完了,下面是问题数、资源记录数、授权资源记录数和额外资源记录数,这四个字段都是两字节,分别对应下面的查询问题、回答、授权和额外信息部分的数量。一般问题数都为1,DNS查询报文中,资源记录数、授权资源记录数和额外资源记录数都为0.

    该说正文部分了。查询问题部分格式如下:

【转】DNS报文格式

    查询名部分长度不定,一般为要查询的域名(也会有IP的时候,即反向查询)。此部分由一个或者多个标示符序列组成,每个标示符以首字节数的计数值来说明该标示符长度,每个名字以0结束。计数字节数必须是0~63之间。该字段无需填充字节。还是借个例子来说明更直观些,查询名为gemini.tuc.noao.edu的话,查询名字段如下:

【转】DNS报文格式

    查询类型(2字节):通常查询类型为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

对所有记录的请求。

 

 

   查询类(2字节):通常为1,指Internet数据。

前面说过,回答字段,授权字段和附加信息字段均采用资源记录RR(Resource Record)的相同格式。该格式如下:

【转】DNS报文格式

    域名字段(不定长或2字节):记录中资源数据对应的名字,它的格式和查询名字段格式相同。当报文中域名重复出现时,就需要使用2字节的偏移指针来替换。例如,在资源记录中,域名通常是查询问题部分的域名的重复,就需要用指针指向查询问题部分的域名。关于指针怎么用,TCP/IP详解里面有,即2字节的指针,最签名的两个高位是11,用于识别指针。其他14位从报文开始处计数(从0开始),指出该报文中的相应字节数。注意,DNS报文的第一个字节是字节0,第二个报文是字节1。一般响应报文中,资源部分的域名都是指针C00C(1100000000001100),刚好指向请求部分的域名。

    类型(2字节)、类(2字节):含义与查询问题部分的类型和类相同。

    生存时间(4字节):该字段表示资源记录的生命周期(以秒为单位),一般用于当地址解析程序取出资源记录后决定保存及使用缓存数据的时间。

    资源数据长度(2字节):表示资源数据的长度(以字节为单位,如果资源数据为IP则为0004)

    资源数据:该字段是可变长字段,表示按查询段要求返回的相关资源记录的数据。

    基本上对DNS报文格式的分析就是这些了。贴个报文实例,用wireshark抓的:

【转】DNS报文格式

    对应的报文:

【转】DNS报文格式

    就不再分析了,对比wireshark的分析应该能找到各个字段。

分享到:
评论

相关推荐

    DNS报文格式

    DNS报文格式详解。主机名到IP地址的映射有两种方式:1)静态映射,每台设备上都配置主机到IP地址的映射,各设备独立维护自己的映射表,而且只供本设备使用;2)动态映射,建立一套域名解析系统(DNS),只在专门的...

    DNS报文格式说明及服务器端示例程序

    在深入理解DNS报文格式之前,我们首先要了解RFC1035,这是一个由互联网工程任务组(IETF)发布的标准文档,详细定义了DNS的操作和协议。 **DNS报文格式** DNS报文由一个固定头部和可变长度的区域组成,包括询问区...

    DNS报文结构实例解析

    DNS 报文结构是指 DNS 协议中报文的格式和组织方式,包括报文头、查询问题、回答和其他相关信息。了解 DNS 报文结构是理解 DNS 协议的基础。 报文头是 DNS 报文的开头部分,包括标识 ID、标志字段、问题数、资源...

    DNS调研报告-IPv6下DNS报文格式的扩展

    【DNS报文格式】 DNS报文包含请求和响应两部分,主要由以下几个字段组成:标识符、标志、询问计数、回答计数、授权记录计数、附加记录计数以及资源记录。资源记录包括域名、类型、类、生存时间(TTL)和数据字段,...

    网络协议报文格式大全

    DNS报文分为查询和响应两种类型,包含标识符、标志、问题计数、答案计数、授权记录计数和附加记录计数等字段。查询报文询问特定域名对应的IP地址,响应报文则提供查询结果。 5. SSL/TLS协议报文:用于加密通信,...

    网络协议报文格式大全chm版

    DNS报文包括查询和响应两部分,其中查询部分有域名和查询类型,响应部分有解析结果。 4. FTP(File Transfer Protocol):用于文件传输。FTP报文有控制连接和数据连接,报文包含命令和响应,如USER、PASS、LIST、...

    网络协议报文格式大全中文图文说明.zip

    《网络协议报文格式大全中文图文说明》是一个由华为公司提供的资源,包含了丰富的网络协议报文格式解析。这个.chm文件很可能是一个压缩过的帮助文档,通常用于存储大量的文本、图片和索引信息,方便用户查阅。下面将...

    网络协议报文格式大全中文图文说明【华为出品】.zip

    这份由华为技术有限公司编写的“网络协议报文格式大全”是网络学习者的重要参考资料,它以中文图文的形式详细阐述了各种网络协议的报文结构,旨在帮助读者深入理解网络通信的核心原理。 在计算机网络中,协议报文是...

    协议分析系列(21):史上最强网络协议报文格式大全中文图文说明【华为出品】.zip

    此外,这份资源还可能涵盖了ARP(地址解析协议)、ICMP(Internet控制消息协议)、DNS(域名系统)和其他一些网络协议的报文格式。通过学习这些内容,读者可以提升网络故障排查能力,理解网络通信的底层机制,对网络...

    dns请求响应,最原始的组包拆包DNS包

    这个过程需要对DNS报文的二进制格式有深入理解,因为需要正确地编码每个字段。 3. **发送和接收**: 使用`sendto`函数发送DNS请求到指定服务器,然后使用`recvfrom`函数接收DNS响应。注意,由于UDP是无连接的,所以...

    网络协议报文格式大全 v1.0

    DNS报文分为查询和响应两种,都包含一个报文头和一个或多个资源记录。查询报文包含要查询的域名,响应报文则包含相应的IP地址或其他信息。 6. ARP协议:ARP协议用于将IP地址映射到物理(MAC)地址。ARP请求报文寻找...

    DNS通信机制和报文分析

    从技术细节来看,DNS报文格式定义了传输信息的结构,它包括报文头部和四个部分的资源记录。报文头部包含了诸如事务ID、标志位、问题数、回答数、权威服务器数和附加信息记录数等字段。而报文内容部分则通常包含查询...

    华为出品 史上最强网络协议报文格式大全中文图文说明

    《华为出品 史上最强网络协议报文格式大全中文图文说明》是一份极其重要的资源,它深入浅出地解析了网络通信中的各种协议报文格式,对于IT从业者,特别是网络工程师、开发者以及网络安全分析人员来说,是必备的学习...

    DHCP报文格式和抓包分析

    ### DHCP报文格式详解与抓包分析 #### 一、DHCP报文格式概述 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种自动分配网络配置参数的服务协议,广泛应用于局域网环境中的IP地址分配。DHCP...

    网工必备 网络协议报文格式大全 v1.0

    六、DNS报文格式 DNS(域名系统)报文包括标识符、标志、询问计数、回答计数、授权记录计数和附加记录计数等字段,以及问题和资源记录部分。它用于将域名转换为IP地址或反之。 七、其他协议报文格式 除了上述协议...

    C#的DNS协议完整实现代码【有默认DNS服务器实现哦~】

    本篇文章将深入探讨如何在C#中实现DNS协议,并涵盖服务器、客户端、协议报文格式以及DNS代理服务器的相关知识。 首先,DNS服务器是DNS系统的核心,它存储了域名到IP地址的映射。在C#中实现一个简单的DNS服务器,...

    报文格式大全(V2.0).chm

    3. **应用层协议**:涵盖HTTP、FTP、SMTP、DNS等常见应用层协议的报文格式,这些协议用于网页浏览、文件传输、电子邮件和域名解析等任务。 4. **无线通信报文**:对于移动通信,如GSM、UMTS、LTE等,其报文格式也会...

    DNS 域名服务协议

    实验过程包括理解DNS实现的原理、了解DNS解析的过程、学习DNS报文格式、掌握nslookup命令和ipconfig命令的使用方法等。通过实验操作,学习者可以更直观地了解DNS域名解析的过程,以及DNS在互联网中的重要作用。 在...

    报文格式大全详解查询

    在IT行业中,网络通信是至关重要的,而报文格式则是保证数据有效传输的基础。本文将深入探讨"报文格式大全详解查询"这一主题,涵盖协议框图、协议详解、协议栈、网络协议以及交换机协议报文等相关知识。 首先,我们...

Global site tag (gtag.js) - Google Analytics