DNS邮件格式分析(非常详细)

电脑杂谈  发布时间:2020-05-29 10:13:25  来源:网络整理

dns协议详解_dns域名解析协议_dns协议解析器

DNS分为查询请求和查询响应. 请求和响应的分组结构基本相同. DNS消息格式如图所示.

上图显示了DNS消息格式. 其中,交易ID,徽标,问题计数,答案资源记录计数,权威名称服务器计数以及其他资源记录计数是DNS邮件标头的6个字段,总计12个字节.

整个DNS格式主要分为三个部分,即基础结构部分,问题部分和资源记录部分. 每个部分的内容和含义将在下面详细介绍. 基础结构部分DNS消息的基本部分是指消息头,如图所示.

本节中每个字段的含义如下.

基本结构部分中的徽标字段分为几个字段,如图所示.

徽标字段中每个字段的含义如下:

dns协议解析器_dns协议详解_dns域名解析协议

为了更好地理解DNS数据包的基础结构部分,让我们通过捕获的DNS数据包查看基础结构部分.

1)DNS请求数据包的基本结构,如图所示.

图中的数据包是DNS请求包,域名系统(查询)部分框中的信息是DNS消息的基本结构部分.

为便于解释,此处列出并说明了信息:

Domain Name System (query)
    Transaction ID: 0x9ad0                              #事务ID
    Flags: 0x0000 Standard query                        #报文中的标志字段
        0... .... .... .... = Response: Message is a query
                                                        #QR字段, 值为0, 因为是一个请求包
        .000 0... .... .... = Opcode: Standard query (0)
                                                        #Opcode字段, 值为0, 因为是标准查询
        .... ..0. .... .... = Truncated: Message is not truncated
                                                        #TC字段
        .... ...0 .... .... = Recursion desired: Dont do query recursively 
                                                        #RD字段
        .... .... .0.. .... = Z: reserved (0)           #保留字段, 值为0
        .... .... ...0 .... = Non-authenticated data: Unacceptable   
                                                        #保留字段, 值为0
    Questions: 1                                        #问题计数, 这里有1个问题
    Answer RRs: 0                                       #回答资源记录数
    Authority RRs: 0                                    #权威名称服务器计数
    Additional RRs: 0                                   #附加资源记录数

上面的输出信息显示了DNS请求消息的基础结构部分中包含的字段和相应的值. 这里应该注意,请求中的Questions值不能为0;应答RR,授权RR和附加RR的值都为0,因为请求中对查询结果信息没有响应. 这些消息在响应包中将具有相应的值.

2)DNS响应包的基本结构如图所示.

dns协议详解_dns协议解析器_dns域名解析协议

图中标记的框是响应包中的基本结构部分,每个字段如下:

Domain Name System (response)
    Transaction ID: 0x9ad0                                    #事务ID
    Flags: 0x8180 Standard query response, No error           #报文中的标志字段
        1... .... .... .... = Response: Message is a response
                                                              #QR字段, 值为1, 因为是一个响应包
        .000 0... .... .... = Opcode: Standard query (0)      # Opcode字段
        .... .0.. .... .... = Authoritative: Server is not an authority for
        domain                                                #AA字段
        .... ..0. .... .... = Truncated: Message is not truncated
                                                              #TC字段
        .... ...1 .... .... = Recursion desired: Do query recursively 
                                                              #RD字段
        .... .... 1... .... = Recursion available: Server can do recursive
        queries                                               #RA字段
        .... .... .0.. .... = Z: reserved (0)
        .... .... ..0. .... = Answer authenticated: Answer/authority portion
        was not authenticated by the server
        .... .... ...0 .... = Non-authenticated data: Unacceptable
        .... .... .... 0000 = Reply code: No error (0)        #返回码字段
    Questions: 1
    Answer RRs: 2
    Authority RRs: 5
    Additional RRs: 5

以上输出信息的粗体部分是DNS响应数据包中的字段信息,多于请求数据包. 这些字段信息只能出现在响应数据包中. 在输出信息的末尾,您可以看到应答RR,授权RR和其他RR都有对应的值(不一定全为0). 问题部分问题部分是指消息格式中的查询问题区域(查询)部分. 本部分用于显示DNS查询请求的问题. 通常只有一个问题. 本节包含有关正在进行的查询的信息,包括查询名称(正在查询的主机的名称),查询类型和查询类.

问题部分的格式如图所示.

本节中每个字段的含义如下:

1)DNS请求数据包的问题部分的字段信息,如图所示.

在下图中,“查询”部分中的信息就是“问题”部分中的信息,每个字段的描述如下:

dns协议详解_dns协议解析器_dns域名解析协议

Domain Name System (query)                        #查询请求
    Queries                                       #问题部分
        baidu.com: type A, class IN
            Name: baidu.com                       #查询名字段, 这里请求域名baidu.com
            [Name Length: 9]
            [Label Count: 2]
            Type: A (Host Address) (1)            #查询类型字段, 这里为A类型
            Class: IN (0x0001)                    #查询类字段, 这里为互联网地址

其中dns协议详解,您可以看到DNS请求类型为A,因此响应信息也应为A.

2)DNS响应数据包的问题部分的字段信息,如图所示.

从图中的“查询”部分可以看到,响应数据包中的查询类型也是A,这与请求数据包中的查询类型相同. 资源记录部分资源记录部分引用DNS消息格式的最后三个字段,包括答案问题区域字段,权威名称服务器区域字段和附加信息区域字段. 这三个字段都使用一种称为资源记录的格式,该格式如图所示.

资源记录格式中每个字段的含义如下:

资源记录部分仅出现在DNS响应数据包中. DNS响应数据包用于进一步了解资源记录部分中的字段信息.

1)DNS响应数据包的资源记录部分的字段信息,如图所示.

dns协议解析器_dns协议详解_dns域名解析协议

框中标记的信息是DNS响应消息的资源记录的一部分. 这部分信息主要分为三部分信息,即回答问题区域,权威名称服务器区域和附加信息区域. 下面依次分析这三部分信息.

2)答案区域字段的资源记录部分中的信息如下:

Answers                                                      #“回答问题区域”字段
    baidu.com: type A, class IN, addr 220.181.57.216         #资源记录部分
        Name: baidu.com                                      #域名字段, 这里请求的域名为baidu.com
        Type: A (Host Address) (1)                           #类型字段, 这里为A类型
        Class: IN (0x0001)                                   #类字段
        Time to live: 5                                      #生存时间
        Data length: 4                                       #数据长度
        Address: 220.181.57.216                              #资源数据, 这里为IP地址
    baidu.com: type A, class IN, addr 123.125.115.110        #资源记录部分
        Name: baidu.com
        Type: A (Host Address) (1)
        Class: IN (0x0001)
        Time to live: 5
        Data length: 4
        Address: 123.125.115.110


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-226313-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...