DNS请求报文和响应报文解析 | 您所在的位置:网站首页 › dns中文名称及作用解释 › DNS请求报文和响应报文解析 |
DNS 分为查询请求和查询响应,请求和响应的报文结构基本相同。DNS 报文格式如图所示。 整个 DNS 格式主要分为 3 部分内容,即基础结构部分、问题部分、资源记录部分。下面将详细地介绍每部分的内容及含义。 基础结构部分DNS 报文的基础结构部分指的是报文首部,如图所示。 基础结构部分中的标志字段又分为若干个字段,如图所示。 为了能够更好地了解 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: Don't 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;Answer RRs,Authority RRs,Additional RRs 的值都为 0,因为在请求中还没有响应的查询结果信息。这些信息在响应包中会有相应的值。 DNS 响应数据包基础结构部分如图所示。![]() 以上输出信息中加粗部分为 DNS 响应包比请求包中多出来的字段信息,这些字段信息只能出现在响应包中。在输出信息最后可以看到 Answer RRs,Authority RRs,Additional RRs 都有了相应的值(不一定全为 0)。 问题部分问题部分指的是报文格式中查询问题区域(Queries)部分。该部分是用来显示 DNS 查询请求的问题,通常只有一个问题。该部分包含正在进行的查询信息,包含查询名(被查询主机名字)、查询类型、查询类。 问题部分格式如图所示。 ![]() 其中,可以看到 DNS 请求类型为 A,那么得到的响应信息也应该为 A 类型。 DNS 响应包的问题部分字段信息,如图所示。![]() 从图中 Queries 部分中可以看到,响应包中的查询类型也是 A,与请求包的查询类型是一致的。 资源记录部分资源记录部分是指 DNS 报文格式中的最后三个字段,包括回答问题区域字段、权威名称服务器区域字段、附加信息区域字段。这三个字段均采用一种称为资源记录的格式,格式如图所示。 资源记录格式中每个字段含义如下: 域名:DNS 请求的域名。 类型:资源记录的类型,与问题部分中的查询类型值是一样的。 类:地址类型,与问题部分中的查询类值是一样的。 生存时间:以秒为单位,表示资源记录的生命周期,一般用于当地址解析程序取出资源记录后决定保存及使用缓存数据的时间。它同时也可以表明该资源记录的稳定程度,稳定的信息会被分配一个很大的值。 资源数据长度:资源数据的长度。 资源数据:表示按查询段要求返回的相关资源记录的数据。 资源记录部分只有在 DNS 响应包中才会出现。下面通过 DNS 响应包来进一步了解资源记录部分的字段信息。 DNS 响应包的资源记录部分的字段信息,如图所示。![]() 其中,方框中标注的信息为 DNS 响应报文的资源记录部分信息。该部分信息主要分为三部分信息,即回答问题区域、权威名称服务器区域、附加信息区域,下面依次分析这三部分信息。 回答问题区域字段的资源记录部分信息如下: 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其中,Name 的值为 baidu.com,表示 DNS 请求的域名为 baidu.com;类型为 A,表示要获取该域名对应的 IP 地址。Address 的值显示了该域名对应的 IP 地址。这里获取到了 2 个 IP 地址,分别为 220.181.57.216 和 123.125.115.110。 权威名称服务器区域字段的资源记录部分信息如下: Authoritative nameservers #“权威名称服务器区域”字段 baidu.com: type NS, class IN, ns ns7.baidu.com #资源记录部分 Name: baidu.com Type: NS (authoritative Name Server) (2) #类型字段, 这里为NS类型 Class: IN (0x0001) Time to live: 5 Data length: 6 Name Server: ns7.baidu.com #权威名称服务器 baidu.com: type NS, class IN, ns dns.baidu.com #资源记录部分 Name: baidu.com Type: NS (authoritative Name Server) (2) #类型字段, 这里为NS类型 Class: IN (0x0001) Time to live: 5 Data length: 6 Name Server: dns.baidu.com #权威名称服务器 baidu.com: type NS, class IN, ns ns3.baidu.com #资源记录部分 Name: baidu.com Type: NS (authoritative Name Server) (2) Class: IN (0x0001) Time to live: 5 Data length: 6 Name Server: ns3.baidu.com #权威名称服务器 baidu.com: type NS, class IN, ns ns4.baidu.com #资源记录部分 Name: baidu.com Type: NS (authoritative Name Server) (2) Class: IN (0x0001) Time to live: 5 Data length: 6 Name Server: ns4.baidu.com #权威名称服务器 baidu.com: type NS, class IN, ns ns2.baidu.com #资源记录部分 Name: baidu.com Type: NS (authoritative Name Server) (2) Class: IN (0x0001) Time to live: 5 Data length: 6 Name Server: ns2.baidu.com #权威名称服务器其中,Name 的值为 baidu.com,表示 DNS 请求的域名为 baidu.com;类型为 NS,表示要获取该域名的权威名称服务器名称。Name Server 的值显示了该域名对应的权威名称服务器名称。这里总共获取到 5 个,如 ns7.baidu.com。 附加信息区域字段的资源记录部分信息如下: Additional records #“附加信息区域”字段 dns.baidu.com: type A, class IN, addr 202.108.22.220 #资源记录部分 Name: dns.baidu.com #“权威名称服务器”名称 Type: A (Host Address) (1) #类型字段, 这里为A类型 Class: IN (0x0001) Time to live: 5 Data length: 4 Address: 202.108.22.220 #“权威名称服务器”的IP地址 ns2.baidu.com: type A, class IN, addr 61.135.165.235 #资源记录部分 Name: ns2.baidu.com #“权威名称服务器”名称 Type: A (Host Address) (1) #类型字段, 这里为A类型 Class: IN (0x0001) Time to live: 5 Data length: 4 Address: 61.135.165.235 #“权威名称服务器”的IP地址 ns3.baidu.com: type A, class IN, addr 220.181.37.10 #资源记录部分 Name: ns3.baidu.com #“权威名称服务器”名称 Type: A (Host Address) (1) #类型字段, 这里为A类型 Class: IN (0x0001) Time to live: 5 Data length: 4 Address: 220.181.37.10 #“权威名称服务器”的IP地址 ns4.baidu.com: type A, class IN, addr 220.181.38.10 #资源记录部分 Name: ns4.baidu.com #“权威名称服务器”名称 Type: A (Host Address) (1) #类型字段, 这里为A类型 Class: IN (0x0001) Time to live: 5 Data length: 4 Address: 220.181.38.10 #“权威名称服务器”的IP地址 ns7.baidu.com: type A, class IN, addr 180.76.76.92 #资源记录部分 Name: ns7.baidu.com #“权威名称服务器”名称 Type: A (Host Address) (1) #类型字段, 这里为A类型 Class: IN (0x0001) Time to live: 5 Data length: 4 Address: 180.76.76.92 #“权威名称服务器”的IP地址其中,Name 的值为“权威名称服务器”名称,Type 的值为 A,表示获取域名对应的 IP 地址;Address 的值显示了所有获取到的权威名称服务器对应的 IP 地址。 例如,权威名称服务器名称 ns7.baidu.com 对应的 IP 地址为 180.76.76.92。 |
CopyRight 2018-2019 实验室设备网 版权所有 |