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