DNS 标志位简要解析

概述

根据规范,一个 DNS 包可以分为下面的几个部分。

其中,身份 ID 占 16 个位,标志符占 16 个位,下面的分别是请求数、回答数、权威域名服务器数、其他记录数,再下面一点的就是回答的内容了(请求、回答、权威域名服务器、其他记录)

可以对照下面这个 Wireshark 抓到的针对本站 imlonghao.com 的一次 DNS 请求进行理解

本博文主要讲述的是 DNS 包中的几个标志位

标志位

正如上面所提供的 Wireshark 的截图,我们可以看到一个名为 Flags 的栏目,这个就是我们今天要讲的标志位。

标志位总长 16 个位,也就是两个字符。

有相应值的位标记为 1 ,没有的则标记为 0 。

最后这 16 个二进制的位通过进制转换即可变成十六进制的,在图中也就是 81 80

QR 1bit

Opcode 4bits

AA 1bit

TC 1bit

RD 1bit

RA 1bit

Z 1bit

保留位

AD 1bit

CD 1bit

Rcode 4bits

参考资料

DNS, Domain Name System - networksorcery.com

DNSSEC 原理、配置与布署简介 | 段海新( Haixin Duan ) @ Tsinghua University