基础结构部分
1、事务 ID:每个 DNS 报文都有一个唯一的事务 ID,用于区分请求和响应报文,这个 ID 在请求和对应的应答报文中是相同的,使得客户端能够识别服务器的响应是否对应自己的请求。
2、标志:标志字段包含了多个子字段,用于控制 DNS 报文的行为和状态。
3、问题计数:表示查询报文中的问题数量,通常为 1。
4、回答资源记录数:表示响应报文中回答的资源记录数量。
5、权威名称服务器计数:表示权威名称服务器的资源记录数量。
6、附加资源记录数:表示附加信息的资源记录数量。
问题部分
1、查询名:要查询的域名或 IP 地址,以字符串形式表示。
2、查询类型:查询请求的资源记录类型,如 A 记录、NS 记录等。
3、查询类:通常为互联网地址,值为 1。
资源记录部分
1、域名:与问题部分中的查询名相同。
2、类型:与问题部分中的查询类型值一样。
3、类:与问题部分中的查询类值一样。
4、生存时间:以秒为单位,表示资源记录的生命周期。
5、资源数据长度:表示资源数据的长度。
6、资源数据:按查询段要求返回的相关资源记录的数据。
单元表格:DNS 报文中的常见字段及其含义
字段名 | 字节数 | 描述 |
事务 ID | 2 | DNS 报文的 ID 标识 |
标志 | 2 | 包含 QR、Opcode、AA、TC、RD、RA、Z、rcode 等子字段 |
问题计数 | 2 | DNS 查询请求的数目 |
回答资源记录数 | 2 | DNS 响应的数目 |
权威名称服务器计数 | 2 | 权威名称服务器的数目 |
附加资源记录数 | 2 | 额外的记录数目 |
查询名 | 可变 | 要查询的域名或 IP 地址 |
查询类型 | 2 | 查询请求的资源类型 |
查询类 | 2 | 地址类型,通常为互联网地址 |
域名 | 可变 | 与问题部分中的查询名相同 |
类型 | 2 | 与问题部分中的查询类型值一样 |
类 | 2 | 与问题部分中的查询类值一样 |
生存时间 | 4 | 以秒为单位,表示资源记录的生命周期 |
资源数据长度 | 2 | 表示资源数据的长度 |
资源数据 | 可变 | 按查询段要求返回的相关资源记录的数据 |
相关问题与解答
1、什么是 DNS ID?
答:DNS ID 是每个 DNS 报文中的唯一标识符,用于区分请求和响应报文,通过这个 ID,客户端能够识别服务器的响应是否对应自己的请求,在请求和对应的应答报文中,该字段的值是相同的。
2、DNS 报文中的标志字段有哪些子字段?它们各自的含义是什么?
答:DNS 报文中的标志字段包含以下子字段及其含义:
QR(Response):查询请求/响应的标志信息,查询请求时,值为 0;响应时,值为 1。
Opcode:操作码,0 表示标准查询;1 表示反向查询;2 表示服务器状态请求。
AA(Authoritative):授权应答,该字段在响应报文中有效,值为 1 时,表示名称服务器是权威服务器;值为 0 时,表示不是权威服务器。
TC(Truncated):表示是否被截断,值为 1 时,表示响应已超过 512 字节并已被截断,只返回前 512 个字节。
RD(Recursion Desired):期望递归,该字段能在一个查询中设置,并在响应中返回,该标志告诉名称服务器必须处理这个查询,这种方式被称为一个递归查询,如果该位为 0,且被请求的名称服务器没有一个授权回答,它将返回一个能解答该查询的其他名称服务器列表,这种方式被称为迭代查询。
RA(Recursion Available):可用递归,该字段只出现在响应报文中,当值为 1 时,表示服务器支持递归查询。
Z:保留字段,在所有的请求和应答报文中,它的值必须为 0。
rcode(Reply code):返回码字段,表示响应的差错状态,当值为 0 时,表示没有错误;当值为其他数值时,表示不同类型的错误状态。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/182567.html